unsuspected-hangeul
Version:
함수형 난해한 언어 '평범한 한글'의 명세와 구현체입니다. 평범한 한글 문장으로 보이는 프로그램을 짜보세요!
1 lines • 67 kB
JavaScript
function t(){t=function(){return n};var n={},r=Object.prototype,e=r.hasOwnProperty,i=Object.defineProperty||function(t,n,r){t[n]=r.value},o="function"==typeof Symbol?Symbol:{},u=o.iterator||"@@iterator",a=o.asyncIterator||"@@asyncIterator",c=o.toStringTag||"@@toStringTag";function s(t,n,r){return Object.defineProperty(t,n,{value:r,enumerable:!0,configurable:!0,writable:!0}),t[n]}try{s({},"")}catch(t){s=function(t,n,r){return t[n]=r}}function f(t,n,r,e){var o=Object.create((n&&n.prototype instanceof v?n:v).prototype),u=new P(e||[]);return i(o,"_invoke",{value:M(t,r,u)}),o}function h(t,n,r){try{return{type:"normal",arg:t.call(n,r)}}catch(t){return{type:"throw",arg:t}}}n.wrap=f;var l={};function v(){}function m(){}function p(){}var w={};s(w,u,function(){return this});var d=Object.getPrototypeOf,y=d&&d(d(j([])));y&&y!==r&&e.call(y,u)&&(w=y);var g=p.prototype=v.prototype=Object.create(w);function b(t){["next","throw","return"].forEach(function(n){s(t,n,function(t){return this._invoke(n,t)})})}function N(t,n){function r(i,o,u,a){var c=h(t[i],t,o);if("throw"!==c.type){var s=c.arg,f=s.value;return f&&"object"==typeof f&&e.call(f,"__await")?n.resolve(f.__await).then(function(t){r("next",t,u,a)},function(t){r("throw",t,u,a)}):n.resolve(f).then(function(t){s.value=t,u(s)},function(t){return r("throw",t,u,a)})}a(c.arg)}var o;i(this,"_invoke",{value:function(t,e){function i(){return new n(function(n,i){r(t,e,n,i)})}return o=o?o.then(i,i):i()}})}function M(t,n,r){var e="suspendedStart";return function(i,o){if("executing"===e)throw new Error("Generator is already running");if("completed"===e){if("throw"===i)throw o;return{value:void 0,done:!0}}for(r.method=i,r.arg=o;;){var u=r.delegate;if(u){var a=I(u,r);if(a){if(a===l)continue;return a}}if("next"===r.method)r.sent=r._sent=r.arg;else if("throw"===r.method){if("suspendedStart"===e)throw e="completed",r.arg;r.dispatchException(r.arg)}else"return"===r.method&&r.abrupt("return",r.arg);e="executing";var c=h(t,n,r);if("normal"===c.type){if(e=r.done?"completed":"suspendedYield",c.arg===l)continue;return{value:c.arg,done:r.done}}"throw"===c.type&&(e="completed",r.method="throw",r.arg=c.arg)}}}function I(t,n){var r=n.method,e=t.iterator[r];if(void 0===e)return n.delegate=null,"throw"===r&&t.iterator.return&&(n.method="return",n.arg=void 0,I(t,n),"throw"===n.method)||"return"!==r&&(n.method="throw",n.arg=new TypeError("The iterator does not provide a '"+r+"' method")),l;var i=h(e,t.iterator,n.arg);if("throw"===i.type)return n.method="throw",n.arg=i.arg,n.delegate=null,l;var o=i.arg;return o?o.done?(n[t.resultName]=o.value,n.next=t.nextLoc,"return"!==n.method&&(n.method="next",n.arg=void 0),n.delegate=null,l):o:(n.method="throw",n.arg=new TypeError("iterator result is not an object"),n.delegate=null,l)}function x(t){var n={tryLoc:t[0]};1 in t&&(n.catchLoc=t[1]),2 in t&&(n.finallyLoc=t[2],n.afterLoc=t[3]),this.tryEntries.push(n)}function E(t){var n=t.completion||{};n.type="normal",delete n.arg,t.completion=n}function P(t){this.tryEntries=[{tryLoc:"root"}],t.forEach(x,this),this.reset(!0)}function j(t){if(t){var n=t[u];if(n)return n.call(t);if("function"==typeof t.next)return t;if(!isNaN(t.length)){var r=-1,i=function n(){for(;++r<t.length;)if(e.call(t,r))return n.value=t[r],n.done=!1,n;return n.value=void 0,n.done=!0,n};return i.next=i}}return{next:O}}function O(){return{value:void 0,done:!0}}return m.prototype=p,i(g,"constructor",{value:p,configurable:!0}),i(p,"constructor",{value:m,configurable:!0}),m.displayName=s(p,c,"GeneratorFunction"),n.isGeneratorFunction=function(t){var n="function"==typeof t&&t.constructor;return!!n&&(n===m||"GeneratorFunction"===(n.displayName||n.name))},n.mark=function(t){return Object.setPrototypeOf?Object.setPrototypeOf(t,p):(t.__proto__=p,s(t,c,"GeneratorFunction")),t.prototype=Object.create(g),t},n.awrap=function(t){return{__await:t}},b(N.prototype),s(N.prototype,a,function(){return this}),n.AsyncIterator=N,n.async=function(t,r,e,i,o){void 0===o&&(o=Promise);var u=new N(f(t,r,e,i),o);return n.isGeneratorFunction(r)?u:u.next().then(function(t){return t.done?t.value:u.next()})},b(g),s(g,c,"Generator"),s(g,u,function(){return this}),s(g,"toString",function(){return"[object Generator]"}),n.keys=function(t){var n=Object(t),r=[];for(var e in n)r.push(e);return r.reverse(),function t(){for(;r.length;){var e=r.pop();if(e in n)return t.value=e,t.done=!1,t}return t.done=!0,t}},n.values=j,P.prototype={constructor:P,reset:function(t){if(this.prev=0,this.next=0,this.sent=this._sent=void 0,this.done=!1,this.delegate=null,this.method="next",this.arg=void 0,this.tryEntries.forEach(E),!t)for(var n in this)"t"===n.charAt(0)&&e.call(this,n)&&!isNaN(+n.slice(1))&&(this[n]=void 0)},stop:function(){this.done=!0;var t=this.tryEntries[0].completion;if("throw"===t.type)throw t.arg;return this.rval},dispatchException:function(t){if(this.done)throw t;var n=this;function r(r,e){return u.type="throw",u.arg=t,n.next=r,e&&(n.method="next",n.arg=void 0),!!e}for(var i=this.tryEntries.length-1;i>=0;--i){var o=this.tryEntries[i],u=o.completion;if("root"===o.tryLoc)return r("end");if(o.tryLoc<=this.prev){var a=e.call(o,"catchLoc"),c=e.call(o,"finallyLoc");if(a&&c){if(this.prev<o.catchLoc)return r(o.catchLoc,!0);if(this.prev<o.finallyLoc)return r(o.finallyLoc)}else if(a){if(this.prev<o.catchLoc)return r(o.catchLoc,!0)}else{if(!c)throw new Error("try statement without catch or finally");if(this.prev<o.finallyLoc)return r(o.finallyLoc)}}}},abrupt:function(t,n){for(var r=this.tryEntries.length-1;r>=0;--r){var i=this.tryEntries[r];if(i.tryLoc<=this.prev&&e.call(i,"finallyLoc")&&this.prev<i.finallyLoc){var o=i;break}}o&&("break"===t||"continue"===t)&&o.tryLoc<=n&&n<=o.finallyLoc&&(o=null);var u=o?o.completion:{};return u.type=t,u.arg=n,o?(this.method="next",this.next=o.finallyLoc,l):this.complete(u)},complete:function(t,n){if("throw"===t.type)throw t.arg;return"break"===t.type||"continue"===t.type?this.next=t.arg:"return"===t.type?(this.rval=this.arg=t.arg,this.method="return",this.next="end"):"normal"===t.type&&n&&(this.next=n),l},finish:function(t){for(var n=this.tryEntries.length-1;n>=0;--n){var r=this.tryEntries[n];if(r.finallyLoc===t)return this.complete(r.completion,r.afterLoc),E(r),l}},catch:function(t){for(var n=this.tryEntries.length-1;n>=0;--n){var r=this.tryEntries[n];if(r.tryLoc===t){var e=r.completion;if("throw"===e.type){var i=e.arg;E(r)}return i}}throw new Error("illegal catch attempt")},delegateYield:function(t,n,r){return this.delegate={iterator:j(t),resultName:n,nextLoc:r},"next"===this.method&&(this.arg=void 0),l}},n}function n(){return n=Object.assign?Object.assign.bind():function(t){for(var n=1;n<arguments.length;n++){var r=arguments[n];for(var e in r)Object.prototype.hasOwnProperty.call(r,e)&&(t[e]=r[e])}return t},n.apply(this,arguments)}function r(t,n){t.prototype=Object.create(n.prototype),t.prototype.constructor=t,i(t,n)}function e(t){return e=Object.setPrototypeOf?Object.getPrototypeOf.bind():function(t){return t.__proto__||Object.getPrototypeOf(t)},e(t)}function i(t,n){return i=Object.setPrototypeOf?Object.setPrototypeOf.bind():function(t,n){return t.__proto__=n,t},i(t,n)}function o(t,n,r){return o=function(){if("undefined"==typeof Reflect||!Reflect.construct)return!1;if(Reflect.construct.sham)return!1;if("function"==typeof Proxy)return!0;try{return Boolean.prototype.valueOf.call(Reflect.construct(Boolean,[],function(){})),!0}catch(t){return!1}}()?Reflect.construct.bind():function(t,n,r){var e=[null];e.push.apply(e,n);var o=new(Function.bind.apply(t,e));return r&&i(o,r.prototype),o},o.apply(null,arguments)}function u(t){var n="function"==typeof Map?new Map:void 0;return u=function(t){if(null===t||-1===Function.toString.call(t).indexOf("[native code]"))return t;if("function"!=typeof t)throw new TypeError("Super expression must either be null or a function");if(void 0!==n){if(n.has(t))return n.get(t);n.set(t,r)}function r(){return o(t,arguments,e(this).constructor)}return r.prototype=Object.create(t.prototype,{constructor:{value:r,enumerable:!1,writable:!0,configurable:!0}}),i(r,t)},u(t)}function a(t,n){(null==n||n>t.length)&&(n=t.length);for(var r=0,e=new Array(n);r<n;r++)e[r]=t[r];return e}function c(t,n){var r="undefined"!=typeof Symbol&&t[Symbol.iterator]||t["@@iterator"];if(r)return(r=r.call(t)).next.bind(r);if(Array.isArray(t)||(r=function(t,n){if(t){if("string"==typeof t)return a(t,n);var r=Object.prototype.toString.call(t).slice(8,-1);return"Object"===r&&t.constructor&&(r=t.constructor.name),"Map"===r||"Set"===r?Array.from(t):"Arguments"===r||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(r)?a(t,n):void 0}}(t))||n&&t&&"number"==typeof t.length){r&&(t=r);var e=0;return function(){return e>=t.length?{done:!0}:{done:!1,value:t[e++]}}}throw new TypeError("Invalid attempt to iterate non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}function s(t){return t&&t.__esModule&&Object.prototype.hasOwnProperty.call(t,"default")?t.default:t}function f(t){var n={exports:{}};return t(n,n.exports),n.exports}var h=f(function(t){var n={};function r(t){return t.match(/[\uD800-\uDBFF][\uDC00-\uDFFF]|[^\uD800-\uDFFF]/g)||[]}t.exports=n,n.eastAsianWidth=function(t){var n=t.charCodeAt(0),r=2==t.length?t.charCodeAt(1):0,e=n;return 55296<=n&&n<=56319&&56320<=r&&r<=57343&&(e=(n&=1023)<<10|(r&=1023),e+=65536),12288==e||65281<=e&&e<=65376||65504<=e&&e<=65510?"F":8361==e||65377<=e&&e<=65470||65474<=e&&e<=65479||65482<=e&&e<=65487||65490<=e&&e<=65495||65498<=e&&e<=65500||65512<=e&&e<=65518?"H":4352<=e&&e<=4447||4515<=e&&e<=4519||4602<=e&&e<=4607||9001<=e&&e<=9002||11904<=e&&e<=11929||11931<=e&&e<=12019||12032<=e&&e<=12245||12272<=e&&e<=12283||12289<=e&&e<=12350||12353<=e&&e<=12438||12441<=e&&e<=12543||12549<=e&&e<=12589||12593<=e&&e<=12686||12688<=e&&e<=12730||12736<=e&&e<=12771||12784<=e&&e<=12830||12832<=e&&e<=12871||12880<=e&&e<=13054||13056<=e&&e<=19903||19968<=e&&e<=42124||42128<=e&&e<=42182||43360<=e&&e<=43388||44032<=e&&e<=55203||55216<=e&&e<=55238||55243<=e&&e<=55291||63744<=e&&e<=64255||65040<=e&&e<=65049||65072<=e&&e<=65106||65108<=e&&e<=65126||65128<=e&&e<=65131||110592<=e&&e<=110593||127488<=e&&e<=127490||127504<=e&&e<=127546||127552<=e&&e<=127560||127568<=e&&e<=127569||131072<=e&&e<=194367||177984<=e&&e<=196605||196608<=e&&e<=262141?"W":32<=e&&e<=126||162<=e&&e<=163||165<=e&&e<=166||172==e||175==e||10214<=e&&e<=10221||10629<=e&&e<=10630?"Na":161==e||164==e||167<=e&&e<=168||170==e||173<=e&&e<=174||176<=e&&e<=180||182<=e&&e<=186||188<=e&&e<=191||198==e||208==e||215<=e&&e<=216||222<=e&&e<=225||230==e||232<=e&&e<=234||236<=e&&e<=237||240==e||242<=e&&e<=243||247<=e&&e<=250||252==e||254==e||257==e||273==e||275==e||283==e||294<=e&&e<=295||299==e||305<=e&&e<=307||312==e||319<=e&&e<=322||324==e||328<=e&&e<=331||333==e||338<=e&&e<=339||358<=e&&e<=359||363==e||462==e||464==e||466==e||468==e||470==e||472==e||474==e||476==e||593==e||609==e||708==e||711==e||713<=e&&e<=715||717==e||720==e||728<=e&&e<=731||733==e||735==e||768<=e&&e<=879||913<=e&&e<=929||931<=e&&e<=937||945<=e&&e<=961||963<=e&&e<=969||1025==e||1040<=e&&e<=1103||1105==e||8208==e||8211<=e&&e<=8214||8216<=e&&e<=8217||8220<=e&&e<=8221||8224<=e&&e<=8226||8228<=e&&e<=8231||8240==e||8242<=e&&e<=8243||8245==e||8251==e||8254==e||8308==e||8319==e||8321<=e&&e<=8324||8364==e||8451==e||8453==e||8457==e||8467==e||8470==e||8481<=e&&e<=8482||8486==e||8491==e||8531<=e&&e<=8532||8539<=e&&e<=8542||8544<=e&&e<=8555||8560<=e&&e<=8569||8585==e||8592<=e&&e<=8601||8632<=e&&e<=8633||8658==e||8660==e||8679==e||8704==e||8706<=e&&e<=8707||8711<=e&&e<=8712||8715==e||8719==e||8721==e||8725==e||8730==e||8733<=e&&e<=8736||8739==e||8741==e||8743<=e&&e<=8748||8750==e||8756<=e&&e<=8759||8764<=e&&e<=8765||8776==e||8780==e||8786==e||8800<=e&&e<=8801||8804<=e&&e<=8807||8810<=e&&e<=8811||8814<=e&&e<=8815||8834<=e&&e<=8835||8838<=e&&e<=8839||8853==e||8857==e||8869==e||8895==e||8978==e||9312<=e&&e<=9449||9451<=e&&e<=9547||9552<=e&&e<=9587||9600<=e&&e<=9615||9618<=e&&e<=9621||9632<=e&&e<=9633||9635<=e&&e<=9641||9650<=e&&e<=9651||9654<=e&&e<=9655||9660<=e&&e<=9661||9664<=e&&e<=9665||9670<=e&&e<=9672||9675==e||9678<=e&&e<=9681||9698<=e&&e<=9701||9711==e||9733<=e&&e<=9734||9737==e||9742<=e&&e<=9743||9748<=e&&e<=9749||9756==e||9758==e||9792==e||9794==e||9824<=e&&e<=9825||9827<=e&&e<=9829||9831<=e&&e<=9834||9836<=e&&e<=9837||9839==e||9886<=e&&e<=9887||9918<=e&&e<=9919||9924<=e&&e<=9933||9935<=e&&e<=9953||9955==e||9960<=e&&e<=9983||10045==e||10071==e||10102<=e&&e<=10111||11093<=e&&e<=11097||12872<=e&&e<=12879||57344<=e&&e<=63743||65024<=e&&e<=65039||65533==e||127232<=e&&e<=127242||127248<=e&&e<=127277||127280<=e&&e<=127337||127344<=e&&e<=127386||917760<=e&&e<=917999||983040<=e&&e<=1048573||1048576<=e&&e<=1114109?"A":"N"},n.characterLength=function(t){var n=this.eastAsianWidth(t);return"F"==n||"W"==n||"A"==n?2:1},n.length=function(t){for(var n=r(t),e=0,i=0;i<n.length;i++)e+=this.characterLength(n[i]);return e},n.slice=function(t,e,i){textLen=n.length(t),i=i||1,(e=e||0)<0&&(e=textLen+e),i<0&&(i=textLen+i);for(var o="",u=0,a=r(t),c=0;c<a.length;c++){var s=a[c],f=n.length(s);if(u>=e-(2==f?1:0)){if(!(u+f<=i))break;o+=s}u+=f}return o}}),l=f(function(t,n){!function(n){var r=Math.cosh||function(t){return Math.abs(t)<1e-9?1-t:.5*(Math.exp(t)+Math.exp(-t))},e=Math.sinh||function(t){return Math.abs(t)<1e-9?t:.5*(Math.exp(t)-Math.exp(-t))},i=function(){throw SyntaxError("Invalid Param")};function o(t,n){var r=Math.abs(t),e=Math.abs(n);return 0===t?Math.log(e):0===n?Math.log(r):r<3e3&&e<3e3?.5*Math.log(t*t+n*n):(t/=2,n/=2,.5*Math.log(t*t+n*n)+Math.LN2)}function u(t,n){if(!(this instanceof u))return new u(t,n);var r=function(t,n){var r={re:0,im:0};if(null==t)r.re=r.im=0;else if(void 0!==n)r.re=t,r.im=n;else switch(typeof t){case"object":if("im"in t&&"re"in t)r.re=t.re,r.im=t.im;else if("abs"in t&&"arg"in t){if(!Number.isFinite(t.abs)&&Number.isFinite(t.arg))return u.INFINITY;r.re=t.abs*Math.cos(t.arg),r.im=t.abs*Math.sin(t.arg)}else if("r"in t&&"phi"in t){if(!Number.isFinite(t.r)&&Number.isFinite(t.phi))return u.INFINITY;r.re=t.r*Math.cos(t.phi),r.im=t.r*Math.sin(t.phi)}else 2===t.length?(r.re=t[0],r.im=t[1]):i();break;case"string":r.im=r.re=0;var e=t.match(/\d+\.?\d*e[+-]?\d+|\d+\.?\d*|\.\d+|./g),o=1,a=0;null===e&&i();for(var c=0;c<e.length;c++){var s=e[c];" "===s||"\t"===s||"\n"===s||("+"===s?o++:"-"===s?a++:"i"===s||"I"===s?(o+a===0&&i()," "===e[c+1]||isNaN(e[c+1])?r.im+=parseFloat((a%2?"-":"")+"1"):(r.im+=parseFloat((a%2?"-":"")+e[c+1]),c++),o=a=0):((o+a===0||isNaN(s))&&i(),"i"===e[c+1]||"I"===e[c+1]?(r.im+=parseFloat((a%2?"-":"")+s),c++):r.re+=parseFloat((a%2?"-":"")+s),o=a=0))}o+a>0&&i();break;case"number":r.im=0,r.re=t;break;default:i()}return r}(t,n);this.re=r.re,this.im=r.im}u.prototype={re:0,im:0,sign:function(){var t=this.abs();return new u(this.re/t,this.im/t)},add:function(t,n){var r=new u(t,n);return this.isInfinite()&&r.isInfinite()?u.NAN:this.isInfinite()||r.isInfinite()?u.INFINITY:new u(this.re+r.re,this.im+r.im)},sub:function(t,n){var r=new u(t,n);return this.isInfinite()&&r.isInfinite()?u.NAN:this.isInfinite()||r.isInfinite()?u.INFINITY:new u(this.re-r.re,this.im-r.im)},mul:function(t,n){var r=new u(t,n);return this.isInfinite()&&r.isZero()||this.isZero()&&r.isInfinite()?u.NAN:this.isInfinite()||r.isInfinite()?u.INFINITY:0===r.im&&0===this.im?new u(this.re*r.re,0):new u(this.re*r.re-this.im*r.im,this.re*r.im+this.im*r.re)},div:function(t,n){var r=new u(t,n);if(this.isZero()&&r.isZero()||this.isInfinite()&&r.isInfinite())return u.NAN;if(this.isInfinite()||r.isZero())return u.INFINITY;if(this.isZero()||r.isInfinite())return u.ZERO;t=this.re,n=this.im;var e,i,o=r.re,a=r.im;return 0===a?new u(t/o,n/o):Math.abs(o)<Math.abs(a)?new u((t*(i=o/a)+n)/(e=o*i+a),(n*i-t)/e):new u((t+n*(i=a/o))/(e=a*i+o),(n-t*i)/e)},pow:function(t,n){var r=new u(t,n);if(t=this.re,n=this.im,r.isZero())return u.ONE;if(0===r.im){if(0===n&&t>0)return new u(Math.pow(t,r.re),0);if(0===t)switch((r.re%4+4)%4){case 0:return new u(Math.pow(n,r.re),0);case 1:return new u(0,Math.pow(n,r.re));case 2:return new u(-Math.pow(n,r.re),0);case 3:return new u(0,-Math.pow(n,r.re))}}if(0===t&&0===n&&r.re>0&&r.im>=0)return u.ZERO;var e=Math.atan2(n,t),i=o(t,n);return t=Math.exp(r.re*i-r.im*e),n=r.im*i+r.re*e,new u(t*Math.cos(n),t*Math.sin(n))},sqrt:function(){var t,n,r=this.re,e=this.im,i=this.abs();if(r>=0){if(0===e)return new u(Math.sqrt(r),0);t=.5*Math.sqrt(2*(i+r))}else t=Math.abs(e)/Math.sqrt(2*(i-r));return n=r<=0?.5*Math.sqrt(2*(i-r)):Math.abs(e)/Math.sqrt(2*(i+r)),new u(t,e<0?-n:n)},exp:function(){var t=Math.exp(this.re);return new u(t*Math.cos(this.im),t*Math.sin(this.im))},expm1:function(){var t=this.re,n=this.im;return new u(Math.expm1(t)*Math.cos(n)+function(t){var n=Math.PI/4;if(-n>t||t>n)return Math.cos(t)-1;var r=t*t;return r*(r*(r*(r*(r*(r*(r*(r/20922789888e3-1/87178291200)+1/479001600)-1/3628800)+1/40320)-1/720)+1/24)-.5)}(n),Math.exp(t)*Math.sin(n))},log:function(){var t=this.re,n=this.im;return new u(o(t,n),Math.atan2(n,t))},abs:function(){return t=this.re,n=this.im,r=Math.abs(t),e=Math.abs(n),r<3e3&&e<3e3?Math.sqrt(r*r+e*e):(r<e?(r=e,e=t/n):e=n/t,r*Math.sqrt(1+e*e));var t,n,r,e},arg:function(){return Math.atan2(this.im,this.re)},sin:function(){var t=this.re,n=this.im;return new u(Math.sin(t)*r(n),Math.cos(t)*e(n))},cos:function(){var t=this.re,n=this.im;return new u(Math.cos(t)*r(n),-Math.sin(t)*e(n))},tan:function(){var t=2*this.re,n=2*this.im,i=Math.cos(t)+r(n);return new u(Math.sin(t)/i,e(n)/i)},cot:function(){var t=2*this.re,n=2*this.im,i=Math.cos(t)-r(n);return new u(-Math.sin(t)/i,e(n)/i)},sec:function(){var t=this.re,n=this.im,i=.5*r(2*n)+.5*Math.cos(2*t);return new u(Math.cos(t)*r(n)/i,Math.sin(t)*e(n)/i)},csc:function(){var t=this.re,n=this.im,i=.5*r(2*n)-.5*Math.cos(2*t);return new u(Math.sin(t)*r(n)/i,-Math.cos(t)*e(n)/i)},asin:function(){var t=this.re,n=this.im,r=new u(n*n-t*t+1,-2*t*n).sqrt(),e=new u(r.re-n,r.im+t).log();return new u(e.im,-e.re)},acos:function(){var t=this.re,n=this.im,r=new u(n*n-t*t+1,-2*t*n).sqrt(),e=new u(r.re-n,r.im+t).log();return new u(Math.PI/2-e.im,e.re)},atan:function(){var t=this.re,n=this.im;if(0===t){if(1===n)return new u(0,Infinity);if(-1===n)return new u(0,-Infinity)}var r=t*t+(1-n)*(1-n),e=new u((1-n*n-t*t)/r,-2*t/r).log();return new u(-.5*e.im,.5*e.re)},acot:function(){var t=this.re,n=this.im;if(0===n)return new u(Math.atan2(1,t),0);var r=t*t+n*n;return 0!==r?new u(t/r,-n/r).atan():new u(0!==t?t/0:0,0!==n?-n/0:0).atan()},asec:function(){var t=this.re,n=this.im;if(0===t&&0===n)return new u(0,Infinity);var r=t*t+n*n;return 0!==r?new u(t/r,-n/r).acos():new u(0!==t?t/0:0,0!==n?-n/0:0).acos()},acsc:function(){var t=this.re,n=this.im;if(0===t&&0===n)return new u(Math.PI/2,Infinity);var r=t*t+n*n;return 0!==r?new u(t/r,-n/r).asin():new u(0!==t?t/0:0,0!==n?-n/0:0).asin()},sinh:function(){var t=this.re,n=this.im;return new u(e(t)*Math.cos(n),r(t)*Math.sin(n))},cosh:function(){var t=this.re,n=this.im;return new u(r(t)*Math.cos(n),e(t)*Math.sin(n))},tanh:function(){var t=2*this.re,n=2*this.im,i=r(t)+Math.cos(n);return new u(e(t)/i,Math.sin(n)/i)},coth:function(){var t=2*this.re,n=2*this.im,i=r(t)-Math.cos(n);return new u(e(t)/i,-Math.sin(n)/i)},csch:function(){var t=this.re,n=this.im,i=Math.cos(2*n)-r(2*t);return new u(-2*e(t)*Math.cos(n)/i,2*r(t)*Math.sin(n)/i)},sech:function(){var t=this.re,n=this.im,i=Math.cos(2*n)+r(2*t);return new u(2*r(t)*Math.cos(n)/i,-2*e(t)*Math.sin(n)/i)},asinh:function(){var t=this.im;this.im=-this.re,this.re=t;var n=this.asin();return this.re=-this.im,this.im=t,t=n.re,n.re=-n.im,n.im=t,n},acosh:function(){var t=this.acos();if(t.im<=0){var n=t.re;t.re=-t.im,t.im=n}else n=t.im,t.im=-t.re,t.re=n;return t},atanh:function(){var t=this.re,n=this.im,r=t>1&&0===n,e=1-t,i=1+t,a=e*e+n*n,c=0!==a?new u((i*e-n*n)/a,(n*e+i*n)/a):new u(-1!==t?t/0:0,0!==n?n/0:0),s=c.re;return c.re=o(c.re,c.im)/2,c.im=Math.atan2(c.im,s)/2,r&&(c.im=-c.im),c},acoth:function(){var t=this.re,n=this.im;if(0===t&&0===n)return new u(0,Math.PI/2);var r=t*t+n*n;return 0!==r?new u(t/r,-n/r).atanh():new u(0!==t?t/0:0,0!==n?-n/0:0).atanh()},acsch:function(){var t=this.re,n=this.im;if(0===n)return new u(0!==t?Math.log(t+Math.sqrt(t*t+1)):Infinity,0);var r=t*t+n*n;return 0!==r?new u(t/r,-n/r).asinh():new u(0!==t?t/0:0,0!==n?-n/0:0).asinh()},asech:function(){var t=this.re,n=this.im;if(this.isZero())return u.INFINITY;var r=t*t+n*n;return 0!==r?new u(t/r,-n/r).acosh():new u(0!==t?t/0:0,0!==n?-n/0:0).acosh()},inverse:function(){if(this.isZero())return u.INFINITY;if(this.isInfinite())return u.ZERO;var t=this.re,n=this.im,r=t*t+n*n;return new u(t/r,-n/r)},conjugate:function(){return new u(this.re,-this.im)},neg:function(){return new u(-this.re,-this.im)},ceil:function(t){return t=Math.pow(10,t||0),new u(Math.ceil(this.re*t)/t,Math.ceil(this.im*t)/t)},floor:function(t){return t=Math.pow(10,t||0),new u(Math.floor(this.re*t)/t,Math.floor(this.im*t)/t)},round:function(t){return t=Math.pow(10,t||0),new u(Math.round(this.re*t)/t,Math.round(this.im*t)/t)},equals:function(t,n){var r=new u(t,n);return Math.abs(r.re-this.re)<=u.EPSILON&&Math.abs(r.im-this.im)<=u.EPSILON},clone:function(){return new u(this.re,this.im)},toString:function(){var t=this.re,n=this.im,r="";return this.isNaN()?"NaN":this.isInfinite()?"Infinity":(Math.abs(t)<u.EPSILON&&(t=0),Math.abs(n)<u.EPSILON&&(n=0),0===n?r+t:(0!==t?(r+=t,r+=" ",n<0?(n=-n,r+="-"):r+="+",r+=" "):n<0&&(n=-n,r+="-"),1!==n&&(r+=n),r+"i"))},toVector:function(){return[this.re,this.im]},valueOf:function(){return 0===this.im?this.re:null},isNaN:function(){return isNaN(this.re)||isNaN(this.im)},isZero:function(){return 0===this.im&&0===this.re},isFinite:function(){return isFinite(this.re)&&isFinite(this.im)},isInfinite:function(){return!(this.isNaN()||this.isFinite())}},u.ZERO=new u(0,0),u.ONE=new u(1,0),u.I=new u(0,1),u.PI=new u(Math.PI,0),u.E=new u(Math.E,0),u.INFINITY=new u(Infinity,Infinity),u.NAN=new u(NaN,NaN),u.EPSILON=1e-15,Object.defineProperty(u,"__esModule",{value:!0}),u.default=u,u.Complex=u,t.exports=u}()}),v=/*@__PURE__*/s(l);function m(t){var n="bigint"==typeof t?Number(t):t;return new v(n)}function p(t,n){void 0===n&&(n=10n);var r,e="0123456789abcdefghijklmnopqrstuvwxyz".slice(0,Number(n)),i=BigInt(n),o=1n;if("string"==typeof t){"+"===t[0]?t=t.slice(1):"-"===t[0]&&(o=-1n,t=t.slice(1));var u=(r=t.toLowerCase().split("").map(function(t){return e.indexOf(t)})).indexOf(-1);if(-1!==u)throw Error("다음 글자를 "+n+"진법 숫자로 해석할 수 없습니다: '"+t[u]+"'")}else r=t;for(var a=0n,c=0;c<r.length;c++)a*=i,a+=BigInt(r[c]);return a*o}function w(t){return"bigint"!=typeof t&&(t instanceof v?w(t.re)||w(t.im):!(isFinite(t)||isNaN(t)))}function d(t){return"bigint"==typeof t||Number.isInteger(t)}function y(t,n){return n instanceof v?t.re===n.re&&t.im===n.im:0===t.im&&("bigint"==typeof n?g(n,t.re):n===t.re)}function g(t,n){return d(n)&&t===BigInt(n)}function b(t,n){return t instanceof v?y(t,n):n instanceof v?y(n,t):"bigint"==typeof t?g(t,n):"bigint"==typeof n?g(n,t):t===n}function N(t,n,r,e){if(void 0===r&&(r=1e-9),void 0===e&&(e=1e-16),r<0||e<0)throw RangeError("Tolerances must be non-negative.");if(b(t,n))return!0;if(w(t)||w(n))return!1;var i="bigint"==typeof t?Number(t):t,o="bigint"==typeof n?Number(n):n,u=M(function(t,n){return"bigint"==typeof t&&"bigint"==typeof n?t-n:t instanceof v||n instanceof v?m(t).sub(m(n)):Number(t)-Number(n)}(i,o));return u<=r*M(o)||u<=r*M(i)||u<=e}function M(t){return"bigint"==typeof t?t>=0n?t:-t:t instanceof v?t.abs():Math.abs(t)}function I(t,n){return"bigint"==typeof t&&"bigint"==typeof n?t+n:t instanceof v||n instanceof v?function(t,n){return new v(t.re+n.re,t.im+n.im)}(m(t),m(n)):Number(t)+Number(n)}function x(t,n){return"bigint"==typeof t&&"bigint"==typeof n?t*n:t instanceof v||n instanceof v?function(t,n){return new v(t.re*n.re-t.im*n.im,t.re*n.im+t.im*n.re)}(m(t),m(n)):Number(t)*Number(n)}Math.trunc=Math.trunc||function(t){return isNaN(t)?NaN:t>0?Math.floor(t):Math.ceil(t)};var E=/*#__PURE__*/function(){function t(t,n,r,e,i){this.filename=void 0,this.line_no=void 0,this.start_col=void 0,this.end_col=void 0,this.line=void 0,this.str=void 0,this.filename=t,this.line_no=n,this.start_col=r,this.end_col=e,this.line=i}return t.prototype.toString=function(){return null==this.str&&(this.str=this.line+"\n"+" ".repeat(h.length(this.line.slice(0,this.start_col)))+"^".repeat(h.length(this.line.slice(this.start_col,this.end_col)))),this.str},t}(),P=function(t,n){this.metadata=void 0,this.value=void 0,this.metadata=t,this.value=n},j=function(t,n){this.metadata=void 0,this.rel=void 0,this.metadata=t,this.rel=n},O=function(t,n,r){this.metadata=void 0,this.relA=void 0,this.relF=void 0,this.metadata=t,this.relA=n,this.relF=r},F=function(t,n){this.metadata=void 0,this.body=void 0,this.metadata=t,this.body=n},A=function(t,n,r){this.metadata=void 0,this.fun=void 0,this.argv=void 0,this.metadata=t,this.fun=n,this.argv=r},_=function(t,n){this.funs=void 0,this.args=void 0,this.funs=t,this.args=n},L=/*#__PURE__*/function(t){function n(n){for(var r,e,i="",o=c(n.metadatas);!(e=o()).done;){var u=e.value;i+=u.filename+" "+(u.line_no+1)+"번줄 ",i+=u.start_col+1+"~"+(u.end_col+1)+"번째 글자:\n",i+=u.toString()+"\n"}return(r=t.call(this,i+"\n"+n.message)||this).err=void 0,r.err=n,r}return r(n,t),n}(/*#__PURE__*/u(Error)),k=/*#__PURE__*/function(){function t(){}return t.prototype.asKey=function(t){return this.format(t)},t}();function S(t){return isFinite(t)?t.toString():isNaN(t)?"nan":t>0?"inf":"-inf"}var B=/*#__PURE__*/function(t){function n(n){var r;return(r=t.call(this)||this).value=void 0,r.value=n,r}return r(n,t),n.prototype.format=function(t){return this.value.toString()},n}(k);B.typeName="정수";var U=/*#__PURE__*/function(t){function n(n){var r;return(r=t.call(this)||this).value=void 0,r.value=n,r}r(n,t);var e=n.prototype;return e.format=function(t){var n;return S(this.value)+(n=this.value,isFinite(n)&&N(n,Math.floor(n))?".0":"")},e.asKey=function(t){return S(this.value)},n}(k);U.typeName="실수";var C=/*#__PURE__*/function(t){function n(n){var r;return(r=t.call(this)||this).value=void 0,r.value=n,r}r(n,t);var e=n.prototype;return e.format=function(t){var n=this.value.re,r=this.value.im,e=S(n)+(r<0?"":"+");return(0===n?"":e)+(1==r?"":-1==r?"-":S(r))+"i"},e.asKey=function(t){return this.value.im?this.format(t):S(this.value.re)},n}(k);C.typeName="복소수";var T=/*#__PURE__*/function(t){function n(n){var r;return(r=t.call(this)||this).value=void 0,r.value=n,r}return r(n,t),n.prototype.format=function(t){return this.value?"True":"False"},n}(k);T.typeName="논릿값";var K=/*#__PURE__*/function(t){function n(n){var r;return(r=t.call(this)||this).value=void 0,r.value=n,r}r(n,t);var e=n.prototype;return e.format=function(t){return"["+this.value.map(function(n){return t.strict(n).format(t)}).join(", ")+"]"},e.asKey=function(t){return"["+this.value.map(function(n){return t.strict(n).asKey(t)}).join(", ")+"]"},n}(k);K.typeName="목록";var Z=/*#__PURE__*/function(t){function n(n){var r;return(r=t.call(this)||this).str=void 0,r.value=void 0,r.str=n,r.value=Array.from(n),r}return r(n,t),n.prototype.format=function(t){return"'"+this.str+"'"},n}(k);Z.typeName="문자열";var q=/*#__PURE__*/function(t){function n(n){var r;return(r=t.call(this)||this).value=void 0,r.str=void 0,r.value=n,r}r(n,t);var e=n.prototype;return e.formatByte=function(t){return"\\x"+("0"+t.toString(16).toUpperCase()).slice(-2)},e.format=function(t){if(!this.str){var n=Array.from(new Uint8Array(this.value)).map(this.formatByte);this.str="b'"+n.join("")+"'"}return this.str},n}(k);q.typeName="바이트열";var V=/*#__PURE__*/function(t){function n(n){var r;return(r=t.call(this)||this).value=void 0,r._keys=void 0,r._values=void 0,r.value=n,r}r(n,t);var e=n.prototype;return e.keys=function(){return this._keys||(this._keys=Object.keys(this.value).sort()),this._keys},e.values=function(){var t=this;return this._values||(this._values=this.keys().map(function(n){return t.value[n]})),this._values},e.format=function(t){var n=this.values().map(function(n){return t.strict(n).format(t)});return"{"+this.keys().map(function(t,r){return t+": "+n[r]}).join(", ")+"}"},e.asKey=function(t){var n=this.values().map(function(n){return t.strict(n).asKey(t)});return"{"+this.keys().map(function(t,r){return t+": "+n[r]}).join(", ")+"}"},n}(k);V.typeName="사전";var Y=/*#__PURE__*/function(t){function n(n,r,e){var i;return(i=t.call(this)||this).inst=void 0,i.argv=void 0,i.continuation=void 0,i.inst=n,i.argv=r,i.continuation=e,i}r(n,t);var e=n.prototype;return e.format=function(t){var n=this.argv.map(function(n){return t.strict(n).format(t)}).join(", ");return"<드나듦 "+this.inst+": ["+n+"]>"},e.asKey=function(t){var n=this.argv.map(function(n){return t.strict(n).asKey(t)}).join(", ");return"<드나듦 "+this.inst+": ["+n+"]>"},n}(k);Y.typeName="드나듦";var D=/*#__PURE__*/function(t){function n(){return t.call(this)||this}return r(n,t),n.prototype.format=function(t){return"Nil"},n}(k);D.typeName="빈값";var R=0,G=/*#__PURE__*/function(t){function n(n){var r;return void 0===n&&(n=""),(r=t.call(this)||this).id=void 0,r.str=void 0,r.id=R++,r.str="<"+n+"함수>",r}r(n,t);var e=n.prototype;return e.format=function(t){return this.str},e.asKey=function(t){return this.str.replace(">"," #"+this.id+">")},n}(k);G.typeName="함수";var z=/*#__PURE__*/function(t){function n(n,r){var e;return(e=t.call(this,"깊이 "+r.args.length+"에서 생성된 ")||this).body=void 0,e.env=void 0,e.body=n,e.env=r,e}return r(n,t),n.prototype.execute=function(t,n,r){var e=this.env.args.concat([r]),i=new _(this.env.funs,e);return new $(this.body,i,null)},n}(G),W=/*#__PURE__*/function(t){function n(n,r){var e;return(e=t.call(this)||this).module=void 0,e.module=n,e.str="<기본 제공 모듈 "+r+">",e}return r(n,t),n.prototype.execute=function(t,n,r){return this.module(t,n,r)},n}(G),H=/*#__PURE__*/function(t){function n(n,r,e){var i;return(i=t.call(this)||this).metadatas=void 0,i.message=void 0,i.value=void 0,i.metadatas=n,i.message=r,i.value=e,i}r(n,t);var e=n.prototype;return e.format=function(t){return"<예외: ["+this.value.map(function(n){return n.format(t)}).join(", ")+"]>"},e.asKey=function(t){return"<예외: ["+this.value.map(function(n){return n.asKey(t)}).join(", ")+"]>"},n}(k);H.typeName="예외";var $=function(t,n,r){this.expr=void 0,this.env=void 0,this.cache=void 0,this.expr=t,this.env=n,this.cache=r},J=[B,U],Q=[].concat(J,[C]),X=[K,Z,q],tt=[G,T,V,C,H].concat(X),nt="ㄱ|ㄱ|ㄴ|ㄷ|ㄷ|ㄹ|ㅁ|ㅂ|ㅂ|ㅅ|ㅅ| ㅇ|ㅈ|ㅈ|ㅈ|ㄱ|ㄷ|ㅂ| ㅎ|ㄴㄱ|ㄴ|ㄴㄷ|ㄴㅂ|ㄷㄱ|ㄹㄴ|ㄹ|ㄹ ㅎ|ㄹ|ㅁㅂ|ㅁ|ㅂㄱ|ㅂㄴ|ㅂㄷ|ㅂㅅ|ㅂㅅㄱ|ㅂㅅㄷ|ㅂㅅㅂ|ㅂㅅ|ㅂㅅㅈ|ㅂㅈ|ㅂㅈ|ㅂㄷ|ㅂㅂ|ㅂ|ㅂ|ㅅㄱ|ㅅㄴ|ㅅㄷ|ㅅㄹ|ㅅㅁ|ㅅㅂ|ㅅㅂㄱ|ㅅㅅ|ㅅ ㅇ|ㅅㅈ|ㅅㅈ|ㅅㄱ|ㅅㄷ|ㅅㅂ|ㅅ ㅎ|ㅅ|ㅅ|ㅅ|ㅅ|ㅅ| ㅇㄱ| ㅇㄷ| ㅇㅁ| ㅇㅂ| ㅇㅅ| ㅇㅅ| ㅇ| ㅇㅈ| ㅇㅈ| ㅇㄷ| ㅇㅂ| ㅇ|ㅈ ㅇ|ㅈ|ㅈ|ㅈ|ㅈ|ㅈㄱ|ㅈ ㅎ|ㅈ|ㅈ|ㅂㅂ|ㅂ| ㅎ| ㅎ|ㄱㄷ|ㄴㅅ|ㄴㅈ|ㄴ ㅎ|ㄷㄹ".split("|"),rt="ㄱ|ㄱ|ㄱㅅ|ㄴ|ㄴㅈ|ㄴ ㅎ|ㄷ|ㄷ|ㄹ|ㄹㄱ|ㄹㅁ|ㄹㅂ|ㄹㅅ|ㄹㄷ|ㄹㅂ|ㄹ ㅎ|ㅁ|ㅂ|ㅂ|ㅂㅅ|ㅅ|ㅅ| ㅇ|ㅈ|ㅈ|ㅈ|ㄱ|ㄷ|ㅂ| ㅎ".split("|"),et="ㄴ|ㄴㄷ|ㄴㅅ|ㄴㅅ|ㄹㄱㅅ|ㄹㄷ|ㄹㅂㅅ|ㅁㅅ|ㅁ|ㅂㄱ|ㅂㄷ|ㅂㅅㄱ|ㅂㅅㄷ|ㅂㅈ|ㅂㄷ|ㅂ|ㅂ|ㅅㄱ|ㅅㄴ| ㅇ| ㅇ| ㅇㅅ| ㅇㅅ|ㅂ| ㅎ| ㅎ".split("|"),it="ㄷㅁ|ㄷㅂ|ㄷㅅ|ㄷㅈ|ㄹㄱ|ㄹㄱ|ㄹㄷ|ㄹㄷ|ㄹㅁ|ㄹㅂ|ㄹㅂ|ㄹㅂ|ㄹㅅ|ㄹㅈ|ㄹㄱ|ㅁㄱ|ㅁㄷ|ㅁㅅ|ㅂㅅㄷ|ㅂㄱ|ㅂ ㅎ|ㅅㅂ| ㅇㄹ| ㅇ ㅎ|ㅈ ㅎ|ㄷ|ㅂ ㅎ| ㅎㅅ| ㅎ".split("|");function ot(t){if(1!==t.length)throw Error("[normalizeChar] Length of string should be 1, not "+t.length+": "+t);function n(n,r,e){void 0===e&&(e=1);var i=t.charCodeAt(0)-r.charCodeAt(0);return(i=Math.floor(i/e))>=0&&i<n.length?n[i]:""}return t>="ᄀ"&&t<="ᇿ"?n(nt,"ᄀ"):t>="〮"&&t<="〯"?"":t>="ㄱ"&&t<="ㅤ"?n(rt,"ㄱ"):t>="ㅥ"&&t<="ㆎ"?n(et,"ㅥ"):t>="ꥠ"&&t<="ꥼ"?n(it,"ꥠ"):t>="가"&&t<=""?n(nt,"가",588):t>="ힰ"&&t<="ퟆ"||t>="ퟋ"&&t<="ퟻ"?"":t>="ᅠ"&&t<="ᄒ"?n(rt,"ᄀ"):"ᅡᅢᅣᅤᅥᅦᅧᅨᅩᅪᅫᅬᅭᅮᅯᅰᅱᅲᅳᅴᅵ".indexOf(t)>=0?"":" "}function ut(t){return t.split("").map(ot).join("").split(/( )/)}function at(t){var n=t.split("").map(function(t){return"ㄱㄴㄷㄹㅁㅂㅅㅈ".indexOf(t)});if(-1!==n.indexOf(-1))throw SyntaxError("Argument "+t+" has an unsupported character");var r=BigInt("0o"+n.reverse().join(""));return t.length%2==0&&(r=-r),r}function ct(t){var n=t<0,r=(t=t>=0?t:-t).toString(8).split("").reverse().map(function(t){return"ㄱㄴㄷㄹㅁㅂㅅㅈ"[+t]}).join("");return r.length%2==0!==n&&(r+="ㄱ"),r}function st(t,n){var r=t[0],e=t[1];if(-1!==r.indexOf("ㅎ")){var i=r.slice(1);if(i){var o=Number(at(i));if(o<0)throw new mt(e,"함수 호출 시 "+o+"개의 인수를 요구했습니다.");var u=n.pop();if(null==u)throw new mt(e,"호출할 함수가 없습니다.");if(0===o)n.push(new A(e,u,[]));else{var a=n.splice(-o,o);if(a.length<o)throw new mt(e,"함수 호출 시 "+o+"개의 인수를 요구했으나 표현식이 "+a.length+"개밖에 없습니다.");n.push(new A(e,u,a))}}else{var c=n.pop();if(null==c)throw new mt(e,"함수 몸통이 없습니다.");n.push(new F(e,c))}}else if(-1!==r.indexOf("ㅇ")){var s=r.slice(1);if(""!==s){var f=n.pop();if(null==f)throw new mt(e,"인수 참조 구문이 잘못되었습니다.");var h=Number(at(s));n.push(new O(e,f,h))}else{var l=n.pop();if(null==l)throw new mt(e,"함수 참조 구문이 잘못되었습니다.");if(!(l instanceof P))throw new mt(e,"함수 참조 시에는 정수 리터럴만 허용됩니다.");n.push(new j(e,Number(l.value)))}}else n.push(new P(e,at(r)))}function ft(t,n){for(var r,e=function(t,n){var r=n.split("\n").flatMap(function(n,r){return(n+"\n").split("").flatMap(function(e,i){return ut(e).filter(function(t){return""!==t}).map(function(e){return[e,new E(t,r,i,i+1,n)]})})});if(0===r.length)return[];for(var e,i,o,u=[r[0]],a=c(r.slice(1));!(e=a()).done;){var s=e.value,f=s[0],h=s[1],l=u.pop();if(null==l)throw Error("Internal::tokenize::EMPTY_STACK");var v=l[0],m=l[1];" "===v&&" "===f?u.push([v,m]):" "!==v&&" "!==f?u.push([v+f,(i=m,o=h,new E(i.filename,i.line_no,i.start_col,o.end_col,i.line))]):(u.push([v,m]),u.push([f,h]))}return u.filter(function(t){return" "!==t[0]})}(t,n),i=[],o=c(e);!(r=o()).done;)st(r.value,i);return i}var ht=/*#__PURE__*/function(t){function n(n,r,e){var i=[at("ㅂ")].concat(e).map(function(t){return new B(t)}),o=new H([n],r,i);return t.call(this,o)||this}return r(n,t),n}(L),lt=/*#__PURE__*/function(t){function n(n,r){var e=at("ㅈㅈ");return t.call(this,n,r,[e])||this}return r(n,t),n}(ht),vt=/*#__PURE__*/function(t){function n(n,r){var e=at("ㅅㅅ");return t.call(this,n,r,[e])||this}return r(n,t),n}(ht),mt=/*#__PURE__*/function(t){function n(n,r){var e=at("ㅁㅂ");return t.call(this,n,r,[e])||this}return r(n,t),n}(ht),pt=/*#__PURE__*/function(t){function n(n,r){var e=at("ㄱ");return t.call(this,n,r,[e])||this}return r(n,t),n}(ht),wt=/*#__PURE__*/function(t){function n(n,r){var e=at("ㅈㅁ");return t.call(this,n,r,[e])||this}return r(n,t),n}(ht),dt=/*#__PURE__*/function(t){function n(n,r){var e=at("ㄴㄴ");return t.call(this,n,r,[e])||this}return r(n,t),n}(ht),yt=/*#__PURE__*/function(t){function n(n,r){var e=at("ㅁㅈ");return t.call(this,n,r,[e])||this}return r(n,t),n}(ht),gt=/*#__PURE__*/function(t){function n(n,r){var e=at("ㅂ");return t.call(this,n,r,[e])||this}return r(n,t),n}(ht),bt=/*#__PURE__*/function(t){function n(n,r){var e=at("ㅂㄱ");return t.call(this,n,r,[e])||this}return r(n,t),n}(ht);function Nt(t){return t instanceof $&&t.expr instanceof P}function Mt(t){return t.value}function It(t){var n=t.map(function(t){return t.byteLength}).reduce(function(t,n){return t+n},0),r=new ArrayBuffer(n),e=new Uint8Array(r);return t.reduce(function(t,n){return e.set(new Uint8Array(n),t),t+n.byteLength},0),r}function xt(t,n){var r=n(t);if(r instanceof K)return new K(r.value.map(function(t){return xt(t,n)}));if(r instanceof V){var e=r.value,i={};return Object.keys(e).forEach(function(t){i[t]=xt(e[t],n)}),new V(i)}return r instanceof H?new H(r.metadatas,r.message,r.value.map(function(t){return xt(t,n)})):r}function Et(t){return 0===t.length||t.every(function(n){return n===t[0]})}function Pt(t,n){return t.every(function(t){return n.some(function(n){return t instanceof n})})}function jt(t,n){return void 0===n&&(n=", "),t.join(n)}function Ot(t,n,r){if(Pt(n,r))return n;var e=r.map(function(t){return t.typeName}),i=n.map(function(t){return t.constructor.typeName});throw new pt(t,"인수를 "+jt(e)+" 중에서 주어야 하는데 "+function(t,n,r){if(0===t.length)return t+"을";var e=t.charCodeAt(t.length-1);return e<44032||e>55203?t+"을":t+((e-44032)%28!=0?"을":"를")}(jt(i))+" 주었습니다.")}function Ft(t,n,r){var e=Array.isArray(r)?r:[r];if(-1===e.indexOf(n.length))throw new wt(t,"인수를 "+jt(e.map(function(t){return t.toString()}),"개나 ")+"개를 주어야 하는데 "+n.length+"개의 인수를 주었습니다.")}function At(t,n,r){if(!(n.length>=r))throw new wt(t,"인수를 "+r+"개 이상 주어야 하는데"+n.length+"개 주었습니다.")}function _t(t,n,r){if(!(n.length<=r))throw new wt(t,"인수를 "+r+"개 이하 주어야 하는데"+n.length+"개 주었습니다.")}function Lt(t,n,r,e){return void 0===e&&(e=[]),_t(t,n,r),At(t,n,r-e.length),n.length<r&&(n=n.concat(e.slice(-(r-n.length)))),n}function kt(t){return"bigint"==typeof t?new B(t):t instanceof v?new C(t):new U(t)}var St={"ㄱ":function(t,n,r){if(At(n,r,1),Pt(Ot(n,[t.strict(r[0])],[T].concat(Q)),Q))return kt(Ot(n,r.map(function(n){return t.strict(n)}),Q).map(function(t){return t.value}).reduce(x));for(var e,i=c(r);!(e=i()).done;)if(!Ot(n,[t.strict(e.value)],[T])[0].value)return new T(!1);return new T(!0)},"ㄷ":function(t,n,r){At(n,r,1);var e=Ot(n,[t.strict(r[0])],[T,V].concat(Q,X));if(Pt(e,[T])){for(var i,o=c(r);!(i=o()).done;)if(Ot(n,[t.strict(i.value)],[T])[0].value)return new T(!0);return new T(!1)}if(Pt(e,[Z])){var u=Ot(n,r.map(function(n){return t.strict(n)}),[Z]);return new Z(u.map(function(t){return t.str}).join(""))}if(Pt(e,[q])){var a=Ot(n,r.map(function(n){return t.strict(n)}),[q]);return new q(It(a.map(Mt)))}if(Pt(e,[K])){var s=Ot(n,r.map(function(n){return t.strict(n)}),[K]);return new K(s.map(Mt).reduce(function(t,n){return t.concat(n)}))}if(Pt(e,[V])){var f=Ot(n,r.map(function(n){return t.strict(n)}),[V]),h={};return f.map(Mt).forEach(function(t){return Object.assign(h,t)}),new V(h)}return kt(Ot(n,r.map(function(n){return t.strict(n)}),Q).map(function(t){return t.value}).reduce(I))},"ㅅ":function(t,n,r){Ft(n,r,[2,3]);var e=Ot(n,r.map(function(n){return t.strict(n)}),Q);if(3===e.length){var i=Ot(n,e,[B]),o=i[0],u=i[1],a=i[2];try{return new B(function(t,n,r){if(0n===r)throw Error("0을 법으로 할 수 없습니다.");t%=r;var e=1n;for(n<0n&&(n=-n,t=function(t,n){var r=function(t,n){for(var r=0n,e=1n,i=1n,o=0n;0n!==t;){var u=n/t,a=[n%t,t];t=a[0],n=a[1];var c=[o,i-u*o];i=c[0],o=c[1];var s=[e,r-u*e];r=s[0],e=s[1]}return[n,r,i]}(t%n,n);if(1n===r[0])return(r[1]+n)%n;throw Error("법 "+n+"에 대한 "+t+"의 역원이 없습니다.")}(t,r));n>0n;){if(0n===t)return 0n;n%2n===1n&&(e=e*t%r),n/=2n,t=Math.pow(t,2n)%r}return e}(o.value,u.value,a.value))}catch(t){if(t instanceof Error)throw new vt(n,t.message);throw t}}Ft(n,e,2);try{return kt(function(t,n){if("bigint"==typeof t&&"bigint"==typeof n&&n>=0)return Math.pow(t,n);var r,e="bigint"==typeof(r=n)||"number"==typeof r?r:N(r.im,0)?r.re:r;if(!(e instanceof v)&&e<0&&b(t,0))throw Error("0의 역수를 구하려고 했습니다.");return t instanceof v||n instanceof v||t<0&&!d(n)?m(t).pow(m(n)):1===Number(t)?1:Math.pow(Number(t),Number(n))}(e[0].value,e[1].value))}catch(t){if(t instanceof Error)throw new dt(n,t.message);throw t}},"ㄴㄴ":function(t,n,r){Ft(n,r,2);var e=Ot(n,r.map(function(n){return t.strict(n)}),J);try{return kt(function(t,n){if(0===Number(n))throw Error("0으로 나눌 수 없습니다.");return"bigint"==typeof t&&"bigint"==typeof n?t/n:Math.trunc(Number(t)/Number(n))}(e[0].value,e[1].value))}catch(t){if(t instanceof Error)throw new dt(n,"0의 역수를 구하려고 했습니다.");throw t}},"ㄴㅁ":function(t,n,r){Ft(n,r,2);var e=Ot(n,r.map(function(n){return t.strict(n)}),J);try{return kt(function(t,n){if(0===Number(n))throw Error("0으로 나눌 수 없습니다.");return"bigint"==typeof t&&"bigint"==typeof n?t%n:Number(t)%Number(n)}(e[0].value,e[1].value))}catch(t){if(t instanceof Error)throw new dt(n,"0의 역수를 구하려고 했습니다.");throw t}}};function Bt(t,n){var r=Lt(t,n,2,[new B(10n)]),e=Ot(t,[r[0]],[Z])[0],i=Ot(t,[r[1]],[B]);return[e.str,Number(i[0].value)]}var Ut={"ㅅㅈ":function(t,n,r){var e=r.length;if(e%2==1)throw new wt(n,"ㅅㅈ 함수에는 인수를 짝수 개로 주어야 하는데 "+e+"개를 주었습니다.");for(var i=r.filter(function(t,n){return n%2==0}),o=r.filter(function(t,n){return n%2==1}),u=i.map(function(n){return t.strict(n).asKey(t)}),a={},c=0;c<e/2;c++)a[u[c]]=o[c];return new V(a)},"ㅁㄹ":function(t,n,r){return new K(r)},"ㅁㅈ":function(t,n,r){if(Ft(n,r,[0,1]),0===r.length)return new Z("");var e=Ot(n,[t.strict(r[0])],[Z].concat(Q))[0];return e instanceof Z?e:new Z(e.format(t))},"ㅈㅅ":function(t,n,r){Ft(n,r,[1,2]);var e=Ot(n,r.map(function(n){return t.strict(n)}),[Z].concat(J)),i=[e[0]];if(Pt(i,J)){if(Ft(n,e,1),i[0]instanceof B)return i[0];var o=Math.trunc(i[0].value);return new B(BigInt(o))}var u=Bt(n,e),a=u[0],c=u[1];try{return new B(p(a,c))}catch(t){if(t instanceof Error)throw new wt(n,t.message);throw t}},"ㅅㅅ":function(t,n,r){Ft(n,r,[1,2]);var e=Ot(n,r.map(function(n){return t.strict(n)}),[Z].concat(J)),i=[e[0]];if(Pt(i,J))return Ft(n,e,1),new U(Number(i[0].value));var o=Bt(n,e),u=o[0],a=o[1];if(10===a){var c=Number(u);if(isNaN(c))throw new wt(n,"다음 문자열을 실수값으로 변환할 수 없습니다: '"+u+"'");return new U(c)}var s=u.trim().split("."),f=s.join("");"+"===f[0]&&(f=f.slice(1));try{var h=Number(p(f,a));return new U(h/Math.pow(a,s.length>1?s[1].length:0))}catch(t){throw new wt(n,"다음 문자열을 실수값으로 변환할 수 없습니다: '"+u+"'")}},"ㅂㅅ":function(t,n,r){Ft(n,r,[1,2]);var e=Ot(n,r.map(function(n){return t.strict(n)}),[Z].concat(Q));if(1===r.length){var i=e[0]instanceof Z?e[0].str:e[0].value;try{return new C(m(i))}catch(t){if(t instanceof Error)throw new wt(n,"다음 문자열을 복소수값으로 변환할 수 없습니다: "+i);throw t}}var o=Ot(n,e,Q).map(function(t){return m(t.value)});return new C(v({re:o[0].re-o[1].im,im:o[0].im+o[1].re}))},"ㅂㄱ":function(t,n,r){return Ft(n,r,0),new D},"ㄷㅂ":function(t,n,r){var e=r.map(function(n){return t.strict(n)}),i="사용자 예외: "+e.map(function(n){return n.format(t)});return new H([n],i,e)}},Ct={"ㄷㅈ":function(t,n,r){Ft(n,r,1);var e=Ot(n,r.map(function(n){return t.strict(n)}),[H]);throw new L(e[0])},"ㅅㄷ":function(t,n,r){Ft(n,r,2);try{return xt(r[0],function(n){return t.strict(n)})}catch(e){if(e instanceof L)return t.procFunctional(n,r[1])(t,n,[e.err]);throw e}}},Tt=/*#__PURE__*/function(t){function n(n){var r;return(r=t.call(this,"연결된 ")||this).funs=void 0,r.funs=n,r}return r(n,t),n.prototype.execute=function(t,n,r){return this.funs.reduce(function(r,e){return[e(t,n,r)]},r)[0]},n}(G),Kt=/*#__PURE__*/function(t){function n(n,r){var e;return(e=t.call(this,"모아 받는 ")||this).context=void 0,e.fn=void 0,e.context=n,e.fn=r,e}return r(n,t),n.prototype.execute=function(t,n,r){Ft(n,r,1);var e=Ot(n,[this.context.strict(r[0])],[K,H]);return this.fn(t,n,e[0].value)},n}(G),Zt=/*#__PURE__*/function(t){function n(n){var r;return(r=t.call(this,"펼쳐 받는 ")||this).fn=void 0,r.fn=n,r}return r(n,t),n.prototype.execute=function(t,n,r){return this.fn(t,n,[new K(r)])},n}(G);function qt(t,n){return function(r){return t.procFunctional(n,r,!0)}}var Vt={"ㄴㄱ":function(t,n,r){return new Tt(r.map(qt(t,n)))},"ㅁㅂ":function(t,n,r){return Ft(n,r,1),new Kt(t,qt(t,n)(r[0]))},"ㅂㅂ":function(t,n,r){return Ft(n,r,1),new Zt(qt(t,n)(r[0]))}};function Yt(t,n){try{var r=t()}catch(t){return n(t)}return r&&r.then?r.then(void 0,n):r}var Dt={"ㄹ":"r","ㅈㄹ":"w","ㅈㄱ":"a","ㄹㅈㄹ":"r+","ㅈㄹㄹ":"w+","ㅈㄱㄹ":"a+"},Rt=/*#__PURE__*/function(t){function n(n){var r;return(r=t.call(this,"파일 접근 ")||this).file=void 0,r.file=n,r}r(n,t);var e=n.prototype;return e.execute=function(t,n,r){At(n,r,1);var e=ct(Ot(n,r.slice(-1).map(function(n){return t.strict(n)}),[B])[0].value);if("ㄷ"===e)return this.close(t,n,r);if("ㄹ"===e)return this.read(t,n,r);if("ㅈㄹ"===e)return this.write(t,n,r);if("ㅈ"===e)return this.seekOrTell(t,n,r);if("ㄱ"===e)return this.truncate(t,n,r);throw new wt(n,e+"은 파일 객체가 인식하지 못하는 명령입니다.")},e.close=function(t,n,r){var e=this;return Ft(n,r,1),new Y("FileV::close",[this],function(t,r){try{try{return e.file.close(),Promise.resolve(new D)}catch(t){throw new lt(n,"파일 닫기에 실패하였습니다: "+t)}}catch(t){return Promise.reject(t)}})},e.read=function(t,n,r){var e=this;Ft(n,r,2);var i=Ot(n,[t.strict(r[0])],[B])[0];return new Y("FileV::read",[this,i],function(t,r){try{return Promise.resolve(Yt(function(){return Promise.resolve(e.file.read(Number(i.value))).then(function(t){return new q(t)})},function(t){throw new lt(n,"파일 읽기에 실패하였습니다: "+t)}))}catch(t){return Promise.reject(t)}})},e.write=function(t,n,r){var e=this;Ft(n,r,2);var i=Ot(n,[t.strict(r[0])],[q])[0];return new Y("FileV::write",[this,i],function(t,r){try{try{var o=e.file.write(i.value);return Promise.resolve(new B(BigInt(o)))}catch(t){throw new lt(n,"파일 쓰기에 실패하였습니다: "+t)}}catch(t){return Promise.reject(t)}})},e.seekOrTell=function(t,n,r){var e=this,i=this;_t(n,r,3);var o=r.map(function(n){return t.strict(n)});if(1===r.length)return new Y("FileV::seekOrTell",[this],function(t,r){try{try{return Promise.resolve(new B(BigInt(e.file.tell())))}catch(t){throw new lt(n,"파일의 어디를 읽고 있는지 알아내는 데 실패하였습니다: "+t)}}catch(t){return Promise.reject(t)}});var u,a="SEEK_SET";if(2===r.length){var c=Ot(n,[o[0]],[B]);u=c[0]}else{var s=Ot(n,[o[1]],[B]);u=s[0];var f=Ot(n,[o[0]],[B])[0];switch(ct(f.value)){case"ㅅㅈㅂㄷ":a="SEEK_SET";break;case"ㅈㄱㅂㄷ":a="SEEK_CUR";break;default:throw new wt(n,"파일 객체의 ㅈ 명령에 주는 위치 인수로 "+f.value+"은 적절하지 않습니다.")}}return new Y("FileV::seekOrTell",[this].concat(o.slice(0,-1)),function(t,r){try{try{var e=i.file.seek(Number(u.value),a);return Promise.resolve(new B(BigInt(e)))}catch(t){throw new lt(n,"파일의 읽는 위치를 수정하는 데 실패하였습니다: "+t)}}catch(t){return Promise.reject(t)}})},e.truncate=function(t,n,r){var e=this;_t(n,r,2);var i=Ot(n,r.map(function(n){return t.strict(n)}),[B]),o=i.length>1?Number(i[0].value):void 0;return new Y("FileV::truncate",[this].concat(i.slice(0,-1)),function(t,r){try{try{var i=e.file.truncate(o);return Promise.resolve(new B(BigInt(i)))}catch(t){throw new lt(n,"파일 크기를 재조정하는 데 실패하였습니다: "+t)}}catch(t){return Promise.reject(t)}})},n}(G),Gt={"ㄹ":function(t,n,r){return Ft(n,r,0),new Y("ㄹ",r,function(t,n){try{return Promise.resolve(n.input()).then(function(t){return null==t?new D:new Z(t)})}catch(t){return Promise.reject(t)}})},"ㅈㄹ":function(t,n,r){Ft(n,r,1);var e=Ot(n,r.map(function(n){return t.strict(n)}),[Z]);return new Y("ㅈㄹ",e,function(t,n){try{return n.print(e[0].str),Promise.resolve(new D)}catch(t){return Promise.reject(t)}})},"ㄱㅅ":function(t,n,r){Ft(n,r,1);var e=xt(r[0],function(n){return t.strict(n)});return new Y("ㄱㅅ",[e],function(t,n){return Promise.resolve(e)})},"ㄱㄹ":function(t,n,r){Ft(n,r,[2,3]);var e=Ot(n,[t.strict(r[0])],[Y])[0];return new Y("ㄱㄹ",r,function(i,o){try{var u,a,c=function(e){if(u)return e;var i=t.procFunctional(n,r[1])(t,n,[a]);return Ot(n,[t.strict(i)],[Y])[0]},s=Yt(function(){return Promise.resolve(i(e)).then(function(t){a=t})},function(e){if(e instanceof L){if(r.length<3)throw e;var i=t.procFunctional(n,r[2])(t,n,[e.err]),o=Ot(n,[t.strict(i)],[Y]);return u=1,o[0]}throw e});return Promise.resolve(s&&s.then?s.then(c):c(s))}catch(t){return Promise.reject(t)}})},"ㄱㄴ":function(t,n,r){Ft(n,r,2);var e=Ot(n,[t.strict(r[0])],[B,Z])[0],i=e instanceof B?Number(e.value):e.str,o=Ot(n,[t.strict(r[1])],[B])[0],u=ct(o.value);if(!(u in Dt))throw new wt(n,u+"은 기본 제공 함수 ㄱㄴ이 이해하는 파일 열기 방식이 아닙니다.");var a=Dt[u];return new Y("ㄱㄴ",[e,o],function(r,e){try{try{return Promise.resolve(new Rt(t.loadUtils.open(i,a)))}catch(t){throw new lt(n,"파일 열기에 실패하였습니다: "+t)}}catch(t){return Promise.reject(t)}})}};function zt(t,n){if(0===n.length)return!0;if(!Et(n.map(function(t){return t.length})))return!1;for(var r=n[0].length,e=0;e<r;e++)if(!Wt(t,n.map(function(t){return t[e]})).value)return!1;return!0}function Wt(t,n){var r,e=n.map(function(n){return t.strict(n)});return Pt(e,[G])?new T(Et(e)):Pt(e,[V])?new T(function(t,n){if(0===n.length)return!0;var r=n.map(function(t){return t.keys()});return!!zt(t,r.map(function(t){return t.map(function(t){return new Z(t)})}))&&r[0].map(function(t){return n.map(function(n){return n.value[t]})}).map(function(n){return Wt(t,n)}).every(Mt)}(t,e)):Pt(e,[Y])?Et(e.map(function(t){return t.inst}))?new T(zt(t,e.map(function(t){return t.argv}))):new T(!1):Pt(e,Q)?new T(0===(r=e.map(function(t){return t.value})).length||r.slice(1).every(function(t){return b(t,r[0])})):Pt(e,[K,H])?new T(zt(t,e.map(Mt))):Pt(e,[q])?new T(function(t){if(0===t.length)return!0;if(!Et(t.map(function(t){return t.byteLength})))return!1;for(var n=t[0].byteLength,r=t.map(function(t){return new Uint8Array(t)}),e=function(t){if(!Et(r.map(function(n){return n[t]})))return{v:!1}},i=0;i<n;i++){var o=e(i);if("object"==typeof o)return o.v}return!0}(e.map(Mt))):Pt(e,[Z])?new T(Et(e.map(function(t){return t.str}))):Pt(e,[T])?new T(Et(e.map(Mt))):Pt(e,[D])?new T(!0):new T(!1)}var Ht={"ㄴ":function(t,n,r){return Wt(t,r)},"ㅁ":function(t,n,r){Ft(n,r,1);var e=Ot(n,r.map(function(n){return t.strict(n)}),[T]);return new T(!e[0].value)},"ㅈ":function(t,n,r){Ft(n,r,2);var e=Ot(n,r.map(function(n){return t.strict(n)}),J);return new T(e[0].value<e[1].value)},"ㅈㅈ":function(t,n,r){return Ft(n,r,0),new T(!0)},"ㄱㅈ":function(t,n,r){return Ft(n,r,0),new T(!1)}};function $t(t,n){return function(r,e,i){Ft(e,i,n);var o=Ot(e,i.map(function(t){return r.strict(t)}),[B]);return new B(t.apply(void 0,o.map(Mt)))}}var Jt={"ㅂㄷ":{"ㄱ":$t(function(t,n){return t&n},2),"ㄷ":$t(function(t,n){return t|n},2),"ㅁ":$t(function(t){return~t},1),"ㅂ":$t(function(t,n){return t^n},2),"ㅈ":$t(function(t,n){return t<<n},2)}},Qt=["utf","unsigned","signed","float"],Xt=/*#__PURE__*/function(t){function n(n,r,e,i){var o;(o=t.call(this)||this).scheme=void 0,o.numBytes=void 0,o.bigEndian=void 0,o.endianness=void 0,o.codec=void 0;var u=Ot(n,[r,e],[B]),a=u[1];if(o.scheme=Qt[Number(u[0].value)],o.numBytes=Number(a.value),o.endianness="",i){var c=Ot(n,[i],[T]);o.bigEndian=c[0].value,o.endianness=o.bigEndian?"big":"little"}return o.codec=o.getCodec(),o.str="<Codec(scheme="+o.scheme+", num_bytes="+o.numBytes+", big_endian="+o.bigEndian+")>",o}r(n,t);var e=n.prototype;return e.execute=function(t,n,r){var e=r.map(function(n){return t.strict(n)});try{return this.codec(t,n,e)}catch(t){if(t instanceof L)throw t;throw new wt(n,"요청된 변환을 수행하지 못했습니다. 변환기: "+this.str+", 인수: "+e)}},e.getCodec=function(){switch(this.scheme){case"utf":return this.unicodeCodec;case"signed":case"unsigned":return this.integerCodec;case"float":return this.floatingPointCodec}},e.unicodeCodec=function(t,n,r){Ft(n,r,1);var e=Ot(n,r.map(function(n){return t.strict(n)}),[Z,q])[0];if(e instanceof Z){if(1===this.numBytes){var i=new TextEncoder;return new q(i.encode(e.str).buffer)}var o;if(2===this.numBytes)o=e.str.split("").map(function(t){return t.charCodeAt(0)});else{if(4!