From 01dee2126b24d87b3e3f495cf1947aa255235a6e Mon Sep 17 00:00:00 2001 From: astrid Date: Thu, 10 Dec 2020 16:32:08 +0100 Subject: [PATCH] solid community bug fixed + spelling --- build/asset-manifest.json | 20 ++++++------- build/index.html | 2 +- build/locales/en-US/translation.json | 8 +++--- build/locales/en/translation.json | 8 ++++-- build/popup.html | 28 ++++++++----------- build/service-worker.js | 2 +- build/solid-auth-client.bundle.js | 16 +++++++---- build/solid-auth-client.bundle.js.map | 2 +- build/solid-query-ldflex.bundle.js | 18 ++++++------ build/solid-query-ldflex.bundle.js.map | 2 +- public/locales/en-US/translation.json | 8 +++--- public/locales/en/translation.json | 8 ++++-- .../Vocabulary/vocabulary.component.js | 2 +- src/services/provider.ts | 23 ++------------- 14 files changed, 67 insertions(+), 80 deletions(-) diff --git a/build/asset-manifest.json b/build/asset-manifest.json index a39322e..7802cf8 100644 --- a/build/asset-manifest.json +++ b/build/asset-manifest.json @@ -1,22 +1,22 @@ { - "main.css": "/static/css/main.1f43f7ae.chunk.css", - "main.js": "/static/js/main.794fff03.chunk.js", - "main.js.map": "/static/js/main.794fff03.chunk.js.map", - "static/css/1.3ff0ba0d.chunk.css": "/static/css/1.3ff0ba0d.chunk.css", - "static/js/1.b9929d4c.chunk.js": "/static/js/1.b9929d4c.chunk.js", - "static/js/1.b9929d4c.chunk.js.map": "/static/js/1.b9929d4c.chunk.js.map", + "main.css": "/static/css/main.f1f1821b.chunk.css", + "main.js": "/static/js/main.57ce7840.chunk.js", + "main.js.map": "/static/js/main.57ce7840.chunk.js.map", + "static/css/1.86ec0c4b.chunk.css": "/static/css/1.86ec0c4b.chunk.css", + "static/js/1.cd2f65ec.chunk.js": "/static/js/1.cd2f65ec.chunk.js", + "static/js/1.cd2f65ec.chunk.js.map": "/static/js/1.cd2f65ec.chunk.js.map", "runtime~main.js": "/static/js/runtime~main.229c360f.js", "runtime~main.js.map": "/static/js/runtime~main.229c360f.js.map", "static/media/flag-icon.min.css": "/static/media/do.79f8bf8c.svg", "static/media/context.txt": "/static/media/context.ab08ac4d.txt", - "static/css/main.1f43f7ae.chunk.css.map": "/static/css/main.1f43f7ae.chunk.css.map", - "static/css/1.3ff0ba0d.chunk.css.map": "/static/css/1.3ff0ba0d.chunk.css.map", + "static/css/main.f1f1821b.chunk.css.map": "/static/css/main.f1f1821b.chunk.css.map", + "static/css/1.86ec0c4b.chunk.css.map": "/static/css/1.86ec0c4b.chunk.css.map", "solid-auth-client.bundle.js": "/solid-auth-client.bundle.js", "popup.html": "/popup.html", - "solid-auth-client.bundle.js.map": "/solid-auth-client.bundle.js.map", "solid-query-ldflex.bundle.js": "/solid-query-ldflex.bundle.js", + "solid-auth-client.bundle.js.map": "/solid-auth-client.bundle.js.map", "solid-query-ldflex.bundle.js.map": "/solid-query-ldflex.bundle.js.map", "index.html": "/index.html", - "precache-manifest.abe81fe3c6e1a7f73cf4775b56f0ac3e.js": "/precache-manifest.abe81fe3c6e1a7f73cf4775b56f0ac3e.js", + "precache-manifest.b900339059ef0bfb81e3ac7b186dd1d9.js": "/precache-manifest.b900339059ef0bfb81e3ac7b186dd1d9.js", "service-worker.js": "/service-worker.js" } \ No newline at end of file diff --git a/build/index.html b/build/index.html index 6e1eadf..8328e41 100644 --- a/build/index.html +++ b/build/index.html @@ -1 +1 @@ -Solid App
\ No newline at end of file +Solid App
\ No newline at end of file diff --git a/build/locales/en-US/translation.json b/build/locales/en-US/translation.json index 0279b3c..5d2784d 100644 --- a/build/locales/en-US/translation.json +++ b/build/locales/en-US/translation.json @@ -73,7 +73,7 @@ }, "friendlist": { "remove": "remove", - "confirmationMessage": "Are your sure you want to stop beeing friends? :(", + "confirmationMessage": "Are your sure you want to stop being friends? :(", "cancel": "cancel", "yourFriends": "Your FRIENDS", "mplatform": "The platform chosen is: ", @@ -217,12 +217,12 @@ "deletePodMessage": "Click the button to be redirected to delete this pod", "name": "Name", "role": "Role", - "company": "Comapny", + "company": "Company", "email": "Email", "phone": "Phone", "save": "Save changes", "notes": "More information", - "updateNote": "Save note", + "updateNote": "Save note ", "clear": "Clear note", "card": "POD" }, @@ -249,4 +249,4 @@ "href": "https://solidsdk.inrupt.net/public/general/en/app-inbox-cannot-be-created.html" } } -} \ No newline at end of file +} diff --git a/build/locales/en/translation.json b/build/locales/en/translation.json index 0b91c97..053d6e4 100644 --- a/build/locales/en/translation.json +++ b/build/locales/en/translation.json @@ -96,7 +96,7 @@ "description": "Uri is invalid" }, "remove": "remove", - "confirmationMessage": "Are your sure you want to stop beeing friends? :(", + "confirmationMessage": "Are your sure you want to stop being friends? :(", "cancel": "cancel", "notfounderror": { "title": "Oh My POD!", @@ -125,6 +125,8 @@ "formButtonText": "Log In", "btnTxtWebId": "Log In with WebId", "btnTxtProvider": "Log In with Provider", + "customProvider": "Custom provider", + "customProviderLabel": "Introduce the url of the custom provider", "errors": { "unknown": "Something is wrong, please try again...", "webIdNotValid": "WeibID is not valid", @@ -230,7 +232,7 @@ "select": "Select", "name": "Name", "role": "Role", - "company": "Comapny", + "company": "Company", "email": "Email", "phone": "Phone", "save": "Save changes", @@ -262,4 +264,4 @@ "href": "https://solidsdk.inrupt.net/public/general/en/app-inbox-cannot-be-created.html" } } -} \ No newline at end of file +} diff --git a/build/popup.html b/build/popup.html index 5308843..36ce7cd 100644 --- a/build/popup.html +++ b/build/popup.html @@ -1,30 +1,26 @@ - - - - Select your Identity Provider - - - - -
- - +*/var e=Object.getOwnPropertySymbols,t=Object.prototype.hasOwnProperty,r=Object.prototype.propertyIsEnumerable;function i(l){if(null==l)throw new TypeError("Object.assign cannot be called with null or undefined");return Object(l)}l.exports=function(){try{if(!Object.assign)return!1;var l=new String("abc");if(l[5]="de","5"===Object.getOwnPropertyNames(l)[0])return!1;for(var n={},u=0;u<10;u++)n["_"+String.fromCharCode(u)]=u;if("0123456789"!==Object.getOwnPropertyNames(n).map((function(l){return n[l]})).join(""))return!1;var e={};return"abcdefghijklmnopqrst".split("").forEach((function(l){e[l]=l})),"abcdefghijklmnopqrst"===Object.keys(Object.assign({},e)).join("")}catch(l){return!1}}()?Object.assign:function(l,n){for(var u,o,s=i(l),a=1;a=r)return l;switch(l){case"%s":return String(e[u++]);case"%d":return Number(e[u++]);case"%j":try{return JSON.stringify(e[u++])}catch(l){return"[Circular]"}default:return l}})),s=e[u];u=3&&(e.depth=arguments[2]),arguments.length>=4&&(e.colors=arguments[3]),d(u)?e.showHidden=u:u&&n._extend(e,u),_(e.showHidden)&&(e.showHidden=!1),_(e.depth)&&(e.depth=2),_(e.colors)&&(e.colors=!1),_(e.customInspect)&&(e.customInspect=!0),e.colors&&(e.stylize=s),c(e,l,e.depth)}function s(l,n){var u=o.styles[n];return u?"["+o.colors[u][0]+"m"+l+"["+o.colors[u][1]+"m":l}function a(l,n){return l}function c(l,u,e){if(l.customInspect&&u&&E(u.inspect)&&u.inspect!==n.inspect&&(!u.constructor||u.constructor.prototype!==u)){var t=u.inspect(e,l);return m(t)||(t=c(l,t,e)),t}var r=function(l,n){if(_(n))return l.stylize("undefined","undefined");if(m(n)){var u="'"+JSON.stringify(n).replace(/^"|"$/g,"").replace(/'/g,"\\'").replace(/\\"/g,'"')+"'";return l.stylize(u,"string")}if(g(n))return l.stylize(""+n,"number");if(d(n))return l.stylize(""+n,"boolean");if(y(n))return l.stylize("null","null")}(l,u);if(r)return r;var i=Object.keys(u),o=function(l){var n={};return l.forEach((function(l,u){n[l]=!0})),n}(i);if(l.showHidden&&(i=Object.getOwnPropertyNames(u)),A(u)&&(i.indexOf("message")>=0||i.indexOf("description")>=0))return f(u);if(0===i.length){if(E(u)){var s=u.name?": "+u.name:"";return l.stylize("[Function"+s+"]","special")}if(v(u))return l.stylize(RegExp.prototype.toString.call(u),"regexp");if(b(u))return l.stylize(Date.prototype.toString.call(u),"date");if(A(u))return f(u)}var a,w="",S=!1,k=["{","}"];(h(u)&&(S=!0,k=["[","]"]),E(u))&&(w=" [Function"+(u.name?": "+u.name:"")+"]");return v(u)&&(w=" "+RegExp.prototype.toString.call(u)),b(u)&&(w=" "+Date.prototype.toUTCString.call(u)),A(u)&&(w=" "+f(u)),0!==i.length||S&&0!=u.length?e<0?v(u)?l.stylize(RegExp.prototype.toString.call(u),"regexp"):l.stylize("[Object]","special"):(l.seen.push(u),a=S?function(l,n,u,e,t){for(var r=[],i=0,o=n.length;i=0&&0,l+n.replace(/\u001b\[\d\d?m/g,"").length+1}),0)>60)return u[0]+(""===n?"":n+"\n ")+" "+l.join(",\n ")+" "+u[1];return u[0]+n+" "+l.join(", ")+" "+u[1]}(a,w,k)):k[0]+w+k[1]}function f(l){return"["+Error.prototype.toString.call(l)+"]"}function p(l,n,u,e,t,r){var i,o,s;if((s=Object.getOwnPropertyDescriptor(n,t)||{value:n[t]}).get?o=s.set?l.stylize("[Getter/Setter]","special"):l.stylize("[Getter]","special"):s.set&&(o=l.stylize("[Setter]","special")),C(e,t)||(i="["+t+"]"),o||(l.seen.indexOf(s.value)<0?(o=y(u)?c(l,s.value,null):c(l,s.value,u-1)).indexOf("\n")>-1&&(o=r?o.split("\n").map((function(l){return" "+l})).join("\n").substr(2):"\n"+o.split("\n").map((function(l){return" "+l})).join("\n")):o=l.stylize("[Circular]","special")),_(i)){if(r&&t.match(/^\d+$/))return o;(i=JSON.stringify(""+t)).match(/^"([a-zA-Z_][a-zA-Z_0-9]*)"$/)?(i=i.substr(1,i.length-2),i=l.stylize(i,"name")):(i=i.replace(/'/g,"\\'").replace(/\\"/g,'"').replace(/(^"|"$)/g,"'"),i=l.stylize(i,"string"))}return i+": "+o}function h(l){return Array.isArray(l)}function d(l){return"boolean"==typeof l}function y(l){return null===l}function g(l){return"number"==typeof l}function m(l){return"string"==typeof l}function _(l){return void 0===l}function v(l){return w(l)&&"[object RegExp]"===S(l)}function w(l){return"object"==typeof l&&null!==l}function b(l){return w(l)&&"[object Date]"===S(l)}function A(l){return w(l)&&("[object Error]"===S(l)||l instanceof Error)}function E(l){return"function"==typeof l}function S(l){return Object.prototype.toString.call(l)}function k(l){return l<10?"0"+l.toString(10):l.toString(10)}n.debuglog=function(u){if(_(r)&&(r=l.env.NODE_DEBUG||""),u=u.toUpperCase(),!i[u])if(new RegExp("\\b"+u+"\\b","i").test(r)){var e=l.pid;i[u]=function(){var l=n.format.apply(n,arguments);console.error("%s %d: %s",u,e,l)}}else i[u]=function(){};return i[u]},n.inspect=o,o.colors={bold:[1,22],italic:[3,23],underline:[4,24],inverse:[7,27],white:[37,39],grey:[90,39],black:[30,39],blue:[34,39],cyan:[36,39],green:[32,39],magenta:[35,39],red:[31,39],yellow:[33,39]},o.styles={special:"cyan",number:"yellow",boolean:"yellow",undefined:"grey",null:"bold",string:"green",date:"magenta",regexp:"red"},n.isArray=h,n.isBoolean=d,n.isNull=y,n.isNullOrUndefined=function(l){return null==l},n.isNumber=g,n.isString=m,n.isSymbol=function(l){return"symbol"==typeof l},n.isUndefined=_,n.isRegExp=v,n.isObject=w,n.isDate=b,n.isError=A,n.isFunction=E,n.isPrimitive=function(l){return null===l||"boolean"==typeof l||"number"==typeof l||"string"==typeof l||"symbol"==typeof l||void 0===l},n.isBuffer=u(36);var O=["Jan","Feb","Mar","Apr","May","Jun","Jul","Aug","Sep","Oct","Nov","Dec"];function x(){var l=new Date,n=[k(l.getHours()),k(l.getMinutes()),k(l.getSeconds())].join(":");return[l.getDate(),O[l.getMonth()],n].join(" ")}function C(l,n){return Object.prototype.hasOwnProperty.call(l,n)}n.log=function(){console.log("%s - %s",x(),n.format.apply(n,arguments))},n.inherits=u(37),n._extend=function(l,n){if(!n||!w(n))return l;for(var u=Object.keys(n),e=u.length;e--;)l[u[e]]=n[u[e]];return l};var P="undefined"!=typeof Symbol?Symbol("util.promisify.custom"):void 0;function j(l,n){if(!l){var u=new Error("Promise was rejected with a falsy value");u.reason=l,l=u}return n(l)}n.promisify=function(l){if("function"!=typeof l)throw new TypeError('The "original" argument must be of type Function');if(P&&l[P]){var n;if("function"!=typeof(n=l[P]))throw new TypeError('The "util.promisify.custom" argument must be of type Function');return Object.defineProperty(n,P,{value:n,enumerable:!1,writable:!1,configurable:!0}),n}function n(){for(var n,u,e=new Promise((function(l,e){n=l,u=e})),t=[],r=0;r1)for(var u=1;ue(n.from(l)))}verify(l,n,u){let i=this.params;return"string"==typeof n&&(n=Uint8Array.from(e.toBuffer(n))),"string"==typeof u&&(u=(new r).encode(u)),t.subtle.verify(i,l,n,u)}assertSufficientKeyLength(l){if(l.length0?i-4:i;for(u=0;u>16&255,s[c++]=n>>8&255,s[c++]=255&n;2===o&&(n=t[l.charCodeAt(u)]<<2|t[l.charCodeAt(u+1)]>>4,s[c++]=255&n);1===o&&(n=t[l.charCodeAt(u)]<<10|t[l.charCodeAt(u+1)]<<4|t[l.charCodeAt(u+2)]>>2,s[c++]=n>>8&255,s[c++]=255&n);return s},n.fromByteArray=function(l){for(var n,u=l.length,t=u%3,r=[],i=0,o=u-t;io?o:i+16383));1===t?(n=l[u-1],r.push(e[n>>2]+e[n<<4&63]+"==")):2===t&&(n=(l[u-2]<<8)+l[u-1],r.push(e[n>>10]+e[n>>4&63]+e[n<<2&63]+"="));return r.join("")};for(var e=[],t=[],r="undefined"!=typeof Uint8Array?Uint8Array:Array,i="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/",o=0,s=i.length;o0)throw new Error("Invalid string. Length must be a multiple of 4");var u=l.indexOf("=");return-1===u&&(u=n),[u,u===n?0:4-u%4]}function c(l,n,u){for(var t,r,i=[],o=n;o>18&63]+e[r>>12&63]+e[r>>6&63]+e[63&r]);return i.join("")}t["-".charCodeAt(0)]=62,t["_".charCodeAt(0)]=63},function(l,n){n.read=function(l,n,u,e,t){var r,i,o=8*t-e-1,s=(1<>1,c=-7,f=u?t-1:0,p=u?-1:1,h=l[n+f];for(f+=p,r=h&(1<<-c)-1,h>>=-c,c+=o;c>0;r=256*r+l[n+f],f+=p,c-=8);for(i=r&(1<<-c)-1,r>>=-c,c+=e;c>0;i=256*i+l[n+f],f+=p,c-=8);if(0===r)r=1-a;else{if(r===s)return i?NaN:1/0*(h?-1:1);i+=Math.pow(2,e),r-=a}return(h?-1:1)*i*Math.pow(2,r-e)},n.write=function(l,n,u,e,t,r){var i,o,s,a=8*r-t-1,c=(1<>1,p=23===t?Math.pow(2,-24)-Math.pow(2,-77):0,h=e?0:r-1,d=e?1:-1,y=n<0||0===n&&1/n<0?1:0;for(n=Math.abs(n),isNaN(n)||n===1/0?(o=isNaN(n)?1:0,i=c):(i=Math.floor(Math.log(n)/Math.LN2),n*(s=Math.pow(2,-i))<1&&(i--,s*=2),(n+=i+f>=1?p/s:p*Math.pow(2,1-f))*s>=2&&(i++,s/=2),i+f>=c?(o=0,i=c):i+f>=1?(o=(n*s-1)*Math.pow(2,t),i+=f):(o=n*Math.pow(2,f-1)*Math.pow(2,t),i=0));t>=8;l[u+h]=255&o,h+=d,o/=256,t-=8);for(i=i<0;l[u+h]=255&i,h+=d,i/=256,a-=8);l[u+h-d]|=128*y}},function(l,n){var u={}.toString;l.exports=Array.isArray||function(l){return"[object Array]"==u.call(l)}},function(l,n,u){"use strict";(function(l){Object.defineProperty(n,"__esModule",{value:!0});var e=u(45);function t(n,u){return void 0===u&&(u="utf8"),l.isBuffer(n)?i(n.toString("base64")):i(l.from(n,u).toString("base64"))}function r(l){return l=l.toString(),e.default(l).replace(/\-/g,"+").replace(/_/g,"/")}function i(l){return l.replace(/=/g,"").replace(/\+/g,"-").replace(/\//g,"_")}var o=t;o.encode=t,o.decode=function(n,u){return void 0===u&&(u="utf8"),l.from(r(n),"base64").toString(u)},o.toBase64=r,o.fromBase64=i,o.toBuffer=function(n){return l.from(r(n),"base64")},n.default=o}).call(this,u(1).Buffer)},function(l,n,u){"use strict";(function(l){Object.defineProperty(n,"__esModule",{value:!0}),n.default=function(n){var u=n.length,e=u%4;if(!e)return n;var t=u,r=4-e,i=u+r,o=l.alloc(i);for(o.write(n);r--;)o.write("=",t++);return o.toString()}}).call(this,u(1).Buffer)},function(l,n,u){var e=u(47);l.exports={TextEncoder:e.TextEncoder,TextDecoder:e.TextDecoder}},function(l,n,u){!function(n){"use strict";function e(l,n,u){return n<=l&&l<=u}l.exports&&!n["encoding-indexes"]&&(n["encoding-indexes"]=u(48)["encoding-indexes"]);var t=Math.floor;function r(l){if(void 0===l)return{};if(l===Object(l))return l;throw TypeError("Could not convert argument to dictionary")}function i(l){return 0<=l&&l<=127}var o=i;function s(l){this.tokens=[].slice.call(l),this.tokens.reverse()}s.prototype={endOfStream:function(){return!this.tokens.length},read:function(){return this.tokens.length?this.tokens.pop():-1},prepend:function(l){if(Array.isArray(l))for(var n=l;n.length;)this.tokens.push(n.pop());else this.tokens.push(l)},push:function(l){if(Array.isArray(l))for(var n=l;n.length;)this.tokens.unshift(n.shift());else this.tokens.unshift(l)}};function a(l,n){if(l)throw TypeError("Decoder error");return n||65533}function c(l){throw TypeError("The code point "+l+" could not be encoded.")}function f(l){return l=String(l).trim().toLowerCase(),Object.prototype.hasOwnProperty.call(h,l)?h[l]:null}var p=[{encodings:[{labels:["unicode-1-1-utf-8","utf-8","utf8"],name:"UTF-8"}],heading:"The Encoding"},{encodings:[{labels:["866","cp866","csibm866","ibm866"],name:"IBM866"},{labels:["csisolatin2","iso-8859-2","iso-ir-101","iso8859-2","iso88592","iso_8859-2","iso_8859-2:1987","l2","latin2"],name:"ISO-8859-2"},{labels:["csisolatin3","iso-8859-3","iso-ir-109","iso8859-3","iso88593","iso_8859-3","iso_8859-3:1988","l3","latin3"],name:"ISO-8859-3"},{labels:["csisolatin4","iso-8859-4","iso-ir-110","iso8859-4","iso88594","iso_8859-4","iso_8859-4:1988","l4","latin4"],name:"ISO-8859-4"},{labels:["csisolatincyrillic","cyrillic","iso-8859-5","iso-ir-144","iso8859-5","iso88595","iso_8859-5","iso_8859-5:1988"],name:"ISO-8859-5"},{labels:["arabic","asmo-708","csiso88596e","csiso88596i","csisolatinarabic","ecma-114","iso-8859-6","iso-8859-6-e","iso-8859-6-i","iso-ir-127","iso8859-6","iso88596","iso_8859-6","iso_8859-6:1987"],name:"ISO-8859-6"},{labels:["csisolatingreek","ecma-118","elot_928","greek","greek8","iso-8859-7","iso-ir-126","iso8859-7","iso88597","iso_8859-7","iso_8859-7:1987","sun_eu_greek"],name:"ISO-8859-7"},{labels:["csiso88598e","csisolatinhebrew","hebrew","iso-8859-8","iso-8859-8-e","iso-ir-138","iso8859-8","iso88598","iso_8859-8","iso_8859-8:1988","visual"],name:"ISO-8859-8"},{labels:["csiso88598i","iso-8859-8-i","logical"],name:"ISO-8859-8-I"},{labels:["csisolatin6","iso-8859-10","iso-ir-157","iso8859-10","iso885910","l6","latin6"],name:"ISO-8859-10"},{labels:["iso-8859-13","iso8859-13","iso885913"],name:"ISO-8859-13"},{labels:["iso-8859-14","iso8859-14","iso885914"],name:"ISO-8859-14"},{labels:["csisolatin9","iso-8859-15","iso8859-15","iso885915","iso_8859-15","l9"],name:"ISO-8859-15"},{labels:["iso-8859-16"],name:"ISO-8859-16"},{labels:["cskoi8r","koi","koi8","koi8-r","koi8_r"],name:"KOI8-R"},{labels:["koi8-ru","koi8-u"],name:"KOI8-U"},{labels:["csmacintosh","mac","macintosh","x-mac-roman"],name:"macintosh"},{labels:["dos-874","iso-8859-11","iso8859-11","iso885911","tis-620","windows-874"],name:"windows-874"},{labels:["cp1250","windows-1250","x-cp1250"],name:"windows-1250"},{labels:["cp1251","windows-1251","x-cp1251"],name:"windows-1251"},{labels:["ansi_x3.4-1968","ascii","cp1252","cp819","csisolatin1","ibm819","iso-8859-1","iso-ir-100","iso8859-1","iso88591","iso_8859-1","iso_8859-1:1987","l1","latin1","us-ascii","windows-1252","x-cp1252"],name:"windows-1252"},{labels:["cp1253","windows-1253","x-cp1253"],name:"windows-1253"},{labels:["cp1254","csisolatin5","iso-8859-9","iso-ir-148","iso8859-9","iso88599","iso_8859-9","iso_8859-9:1989","l5","latin5","windows-1254","x-cp1254"],name:"windows-1254"},{labels:["cp1255","windows-1255","x-cp1255"],name:"windows-1255"},{labels:["cp1256","windows-1256","x-cp1256"],name:"windows-1256"},{labels:["cp1257","windows-1257","x-cp1257"],name:"windows-1257"},{labels:["cp1258","windows-1258","x-cp1258"],name:"windows-1258"},{labels:["x-mac-cyrillic","x-mac-ukrainian"],name:"x-mac-cyrillic"}],heading:"Legacy single-byte encodings"},{encodings:[{labels:["chinese","csgb2312","csiso58gb231280","gb2312","gb_2312","gb_2312-80","gbk","iso-ir-58","x-gbk"],name:"GBK"},{labels:["gb18030"],name:"gb18030"}],heading:"Legacy multi-byte Chinese (simplified) encodings"},{encodings:[{labels:["big5","big5-hkscs","cn-big5","csbig5","x-x-big5"],name:"Big5"}],heading:"Legacy multi-byte Chinese (traditional) encodings"},{encodings:[{labels:["cseucpkdfmtjapanese","euc-jp","x-euc-jp"],name:"EUC-JP"},{labels:["csiso2022jp","iso-2022-jp"],name:"ISO-2022-JP"},{labels:["csshiftjis","ms932","ms_kanji","shift-jis","shift_jis","sjis","windows-31j","x-sjis"],name:"Shift_JIS"}],heading:"Legacy multi-byte Japanese encodings"},{encodings:[{labels:["cseuckr","csksc56011987","euc-kr","iso-ir-149","korean","ks_c_5601-1987","ks_c_5601-1989","ksc5601","ksc_5601","windows-949"],name:"EUC-KR"}],heading:"Legacy multi-byte Korean encodings"},{encodings:[{labels:["csiso2022kr","hz-gb-2312","iso-2022-cn","iso-2022-cn-ext","iso-2022-kr"],name:"replacement"},{labels:["utf-16be"],name:"UTF-16BE"},{labels:["utf-16","utf-16le"],name:"UTF-16LE"},{labels:["x-user-defined"],name:"x-user-defined"}],heading:"Legacy miscellaneous encodings"}],h={};p.forEach((function(l){l.encodings.forEach((function(l){l.labels.forEach((function(n){h[n]=l}))}))}));var d,y,g={},m={};function _(l,n){return n&&n[l]||null}function v(l,n){var u=n.indexOf(l);return-1===u?null:u}function w(l){if(!("encoding-indexes"in n))throw Error("Indexes missing. Did you forget to include encoding-indexes.js first?");return n["encoding-indexes"][l]}function b(l,n){if(!(this instanceof b))throw TypeError("Called as a function. Did you forget 'new'?");l=void 0!==l?String(l):"utf-8",n=r(n),this._encoding=null,this._decoder=null,this._ignoreBOM=!1,this._BOMseen=!1,this._error_mode="replacement",this._do_not_flush=!1;var u=f(l);if(null===u||"replacement"===u.name)throw RangeError("Unknown encoding: "+l);if(!m[u.name])throw Error("Decoder not present. Did you forget to include encoding-indexes.js first?");return this._encoding=u,Boolean(n.fatal)&&(this._error_mode="fatal"),Boolean(n.ignoreBOM)&&(this._ignoreBOM=!0),Object.defineProperty||(this.encoding=this._encoding.name.toLowerCase(),this.fatal="fatal"===this._error_mode,this.ignoreBOM=this._ignoreBOM),this}function A(l,u){if(!(this instanceof A))throw TypeError("Called as a function. Did you forget 'new'?");u=r(u),this._encoding=null,this._encoder=null,this._do_not_flush=!1,this._fatal=Boolean(u.fatal)?"fatal":"replacement";if(Boolean(u.NONSTANDARD_allowLegacyEncoding)){var e=f(l=void 0!==l?String(l):"utf-8");if(null===e||"replacement"===e.name)throw RangeError("Unknown encoding: "+l);if(!g[e.name])throw Error("Encoder not present. Did you forget to include encoding-indexes.js first?");this._encoding=e}else this._encoding=f("utf-8"),void 0!==l&&"console"in n&&console.warn("TextEncoder constructor called with encoding label, which is ignored.");return Object.defineProperty||(this.encoding=this._encoding.name.toLowerCase()),this}function E(l){var n=l.fatal,u=0,t=0,r=0,i=128,o=191;this.handler=function(l,s){if(-1===s&&0!==r)return r=0,a(n);if(-1===s)return-1;if(0===r){if(e(s,0,127))return s;if(e(s,194,223))r=1,u=31&s;else if(e(s,224,239))224===s&&(i=160),237===s&&(o=159),r=2,u=15&s;else{if(!e(s,240,244))return a(n);240===s&&(i=144),244===s&&(o=143),r=3,u=7&s}return null}if(!e(s,i,o))return u=r=t=0,i=128,o=191,l.prepend(s),a(n);if(i=128,o=191,u=u<<6|63&s,(t+=1)!==r)return null;var c=u;return u=r=t=0,c}}function S(l){l.fatal;this.handler=function(l,n){if(-1===n)return-1;if(o(n))return n;var u,t;e(n,128,2047)?(u=1,t=192):e(n,2048,65535)?(u=2,t=224):e(n,65536,1114111)&&(u=3,t=240);for(var r=[(n>>6*u)+t];u>0;){var i=n>>6*(u-1);r.push(128|63&i),u-=1}return r}}function k(l,n){var u=n.fatal;this.handler=function(n,e){if(-1===e)return-1;if(i(e))return e;var t=l[e-128];return null===t?a(u):t}}function O(l,n){n.fatal;this.handler=function(n,u){if(-1===u)return-1;if(o(u))return u;var e=v(u,l);return null===e&&c(u),e+128}}function x(l){var n=l.fatal,u=0,t=0,r=0;this.handler=function(l,o){if(-1===o&&0===u&&0===t&&0===r)return-1;var s;if(-1!==o||0===u&&0===t&&0===r||(u=0,t=0,r=0,a(n)),0!==r){s=null,e(o,48,57)&&(s=function(l){if(l>39419&&l<189e3||l>1237575)return null;if(7457===l)return 59335;var n,u=0,e=0,t=w("gb18030-ranges");for(n=0;n>8,e=255&l;return n?[u,e]:[e,u]}function K(l,n){var u=n.fatal,t=null,r=null;this.handler=function(n,i){if(-1===i&&(null!==t||null!==r))return a(u);if(-1===i&&null===t&&null===r)return-1;if(null===t)return t=i,null;var o;if(o=l?(t<<8)+i:(i<<8)+t,t=null,null!==r){var s=r;return r=null,e(o,56320,57343)?65536+1024*(s-55296)+(o-56320):(n.prepend(N(o,l)),a(u))}return e(o,55296,56319)?(r=o,null):e(o,56320,57343)?a(u):o}}function H(l,n){n.fatal;this.handler=function(n,u){if(-1===u)return-1;if(e(u,0,65535))return N(u,l);var t=N(55296+(u-65536>>10),l),r=N(56320+(u-65536&1023),l);return t.concat(r)}}function q(l){l.fatal;this.handler=function(l,n){return-1===n?-1:i(n)?n:63360+n-128}}function z(l){l.fatal;this.handler=function(l,n){return-1===n?-1:o(n)?n:e(n,63360,63487)?n-63360+128:c(n)}}Object.defineProperty&&(Object.defineProperty(b.prototype,"encoding",{get:function(){return this._encoding.name.toLowerCase()}}),Object.defineProperty(b.prototype,"fatal",{get:function(){return"fatal"===this._error_mode}}),Object.defineProperty(b.prototype,"ignoreBOM",{get:function(){return this._ignoreBOM}})),b.prototype.decode=function(l,n){var u;u="object"==typeof l&&l instanceof ArrayBuffer?new Uint8Array(l):"object"==typeof l&&"buffer"in l&&l.buffer instanceof ArrayBuffer?new Uint8Array(l.buffer,l.byteOffset,l.byteLength):new Uint8Array(0),n=r(n),this._do_not_flush||(this._decoder=m[this._encoding.name]({fatal:"fatal"===this._error_mode}),this._BOMseen=!1),this._do_not_flush=Boolean(n.stream);for(var e,t=new s(u),i=[];;){var o=t.read();if(-1===o)break;if(-1===(e=this._decoder.handler(t,o)))break;null!==e&&(Array.isArray(e)?i.push.apply(i,e):i.push(e))}if(!this._do_not_flush){do{if(-1===(e=this._decoder.handler(t,t.read())))break;null!==e&&(Array.isArray(e)?i.push.apply(i,e):i.push(e))}while(!t.endOfStream());this._decoder=null}return function(l){var n,u;return n=["UTF-8","UTF-16LE","UTF-16BE"],u=this._encoding.name,-1===n.indexOf(u)||this._ignoreBOM||this._BOMseen||(l.length>0&&65279===l[0]?(this._BOMseen=!0,l.shift()):l.length>0&&(this._BOMseen=!0)),function(l){for(var n="",u=0;u>10),56320+(1023&e)))}return n}(l)}.call(this,i)},Object.defineProperty&&Object.defineProperty(A.prototype,"encoding",{get:function(){return this._encoding.name.toLowerCase()}}),A.prototype.encode=function(l,n){l=void 0===l?"":String(l),n=r(n),this._do_not_flush||(this._encoder=g[this._encoding.name]({fatal:"fatal"===this._fatal})),this._do_not_flush=Boolean(n.stream);for(var u,e=new s(function(l){for(var n=String(l),u=n.length,e=0,t=[];e57343)t.push(r);else if(56320<=r&&r<=57343)t.push(65533);else if(55296<=r&&r<=56319)if(e===u-1)t.push(65533);else{var i=n.charCodeAt(e+1);if(56320<=i&&i<=57343){var o=1023&r,s=1023&i;t.push(65536+(o<<10)+s),e+=1}else t.push(65533)}e+=1}return t}(l)),t=[];;){var i=e.read();if(-1===i)break;if(-1===(u=this._encoder.handler(e,i)))break;Array.isArray(u)?t.push.apply(t,u):t.push(u)}if(!this._do_not_flush){for(;-1!==(u=this._encoder.handler(e,e.read()));)Array.isArray(u)?t.push.apply(t,u):t.push(u);this._encoder=null}return new Uint8Array(t)},g["UTF-8"]=function(l){return new S(l)},m["UTF-8"]=function(l){return new E(l)},"encoding-indexes"in n&&p.forEach((function(l){"Legacy single-byte encodings"===l.heading&&l.encodings.forEach((function(l){var n=l.name,u=w(n.toLowerCase());m[n]=function(l){return new k(u,l)},g[n]=function(l){return new O(u,l)}}))})),m.GBK=function(l){return new x(l)},g.GBK=function(l){return new C(l,!0)},g.gb18030=function(l){return new C(l)},m.gb18030=function(l){return new x(l)},g.Big5=function(l){return new j(l)},m.Big5=function(l){return new P(l)},g["EUC-JP"]=function(l){return new R(l)},m["EUC-JP"]=function(l){return new T(l)},g["ISO-2022-JP"]=function(l){return new I(l)},m["ISO-2022-JP"]=function(l){return new U(l)},g.Shift_JIS=function(l){return new L(l)},m.Shift_JIS=function(l){return new B(l)},g["EUC-KR"]=function(l){return new M(l)},m["EUC-KR"]=function(l){return new D(l)},g["UTF-16BE"]=function(l){return new H(!0,l)},m["UTF-16BE"]=function(l){return new K(!0,l)},g["UTF-16LE"]=function(l){return new H(!1,l)},m["UTF-16LE"]=function(l){return new K(!1,l)},g["x-user-defined"]=function(l){return new z(l)},m["x-user-defined"]=function(l){return new q(l)},n.TextEncoder||(n.TextEncoder=A),n.TextDecoder||(n.TextDecoder=b),l.exports&&(l.exports={TextEncoder:n.TextEncoder,TextDecoder:n.TextDecoder,EncodingIndexes:n["encoding-indexes"]})}(this||{})},function(l,n,u){!function(n){"use strict";l.exports&&(l.exports=n),n["encoding-indexes"]={big5:[null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,17392,19506,17923,17830,17784,160359,19831,17843,162993,19682,163013,15253,18230,18244,19527,19520,148159,144919,160594,159371,159954,19543,172881,18255,17882,19589,162924,19719,19108,18081,158499,29221,154196,137827,146950,147297,26189,22267,null,32149,22813,166841,15860,38708,162799,23515,138590,23204,13861,171696,23249,23479,23804,26478,34195,170309,29793,29853,14453,138579,145054,155681,16108,153822,15093,31484,40855,147809,166157,143850,133770,143966,17162,33924,40854,37935,18736,34323,22678,38730,37400,31184,31282,26208,27177,34973,29772,31685,26498,31276,21071,36934,13542,29636,155065,29894,40903,22451,18735,21580,16689,145038,22552,31346,162661,35727,18094,159368,16769,155033,31662,140476,40904,140481,140489,140492,40905,34052,144827,16564,40906,17633,175615,25281,28782,40907,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,12736,12737,12738,12739,12740,131340,12741,131281,131277,12742,12743,131275,139240,12744,131274,12745,12746,12747,12748,131342,12749,12750,256,193,461,192,274,201,282,200,332,211,465,210,null,7870,null,7872,202,257,225,462,224,593,275,233,283,232,299,237,464,236,333,243,466,242,363,250,468,249,470,472,474,476,252,null,7871,null,7873,234,609,9178,9179,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,172969,135493,null,25866,null,null,20029,28381,40270,37343,null,null,161589,25745,20250,20264,20392,20822,20852,20892,20964,21153,21160,21307,21326,21457,21464,22242,22768,22788,22791,22834,22836,23398,23454,23455,23706,24198,24635,25993,26622,26628,26725,27982,28860,30005,32420,32428,32442,32455,32463,32479,32518,32567,33402,33487,33647,35270,35774,35810,36710,36711,36718,29713,31996,32205,26950,31433,21031,null,null,null,null,37260,30904,37214,32956,null,36107,33014,133607,null,null,32927,40647,19661,40393,40460,19518,171510,159758,40458,172339,13761,null,28314,33342,29977,null,18705,39532,39567,40857,31111,164972,138698,132560,142054,20004,20097,20096,20103,20159,20203,20279,13388,20413,15944,20483,20616,13437,13459,13477,20870,22789,20955,20988,20997,20105,21113,21136,21287,13767,21417,13649,21424,13651,21442,21539,13677,13682,13953,21651,21667,21684,21689,21712,21743,21784,21795,21800,13720,21823,13733,13759,21975,13765,163204,21797,null,134210,134421,151851,21904,142534,14828,131905,36422,150968,169189,16467,164030,30586,142392,14900,18389,164189,158194,151018,25821,134524,135092,134357,135412,25741,36478,134806,134155,135012,142505,164438,148691,null,134470,170573,164073,18420,151207,142530,39602,14951,169460,16365,13574,152263,169940,161992,142660,40302,38933,null,17369,155813,25780,21731,142668,142282,135287,14843,135279,157402,157462,162208,25834,151634,134211,36456,139681,166732,132913,null,18443,131497,16378,22643,142733,null,148936,132348,155799,134988,134550,21881,16571,17338,null,19124,141926,135325,33194,39157,134556,25465,14846,141173,36288,22177,25724,15939,null,173569,134665,142031,142537,null,135368,145858,14738,14854,164507,13688,155209,139463,22098,134961,142514,169760,13500,27709,151099,null,null,161140,142987,139784,173659,167117,134778,134196,157724,32659,135375,141315,141625,13819,152035,134796,135053,134826,16275,134960,134471,135503,134732,null,134827,134057,134472,135360,135485,16377,140950,25650,135085,144372,161337,142286,134526,134527,142417,142421,14872,134808,135367,134958,173618,158544,167122,167321,167114,38314,21708,33476,21945,null,171715,39974,39606,161630,142830,28992,33133,33004,23580,157042,33076,14231,21343,164029,37302,134906,134671,134775,134907,13789,151019,13833,134358,22191,141237,135369,134672,134776,135288,135496,164359,136277,134777,151120,142756,23124,135197,135198,135413,135414,22428,134673,161428,164557,135093,134779,151934,14083,135094,135552,152280,172733,149978,137274,147831,164476,22681,21096,13850,153405,31666,23400,18432,19244,40743,18919,39967,39821,154484,143677,22011,13810,22153,20008,22786,138177,194680,38737,131206,20059,20155,13630,23587,24401,24516,14586,25164,25909,27514,27701,27706,28780,29227,20012,29357,149737,32594,31035,31993,32595,156266,13505,null,156491,32770,32896,157202,158033,21341,34916,35265,161970,35744,36125,38021,38264,38271,38376,167439,38886,39029,39118,39134,39267,17e4,40060,40479,40644,27503,63751,20023,131207,38429,25143,38050,null,20539,28158,171123,40870,15817,34959,147790,28791,23797,19232,152013,13657,154928,24866,166450,36775,37366,29073,26393,29626,144001,172295,15499,137600,19216,30948,29698,20910,165647,16393,27235,172730,16931,34319,133743,31274,170311,166634,38741,28749,21284,139390,37876,30425,166371,40871,30685,20131,20464,20668,20015,20247,40872,21556,32139,22674,22736,138678,24210,24217,24514,141074,25995,144377,26905,27203,146531,27903,null,29184,148741,29580,16091,150035,23317,29881,35715,154788,153237,31379,31724,31939,32364,33528,34199,40873,34960,40874,36537,40875,36815,34143,39392,37409,40876,167353,136255,16497,17058,23066,null,null,null,39016,26475,17014,22333,null,34262,149883,33471,160013,19585,159092,23931,158485,159678,40877,40878,23446,40879,26343,32347,28247,31178,15752,17603,143958,141206,17306,17718,null,23765,146202,35577,23672,15634,144721,23928,40882,29015,17752,147692,138787,19575,14712,13386,131492,158785,35532,20404,131641,22975,33132,38998,170234,24379,134047,null,139713,166253,16642,18107,168057,16135,40883,172469,16632,14294,18167,158790,16764,165554,160767,17773,14548,152730,17761,17691,19849,19579,19830,17898,16328,150287,13921,17630,17597,16877,23870,23880,23894,15868,14351,23972,23993,14368,14392,24130,24253,24357,24451,14600,14612,14655,14669,24791,24893,23781,14729,25015,25017,25039,14776,25132,25232,25317,25368,14840,22193,14851,25570,25595,25607,25690,14923,25792,23829,22049,40863,14999,25990,15037,26111,26195,15090,26258,15138,26390,15170,26532,26624,15192,26698,26756,15218,15217,15227,26889,26947,29276,26980,27039,27013,15292,27094,15325,27237,27252,27249,27266,15340,27289,15346,27307,27317,27348,27382,27521,27585,27626,27765,27818,15563,27906,27910,27942,28033,15599,28068,28081,28181,28184,28201,28294,166336,28347,28386,28378,40831,28392,28393,28452,28468,15686,147265,28545,28606,15722,15733,29111,23705,15754,28716,15761,28752,28756,28783,28799,28809,131877,17345,13809,134872,147159,22462,159443,28990,153568,13902,27042,166889,23412,31305,153825,169177,31333,31357,154028,31419,31408,31426,31427,29137,156813,16842,31450,31453,31466,16879,21682,154625,31499,31573,31529,152334,154878,31650,31599,33692,154548,158847,31696,33825,31634,31672,154912,15789,154725,33938,31738,31750,31797,154817,31812,31875,149634,31910,26237,148856,31945,31943,31974,31860,31987,31989,31950,32359,17693,159300,32093,159446,29837,32137,32171,28981,32179,32210,147543,155689,32228,15635,32245,137209,32229,164717,32285,155937,155994,32366,32402,17195,37996,32295,32576,32577,32583,31030,156368,39393,32663,156497,32675,136801,131176,17756,145254,17667,164666,32762,156809,32773,32776,32797,32808,32815,172167,158915,32827,32828,32865,141076,18825,157222,146915,157416,26405,32935,166472,33031,33050,22704,141046,27775,156824,151480,25831,136330,33304,137310,27219,150117,150165,17530,33321,133901,158290,146814,20473,136445,34018,33634,158474,149927,144688,137075,146936,33450,26907,194964,16859,34123,33488,33562,134678,137140,14017,143741,144730,33403,33506,33560,147083,159139,158469,158615,144846,15807,33565,21996,33669,17675,159141,33708,33729,33747,13438,159444,27223,34138,13462,159298,143087,33880,154596,33905,15827,17636,27303,33866,146613,31064,33960,158614,159351,159299,34014,33807,33681,17568,33939,34020,154769,16960,154816,17731,34100,23282,159385,17703,34163,17686,26559,34326,165413,165435,34241,159880,34306,136578,159949,194994,17770,34344,13896,137378,21495,160666,34430,34673,172280,34798,142375,34737,34778,34831,22113,34412,26710,17935,34885,34886,161248,146873,161252,34910,34972,18011,34996,34997,25537,35013,30583,161551,35207,35210,35238,35241,35239,35260,166437,35303,162084,162493,35484,30611,37374,35472,162393,31465,162618,147343,18195,162616,29052,35596,35615,152624,152933,35647,35660,35661,35497,150138,35728,35739,35503,136927,17941,34895,35995,163156,163215,195028,14117,163155,36054,163224,163261,36114,36099,137488,36059,28764,36113,150729,16080,36215,36265,163842,135188,149898,15228,164284,160012,31463,36525,36534,36547,37588,36633,36653,164709,164882,36773,37635,172703,133712,36787,18730,166366,165181,146875,24312,143970,36857,172052,165564,165121,140069,14720,159447,36919,165180,162494,36961,165228,165387,37032,165651,37060,165606,37038,37117,37223,15088,37289,37316,31916,166195,138889,37390,27807,37441,37474,153017,37561,166598,146587,166668,153051,134449,37676,37739,166625,166891,28815,23235,166626,166629,18789,37444,166892,166969,166911,37747,37979,36540,38277,38310,37926,38304,28662,17081,140922,165592,135804,146990,18911,27676,38523,38550,16748,38563,159445,25050,38582,30965,166624,38589,21452,18849,158904,131700,156688,168111,168165,150225,137493,144138,38705,34370,38710,18959,17725,17797,150249,28789,23361,38683,38748,168405,38743,23370,168427,38751,37925,20688,143543,143548,38793,38815,38833,38846,38848,38866,38880,152684,38894,29724,169011,38911,38901,168989,162170,19153,38964,38963,38987,39014,15118,160117,15697,132656,147804,153350,39114,39095,39112,39111,19199,159015,136915,21936,39137,39142,39148,37752,39225,150057,19314,170071,170245,39413,39436,39483,39440,39512,153381,14020,168113,170965,39648,39650,170757,39668,19470,39700,39725,165376,20532,39732,158120,14531,143485,39760,39744,171326,23109,137315,39822,148043,39938,39935,39948,171624,40404,171959,172434,172459,172257,172323,172511,40318,40323,172340,40462,26760,40388,139611,172435,172576,137531,172595,40249,172217,172724,40592,40597,40606,40610,19764,40618,40623,148324,40641,15200,14821,15645,20274,14270,166955,40706,40712,19350,37924,159138,40727,40726,40761,22175,22154,40773,39352,168075,38898,33919,40802,40809,31452,40846,29206,19390,149877,149947,29047,150008,148296,150097,29598,166874,137466,31135,166270,167478,37737,37875,166468,37612,37761,37835,166252,148665,29207,16107,30578,31299,28880,148595,148472,29054,137199,28835,137406,144793,16071,137349,152623,137208,14114,136955,137273,14049,137076,137425,155467,14115,136896,22363,150053,136190,135848,136134,136374,34051,145062,34051,33877,149908,160101,146993,152924,147195,159826,17652,145134,170397,159526,26617,14131,15381,15847,22636,137506,26640,16471,145215,147681,147595,147727,158753,21707,22174,157361,22162,135135,134056,134669,37830,166675,37788,20216,20779,14361,148534,20156,132197,131967,20299,20362,153169,23144,131499,132043,14745,131850,132116,13365,20265,131776,167603,131701,35546,131596,20120,20685,20749,20386,20227,150030,147082,20290,20526,20588,20609,20428,20453,20568,20732,20825,20827,20829,20830,28278,144789,147001,147135,28018,137348,147081,20904,20931,132576,17629,132259,132242,132241,36218,166556,132878,21081,21156,133235,21217,37742,18042,29068,148364,134176,149932,135396,27089,134685,29817,16094,29849,29716,29782,29592,19342,150204,147597,21456,13700,29199,147657,21940,131909,21709,134086,22301,37469,38644,37734,22493,22413,22399,13886,22731,23193,166470,136954,137071,136976,23084,22968,37519,23166,23247,23058,153926,137715,137313,148117,14069,27909,29763,23073,155267,23169,166871,132115,37856,29836,135939,28933,18802,37896,166395,37821,14240,23582,23710,24158,24136,137622,137596,146158,24269,23375,137475,137476,14081,137376,14045,136958,14035,33066,166471,138682,144498,166312,24332,24334,137511,137131,23147,137019,23364,34324,161277,34912,24702,141408,140843,24539,16056,140719,140734,168072,159603,25024,131134,131142,140827,24985,24984,24693,142491,142599,149204,168269,25713,149093,142186,14889,142114,144464,170218,142968,25399,173147,25782,25393,25553,149987,142695,25252,142497,25659,25963,26994,15348,143502,144045,149897,144043,21773,144096,137433,169023,26318,144009,143795,15072,16784,152964,166690,152975,136956,152923,152613,30958,143619,137258,143924,13412,143887,143746,148169,26254,159012,26219,19347,26160,161904,138731,26211,144082,144097,26142,153714,14545,145466,145340,15257,145314,144382,29904,15254,26511,149034,26806,26654,15300,27326,14435,145365,148615,27187,27218,27337,27397,137490,25873,26776,27212,15319,27258,27479,147392,146586,37792,37618,166890,166603,37513,163870,166364,37991,28069,28427,149996,28007,147327,15759,28164,147516,23101,28170,22599,27940,30786,28987,148250,148086,28913,29264,29319,29332,149391,149285,20857,150180,132587,29818,147192,144991,150090,149783,155617,16134,16049,150239,166947,147253,24743,16115,29900,29756,37767,29751,17567,159210,17745,30083,16227,150745,150790,16216,30037,30323,173510,15129,29800,166604,149931,149902,15099,15821,150094,16127,149957,149747,37370,22322,37698,166627,137316,20703,152097,152039,30584,143922,30478,30479,30587,149143,145281,14942,149744,29752,29851,16063,150202,150215,16584,150166,156078,37639,152961,30750,30861,30856,30930,29648,31065,161601,153315,16654,31131,33942,31141,27181,147194,31290,31220,16750,136934,16690,37429,31217,134476,149900,131737,146874,137070,13719,21867,13680,13994,131540,134157,31458,23129,141045,154287,154268,23053,131675,30960,23082,154566,31486,16889,31837,31853,16913,154547,155324,155302,31949,150009,137136,31886,31868,31918,27314,32220,32263,32211,32590,156257,155996,162632,32151,155266,17002,158581,133398,26582,131150,144847,22468,156690,156664,149858,32733,31527,133164,154345,154947,31500,155150,39398,34373,39523,27164,144447,14818,150007,157101,39455,157088,33920,160039,158929,17642,33079,17410,32966,33033,33090,157620,39107,158274,33378,33381,158289,33875,159143,34320,160283,23174,16767,137280,23339,137377,23268,137432,34464,195004,146831,34861,160802,23042,34926,20293,34951,35007,35046,35173,35149,153219,35156,161669,161668,166901,166873,166812,166393,16045,33955,18165,18127,14322,35389,35356,169032,24397,37419,148100,26068,28969,28868,137285,40301,35999,36073,163292,22938,30659,23024,17262,14036,36394,36519,150537,36656,36682,17140,27736,28603,140065,18587,28537,28299,137178,39913,14005,149807,37051,37015,21873,18694,37307,37892,166475,16482,166652,37927,166941,166971,34021,35371,38297,38311,38295,38294,167220,29765,16066,149759,150082,148458,16103,143909,38543,167655,167526,167525,16076,149997,150136,147438,29714,29803,16124,38721,168112,26695,18973,168083,153567,38749,37736,166281,166950,166703,156606,37562,23313,35689,18748,29689,147995,38811,38769,39224,134950,24001,166853,150194,38943,169178,37622,169431,37349,17600,166736,150119,166756,39132,166469,16128,37418,18725,33812,39227,39245,162566,15869,39323,19311,39338,39516,166757,153800,27279,39457,23294,39471,170225,19344,170312,39356,19389,19351,37757,22642,135938,22562,149944,136424,30788,141087,146872,26821,15741,37976,14631,24912,141185,141675,24839,40015,40019,40059,39989,39952,39807,39887,171565,39839,172533,172286,40225,19630,147716,40472,19632,40204,172468,172269,172275,170287,40357,33981,159250,159711,158594,34300,17715,159140,159364,159216,33824,34286,159232,145367,155748,31202,144796,144960,18733,149982,15714,37851,37566,37704,131775,30905,37495,37965,20452,13376,36964,152925,30781,30804,30902,30795,137047,143817,149825,13978,20338,28634,28633,28702,28702,21524,147893,22459,22771,22410,40214,22487,28980,13487,147884,29163,158784,151447,23336,137141,166473,24844,23246,23051,17084,148616,14124,19323,166396,37819,37816,137430,134941,33906,158912,136211,148218,142374,148417,22932,146871,157505,32168,155995,155812,149945,149899,166394,37605,29666,16105,29876,166755,137375,16097,150195,27352,29683,29691,16086,150078,150164,137177,150118,132007,136228,149989,29768,149782,28837,149878,37508,29670,37727,132350,37681,166606,166422,37766,166887,153045,18741,166530,29035,149827,134399,22180,132634,134123,134328,21762,31172,137210,32254,136898,150096,137298,17710,37889,14090,166592,149933,22960,137407,137347,160900,23201,14050,146779,14e3,37471,23161,166529,137314,37748,15565,133812,19094,14730,20724,15721,15692,136092,29045,17147,164376,28175,168164,17643,27991,163407,28775,27823,15574,147437,146989,28162,28428,15727,132085,30033,14012,13512,18048,16090,18545,22980,37486,18750,36673,166940,158656,22546,22472,14038,136274,28926,148322,150129,143331,135856,140221,26809,26983,136088,144613,162804,145119,166531,145366,144378,150687,27162,145069,158903,33854,17631,17614,159014,159057,158850,159710,28439,160009,33597,137018,33773,158848,159827,137179,22921,23170,137139,23137,23153,137477,147964,14125,23023,137020,14023,29070,37776,26266,148133,23150,23083,148115,27179,147193,161590,148571,148170,28957,148057,166369,20400,159016,23746,148686,163405,148413,27148,148054,135940,28838,28979,148457,15781,27871,194597,150095,32357,23019,23855,15859,24412,150109,137183,32164,33830,21637,146170,144128,131604,22398,133333,132633,16357,139166,172726,28675,168283,23920,29583,31955,166489,168992,20424,32743,29389,29456,162548,29496,29497,153334,29505,29512,16041,162584,36972,29173,149746,29665,33270,16074,30476,16081,27810,22269,29721,29726,29727,16098,16112,16116,16122,29907,16142,16211,30018,30061,30066,30093,16252,30152,30172,16320,30285,16343,30324,16348,30330,151388,29064,22051,35200,22633,16413,30531,16441,26465,16453,13787,30616,16490,16495,23646,30654,30667,22770,30744,28857,30748,16552,30777,30791,30801,30822,33864,152885,31027,26627,31026,16643,16649,31121,31129,36795,31238,36796,16743,31377,16818,31420,33401,16836,31439,31451,16847,20001,31586,31596,31611,31762,31771,16992,17018,31867,31900,17036,31928,17044,31981,36755,28864,134351,32207,32212,32208,32253,32686,32692,29343,17303,32800,32805,31545,32814,32817,32852,15820,22452,28832,32951,33001,17389,33036,29482,33038,33042,30048,33044,17409,15161,33110,33113,33114,17427,22586,33148,33156,17445,33171,17453,33189,22511,33217,33252,33364,17551,33446,33398,33482,33496,33535,17584,33623,38505,27018,33797,28917,33892,24803,33928,17668,33982,34017,34040,34064,34104,34130,17723,34159,34160,34272,17783,34418,34450,34482,34543,38469,34699,17926,17943,34990,35071,35108,35143,35217,162151,35369,35384,35476,35508,35921,36052,36082,36124,18328,22623,36291,18413,20206,36410,21976,22356,36465,22005,36528,18487,36558,36578,36580,36589,36594,36791,36801,36810,36812,36915,39364,18605,39136,37395,18718,37416,37464,37483,37553,37550,37567,37603,37611,37619,37620,37629,37699,37764,37805,18757,18769,40639,37911,21249,37917,37933,37950,18794,37972,38009,38189,38306,18855,38388,38451,18917,26528,18980,38720,18997,38834,38850,22100,19172,24808,39097,19225,39153,22596,39182,39193,20916,39196,39223,39234,39261,39266,19312,39365,19357,39484,39695,31363,39785,39809,39901,39921,39924,19565,39968,14191,138178,40265,39994,40702,22096,40339,40381,40384,40444,38134,36790,40571,40620,40625,40637,40646,38108,40674,40689,40696,31432,40772,131220,131767,132e3,26906,38083,22956,132311,22592,38081,14265,132565,132629,132726,136890,22359,29043,133826,133837,134079,21610,194619,134091,21662,134139,134203,134227,134245,134268,24807,134285,22138,134325,134365,134381,134511,134578,134600,26965,39983,34725,134660,134670,134871,135056,134957,134771,23584,135100,24075,135260,135247,135286,26398,135291,135304,135318,13895,135359,135379,135471,135483,21348,33965,135907,136053,135990,35713,136567,136729,137155,137159,20088,28859,137261,137578,137773,137797,138282,138352,138412,138952,25283,138965,139029,29080,26709,139333,27113,14024,139900,140247,140282,141098,141425,141647,33533,141671,141715,142037,35237,142056,36768,142094,38840,142143,38983,39613,142412,null,142472,142519,154600,142600,142610,142775,142741,142914,143220,143308,143411,143462,144159,144350,24497,26184,26303,162425,144743,144883,29185,149946,30679,144922,145174,32391,131910,22709,26382,26904,146087,161367,155618,146961,147129,161278,139418,18640,19128,147737,166554,148206,148237,147515,148276,148374,150085,132554,20946,132625,22943,138920,15294,146687,148484,148694,22408,149108,14747,149295,165352,170441,14178,139715,35678,166734,39382,149522,149755,150037,29193,150208,134264,22885,151205,151430,132985,36570,151596,21135,22335,29041,152217,152601,147274,150183,21948,152646,152686,158546,37332,13427,152895,161330,152926,18200,152930,152934,153543,149823,153693,20582,13563,144332,24798,153859,18300,166216,154286,154505,154630,138640,22433,29009,28598,155906,162834,36950,156082,151450,35682,156674,156746,23899,158711,36662,156804,137500,35562,150006,156808,147439,156946,19392,157119,157365,141083,37989,153569,24981,23079,194765,20411,22201,148769,157436,20074,149812,38486,28047,158909,13848,35191,157593,157806,156689,157790,29151,157895,31554,168128,133649,157990,37124,158009,31301,40432,158202,39462,158253,13919,156777,131105,31107,158260,158555,23852,144665,33743,158621,18128,158884,30011,34917,159150,22710,14108,140685,159819,160205,15444,160384,160389,37505,139642,160395,37680,160486,149968,27705,38047,160848,134904,34855,35061,141606,164979,137137,28344,150058,137248,14756,14009,23568,31203,17727,26294,171181,170148,35139,161740,161880,22230,16607,136714,14753,145199,164072,136133,29101,33638,162269,168360,23143,19639,159919,166315,162301,162314,162571,163174,147834,31555,31102,163849,28597,172767,27139,164632,21410,159239,37823,26678,38749,164207,163875,158133,136173,143919,163912,23941,166960,163971,22293,38947,166217,23979,149896,26046,27093,21458,150181,147329,15377,26422,163984,164084,164142,139169,164175,164233,164271,164378,164614,164655,164746,13770,164968,165546,18682,25574,166230,30728,37461,166328,17394,166375,17375,166376,166726,166868,23032,166921,36619,167877,168172,31569,168208,168252,15863,168286,150218,36816,29327,22155,169191,169449,169392,169400,169778,170193,170313,170346,170435,170536,170766,171354,171419,32415,171768,171811,19620,38215,172691,29090,172799,19857,36882,173515,19868,134300,36798,21953,36794,140464,36793,150163,17673,32383,28502,27313,20202,13540,166700,161949,14138,36480,137205,163876,166764,166809,162366,157359,15851,161365,146615,153141,153942,20122,155265,156248,22207,134765,36366,23405,147080,150686,25566,25296,137206,137339,25904,22061,154698,21530,152337,15814,171416,19581,22050,22046,32585,155352,22901,146752,34672,19996,135146,134473,145082,33047,40286,36120,30267,40005,30286,30649,37701,21554,33096,33527,22053,33074,33816,32957,21994,31074,22083,21526,134813,13774,22021,22001,26353,164578,13869,30004,22e3,21946,21655,21874,134209,134294,24272,151880,134774,142434,134818,40619,32090,21982,135285,25245,38765,21652,36045,29174,37238,25596,25529,25598,21865,142147,40050,143027,20890,13535,134567,20903,21581,21790,21779,30310,36397,157834,30129,32950,34820,34694,35015,33206,33820,135361,17644,29444,149254,23440,33547,157843,22139,141044,163119,147875,163187,159440,160438,37232,135641,37384,146684,173737,134828,134905,29286,138402,18254,151490,163833,135147,16634,40029,25887,142752,18675,149472,171388,135148,134666,24674,161187,135149,null,155720,135559,29091,32398,40272,19994,19972,13687,23309,27826,21351,13996,14812,21373,13989,149016,22682,150382,33325,21579,22442,154261,133497,null,14930,140389,29556,171692,19721,39917,146686,171824,19547,151465,169374,171998,33884,146870,160434,157619,145184,25390,32037,147191,146988,14890,36872,21196,15988,13946,17897,132238,30272,23280,134838,30842,163630,22695,16575,22140,39819,23924,30292,173108,40581,19681,30201,14331,24857,143578,148466,null,22109,135849,22439,149859,171526,21044,159918,13741,27722,40316,31830,39737,22494,137068,23635,25811,169168,156469,160100,34477,134440,159010,150242,134513,null,20990,139023,23950,38659,138705,40577,36940,31519,39682,23761,31651,25192,25397,39679,31695,39722,31870,39726,31810,31878,39957,31740,39689,40727,39963,149822,40794,21875,23491,20477,40600,20466,21088,15878,21201,22375,20566,22967,24082,38856,40363,36700,21609,38836,39232,38842,21292,24880,26924,21466,39946,40194,19515,38465,27008,20646,30022,137069,39386,21107,null,37209,38529,37212,null,37201,167575,25471,159011,27338,22033,37262,30074,25221,132092,29519,31856,154657,146685,null,149785,30422,39837,20010,134356,33726,34882,null,23626,27072,20717,22394,21023,24053,20174,27697,131570,20281,21660,21722,21146,36226,13822,24332,13811,null,27474,37244,40869,39831,38958,39092,39610,40616,40580,29050,31508,null,27642,34840,32632,null,22048,173642,36471,40787,null,36308,36431,40476,36353,25218,164733,36392,36469,31443,150135,31294,30936,27882,35431,30215,166490,40742,27854,34774,30147,172722,30803,194624,36108,29410,29553,35629,29442,29937,36075,150203,34351,24506,34976,17591,null,137275,159237,null,35454,140571,null,24829,30311,39639,40260,37742,39823,34805,null,34831,36087,29484,38689,39856,13782,29362,19463,31825,39242,155993,24921,19460,40598,24957,null,22367,24943,25254,25145,25294,14940,25058,21418,144373,25444,26626,13778,23895,166850,36826,167481,null,20697,138566,30982,21298,38456,134971,16485,null,30718,null,31938,155418,31962,31277,32870,32867,32077,29957,29938,35220,33306,26380,32866,160902,32859,29936,33027,30500,35209,157644,30035,159441,34729,34766,33224,34700,35401,36013,35651,30507,29944,34010,13877,27058,36262,null,35241,29800,28089,34753,147473,29927,15835,29046,24740,24988,15569,29026,24695,null,32625,166701,29264,24809,19326,21024,15384,146631,155351,161366,152881,137540,135934,170243,159196,159917,23745,156077,166415,145015,131310,157766,151310,17762,23327,156492,40784,40614,156267,12288,65292,12289,12290,65294,8231,65307,65306,65311,65281,65072,8230,8229,65104,65105,65106,183,65108,65109,65110,65111,65372,8211,65073,8212,65075,9588,65076,65103,65288,65289,65077,65078,65371,65373,65079,65080,12308,12309,65081,65082,12304,12305,65083,65084,12298,12299,65085,65086,12296,12297,65087,65088,12300,12301,65089,65090,12302,12303,65091,65092,65113,65114,65115,65116,65117,65118,8216,8217,8220,8221,12317,12318,8245,8242,65283,65286,65290,8251,167,12291,9675,9679,9651,9650,9678,9734,9733,9671,9670,9633,9632,9661,9660,12963,8453,175,65507,65343,717,65097,65098,65101,65102,65099,65100,65119,65120,65121,65291,65293,215,247,177,8730,65308,65310,65309,8806,8807,8800,8734,8786,8801,65122,65123,65124,65125,65126,65374,8745,8746,8869,8736,8735,8895,13266,13265,8747,8750,8757,8756,9792,9794,8853,8857,8593,8595,8592,8594,8598,8599,8601,8600,8741,8739,65295,65340,8725,65128,65284,65509,12306,65504,65505,65285,65312,8451,8457,65129,65130,65131,13269,13212,13213,13214,13262,13217,13198,13199,13252,176,20825,20827,20830,20829,20833,20835,21991,29929,31950,9601,9602,9603,9604,9605,9606,9607,9608,9615,9614,9613,9612,9611,9610,9609,9532,9524,9516,9508,9500,9620,9472,9474,9621,9484,9488,9492,9496,9581,9582,9584,9583,9552,9566,9578,9569,9698,9699,9701,9700,9585,9586,9587,65296,65297,65298,65299,65300,65301,65302,65303,65304,65305,8544,8545,8546,8547,8548,8549,8550,8551,8552,8553,12321,12322,12323,12324,12325,12326,12327,12328,12329,21313,21316,21317,65313,65314,65315,65316,65317,65318,65319,65320,65321,65322,65323,65324,65325,65326,65327,65328,65329,65330,65331,65332,65333,65334,65335,65336,65337,65338,65345,65346,65347,65348,65349,65350,65351,65352,65353,65354,65355,65356,65357,65358,65359,65360,65361,65362,65363,65364,65365,65366,65367,65368,65369,65370,913,914,915,916,917,918,919,920,921,922,923,924,925,926,927,928,929,931,932,933,934,935,936,937,945,946,947,948,949,950,951,952,953,954,955,956,957,958,959,960,961,963,964,965,966,967,968,969,12549,12550,12551,12552,12553,12554,12555,12556,12557,12558,12559,12560,12561,12562,12563,12564,12565,12566,12567,12568,12569,12570,12571,12572,12573,12574,12575,12576,12577,12578,12579,12580,12581,12582,12583,12584,12585,729,713,714,711,715,9216,9217,9218,9219,9220,9221,9222,9223,9224,9225,9226,9227,9228,9229,9230,9231,9232,9233,9234,9235,9236,9237,9238,9239,9240,9241,9242,9243,9244,9245,9246,9247,9249,8364,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,19968,20057,19969,19971,20035,20061,20102,20108,20154,20799,20837,20843,20960,20992,20993,21147,21269,21313,21340,21448,19977,19979,19976,19978,20011,20024,20961,20037,20040,20063,20062,20110,20129,20800,20995,21242,21315,21449,21475,22303,22763,22805,22823,22899,23376,23377,23379,23544,23567,23586,23608,23665,24029,24037,24049,24050,24051,24062,24178,24318,24331,24339,25165,19985,19984,19981,20013,20016,20025,20043,23609,20104,20113,20117,20114,20116,20130,20161,20160,20163,20166,20167,20173,20170,20171,20164,20803,20801,20839,20845,20846,20844,20887,20982,20998,20999,21e3,21243,21246,21247,21270,21305,21320,21319,21317,21342,21380,21451,21450,21453,22764,22825,22827,22826,22829,23380,23569,23588,23610,23663,24052,24187,24319,24340,24341,24515,25096,25142,25163,25166,25903,25991,26007,26020,26041,26085,26352,26376,26408,27424,27490,27513,27595,27604,27611,27663,27700,28779,29226,29238,29243,29255,29273,29275,29356,29579,19993,19990,19989,19988,19992,20027,20045,20047,20046,20197,20184,20180,20181,20182,20183,20195,20196,20185,20190,20805,20804,20873,20874,20908,20985,20986,20984,21002,21152,21151,21253,21254,21271,21277,20191,21322,21321,21345,21344,21359,21358,21435,21487,21476,21491,21484,21486,21481,21480,21500,21496,21493,21483,21478,21482,21490,21489,21488,21477,21485,21499,22235,22234,22806,22830,22833,22900,22902,23381,23427,23612,24040,24039,24038,24066,24067,24179,24188,24321,24344,24343,24517,25098,25171,25172,25170,25169,26021,26086,26414,26412,26410,26411,26413,27491,27597,27665,27664,27704,27713,27712,27710,29359,29572,29577,29916,29926,29976,29983,29992,29993,3e4,30001,30002,30003,30091,30333,30382,30399,30446,30683,30690,30707,31034,31166,31348,31435,19998,19999,20050,20051,20073,20121,20132,20134,20133,20223,20233,20249,20234,20245,20237,20240,20241,20239,20210,20214,20219,20208,20211,20221,20225,20235,20809,20807,20806,20808,20840,20849,20877,20912,21015,21009,21010,21006,21014,21155,21256,21281,21280,21360,21361,21513,21519,21516,21514,21520,21505,21515,21508,21521,21517,21512,21507,21518,21510,21522,22240,22238,22237,22323,22320,22312,22317,22316,22319,22313,22809,22810,22839,22840,22916,22904,22915,22909,22905,22914,22913,23383,23384,23431,23432,23429,23433,23546,23574,23673,24030,24070,24182,24180,24335,24347,24537,24534,25102,25100,25101,25104,25187,25179,25176,25910,26089,26088,26092,26093,26354,26355,26377,26429,26420,26417,26421,27425,27492,27515,27670,27741,27735,27737,27743,27744,27728,27733,27745,27739,27725,27726,28784,29279,29277,30334,31481,31859,31992,32566,32650,32701,32769,32771,32780,32786,32819,32895,32905,32907,32908,33251,33258,33267,33276,33292,33307,33311,33390,33394,33406,34411,34880,34892,34915,35199,38433,20018,20136,20301,20303,20295,20311,20318,20276,20315,20309,20272,20304,20305,20285,20282,20280,20291,20308,20284,20294,20323,20316,20320,20271,20302,20278,20313,20317,20296,20314,20812,20811,20813,20853,20918,20919,21029,21028,21033,21034,21032,21163,21161,21162,21164,21283,21363,21365,21533,21549,21534,21566,21542,21582,21543,21574,21571,21555,21576,21570,21531,21545,21578,21561,21563,21560,21550,21557,21558,21536,21564,21568,21553,21547,21535,21548,22250,22256,22244,22251,22346,22353,22336,22349,22343,22350,22334,22352,22351,22331,22767,22846,22941,22930,22952,22942,22947,22937,22934,22925,22948,22931,22922,22949,23389,23388,23386,23387,23436,23435,23439,23596,23616,23617,23615,23614,23696,23697,23700,23692,24043,24076,24207,24199,24202,24311,24324,24351,24420,24418,24439,24441,24536,24524,24535,24525,24561,24555,24568,24554,25106,25105,25220,25239,25238,25216,25206,25225,25197,25226,25212,25214,25209,25203,25234,25199,25240,25198,25237,25235,25233,25222,25913,25915,25912,26097,26356,26463,26446,26447,26448,26449,26460,26454,26462,26441,26438,26464,26451,26455,27493,27599,27714,27742,27801,27777,27784,27785,27781,27803,27754,27770,27792,27760,27788,27752,27798,27794,27773,27779,27762,27774,27764,27782,27766,27789,27796,27800,27778,28790,28796,28797,28792,29282,29281,29280,29380,29378,29590,29996,29995,30007,30008,30338,30447,30691,31169,31168,31167,31350,31995,32597,32918,32915,32925,32920,32923,32922,32946,33391,33426,33419,33421,35211,35282,35328,35895,35910,35925,35997,36196,36208,36275,36523,36554,36763,36784,36802,36806,36805,36804,24033,37009,37026,37034,37030,37027,37193,37318,37324,38450,38446,38449,38442,38444,20006,20054,20083,20107,20123,20126,20139,20140,20335,20381,20365,20339,20351,20332,20379,20363,20358,20355,20336,20341,20360,20329,20347,20374,20350,20367,20369,20346,20820,20818,20821,20841,20855,20854,20856,20925,20989,21051,21048,21047,21050,21040,21038,21046,21057,21182,21179,21330,21332,21331,21329,21350,21367,21368,21369,21462,21460,21463,21619,21621,21654,21624,21653,21632,21627,21623,21636,21650,21638,21628,21648,21617,21622,21644,21658,21602,21608,21643,21629,21646,22266,22403,22391,22378,22377,22369,22374,22372,22396,22812,22857,22855,22856,22852,22868,22974,22971,22996,22969,22958,22993,22982,22992,22989,22987,22995,22986,22959,22963,22994,22981,23391,23396,23395,23447,23450,23448,23452,23449,23451,23578,23624,23621,23622,23735,23713,23736,23721,23723,23729,23731,24088,24090,24086,24085,24091,24081,24184,24218,24215,24220,24213,24214,24310,24358,24359,24361,24448,24449,24447,24444,24541,24544,24573,24565,24575,24591,24596,24623,24629,24598,24618,24597,24609,24615,24617,24619,24603,25110,25109,25151,25150,25152,25215,25289,25292,25284,25279,25282,25273,25298,25307,25259,25299,25300,25291,25288,25256,25277,25276,25296,25305,25287,25293,25269,25306,25265,25304,25302,25303,25286,25260,25294,25918,26023,26044,26106,26132,26131,26124,26118,26114,26126,26112,26127,26133,26122,26119,26381,26379,26477,26507,26517,26481,26524,26483,26487,26503,26525,26519,26479,26480,26495,26505,26494,26512,26485,26522,26515,26492,26474,26482,27427,27494,27495,27519,27667,27675,27875,27880,27891,27825,27852,27877,27827,27837,27838,27836,27874,27819,27861,27859,27832,27844,27833,27841,27822,27863,27845,27889,27839,27835,27873,27867,27850,27820,27887,27868,27862,27872,28821,28814,28818,28810,28825,29228,29229,29240,29256,29287,29289,29376,29390,29401,29399,29392,29609,29608,29599,29611,29605,30013,30109,30105,30106,30340,30402,30450,30452,30693,30717,31038,31040,31041,31177,31176,31354,31353,31482,31998,32596,32652,32651,32773,32954,32933,32930,32945,32929,32939,32937,32948,32938,32943,33253,33278,33293,33459,33437,33433,33453,33469,33439,33465,33457,33452,33445,33455,33464,33443,33456,33470,33463,34382,34417,21021,34920,36555,36814,36820,36817,37045,37048,37041,37046,37319,37329,38263,38272,38428,38464,38463,38459,38468,38466,38585,38632,38738,38750,20127,20141,20142,20449,20405,20399,20415,20448,20433,20431,20445,20419,20406,20440,20447,20426,20439,20398,20432,20420,20418,20442,20430,20446,20407,20823,20882,20881,20896,21070,21059,21066,21069,21068,21067,21063,21191,21193,21187,21185,21261,21335,21371,21402,21467,21676,21696,21672,21710,21705,21688,21670,21683,21703,21698,21693,21674,21697,21700,21704,21679,21675,21681,21691,21673,21671,21695,22271,22402,22411,22432,22435,22434,22478,22446,22419,22869,22865,22863,22862,22864,23004,23e3,23039,23011,23016,23043,23013,23018,23002,23014,23041,23035,23401,23459,23462,23460,23458,23461,23553,23630,23631,23629,23627,23769,23762,24055,24093,24101,24095,24189,24224,24230,24314,24328,24365,24421,24456,24453,24458,24459,24455,24460,24457,24594,24605,24608,24613,24590,24616,24653,24688,24680,24674,24646,24643,24684,24683,24682,24676,25153,25308,25366,25353,25340,25325,25345,25326,25341,25351,25329,25335,25327,25324,25342,25332,25361,25346,25919,25925,26027,26045,26082,26149,26157,26144,26151,26159,26143,26152,26161,26148,26359,26623,26579,26609,26580,26576,26604,26550,26543,26613,26601,26607,26564,26577,26548,26586,26597,26552,26575,26590,26611,26544,26585,26594,26589,26578,27498,27523,27526,27573,27602,27607,27679,27849,27915,27954,27946,27969,27941,27916,27953,27934,27927,27963,27965,27966,27958,27931,27893,27961,27943,27960,27945,27950,27957,27918,27947,28843,28858,28851,28844,28847,28845,28856,28846,28836,29232,29298,29295,29300,29417,29408,29409,29623,29642,29627,29618,29645,29632,29619,29978,29997,30031,30028,30030,30027,30123,30116,30117,30114,30115,30328,30342,30343,30344,30408,30406,30403,30405,30465,30457,30456,30473,30475,30462,30460,30471,30684,30722,30740,30732,30733,31046,31049,31048,31047,31161,31162,31185,31186,31179,31359,31361,31487,31485,31869,32002,32005,32e3,32009,32007,32004,32006,32568,32654,32703,32772,32784,32781,32785,32822,32982,32997,32986,32963,32964,32972,32993,32987,32974,32990,32996,32989,33268,33314,33511,33539,33541,33507,33499,33510,33540,33509,33538,33545,33490,33495,33521,33537,33500,33492,33489,33502,33491,33503,33519,33542,34384,34425,34427,34426,34893,34923,35201,35284,35336,35330,35331,35998,36e3,36212,36211,36276,36557,36556,36848,36838,36834,36842,36837,36845,36843,36836,36840,37066,37070,37057,37059,37195,37194,37325,38274,38480,38475,38476,38477,38754,38761,38859,38893,38899,38913,39080,39131,39135,39318,39321,20056,20147,20492,20493,20515,20463,20518,20517,20472,20521,20502,20486,20540,20511,20506,20498,20497,20474,20480,20500,20520,20465,20513,20491,20505,20504,20467,20462,20525,20522,20478,20523,20489,20860,20900,20901,20898,20941,20940,20934,20939,21078,21084,21076,21083,21085,21290,21375,21407,21405,21471,21736,21776,21761,21815,21756,21733,21746,21766,21754,21780,21737,21741,21729,21769,21742,21738,21734,21799,21767,21757,21775,22275,22276,22466,22484,22475,22467,22537,22799,22871,22872,22874,23057,23064,23068,23071,23067,23059,23020,23072,23075,23081,23077,23052,23049,23403,23640,23472,23475,23478,23476,23470,23477,23481,23480,23556,23633,23637,23632,23789,23805,23803,23786,23784,23792,23798,23809,23796,24046,24109,24107,24235,24237,24231,24369,24466,24465,24464,24665,24675,24677,24656,24661,24685,24681,24687,24708,24735,24730,24717,24724,24716,24709,24726,25159,25331,25352,25343,25422,25406,25391,25429,25410,25414,25423,25417,25402,25424,25405,25386,25387,25384,25421,25420,25928,25929,26009,26049,26053,26178,26185,26191,26179,26194,26188,26181,26177,26360,26388,26389,26391,26657,26680,26696,26694,26707,26681,26690,26708,26665,26803,26647,26700,26705,26685,26612,26704,26688,26684,26691,26666,26693,26643,26648,26689,27530,27529,27575,27683,27687,27688,27686,27684,27888,28010,28053,28040,28039,28006,28024,28023,27993,28051,28012,28041,28014,27994,28020,28009,28044,28042,28025,28037,28005,28052,28874,28888,28900,28889,28872,28879,29241,29305,29436,29433,29437,29432,29431,29574,29677,29705,29678,29664,29674,29662,30036,30045,30044,30042,30041,30142,30149,30151,30130,30131,30141,30140,30137,30146,30136,30347,30384,30410,30413,30414,30505,30495,30496,30504,30697,30768,30759,30776,30749,30772,30775,30757,30765,30752,30751,30770,31061,31056,31072,31071,31062,31070,31069,31063,31066,31204,31203,31207,31199,31206,31209,31192,31364,31368,31449,31494,31505,31881,32033,32023,32011,32010,32032,32034,32020,32016,32021,32026,32028,32013,32025,32027,32570,32607,32660,32709,32705,32774,32792,32789,32793,32791,32829,32831,33009,33026,33008,33029,33005,33012,33030,33016,33011,33032,33021,33034,33020,33007,33261,33260,33280,33296,33322,33323,33320,33324,33467,33579,33618,33620,33610,33592,33616,33609,33589,33588,33615,33586,33593,33590,33559,33600,33585,33576,33603,34388,34442,34474,34451,34468,34473,34444,34467,34460,34928,34935,34945,34946,34941,34937,35352,35344,35342,35340,35349,35338,35351,35347,35350,35343,35345,35912,35962,35961,36001,36002,36215,36524,36562,36564,36559,36785,36865,36870,36855,36864,36858,36852,36867,36861,36869,36856,37013,37089,37085,37090,37202,37197,37196,37336,37341,37335,37340,37337,38275,38498,38499,38497,38491,38493,38500,38488,38494,38587,39138,39340,39592,39640,39717,39730,39740,20094,20602,20605,20572,20551,20547,20556,20570,20553,20581,20598,20558,20565,20597,20596,20599,20559,20495,20591,20589,20828,20885,20976,21098,21103,21202,21209,21208,21205,21264,21263,21273,21311,21312,21310,21443,26364,21830,21866,21862,21828,21854,21857,21827,21834,21809,21846,21839,21845,21807,21860,21816,21806,21852,21804,21859,21811,21825,21847,22280,22283,22281,22495,22533,22538,22534,22496,22500,22522,22530,22581,22519,22521,22816,22882,23094,23105,23113,23142,23146,23104,23100,23138,23130,23110,23114,23408,23495,23493,23492,23490,23487,23494,23561,23560,23559,23648,23644,23645,23815,23814,23822,23835,23830,23842,23825,23849,23828,23833,23844,23847,23831,24034,24120,24118,24115,24119,24247,24248,24246,24245,24254,24373,24375,24407,24428,24425,24427,24471,24473,24478,24472,24481,24480,24476,24703,24739,24713,24736,24744,24779,24756,24806,24765,24773,24763,24757,24796,24764,24792,24789,24774,24799,24760,24794,24775,25114,25115,25160,25504,25511,25458,25494,25506,25509,25463,25447,25496,25514,25457,25513,25481,25475,25499,25451,25512,25476,25480,25497,25505,25516,25490,25487,25472,25467,25449,25448,25466,25949,25942,25937,25945,25943,21855,25935,25944,25941,25940,26012,26011,26028,26063,26059,26060,26062,26205,26202,26212,26216,26214,26206,26361,21207,26395,26753,26799,26786,26771,26805,26751,26742,26801,26791,26775,26800,26755,26820,26797,26758,26757,26772,26781,26792,26783,26785,26754,27442,27578,27627,27628,27691,28046,28092,28147,28121,28082,28129,28108,28132,28155,28154,28165,28103,28107,28079,28113,28078,28126,28153,28088,28151,28149,28101,28114,28186,28085,28122,28139,28120,28138,28145,28142,28136,28102,28100,28074,28140,28095,28134,28921,28937,28938,28925,28911,29245,29309,29313,29468,29467,29462,29459,29465,29575,29701,29706,29699,29702,29694,29709,29920,29942,29943,29980,29986,30053,30054,30050,30064,30095,30164,30165,30133,30154,30157,30350,30420,30418,30427,30519,30526,30524,30518,30520,30522,30827,30787,30798,31077,31080,31085,31227,31378,31381,31520,31528,31515,31532,31526,31513,31518,31534,31890,31895,31893,32070,32067,32113,32046,32057,32060,32064,32048,32051,32068,32047,32066,32050,32049,32573,32670,32666,32716,32718,32722,32796,32842,32838,33071,33046,33059,33067,33065,33072,33060,33282,33333,33335,33334,33337,33678,33694,33688,33656,33698,33686,33725,33707,33682,33674,33683,33673,33696,33655,33659,33660,33670,33703,34389,24426,34503,34496,34486,34500,34485,34502,34507,34481,34479,34505,34899,34974,34952,34987,34962,34966,34957,34955,35219,35215,35370,35357,35363,35365,35377,35373,35359,35355,35362,35913,35930,36009,36012,36011,36008,36010,36007,36199,36198,36286,36282,36571,36575,36889,36877,36890,36887,36899,36895,36893,36880,36885,36894,36896,36879,36898,36886,36891,36884,37096,37101,37117,37207,37326,37365,37350,37347,37351,37357,37353,38281,38506,38517,38515,38520,38512,38516,38518,38519,38508,38592,38634,38633,31456,31455,38914,38915,39770,40165,40565,40575,40613,40635,20642,20621,20613,20633,20625,20608,20630,20632,20634,26368,20977,21106,21108,21109,21097,21214,21213,21211,21338,21413,21883,21888,21927,21884,21898,21917,21912,21890,21916,21930,21908,21895,21899,21891,21939,21934,21919,21822,21938,21914,21947,21932,21937,21886,21897,21931,21913,22285,22575,22570,22580,22564,22576,22577,22561,22557,22560,22777,22778,22880,23159,23194,23167,23186,23195,23207,23411,23409,23506,23500,23507,23504,23562,23563,23601,23884,23888,23860,23879,24061,24133,24125,24128,24131,24190,24266,24257,24258,24260,24380,24429,24489,24490,24488,24785,24801,24754,24758,24800,24860,24867,24826,24853,24816,24827,24820,24936,24817,24846,24822,24841,24832,24850,25119,25161,25507,25484,25551,25536,25577,25545,25542,25549,25554,25571,25552,25569,25558,25581,25582,25462,25588,25578,25563,25682,25562,25593,25950,25958,25954,25955,26001,26e3,26031,26222,26224,26228,26230,26223,26257,26234,26238,26231,26366,26367,26399,26397,26874,26837,26848,26840,26839,26885,26847,26869,26862,26855,26873,26834,26866,26851,26827,26829,26893,26898,26894,26825,26842,26990,26875,27454,27450,27453,27544,27542,27580,27631,27694,27695,27692,28207,28216,28244,28193,28210,28263,28234,28192,28197,28195,28187,28251,28248,28196,28246,28270,28205,28198,28271,28212,28237,28218,28204,28227,28189,28222,28363,28297,28185,28238,28259,28228,28274,28265,28255,28953,28954,28966,28976,28961,28982,29038,28956,29260,29316,29312,29494,29477,29492,29481,29754,29738,29747,29730,29733,29749,29750,29748,29743,29723,29734,29736,29989,29990,30059,30058,30178,30171,30179,30169,30168,30174,30176,30331,30332,30358,30355,30388,30428,30543,30701,30813,30828,30831,31245,31240,31243,31237,31232,31384,31383,31382,31461,31459,31561,31574,31558,31568,31570,31572,31565,31563,31567,31569,31903,31909,32094,32080,32104,32085,32043,32110,32114,32097,32102,32098,32112,32115,21892,32724,32725,32779,32850,32901,33109,33108,33099,33105,33102,33081,33094,33086,33100,33107,33140,33298,33308,33769,33795,33784,33805,33760,33733,33803,33729,33775,33777,33780,33879,33802,33776,33804,33740,33789,33778,33738,33848,33806,33796,33756,33799,33748,33759,34395,34527,34521,34541,34516,34523,34532,34512,34526,34903,35009,35010,34993,35203,35222,35387,35424,35413,35422,35388,35393,35412,35419,35408,35398,35380,35386,35382,35414,35937,35970,36015,36028,36019,36029,36033,36027,36032,36020,36023,36022,36031,36024,36234,36229,36225,36302,36317,36299,36314,36305,36300,36315,36294,36603,36600,36604,36764,36910,36917,36913,36920,36914,36918,37122,37109,37129,37118,37219,37221,37327,37396,37397,37411,37385,37406,37389,37392,37383,37393,38292,38287,38283,38289,38291,38290,38286,38538,38542,38539,38525,38533,38534,38541,38514,38532,38593,38597,38596,38598,38599,38639,38642,38860,38917,38918,38920,39143,39146,39151,39145,39154,39149,39342,39341,40643,40653,40657,20098,20653,20661,20658,20659,20677,20670,20652,20663,20667,20655,20679,21119,21111,21117,21215,21222,21220,21218,21219,21295,21983,21992,21971,21990,21966,21980,21959,21969,21987,21988,21999,21978,21985,21957,21958,21989,21961,22290,22291,22622,22609,22616,22615,22618,22612,22635,22604,22637,22602,22626,22610,22603,22887,23233,23241,23244,23230,23229,23228,23219,23234,23218,23913,23919,24140,24185,24265,24264,24338,24409,24492,24494,24858,24847,24904,24863,24819,24859,24825,24833,24840,24910,24908,24900,24909,24894,24884,24871,24845,24838,24887,25121,25122,25619,25662,25630,25642,25645,25661,25644,25615,25628,25620,25613,25654,25622,25623,25606,25964,26015,26032,26263,26249,26247,26248,26262,26244,26264,26253,26371,27028,26989,26970,26999,26976,26964,26997,26928,27010,26954,26984,26987,26974,26963,27001,27014,26973,26979,26971,27463,27506,27584,27583,27603,27645,28322,28335,28371,28342,28354,28304,28317,28359,28357,28325,28312,28348,28346,28331,28369,28310,28316,28356,28372,28330,28327,28340,29006,29017,29033,29028,29001,29031,29020,29036,29030,29004,29029,29022,28998,29032,29014,29242,29266,29495,29509,29503,29502,29807,29786,29781,29791,29790,29761,29759,29785,29787,29788,30070,30072,30208,30192,30209,30194,30193,30202,30207,30196,30195,30430,30431,30555,30571,30566,30558,30563,30585,30570,30572,30556,30565,30568,30562,30702,30862,30896,30871,30872,30860,30857,30844,30865,30867,30847,31098,31103,31105,33836,31165,31260,31258,31264,31252,31263,31262,31391,31392,31607,31680,31584,31598,31591,31921,31923,31925,32147,32121,32145,32129,32143,32091,32622,32617,32618,32626,32681,32680,32676,32854,32856,32902,32900,33137,33136,33144,33125,33134,33139,33131,33145,33146,33126,33285,33351,33922,33911,33853,33841,33909,33894,33899,33865,33900,33883,33852,33845,33889,33891,33897,33901,33862,34398,34396,34399,34553,34579,34568,34567,34560,34558,34555,34562,34563,34566,34570,34905,35039,35028,35033,35036,35032,35037,35041,35018,35029,35026,35228,35299,35435,35442,35443,35430,35433,35440,35463,35452,35427,35488,35441,35461,35437,35426,35438,35436,35449,35451,35390,35432,35938,35978,35977,36042,36039,36040,36036,36018,36035,36034,36037,36321,36319,36328,36335,36339,36346,36330,36324,36326,36530,36611,36617,36606,36618,36767,36786,36939,36938,36947,36930,36948,36924,36949,36944,36935,36943,36942,36941,36945,36926,36929,37138,37143,37228,37226,37225,37321,37431,37463,37432,37437,37440,37438,37467,37451,37476,37457,37428,37449,37453,37445,37433,37439,37466,38296,38552,38548,38549,38605,38603,38601,38602,38647,38651,38649,38646,38742,38772,38774,38928,38929,38931,38922,38930,38924,39164,39156,39165,39166,39347,39345,39348,39649,40169,40578,40718,40723,40736,20711,20718,20709,20694,20717,20698,20693,20687,20689,20721,20686,20713,20834,20979,21123,21122,21297,21421,22014,22016,22043,22039,22013,22036,22022,22025,22029,22030,22007,22038,22047,22024,22032,22006,22296,22294,22645,22654,22659,22675,22666,22649,22661,22653,22781,22821,22818,22820,22890,22889,23265,23270,23273,23255,23254,23256,23267,23413,23518,23527,23521,23525,23526,23528,23522,23524,23519,23565,23650,23940,23943,24155,24163,24149,24151,24148,24275,24278,24330,24390,24432,24505,24903,24895,24907,24951,24930,24931,24927,24922,24920,24949,25130,25735,25688,25684,25764,25720,25695,25722,25681,25703,25652,25709,25723,25970,26017,26071,26070,26274,26280,26269,27036,27048,27029,27073,27054,27091,27083,27035,27063,27067,27051,27060,27088,27085,27053,27084,27046,27075,27043,27465,27468,27699,28467,28436,28414,28435,28404,28457,28478,28448,28460,28431,28418,28450,28415,28399,28422,28465,28472,28466,28451,28437,28459,28463,28552,28458,28396,28417,28402,28364,28407,29076,29081,29053,29066,29060,29074,29246,29330,29334,29508,29520,29796,29795,29802,29808,29805,29956,30097,30247,30221,30219,30217,30227,30433,30435,30596,30589,30591,30561,30913,30879,30887,30899,30889,30883,31118,31119,31117,31278,31281,31402,31401,31469,31471,31649,31637,31627,31605,31639,31645,31636,31631,31672,31623,31620,31929,31933,31934,32187,32176,32156,32189,32190,32160,32202,32180,32178,32177,32186,32162,32191,32181,32184,32173,32210,32199,32172,32624,32736,32737,32735,32862,32858,32903,33104,33152,33167,33160,33162,33151,33154,33255,33274,33287,33300,33310,33355,33993,33983,33990,33988,33945,33950,33970,33948,33995,33976,33984,34003,33936,33980,34001,33994,34623,34588,34619,34594,34597,34612,34584,34645,34615,34601,35059,35074,35060,35065,35064,35069,35048,35098,35055,35494,35468,35486,35491,35469,35489,35475,35492,35498,35493,35496,35480,35473,35482,35495,35946,35981,35980,36051,36049,36050,36203,36249,36245,36348,36628,36626,36629,36627,36771,36960,36952,36956,36963,36953,36958,36962,36957,36955,37145,37144,37150,37237,37240,37239,37236,37496,37504,37509,37528,37526,37499,37523,37532,37544,37500,37521,38305,38312,38313,38307,38309,38308,38553,38556,38555,38604,38610,38656,38780,38789,38902,38935,38936,39087,39089,39171,39173,39180,39177,39361,39599,39600,39654,39745,39746,40180,40182,40179,40636,40763,40778,20740,20736,20731,20725,20729,20738,20744,20745,20741,20956,21127,21128,21129,21133,21130,21232,21426,22062,22075,22073,22066,22079,22068,22057,22099,22094,22103,22132,22070,22063,22064,22656,22687,22686,22707,22684,22702,22697,22694,22893,23305,23291,23307,23285,23308,23304,23534,23532,23529,23531,23652,23653,23965,23956,24162,24159,24161,24290,24282,24287,24285,24291,24288,24392,24433,24503,24501,24950,24935,24942,24925,24917,24962,24956,24944,24939,24958,24999,24976,25003,24974,25004,24986,24996,24980,25006,25134,25705,25711,25721,25758,25778,25736,25744,25776,25765,25747,25749,25769,25746,25774,25773,25771,25754,25772,25753,25762,25779,25973,25975,25976,26286,26283,26292,26289,27171,27167,27112,27137,27166,27161,27133,27169,27155,27146,27123,27138,27141,27117,27153,27472,27470,27556,27589,27590,28479,28540,28548,28497,28518,28500,28550,28525,28507,28536,28526,28558,28538,28528,28516,28567,28504,28373,28527,28512,28511,29087,29100,29105,29096,29270,29339,29518,29527,29801,29835,29827,29822,29824,30079,30240,30249,30239,30244,30246,30241,30242,30362,30394,30436,30606,30599,30604,30609,30603,30923,30917,30906,30922,30910,30933,30908,30928,31295,31292,31296,31293,31287,31291,31407,31406,31661,31665,31684,31668,31686,31687,31681,31648,31692,31946,32224,32244,32239,32251,32216,32236,32221,32232,32227,32218,32222,32233,32158,32217,32242,32249,32629,32631,32687,32745,32806,33179,33180,33181,33184,33178,33176,34071,34109,34074,34030,34092,34093,34067,34065,34083,34081,34068,34028,34085,34047,34054,34690,34676,34678,34656,34662,34680,34664,34649,34647,34636,34643,34907,34909,35088,35079,35090,35091,35093,35082,35516,35538,35527,35524,35477,35531,35576,35506,35529,35522,35519,35504,35542,35533,35510,35513,35547,35916,35918,35948,36064,36062,36070,36068,36076,36077,36066,36067,36060,36074,36065,36205,36255,36259,36395,36368,36381,36386,36367,36393,36383,36385,36382,36538,36637,36635,36639,36649,36646,36650,36636,36638,36645,36969,36974,36968,36973,36983,37168,37165,37159,37169,37255,37257,37259,37251,37573,37563,37559,37610,37548,37604,37569,37555,37564,37586,37575,37616,37554,38317,38321,38660,38662,38663,38665,38752,38797,38795,38799,38945,38955,38940,39091,39178,39187,39186,39192,39389,39376,39391,39387,39377,39381,39378,39385,39607,39662,39663,39719,39749,39748,39799,39791,40198,40201,40195,40617,40638,40654,22696,40786,20754,20760,20756,20752,20757,20864,20906,20957,21137,21139,21235,22105,22123,22137,22121,22116,22136,22122,22120,22117,22129,22127,22124,22114,22134,22721,22718,22727,22725,22894,23325,23348,23416,23536,23566,24394,25010,24977,25001,24970,25037,25014,25022,25034,25032,25136,25797,25793,25803,25787,25788,25818,25796,25799,25794,25805,25791,25810,25812,25790,25972,26310,26313,26297,26308,26311,26296,27197,27192,27194,27225,27243,27224,27193,27204,27234,27233,27211,27207,27189,27231,27208,27481,27511,27653,28610,28593,28577,28611,28580,28609,28583,28595,28608,28601,28598,28582,28576,28596,29118,29129,29136,29138,29128,29141,29113,29134,29145,29148,29123,29124,29544,29852,29859,29848,29855,29854,29922,29964,29965,30260,30264,30266,30439,30437,30624,30622,30623,30629,30952,30938,30956,30951,31142,31309,31310,31302,31308,31307,31418,31705,31761,31689,31716,31707,31713,31721,31718,31957,31958,32266,32273,32264,32283,32291,32286,32285,32265,32272,32633,32690,32752,32753,32750,32808,33203,33193,33192,33275,33288,33368,33369,34122,34137,34120,34152,34153,34115,34121,34157,34154,34142,34691,34719,34718,34722,34701,34913,35114,35122,35109,35115,35105,35242,35238,35558,35578,35563,35569,35584,35548,35559,35566,35582,35585,35586,35575,35565,35571,35574,35580,35947,35949,35987,36084,36420,36401,36404,36418,36409,36405,36667,36655,36664,36659,36776,36774,36981,36980,36984,36978,36988,36986,37172,37266,37664,37686,37624,37683,37679,37666,37628,37675,37636,37658,37648,37670,37665,37653,37678,37657,38331,38567,38568,38570,38613,38670,38673,38678,38669,38675,38671,38747,38748,38758,38808,38960,38968,38971,38967,38957,38969,38948,39184,39208,39198,39195,39201,39194,39405,39394,39409,39608,39612,39675,39661,39720,39825,40213,40227,40230,40232,40210,40219,40664,40660,40845,40860,20778,20767,20769,20786,21237,22158,22144,22160,22149,22151,22159,22741,22739,22737,22734,23344,23338,23332,23418,23607,23656,23996,23994,23997,23992,24171,24396,24509,25033,25026,25031,25062,25035,25138,25140,25806,25802,25816,25824,25840,25830,25836,25841,25826,25837,25986,25987,26329,26326,27264,27284,27268,27298,27292,27355,27299,27262,27287,27280,27296,27484,27566,27610,27656,28632,28657,28639,28640,28635,28644,28651,28655,28544,28652,28641,28649,28629,28654,28656,29159,29151,29166,29158,29157,29165,29164,29172,29152,29237,29254,29552,29554,29865,29872,29862,29864,30278,30274,30284,30442,30643,30634,30640,30636,30631,30637,30703,30967,30970,30964,30959,30977,31143,31146,31319,31423,31751,31757,31742,31735,31756,31712,31968,31964,31966,31970,31967,31961,31965,32302,32318,32326,32311,32306,32323,32299,32317,32305,32325,32321,32308,32313,32328,32309,32319,32303,32580,32755,32764,32881,32882,32880,32879,32883,33222,33219,33210,33218,33216,33215,33213,33225,33214,33256,33289,33393,34218,34180,34174,34204,34193,34196,34223,34203,34183,34216,34186,34407,34752,34769,34739,34770,34758,34731,34747,34746,34760,34763,35131,35126,35140,35128,35133,35244,35598,35607,35609,35611,35594,35616,35613,35588,35600,35905,35903,35955,36090,36093,36092,36088,36091,36264,36425,36427,36424,36426,36676,36670,36674,36677,36671,36991,36989,36996,36993,36994,36992,37177,37283,37278,37276,37709,37762,37672,37749,37706,37733,37707,37656,37758,37740,37723,37744,37722,37716,38346,38347,38348,38344,38342,38577,38584,38614,38684,38686,38816,38867,38982,39094,39221,39425,39423,39854,39851,39850,39853,40251,40255,40587,40655,40670,40668,40669,40667,40766,40779,21474,22165,22190,22745,22744,23352,24413,25059,25139,25844,25842,25854,25862,25850,25851,25847,26039,26332,26406,27315,27308,27331,27323,27320,27330,27310,27311,27487,27512,27567,28681,28683,28670,28678,28666,28689,28687,29179,29180,29182,29176,29559,29557,29863,29887,29973,30294,30296,30290,30653,30655,30651,30652,30990,31150,31329,31330,31328,31428,31429,31787,31783,31786,31774,31779,31777,31975,32340,32341,32350,32346,32353,32338,32345,32584,32761,32763,32887,32886,33229,33231,33290,34255,34217,34253,34256,34249,34224,34234,34233,34214,34799,34796,34802,34784,35206,35250,35316,35624,35641,35628,35627,35920,36101,36441,36451,36454,36452,36447,36437,36544,36681,36685,36999,36995,37e3,37291,37292,37328,37780,37770,37782,37794,37811,37806,37804,37808,37784,37786,37783,38356,38358,38352,38357,38626,38620,38617,38619,38622,38692,38819,38822,38829,38905,38989,38991,38988,38990,38995,39098,39230,39231,39229,39214,39333,39438,39617,39683,39686,39759,39758,39757,39882,39881,39933,39880,39872,40273,40285,40288,40672,40725,40748,20787,22181,22750,22751,22754,23541,40848,24300,25074,25079,25078,25077,25856,25871,26336,26333,27365,27357,27354,27347,28699,28703,28712,28698,28701,28693,28696,29190,29197,29272,29346,29560,29562,29885,29898,29923,30087,30086,30303,30305,30663,31001,31153,31339,31337,31806,31807,31800,31805,31799,31808,32363,32365,32377,32361,32362,32645,32371,32694,32697,32696,33240,34281,34269,34282,34261,34276,34277,34295,34811,34821,34829,34809,34814,35168,35167,35158,35166,35649,35676,35672,35657,35674,35662,35663,35654,35673,36104,36106,36476,36466,36487,36470,36460,36474,36468,36692,36686,36781,37002,37003,37297,37294,37857,37841,37855,37827,37832,37852,37853,37846,37858,37837,37848,37860,37847,37864,38364,38580,38627,38698,38695,38753,38876,38907,39006,39e3,39003,39100,39237,39241,39446,39449,39693,39912,39911,39894,39899,40329,40289,40306,40298,40300,40594,40599,40595,40628,21240,22184,22199,22198,22196,22204,22756,23360,23363,23421,23542,24009,25080,25082,25880,25876,25881,26342,26407,27372,28734,28720,28722,29200,29563,29903,30306,30309,31014,31018,31020,31019,31431,31478,31820,31811,31821,31983,31984,36782,32381,32380,32386,32588,32768,33242,33382,34299,34297,34321,34298,34310,34315,34311,34314,34836,34837,35172,35258,35320,35696,35692,35686,35695,35679,35691,36111,36109,36489,36481,36485,36482,37300,37323,37912,37891,37885,38369,38704,39108,39250,39249,39336,39467,39472,39479,39477,39955,39949,40569,40629,40680,40751,40799,40803,40801,20791,20792,22209,22208,22210,22804,23660,24013,25084,25086,25885,25884,26005,26345,27387,27396,27386,27570,28748,29211,29351,29910,29908,30313,30675,31824,32399,32396,32700,34327,34349,34330,34851,34850,34849,34847,35178,35180,35261,35700,35703,35709,36115,36490,36493,36491,36703,36783,37306,37934,37939,37941,37946,37944,37938,37931,38370,38712,38713,38706,38911,39015,39013,39255,39493,39491,39488,39486,39631,39764,39761,39981,39973,40367,40372,40386,40376,40605,40687,40729,40796,40806,40807,20796,20795,22216,22218,22217,23423,24020,24018,24398,25087,25892,27402,27489,28753,28760,29568,29924,30090,30318,30316,31155,31840,31839,32894,32893,33247,35186,35183,35324,35712,36118,36119,36497,36499,36705,37192,37956,37969,37970,38717,38718,38851,38849,39019,39253,39509,39501,39634,39706,40009,39985,39998,39995,40403,40407,40756,40812,40810,40852,22220,24022,25088,25891,25899,25898,26348,27408,29914,31434,31844,31843,31845,32403,32406,32404,33250,34360,34367,34865,35722,37008,37007,37987,37984,37988,38760,39023,39260,39514,39515,39511,39635,39636,39633,40020,40023,40022,40421,40607,40692,22225,22761,25900,28766,30321,30322,30679,32592,32648,34870,34873,34914,35731,35730,35734,33399,36123,37312,37994,38722,38728,38724,38854,39024,39519,39714,39768,40031,40441,40442,40572,40573,40711,40823,40818,24307,27414,28771,31852,31854,34875,35264,36513,37313,38002,38e3,39025,39262,39638,39715,40652,28772,30682,35738,38007,38857,39522,39525,32412,35740,36522,37317,38013,38014,38012,40055,40056,40695,35924,38015,40474,29224,39530,39729,40475,40478,31858,9312,9313,9314,9315,9316,9317,9318,9319,9320,9321,9332,9333,9334,9335,9336,9337,9338,9339,9340,9341,8560,8561,8562,8563,8564,8565,8566,8567,8568,8569,20022,20031,20101,20128,20866,20886,20907,21241,21304,21353,21430,22794,23424,24027,12083,24191,24308,24400,24417,25908,26080,30098,30326,36789,38582,168,710,12541,12542,12445,12446,12291,20189,12293,12294,12295,12540,65339,65341,10045,12353,12354,12355,12356,12357,12358,12359,12360,12361,12362,12363,12364,12365,12366,12367,12368,12369,12370,12371,12372,12373,12374,12375,12376,12377,12378,12379,12380,12381,12382,12383,12384,12385,12386,12387,12388,12389,12390,12391,12392,12393,12394,12395,12396,12397,12398,12399,12400,12401,12402,12403,12404,12405,12406,12407,12408,12409,12410,12411,12412,12413,12414,12415,12416,12417,12418,12419,12420,12421,12422,12423,12424,12425,12426,12427,12428,12429,12430,12431,12432,12433,12434,12435,12449,12450,12451,12452,12453,12454,12455,12456,12457,12458,12459,12460,12461,12462,12463,12464,12465,12466,12467,12468,12469,12470,12471,12472,12473,12474,12475,12476,12477,12478,12479,12480,12481,12482,12483,12484,12485,12486,12487,12488,12489,12490,12491,12492,12493,12494,12495,12496,12497,12498,12499,12500,12501,12502,12503,12504,12505,12506,12507,12508,12509,12510,12511,12512,12513,12514,12515,12516,12517,12518,12519,12520,12521,12522,12523,12524,12525,12526,12527,12528,12529,12530,12531,12532,12533,12534,1040,1041,1042,1043,1044,1045,1025,1046,1047,1048,1049,1050,1051,1052,1053,1054,1055,1056,1057,1058,1059,1060,1061,1062,1063,1064,1065,1066,1067,1068,1069,1070,1071,1072,1073,1074,1075,1076,1077,1105,1078,1079,1080,1081,1082,1083,1084,1085,1086,1087,1088,1089,1090,1091,1092,1093,1094,1095,1096,1097,1098,1099,1100,1101,1102,1103,8679,8632,8633,12751,131276,20058,131210,20994,17553,40880,20872,40881,161287,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,65506,65508,65287,65282,12849,8470,8481,12443,12444,11904,11908,11910,11911,11912,11914,11916,11917,11925,11932,11933,11941,11943,11946,11948,11950,11958,11964,11966,11974,11978,11980,11981,11983,11990,11991,11998,12003,null,null,null,643,592,603,596,629,339,248,331,650,618,20034,20060,20981,21274,21378,19975,19980,20039,20109,22231,64012,23662,24435,19983,20871,19982,20014,20115,20162,20169,20168,20888,21244,21356,21433,22304,22787,22828,23568,24063,26081,27571,27596,27668,29247,20017,20028,20200,20188,20201,20193,20189,20186,21004,21276,21324,22306,22307,22807,22831,23425,23428,23570,23611,23668,23667,24068,24192,24194,24521,25097,25168,27669,27702,27715,27711,27707,29358,29360,29578,31160,32906,38430,20238,20248,20268,20213,20244,20209,20224,20215,20232,20253,20226,20229,20258,20243,20228,20212,20242,20913,21011,21001,21008,21158,21282,21279,21325,21386,21511,22241,22239,22318,22314,22324,22844,22912,22908,22917,22907,22910,22903,22911,23382,23573,23589,23676,23674,23675,23678,24031,24181,24196,24322,24346,24436,24533,24532,24527,25180,25182,25188,25185,25190,25186,25177,25184,25178,25189,26095,26094,26430,26425,26424,26427,26426,26431,26428,26419,27672,27718,27730,27740,27727,27722,27732,27723,27724,28785,29278,29364,29365,29582,29994,30335,31349,32593,33400,33404,33408,33405,33407,34381,35198,37017,37015,37016,37019,37012,38434,38436,38432,38435,20310,20283,20322,20297,20307,20324,20286,20327,20306,20319,20289,20312,20269,20275,20287,20321,20879,20921,21020,21022,21025,21165,21166,21257,21347,21362,21390,21391,21552,21559,21546,21588,21573,21529,21532,21541,21528,21565,21583,21569,21544,21540,21575,22254,22247,22245,22337,22341,22348,22345,22347,22354,22790,22848,22950,22936,22944,22935,22926,22946,22928,22927,22951,22945,23438,23442,23592,23594,23693,23695,23688,23691,23689,23698,23690,23686,23699,23701,24032,24074,24078,24203,24201,24204,24200,24205,24325,24349,24440,24438,24530,24529,24528,24557,24552,24558,24563,24545,24548,24547,24570,24559,24567,24571,24576,24564,25146,25219,25228,25230,25231,25236,25223,25201,25211,25210,25200,25217,25224,25207,25213,25202,25204,25911,26096,26100,26099,26098,26101,26437,26439,26457,26453,26444,26440,26461,26445,26458,26443,27600,27673,27674,27768,27751,27755,27780,27787,27791,27761,27759,27753,27802,27757,27783,27797,27804,27750,27763,27749,27771,27790,28788,28794,29283,29375,29373,29379,29382,29377,29370,29381,29589,29591,29587,29588,29586,30010,30009,30100,30101,30337,31037,32820,32917,32921,32912,32914,32924,33424,33423,33413,33422,33425,33427,33418,33411,33412,35960,36809,36799,37023,37025,37029,37022,37031,37024,38448,38440,38447,38445,20019,20376,20348,20357,20349,20352,20359,20342,20340,20361,20356,20343,20300,20375,20330,20378,20345,20353,20344,20368,20380,20372,20382,20370,20354,20373,20331,20334,20894,20924,20926,21045,21042,21043,21062,21041,21180,21258,21259,21308,21394,21396,21639,21631,21633,21649,21634,21640,21611,21626,21630,21605,21612,21620,21606,21645,21615,21601,21600,21656,21603,21607,21604,22263,22265,22383,22386,22381,22379,22385,22384,22390,22400,22389,22395,22387,22388,22370,22376,22397,22796,22853,22965,22970,22991,22990,22962,22988,22977,22966,22972,22979,22998,22961,22973,22976,22984,22964,22983,23394,23397,23443,23445,23620,23623,23726,23716,23712,23733,23727,23720,23724,23711,23715,23725,23714,23722,23719,23709,23717,23734,23728,23718,24087,24084,24089,24360,24354,24355,24356,24404,24450,24446,24445,24542,24549,24621,24614,24601,24626,24587,24628,24586,24599,24627,24602,24606,24620,24610,24589,24592,24622,24595,24593,24588,24585,24604,25108,25149,25261,25268,25297,25278,25258,25270,25290,25262,25267,25263,25275,25257,25264,25272,25917,26024,26043,26121,26108,26116,26130,26120,26107,26115,26123,26125,26117,26109,26129,26128,26358,26378,26501,26476,26510,26514,26486,26491,26520,26502,26500,26484,26509,26508,26490,26527,26513,26521,26499,26493,26497,26488,26489,26516,27429,27520,27518,27614,27677,27795,27884,27883,27886,27865,27830,27860,27821,27879,27831,27856,27842,27834,27843,27846,27885,27890,27858,27869,27828,27786,27805,27776,27870,27840,27952,27853,27847,27824,27897,27855,27881,27857,28820,28824,28805,28819,28806,28804,28817,28822,28802,28826,28803,29290,29398,29387,29400,29385,29404,29394,29396,29402,29388,29393,29604,29601,29613,29606,29602,29600,29612,29597,29917,29928,30015,30016,30014,30092,30104,30383,30451,30449,30448,30453,30712,30716,30713,30715,30714,30711,31042,31039,31173,31352,31355,31483,31861,31997,32821,32911,32942,32931,32952,32949,32941,33312,33440,33472,33451,33434,33432,33435,33461,33447,33454,33468,33438,33466,33460,33448,33441,33449,33474,33444,33475,33462,33442,34416,34415,34413,34414,35926,36818,36811,36819,36813,36822,36821,36823,37042,37044,37039,37043,37040,38457,38461,38460,38458,38467,20429,20421,20435,20402,20425,20427,20417,20436,20444,20441,20411,20403,20443,20423,20438,20410,20416,20409,20460,21060,21065,21184,21186,21309,21372,21399,21398,21401,21400,21690,21665,21677,21669,21711,21699,33549,21687,21678,21718,21686,21701,21702,21664,21616,21692,21666,21694,21618,21726,21680,22453,22430,22431,22436,22412,22423,22429,22427,22420,22424,22415,22425,22437,22426,22421,22772,22797,22867,23009,23006,23022,23040,23025,23005,23034,23037,23036,23030,23012,23026,23031,23003,23017,23027,23029,23008,23038,23028,23021,23464,23628,23760,23768,23756,23767,23755,23771,23774,23770,23753,23751,23754,23766,23763,23764,23759,23752,23750,23758,23775,23800,24057,24097,24098,24099,24096,24100,24240,24228,24226,24219,24227,24229,24327,24366,24406,24454,24631,24633,24660,24690,24670,24645,24659,24647,24649,24667,24652,24640,24642,24671,24612,24644,24664,24678,24686,25154,25155,25295,25357,25355,25333,25358,25347,25323,25337,25359,25356,25336,25334,25344,25363,25364,25338,25365,25339,25328,25921,25923,26026,26047,26166,26145,26162,26165,26140,26150,26146,26163,26155,26170,26141,26164,26169,26158,26383,26384,26561,26610,26568,26554,26588,26555,26616,26584,26560,26551,26565,26603,26596,26591,26549,26573,26547,26615,26614,26606,26595,26562,26553,26574,26599,26608,26546,26620,26566,26605,26572,26542,26598,26587,26618,26569,26570,26563,26602,26571,27432,27522,27524,27574,27606,27608,27616,27680,27681,27944,27956,27949,27935,27964,27967,27922,27914,27866,27955,27908,27929,27962,27930,27921,27904,27933,27970,27905,27928,27959,27907,27919,27968,27911,27936,27948,27912,27938,27913,27920,28855,28831,28862,28849,28848,28833,28852,28853,28841,29249,29257,29258,29292,29296,29299,29294,29386,29412,29416,29419,29407,29418,29414,29411,29573,29644,29634,29640,29637,29625,29622,29621,29620,29675,29631,29639,29630,29635,29638,29624,29643,29932,29934,29998,30023,30024,30119,30122,30329,30404,30472,30467,30468,30469,30474,30455,30459,30458,30695,30696,30726,30737,30738,30725,30736,30735,30734,30729,30723,30739,31050,31052,31051,31045,31044,31189,31181,31183,31190,31182,31360,31358,31441,31488,31489,31866,31864,31865,31871,31872,31873,32003,32008,32001,32600,32657,32653,32702,32775,32782,32783,32788,32823,32984,32967,32992,32977,32968,32962,32976,32965,32995,32985,32988,32970,32981,32969,32975,32983,32998,32973,33279,33313,33428,33497,33534,33529,33543,33512,33536,33493,33594,33515,33494,33524,33516,33505,33522,33525,33548,33531,33526,33520,33514,33508,33504,33530,33523,33517,34423,34420,34428,34419,34881,34894,34919,34922,34921,35283,35332,35335,36210,36835,36833,36846,36832,37105,37053,37055,37077,37061,37054,37063,37067,37064,37332,37331,38484,38479,38481,38483,38474,38478,20510,20485,20487,20499,20514,20528,20507,20469,20468,20531,20535,20524,20470,20471,20503,20508,20512,20519,20533,20527,20529,20494,20826,20884,20883,20938,20932,20933,20936,20942,21089,21082,21074,21086,21087,21077,21090,21197,21262,21406,21798,21730,21783,21778,21735,21747,21732,21786,21759,21764,21768,21739,21777,21765,21745,21770,21755,21751,21752,21728,21774,21763,21771,22273,22274,22476,22578,22485,22482,22458,22470,22461,22460,22456,22454,22463,22471,22480,22457,22465,22798,22858,23065,23062,23085,23086,23061,23055,23063,23050,23070,23091,23404,23463,23469,23468,23555,23638,23636,23788,23807,23790,23793,23799,23808,23801,24105,24104,24232,24238,24234,24236,24371,24368,24423,24669,24666,24679,24641,24738,24712,24704,24722,24705,24733,24707,24725,24731,24727,24711,24732,24718,25113,25158,25330,25360,25430,25388,25412,25413,25398,25411,25572,25401,25419,25418,25404,25385,25409,25396,25432,25428,25433,25389,25415,25395,25434,25425,25400,25431,25408,25416,25930,25926,26054,26051,26052,26050,26186,26207,26183,26193,26386,26387,26655,26650,26697,26674,26675,26683,26699,26703,26646,26673,26652,26677,26667,26669,26671,26702,26692,26676,26653,26642,26644,26662,26664,26670,26701,26682,26661,26656,27436,27439,27437,27441,27444,27501,32898,27528,27622,27620,27624,27619,27618,27623,27685,28026,28003,28004,28022,27917,28001,28050,27992,28002,28013,28015,28049,28045,28143,28031,28038,27998,28007,28e3,28055,28016,28028,27999,28034,28056,27951,28008,28043,28030,28032,28036,27926,28035,28027,28029,28021,28048,28892,28883,28881,28893,28875,32569,28898,28887,28882,28894,28896,28884,28877,28869,28870,28871,28890,28878,28897,29250,29304,29303,29302,29440,29434,29428,29438,29430,29427,29435,29441,29651,29657,29669,29654,29628,29671,29667,29673,29660,29650,29659,29652,29661,29658,29655,29656,29672,29918,29919,29940,29941,29985,30043,30047,30128,30145,30139,30148,30144,30143,30134,30138,30346,30409,30493,30491,30480,30483,30482,30499,30481,30485,30489,30490,30498,30503,30755,30764,30754,30773,30767,30760,30766,30763,30753,30761,30771,30762,30769,31060,31067,31055,31068,31059,31058,31057,31211,31212,31200,31214,31213,31210,31196,31198,31197,31366,31369,31365,31371,31372,31370,31367,31448,31504,31492,31507,31493,31503,31496,31498,31502,31497,31506,31876,31889,31882,31884,31880,31885,31877,32030,32029,32017,32014,32024,32022,32019,32031,32018,32015,32012,32604,32609,32606,32608,32605,32603,32662,32658,32707,32706,32704,32790,32830,32825,33018,33010,33017,33013,33025,33019,33024,33281,33327,33317,33587,33581,33604,33561,33617,33573,33622,33599,33601,33574,33564,33570,33602,33614,33563,33578,33544,33596,33613,33558,33572,33568,33591,33583,33577,33607,33605,33612,33619,33566,33580,33611,33575,33608,34387,34386,34466,34472,34454,34445,34449,34462,34439,34455,34438,34443,34458,34437,34469,34457,34465,34471,34453,34456,34446,34461,34448,34452,34883,34884,34925,34933,34934,34930,34944,34929,34943,34927,34947,34942,34932,34940,35346,35911,35927,35963,36004,36003,36214,36216,36277,36279,36278,36561,36563,36862,36853,36866,36863,36859,36868,36860,36854,37078,37088,37081,37082,37091,37087,37093,37080,37083,37079,37084,37092,37200,37198,37199,37333,37346,37338,38492,38495,38588,39139,39647,39727,20095,20592,20586,20577,20574,20576,20563,20555,20573,20594,20552,20557,20545,20571,20554,20578,20501,20549,20575,20585,20587,20579,20580,20550,20544,20590,20595,20567,20561,20944,21099,21101,21100,21102,21206,21203,21293,21404,21877,21878,21820,21837,21840,21812,21802,21841,21858,21814,21813,21808,21842,21829,21772,21810,21861,21838,21817,21832,21805,21819,21824,21835,22282,22279,22523,22548,22498,22518,22492,22516,22528,22509,22525,22536,22520,22539,22515,22479,22535,22510,22499,22514,22501,22508,22497,22542,22524,22544,22503,22529,22540,22513,22505,22512,22541,22532,22876,23136,23128,23125,23143,23134,23096,23093,23149,23120,23135,23141,23148,23123,23140,23127,23107,23133,23122,23108,23131,23112,23182,23102,23117,23097,23116,23152,23145,23111,23121,23126,23106,23132,23410,23406,23489,23488,23641,23838,23819,23837,23834,23840,23820,23848,23821,23846,23845,23823,23856,23826,23843,23839,23854,24126,24116,24241,24244,24249,24242,24243,24374,24376,24475,24470,24479,24714,24720,24710,24766,24752,24762,24787,24788,24783,24804,24793,24797,24776,24753,24795,24759,24778,24767,24771,24781,24768,25394,25445,25482,25474,25469,25533,25502,25517,25501,25495,25515,25486,25455,25479,25488,25454,25519,25461,25500,25453,25518,25468,25508,25403,25503,25464,25477,25473,25489,25485,25456,25939,26061,26213,26209,26203,26201,26204,26210,26392,26745,26759,26768,26780,26733,26734,26798,26795,26966,26735,26787,26796,26793,26741,26740,26802,26767,26743,26770,26748,26731,26738,26794,26752,26737,26750,26779,26774,26763,26784,26761,26788,26744,26747,26769,26764,26762,26749,27446,27443,27447,27448,27537,27535,27533,27534,27532,27690,28096,28075,28084,28083,28276,28076,28137,28130,28087,28150,28116,28160,28104,28128,28127,28118,28094,28133,28124,28125,28123,28148,28106,28093,28141,28144,28090,28117,28098,28111,28105,28112,28146,28115,28157,28119,28109,28131,28091,28922,28941,28919,28951,28916,28940,28912,28932,28915,28944,28924,28927,28934,28947,28928,28920,28918,28939,28930,28942,29310,29307,29308,29311,29469,29463,29447,29457,29464,29450,29448,29439,29455,29470,29576,29686,29688,29685,29700,29697,29693,29703,29696,29690,29692,29695,29708,29707,29684,29704,30052,30051,30158,30162,30159,30155,30156,30161,30160,30351,30345,30419,30521,30511,30509,30513,30514,30516,30515,30525,30501,30523,30517,30792,30802,30793,30797,30794,30796,30758,30789,30800,31076,31079,31081,31082,31075,31083,31073,31163,31226,31224,31222,31223,31375,31380,31376,31541,31559,31540,31525,31536,31522,31524,31539,31512,31530,31517,31537,31531,31533,31535,31538,31544,31514,31523,31892,31896,31894,31907,32053,32061,32056,32054,32058,32069,32044,32041,32065,32071,32062,32063,32074,32059,32040,32611,32661,32668,32669,32667,32714,32715,32717,32720,32721,32711,32719,32713,32799,32798,32795,32839,32835,32840,33048,33061,33049,33051,33069,33055,33068,33054,33057,33045,33063,33053,33058,33297,33336,33331,33338,33332,33330,33396,33680,33699,33704,33677,33658,33651,33700,33652,33679,33665,33685,33689,33653,33684,33705,33661,33667,33676,33693,33691,33706,33675,33662,33701,33711,33672,33687,33712,33663,33702,33671,33710,33654,33690,34393,34390,34495,34487,34498,34497,34501,34490,34480,34504,34489,34483,34488,34508,34484,34491,34492,34499,34493,34494,34898,34953,34965,34984,34978,34986,34970,34961,34977,34975,34968,34983,34969,34971,34967,34980,34988,34956,34963,34958,35202,35286,35289,35285,35376,35367,35372,35358,35897,35899,35932,35933,35965,36005,36221,36219,36217,36284,36290,36281,36287,36289,36568,36574,36573,36572,36567,36576,36577,36900,36875,36881,36892,36876,36897,37103,37098,37104,37108,37106,37107,37076,37099,37100,37097,37206,37208,37210,37203,37205,37356,37364,37361,37363,37368,37348,37369,37354,37355,37367,37352,37358,38266,38278,38280,38524,38509,38507,38513,38511,38591,38762,38916,39141,39319,20635,20629,20628,20638,20619,20643,20611,20620,20622,20637,20584,20636,20626,20610,20615,20831,20948,21266,21265,21412,21415,21905,21928,21925,21933,21879,22085,21922,21907,21896,21903,21941,21889,21923,21906,21924,21885,21900,21926,21887,21909,21921,21902,22284,22569,22583,22553,22558,22567,22563,22568,22517,22600,22565,22556,22555,22579,22591,22582,22574,22585,22584,22573,22572,22587,22881,23215,23188,23199,23162,23202,23198,23160,23206,23164,23205,23212,23189,23214,23095,23172,23178,23191,23171,23179,23209,23163,23165,23180,23196,23183,23187,23197,23530,23501,23499,23508,23505,23498,23502,23564,23600,23863,23875,23915,23873,23883,23871,23861,23889,23886,23893,23859,23866,23890,23869,23857,23897,23874,23865,23881,23864,23868,23858,23862,23872,23877,24132,24129,24408,24486,24485,24491,24777,24761,24780,24802,24782,24772,24852,24818,24842,24854,24837,24821,24851,24824,24828,24830,24769,24835,24856,24861,24848,24831,24836,24843,25162,25492,25521,25520,25550,25573,25576,25583,25539,25757,25587,25546,25568,25590,25557,25586,25589,25697,25567,25534,25565,25564,25540,25560,25555,25538,25543,25548,25547,25544,25584,25559,25561,25906,25959,25962,25956,25948,25960,25957,25996,26013,26014,26030,26064,26066,26236,26220,26235,26240,26225,26233,26218,26226,26369,26892,26835,26884,26844,26922,26860,26858,26865,26895,26838,26871,26859,26852,26870,26899,26896,26867,26849,26887,26828,26888,26992,26804,26897,26863,26822,26900,26872,26832,26877,26876,26856,26891,26890,26903,26830,26824,26845,26846,26854,26868,26833,26886,26836,26857,26901,26917,26823,27449,27451,27455,27452,27540,27543,27545,27541,27581,27632,27634,27635,27696,28156,28230,28231,28191,28233,28296,28220,28221,28229,28258,28203,28223,28225,28253,28275,28188,28211,28235,28224,28241,28219,28163,28206,28254,28264,28252,28257,28209,28200,28256,28273,28267,28217,28194,28208,28243,28261,28199,28280,28260,28279,28245,28281,28242,28262,28213,28214,28250,28960,28958,28975,28923,28974,28977,28963,28965,28962,28978,28959,28968,28986,28955,29259,29274,29320,29321,29318,29317,29323,29458,29451,29488,29474,29489,29491,29479,29490,29485,29478,29475,29493,29452,29742,29740,29744,29739,29718,29722,29729,29741,29745,29732,29731,29725,29737,29728,29746,29947,29999,30063,30060,30183,30170,30177,30182,30173,30175,30180,30167,30357,30354,30426,30534,30535,30532,30541,30533,30538,30542,30539,30540,30686,30700,30816,30820,30821,30812,30829,30833,30826,30830,30832,30825,30824,30814,30818,31092,31091,31090,31088,31234,31242,31235,31244,31236,31385,31462,31460,31562,31547,31556,31560,31564,31566,31552,31576,31557,31906,31902,31912,31905,32088,32111,32099,32083,32086,32103,32106,32079,32109,32092,32107,32082,32084,32105,32081,32095,32078,32574,32575,32613,32614,32674,32672,32673,32727,32849,32847,32848,33022,32980,33091,33098,33106,33103,33095,33085,33101,33082,33254,33262,33271,33272,33273,33284,33340,33341,33343,33397,33595,33743,33785,33827,33728,33768,33810,33767,33764,33788,33782,33808,33734,33736,33771,33763,33727,33793,33757,33765,33752,33791,33761,33739,33742,33750,33781,33737,33801,33807,33758,33809,33798,33730,33779,33749,33786,33735,33745,33770,33811,33731,33772,33774,33732,33787,33751,33762,33819,33755,33790,34520,34530,34534,34515,34531,34522,34538,34525,34539,34524,34540,34537,34519,34536,34513,34888,34902,34901,35002,35031,35001,35e3,35008,35006,34998,35004,34999,35005,34994,35073,35017,35221,35224,35223,35293,35290,35291,35406,35405,35385,35417,35392,35415,35416,35396,35397,35410,35400,35409,35402,35404,35407,35935,35969,35968,36026,36030,36016,36025,36021,36228,36224,36233,36312,36307,36301,36295,36310,36316,36303,36309,36313,36296,36311,36293,36591,36599,36602,36601,36582,36590,36581,36597,36583,36584,36598,36587,36593,36588,36596,36585,36909,36916,36911,37126,37164,37124,37119,37116,37128,37113,37115,37121,37120,37127,37125,37123,37217,37220,37215,37218,37216,37377,37386,37413,37379,37402,37414,37391,37388,37376,37394,37375,37373,37382,37380,37415,37378,37404,37412,37401,37399,37381,37398,38267,38285,38284,38288,38535,38526,38536,38537,38531,38528,38594,38600,38595,38641,38640,38764,38768,38766,38919,39081,39147,40166,40697,20099,20100,20150,20669,20671,20678,20654,20676,20682,20660,20680,20674,20656,20673,20666,20657,20683,20681,20662,20664,20951,21114,21112,21115,21116,21955,21979,21964,21968,21963,21962,21981,21952,21972,21956,21993,21951,21970,21901,21967,21973,21986,21974,21960,22002,21965,21977,21954,22292,22611,22632,22628,22607,22605,22601,22639,22613,22606,22621,22617,22629,22619,22589,22627,22641,22780,23239,23236,23243,23226,23224,23217,23221,23216,23231,23240,23227,23238,23223,23232,23242,23220,23222,23245,23225,23184,23510,23512,23513,23583,23603,23921,23907,23882,23909,23922,23916,23902,23912,23911,23906,24048,24143,24142,24138,24141,24139,24261,24268,24262,24267,24263,24384,24495,24493,24823,24905,24906,24875,24901,24886,24882,24878,24902,24879,24911,24873,24896,25120,37224,25123,25125,25124,25541,25585,25579,25616,25618,25609,25632,25636,25651,25667,25631,25621,25624,25657,25655,25634,25635,25612,25638,25648,25640,25665,25653,25647,25610,25626,25664,25637,25639,25611,25575,25627,25646,25633,25614,25967,26002,26067,26246,26252,26261,26256,26251,26250,26265,26260,26232,26400,26982,26975,26936,26958,26978,26993,26943,26949,26986,26937,26946,26967,26969,27002,26952,26953,26933,26988,26931,26941,26981,26864,27e3,26932,26985,26944,26991,26948,26998,26968,26945,26996,26956,26939,26955,26935,26972,26959,26961,26930,26962,26927,27003,26940,27462,27461,27459,27458,27464,27457,27547,64013,27643,27644,27641,27639,27640,28315,28374,28360,28303,28352,28319,28307,28308,28320,28337,28345,28358,28370,28349,28353,28318,28361,28343,28336,28365,28326,28367,28338,28350,28355,28380,28376,28313,28306,28302,28301,28324,28321,28351,28339,28368,28362,28311,28334,28323,28999,29012,29010,29027,29024,28993,29021,29026,29042,29048,29034,29025,28994,29016,28995,29003,29040,29023,29008,29011,28996,29005,29018,29263,29325,29324,29329,29328,29326,29500,29506,29499,29498,29504,29514,29513,29764,29770,29771,29778,29777,29783,29760,29775,29776,29774,29762,29766,29773,29780,29921,29951,29950,29949,29981,30073,30071,27011,30191,30223,30211,30199,30206,30204,30201,30200,30224,30203,30198,30189,30197,30205,30361,30389,30429,30549,30559,30560,30546,30550,30554,30569,30567,30548,30553,30573,30688,30855,30874,30868,30863,30852,30869,30853,30854,30881,30851,30841,30873,30848,30870,30843,31100,31106,31101,31097,31249,31256,31257,31250,31255,31253,31266,31251,31259,31248,31395,31394,31390,31467,31590,31588,31597,31604,31593,31602,31589,31603,31601,31600,31585,31608,31606,31587,31922,31924,31919,32136,32134,32128,32141,32127,32133,32122,32142,32123,32131,32124,32140,32148,32132,32125,32146,32621,32619,32615,32616,32620,32678,32677,32679,32731,32732,32801,33124,33120,33143,33116,33129,33115,33122,33138,26401,33118,33142,33127,33135,33092,33121,33309,33353,33348,33344,33346,33349,34033,33855,33878,33910,33913,33935,33933,33893,33873,33856,33926,33895,33840,33869,33917,33882,33881,33908,33907,33885,34055,33886,33847,33850,33844,33914,33859,33912,33842,33861,33833,33753,33867,33839,33858,33837,33887,33904,33849,33870,33868,33874,33903,33989,33934,33851,33863,33846,33843,33896,33918,33860,33835,33888,33876,33902,33872,34571,34564,34551,34572,34554,34518,34549,34637,34552,34574,34569,34561,34550,34573,34565,35030,35019,35021,35022,35038,35035,35034,35020,35024,35205,35227,35295,35301,35300,35297,35296,35298,35292,35302,35446,35462,35455,35425,35391,35447,35458,35460,35445,35459,35457,35444,35450,35900,35915,35914,35941,35940,35942,35974,35972,35973,36044,36200,36201,36241,36236,36238,36239,36237,36243,36244,36240,36242,36336,36320,36332,36337,36334,36304,36329,36323,36322,36327,36338,36331,36340,36614,36607,36609,36608,36613,36615,36616,36610,36619,36946,36927,36932,36937,36925,37136,37133,37135,37137,37142,37140,37131,37134,37230,37231,37448,37458,37424,37434,37478,37427,37477,37470,37507,37422,37450,37446,37485,37484,37455,37472,37479,37487,37430,37473,37488,37425,37460,37475,37456,37490,37454,37459,37452,37462,37426,38303,38300,38302,38299,38546,38547,38545,38551,38606,38650,38653,38648,38645,38771,38775,38776,38770,38927,38925,38926,39084,39158,39161,39343,39346,39344,39349,39597,39595,39771,40170,40173,40167,40576,40701,20710,20692,20695,20712,20723,20699,20714,20701,20708,20691,20716,20720,20719,20707,20704,20952,21120,21121,21225,21227,21296,21420,22055,22037,22028,22034,22012,22031,22044,22017,22035,22018,22010,22045,22020,22015,22009,22665,22652,22672,22680,22662,22657,22655,22644,22667,22650,22663,22673,22670,22646,22658,22664,22651,22676,22671,22782,22891,23260,23278,23269,23253,23274,23258,23277,23275,23283,23266,23264,23259,23276,23262,23261,23257,23272,23263,23415,23520,23523,23651,23938,23936,23933,23942,23930,23937,23927,23946,23945,23944,23934,23932,23949,23929,23935,24152,24153,24147,24280,24273,24279,24270,24284,24277,24281,24274,24276,24388,24387,24431,24502,24876,24872,24897,24926,24945,24947,24914,24915,24946,24940,24960,24948,24916,24954,24923,24933,24891,24938,24929,24918,25129,25127,25131,25643,25677,25691,25693,25716,25718,25714,25715,25725,25717,25702,25766,25678,25730,25694,25692,25675,25683,25696,25680,25727,25663,25708,25707,25689,25701,25719,25971,26016,26273,26272,26271,26373,26372,26402,27057,27062,27081,27040,27086,27030,27056,27052,27068,27025,27033,27022,27047,27021,27049,27070,27055,27071,27076,27069,27044,27092,27065,27082,27034,27087,27059,27027,27050,27041,27038,27097,27031,27024,27074,27061,27045,27078,27466,27469,27467,27550,27551,27552,27587,27588,27646,28366,28405,28401,28419,28453,28408,28471,28411,28462,28425,28494,28441,28442,28455,28440,28475,28434,28397,28426,28470,28531,28409,28398,28461,28480,28464,28476,28469,28395,28423,28430,28483,28421,28413,28406,28473,28444,28412,28474,28447,28429,28446,28424,28449,29063,29072,29065,29056,29061,29058,29071,29051,29062,29057,29079,29252,29267,29335,29333,29331,29507,29517,29521,29516,29794,29811,29809,29813,29810,29799,29806,29952,29954,29955,30077,30096,30230,30216,30220,30229,30225,30218,30228,30392,30593,30588,30597,30594,30574,30592,30575,30590,30595,30898,30890,30900,30893,30888,30846,30891,30878,30885,30880,30892,30882,30884,31128,31114,31115,31126,31125,31124,31123,31127,31112,31122,31120,31275,31306,31280,31279,31272,31270,31400,31403,31404,31470,31624,31644,31626,31633,31632,31638,31629,31628,31643,31630,31621,31640,21124,31641,31652,31618,31931,31935,31932,31930,32167,32183,32194,32163,32170,32193,32192,32197,32157,32206,32196,32198,32203,32204,32175,32185,32150,32188,32159,32166,32174,32169,32161,32201,32627,32738,32739,32741,32734,32804,32861,32860,33161,33158,33155,33159,33165,33164,33163,33301,33943,33956,33953,33951,33978,33998,33986,33964,33966,33963,33977,33972,33985,33997,33962,33946,33969,34e3,33949,33959,33979,33954,33940,33991,33996,33947,33961,33967,33960,34006,33944,33974,33999,33952,34007,34004,34002,34011,33968,33937,34401,34611,34595,34600,34667,34624,34606,34590,34593,34585,34587,34627,34604,34625,34622,34630,34592,34610,34602,34605,34620,34578,34618,34609,34613,34626,34598,34599,34616,34596,34586,34608,34577,35063,35047,35057,35058,35066,35070,35054,35068,35062,35067,35056,35052,35051,35229,35233,35231,35230,35305,35307,35304,35499,35481,35467,35474,35471,35478,35901,35944,35945,36053,36047,36055,36246,36361,36354,36351,36365,36349,36362,36355,36359,36358,36357,36350,36352,36356,36624,36625,36622,36621,37155,37148,37152,37154,37151,37149,37146,37156,37153,37147,37242,37234,37241,37235,37541,37540,37494,37531,37498,37536,37524,37546,37517,37542,37530,37547,37497,37527,37503,37539,37614,37518,37506,37525,37538,37501,37512,37537,37514,37510,37516,37529,37543,37502,37511,37545,37533,37515,37421,38558,38561,38655,38744,38781,38778,38782,38787,38784,38786,38779,38788,38785,38783,38862,38861,38934,39085,39086,39170,39168,39175,39325,39324,39363,39353,39355,39354,39362,39357,39367,39601,39651,39655,39742,39743,39776,39777,39775,40177,40178,40181,40615,20735,20739,20784,20728,20742,20743,20726,20734,20747,20748,20733,20746,21131,21132,21233,21231,22088,22082,22092,22069,22081,22090,22089,22086,22104,22106,22080,22067,22077,22060,22078,22072,22058,22074,22298,22699,22685,22705,22688,22691,22703,22700,22693,22689,22783,23295,23284,23293,23287,23286,23299,23288,23298,23289,23297,23303,23301,23311,23655,23961,23959,23967,23954,23970,23955,23957,23968,23964,23969,23962,23966,24169,24157,24160,24156,32243,24283,24286,24289,24393,24498,24971,24963,24953,25009,25008,24994,24969,24987,24979,25007,25005,24991,24978,25002,24993,24973,24934,25011,25133,25710,25712,25750,25760,25733,25751,25756,25743,25739,25738,25740,25763,25759,25704,25777,25752,25974,25978,25977,25979,26034,26035,26293,26288,26281,26290,26295,26282,26287,27136,27142,27159,27109,27128,27157,27121,27108,27168,27135,27116,27106,27163,27165,27134,27175,27122,27118,27156,27127,27111,27200,27144,27110,27131,27149,27132,27115,27145,27140,27160,27173,27151,27126,27174,27143,27124,27158,27473,27557,27555,27554,27558,27649,27648,27647,27650,28481,28454,28542,28551,28614,28562,28557,28553,28556,28514,28495,28549,28506,28566,28534,28524,28546,28501,28530,28498,28496,28503,28564,28563,28509,28416,28513,28523,28541,28519,28560,28499,28555,28521,28543,28565,28515,28535,28522,28539,29106,29103,29083,29104,29088,29082,29097,29109,29085,29093,29086,29092,29089,29098,29084,29095,29107,29336,29338,29528,29522,29534,29535,29536,29533,29531,29537,29530,29529,29538,29831,29833,29834,29830,29825,29821,29829,29832,29820,29817,29960,29959,30078,30245,30238,30233,30237,30236,30243,30234,30248,30235,30364,30365,30366,30363,30605,30607,30601,30600,30925,30907,30927,30924,30929,30926,30932,30920,30915,30916,30921,31130,31137,31136,31132,31138,31131,27510,31289,31410,31412,31411,31671,31691,31678,31660,31694,31663,31673,31690,31669,31941,31944,31948,31947,32247,32219,32234,32231,32215,32225,32259,32250,32230,32246,32241,32240,32238,32223,32630,32684,32688,32685,32749,32747,32746,32748,32742,32744,32868,32871,33187,33183,33182,33173,33186,33177,33175,33302,33359,33363,33362,33360,33358,33361,34084,34107,34063,34048,34089,34062,34057,34061,34079,34058,34087,34076,34043,34091,34042,34056,34060,34036,34090,34034,34069,34039,34027,34035,34044,34066,34026,34025,34070,34046,34088,34077,34094,34050,34045,34078,34038,34097,34086,34023,34024,34032,34031,34041,34072,34080,34096,34059,34073,34095,34402,34646,34659,34660,34679,34785,34675,34648,34644,34651,34642,34657,34650,34641,34654,34669,34666,34640,34638,34655,34653,34671,34668,34682,34670,34652,34661,34639,34683,34677,34658,34663,34665,34906,35077,35084,35092,35083,35095,35096,35097,35078,35094,35089,35086,35081,35234,35236,35235,35309,35312,35308,35535,35526,35512,35539,35537,35540,35541,35515,35543,35518,35520,35525,35544,35523,35514,35517,35545,35902,35917,35983,36069,36063,36057,36072,36058,36061,36071,36256,36252,36257,36251,36384,36387,36389,36388,36398,36373,36379,36374,36369,36377,36390,36391,36372,36370,36376,36371,36380,36375,36378,36652,36644,36632,36634,36640,36643,36630,36631,36979,36976,36975,36967,36971,37167,37163,37161,37162,37170,37158,37166,37253,37254,37258,37249,37250,37252,37248,37584,37571,37572,37568,37593,37558,37583,37617,37599,37592,37609,37591,37597,37580,37615,37570,37608,37578,37576,37582,37606,37581,37589,37577,37600,37598,37607,37585,37587,37557,37601,37574,37556,38268,38316,38315,38318,38320,38564,38562,38611,38661,38664,38658,38746,38794,38798,38792,38864,38863,38942,38941,38950,38953,38952,38944,38939,38951,39090,39176,39162,39185,39188,39190,39191,39189,39388,39373,39375,39379,39380,39374,39369,39382,39384,39371,39383,39372,39603,39660,39659,39667,39666,39665,39750,39747,39783,39796,39793,39782,39798,39797,39792,39784,39780,39788,40188,40186,40189,40191,40183,40199,40192,40185,40187,40200,40197,40196,40579,40659,40719,40720,20764,20755,20759,20762,20753,20958,21300,21473,22128,22112,22126,22131,22118,22115,22125,22130,22110,22135,22300,22299,22728,22717,22729,22719,22714,22722,22716,22726,23319,23321,23323,23329,23316,23315,23312,23318,23336,23322,23328,23326,23535,23980,23985,23977,23975,23989,23984,23982,23978,23976,23986,23981,23983,23988,24167,24168,24166,24175,24297,24295,24294,24296,24293,24395,24508,24989,25e3,24982,25029,25012,25030,25025,25036,25018,25023,25016,24972,25815,25814,25808,25807,25801,25789,25737,25795,25819,25843,25817,25907,25983,25980,26018,26312,26302,26304,26314,26315,26319,26301,26299,26298,26316,26403,27188,27238,27209,27239,27186,27240,27198,27229,27245,27254,27227,27217,27176,27226,27195,27199,27201,27242,27236,27216,27215,27220,27247,27241,27232,27196,27230,27222,27221,27213,27214,27206,27477,27476,27478,27559,27562,27563,27592,27591,27652,27651,27654,28589,28619,28579,28615,28604,28622,28616,28510,28612,28605,28574,28618,28584,28676,28581,28590,28602,28588,28586,28623,28607,28600,28578,28617,28587,28621,28591,28594,28592,29125,29122,29119,29112,29142,29120,29121,29131,29140,29130,29127,29135,29117,29144,29116,29126,29146,29147,29341,29342,29545,29542,29543,29548,29541,29547,29546,29823,29850,29856,29844,29842,29845,29857,29963,30080,30255,30253,30257,30269,30259,30268,30261,30258,30256,30395,30438,30618,30621,30625,30620,30619,30626,30627,30613,30617,30615,30941,30953,30949,30954,30942,30947,30939,30945,30946,30957,30943,30944,31140,31300,31304,31303,31414,31416,31413,31409,31415,31710,31715,31719,31709,31701,31717,31706,31720,31737,31700,31722,31714,31708,31723,31704,31711,31954,31956,31959,31952,31953,32274,32289,32279,32268,32287,32288,32275,32270,32284,32277,32282,32290,32267,32271,32278,32269,32276,32293,32292,32579,32635,32636,32634,32689,32751,32810,32809,32876,33201,33190,33198,33209,33205,33195,33200,33196,33204,33202,33207,33191,33266,33365,33366,33367,34134,34117,34155,34125,34131,34145,34136,34112,34118,34148,34113,34146,34116,34129,34119,34147,34110,34139,34161,34126,34158,34165,34133,34151,34144,34188,34150,34141,34132,34149,34156,34403,34405,34404,34715,34703,34711,34707,34706,34696,34689,34710,34712,34681,34695,34723,34693,34704,34705,34717,34692,34708,34716,34714,34697,35102,35110,35120,35117,35118,35111,35121,35106,35113,35107,35119,35116,35103,35313,35552,35554,35570,35572,35573,35549,35604,35556,35551,35568,35528,35550,35553,35560,35583,35567,35579,35985,35986,35984,36085,36078,36081,36080,36083,36204,36206,36261,36263,36403,36414,36408,36416,36421,36406,36412,36413,36417,36400,36415,36541,36662,36654,36661,36658,36665,36663,36660,36982,36985,36987,36998,37114,37171,37173,37174,37267,37264,37265,37261,37263,37671,37662,37640,37663,37638,37647,37754,37688,37692,37659,37667,37650,37633,37702,37677,37646,37645,37579,37661,37626,37669,37651,37625,37623,37684,37634,37668,37631,37673,37689,37685,37674,37652,37644,37643,37630,37641,37632,37627,37654,38332,38349,38334,38329,38330,38326,38335,38325,38333,38569,38612,38667,38674,38672,38809,38807,38804,38896,38904,38965,38959,38962,39204,39199,39207,39209,39326,39406,39404,39397,39396,39408,39395,39402,39401,39399,39609,39615,39604,39611,39670,39674,39673,39671,39731,39808,39813,39815,39804,39806,39803,39810,39827,39826,39824,39802,39829,39805,39816,40229,40215,40224,40222,40212,40233,40221,40216,40226,40208,40217,40223,40584,40582,40583,40622,40621,40661,40662,40698,40722,40765,20774,20773,20770,20772,20768,20777,21236,22163,22156,22157,22150,22148,22147,22142,22146,22143,22145,22742,22740,22735,22738,23341,23333,23346,23331,23340,23335,23334,23343,23342,23419,23537,23538,23991,24172,24170,24510,24507,25027,25013,25020,25063,25056,25061,25060,25064,25054,25839,25833,25827,25835,25828,25832,25985,25984,26038,26074,26322,27277,27286,27265,27301,27273,27295,27291,27297,27294,27271,27283,27278,27285,27267,27304,27300,27281,27263,27302,27290,27269,27276,27282,27483,27565,27657,28620,28585,28660,28628,28643,28636,28653,28647,28646,28638,28658,28637,28642,28648,29153,29169,29160,29170,29156,29168,29154,29555,29550,29551,29847,29874,29867,29840,29866,29869,29873,29861,29871,29968,29969,29970,29967,30084,30275,30280,30281,30279,30372,30441,30645,30635,30642,30647,30646,30644,30641,30632,30704,30963,30973,30978,30971,30972,30962,30981,30969,30974,30980,31147,31144,31324,31323,31318,31320,31316,31322,31422,31424,31425,31749,31759,31730,31744,31743,31739,31758,31732,31755,31731,31746,31753,31747,31745,31736,31741,31750,31728,31729,31760,31754,31976,32301,32316,32322,32307,38984,32312,32298,32329,32320,32327,32297,32332,32304,32315,32310,32324,32314,32581,32639,32638,32637,32756,32754,32812,33211,33220,33228,33226,33221,33223,33212,33257,33371,33370,33372,34179,34176,34191,34215,34197,34208,34187,34211,34171,34212,34202,34206,34167,34172,34185,34209,34170,34168,34135,34190,34198,34182,34189,34201,34205,34177,34210,34178,34184,34181,34169,34166,34200,34192,34207,34408,34750,34730,34733,34757,34736,34732,34745,34741,34748,34734,34761,34755,34754,34764,34743,34735,34756,34762,34740,34742,34751,34744,34749,34782,34738,35125,35123,35132,35134,35137,35154,35127,35138,35245,35247,35246,35314,35315,35614,35608,35606,35601,35589,35595,35618,35599,35602,35605,35591,35597,35592,35590,35612,35603,35610,35919,35952,35954,35953,35951,35989,35988,36089,36207,36430,36429,36435,36432,36428,36423,36675,36672,36997,36990,37176,37274,37282,37275,37273,37279,37281,37277,37280,37793,37763,37807,37732,37718,37703,37756,37720,37724,37750,37705,37712,37713,37728,37741,37775,37708,37738,37753,37719,37717,37714,37711,37745,37751,37755,37729,37726,37731,37735,37760,37710,37721,38343,38336,38345,38339,38341,38327,38574,38576,38572,38688,38687,38680,38685,38681,38810,38817,38812,38814,38813,38869,38868,38897,38977,38980,38986,38985,38981,38979,39205,39211,39212,39210,39219,39218,39215,39213,39217,39216,39320,39331,39329,39426,39418,39412,39415,39417,39416,39414,39419,39421,39422,39420,39427,39614,39678,39677,39681,39676,39752,39834,39848,39838,39835,39846,39841,39845,39844,39814,39842,39840,39855,40243,40257,40295,40246,40238,40239,40241,40248,40240,40261,40258,40259,40254,40247,40256,40253,32757,40237,40586,40585,40589,40624,40648,40666,40699,40703,40740,40739,40738,40788,40864,20785,20781,20782,22168,22172,22167,22170,22173,22169,22896,23356,23657,23658,24e3,24173,24174,25048,25055,25069,25070,25073,25066,25072,25067,25046,25065,25855,25860,25853,25848,25857,25859,25852,26004,26075,26330,26331,26328,27333,27321,27325,27361,27334,27322,27318,27319,27335,27316,27309,27486,27593,27659,28679,28684,28685,28673,28677,28692,28686,28671,28672,28667,28710,28668,28663,28682,29185,29183,29177,29187,29181,29558,29880,29888,29877,29889,29886,29878,29883,29890,29972,29971,30300,30308,30297,30288,30291,30295,30298,30374,30397,30444,30658,30650,30975,30988,30995,30996,30985,30992,30994,30993,31149,31148,31327,31772,31785,31769,31776,31775,31789,31773,31782,31784,31778,31781,31792,32348,32336,32342,32355,32344,32354,32351,32337,32352,32343,32339,32693,32691,32759,32760,32885,33233,33234,33232,33375,33374,34228,34246,34240,34243,34242,34227,34229,34237,34247,34244,34239,34251,34254,34248,34245,34225,34230,34258,34340,34232,34231,34238,34409,34791,34790,34786,34779,34795,34794,34789,34783,34803,34788,34772,34780,34771,34797,34776,34787,34724,34775,34777,34817,34804,34792,34781,35155,35147,35151,35148,35142,35152,35153,35145,35626,35623,35619,35635,35632,35637,35655,35631,35644,35646,35633,35621,35639,35622,35638,35630,35620,35643,35645,35642,35906,35957,35993,35992,35991,36094,36100,36098,36096,36444,36450,36448,36439,36438,36446,36453,36455,36443,36442,36449,36445,36457,36436,36678,36679,36680,36683,37160,37178,37179,37182,37288,37285,37287,37295,37290,37813,37772,37778,37815,37787,37789,37769,37799,37774,37802,37790,37798,37781,37768,37785,37791,37773,37809,37777,37810,37796,37800,37812,37795,37797,38354,38355,38353,38579,38615,38618,24002,38623,38616,38621,38691,38690,38693,38828,38830,38824,38827,38820,38826,38818,38821,38871,38873,38870,38872,38906,38992,38993,38994,39096,39233,39228,39226,39439,39435,39433,39437,39428,39441,39434,39429,39431,39430,39616,39644,39688,39684,39685,39721,39733,39754,39756,39755,39879,39878,39875,39871,39873,39861,39864,39891,39862,39876,39865,39869,40284,40275,40271,40266,40283,40267,40281,40278,40268,40279,40274,40276,40287,40280,40282,40590,40588,40671,40705,40704,40726,40741,40747,40746,40745,40744,40780,40789,20788,20789,21142,21239,21428,22187,22189,22182,22183,22186,22188,22746,22749,22747,22802,23357,23358,23359,24003,24176,24511,25083,25863,25872,25869,25865,25868,25870,25988,26078,26077,26334,27367,27360,27340,27345,27353,27339,27359,27356,27344,27371,27343,27341,27358,27488,27568,27660,28697,28711,28704,28694,28715,28705,28706,28707,28713,28695,28708,28700,28714,29196,29194,29191,29186,29189,29349,29350,29348,29347,29345,29899,29893,29879,29891,29974,30304,30665,30666,30660,30705,31005,31003,31009,31004,30999,31006,31152,31335,31336,31795,31804,31801,31788,31803,31980,31978,32374,32373,32376,32368,32375,32367,32378,32370,32372,32360,32587,32586,32643,32646,32695,32765,32766,32888,33239,33237,33380,33377,33379,34283,34289,34285,34265,34273,34280,34266,34263,34284,34290,34296,34264,34271,34275,34268,34257,34288,34278,34287,34270,34274,34816,34810,34819,34806,34807,34825,34828,34827,34822,34812,34824,34815,34826,34818,35170,35162,35163,35159,35169,35164,35160,35165,35161,35208,35255,35254,35318,35664,35656,35658,35648,35667,35670,35668,35659,35669,35665,35650,35666,35671,35907,35959,35958,35994,36102,36103,36105,36268,36266,36269,36267,36461,36472,36467,36458,36463,36475,36546,36690,36689,36687,36688,36691,36788,37184,37183,37296,37293,37854,37831,37839,37826,37850,37840,37881,37868,37836,37849,37801,37862,37834,37844,37870,37859,37845,37828,37838,37824,37842,37863,38269,38362,38363,38625,38697,38699,38700,38696,38694,38835,38839,38838,38877,38878,38879,39004,39001,39005,38999,39103,39101,39099,39102,39240,39239,39235,39334,39335,39450,39445,39461,39453,39460,39451,39458,39456,39463,39459,39454,39452,39444,39618,39691,39690,39694,39692,39735,39914,39915,39904,39902,39908,39910,39906,39920,39892,39895,39916,39900,39897,39909,39893,39905,39898,40311,40321,40330,40324,40328,40305,40320,40312,40326,40331,40332,40317,40299,40308,40309,40304,40297,40325,40307,40315,40322,40303,40313,40319,40327,40296,40596,40593,40640,40700,40749,40768,40769,40781,40790,40791,40792,21303,22194,22197,22195,22755,23365,24006,24007,24302,24303,24512,24513,25081,25879,25878,25877,25875,26079,26344,26339,26340,27379,27376,27370,27368,27385,27377,27374,27375,28732,28725,28719,28727,28724,28721,28738,28728,28735,28730,28729,28736,28731,28723,28737,29203,29204,29352,29565,29564,29882,30379,30378,30398,30445,30668,30670,30671,30669,30706,31013,31011,31015,31016,31012,31017,31154,31342,31340,31341,31479,31817,31816,31818,31815,31813,31982,32379,32382,32385,32384,32698,32767,32889,33243,33241,33291,33384,33385,34338,34303,34305,34302,34331,34304,34294,34308,34313,34309,34316,34301,34841,34832,34833,34839,34835,34838,35171,35174,35257,35319,35680,35690,35677,35688,35683,35685,35687,35693,36270,36486,36488,36484,36697,36694,36695,36693,36696,36698,37005,37187,37185,37303,37301,37298,37299,37899,37907,37883,37920,37903,37908,37886,37909,37904,37928,37913,37901,37877,37888,37879,37895,37902,37910,37906,37882,37897,37880,37898,37887,37884,37900,37878,37905,37894,38366,38368,38367,38702,38703,38841,38843,38909,38910,39008,39010,39011,39007,39105,39106,39248,39246,39257,39244,39243,39251,39474,39476,39473,39468,39466,39478,39465,39470,39480,39469,39623,39626,39622,39696,39698,39697,39947,39944,39927,39941,39954,39928,4e4,39943,39950,39942,39959,39956,39945,40351,40345,40356,40349,40338,40344,40336,40347,40352,40340,40348,40362,40343,40353,40346,40354,40360,40350,40355,40383,40361,40342,40358,40359,40601,40603,40602,40677,40676,40679,40678,40752,40750,40795,40800,40798,40797,40793,40849,20794,20793,21144,21143,22211,22205,22206,23368,23367,24011,24015,24305,25085,25883,27394,27388,27395,27384,27392,28739,28740,28746,28744,28745,28741,28742,29213,29210,29209,29566,29975,30314,30672,31021,31025,31023,31828,31827,31986,32394,32391,32392,32395,32390,32397,32589,32699,32816,33245,34328,34346,34342,34335,34339,34332,34329,34343,34350,34337,34336,34345,34334,34341,34857,34845,34843,34848,34852,34844,34859,34890,35181,35177,35182,35179,35322,35705,35704,35653,35706,35707,36112,36116,36271,36494,36492,36702,36699,36701,37190,37188,37189,37305,37951,37947,37942,37929,37949,37948,37936,37945,37930,37943,37932,37952,37937,38373,38372,38371,38709,38714,38847,38881,39012,39113,39110,39104,39256,39254,39481,39485,39494,39492,39490,39489,39482,39487,39629,39701,39703,39704,39702,39738,39762,39979,39965,39964,39980,39971,39976,39977,39972,39969,40375,40374,40380,40385,40391,40394,40399,40382,40389,40387,40379,40373,40398,40377,40378,40364,40392,40369,40365,40396,40371,40397,40370,40570,40604,40683,40686,40685,40731,40728,40730,40753,40782,40805,40804,40850,20153,22214,22213,22219,22897,23371,23372,24021,24017,24306,25889,25888,25894,25890,27403,27400,27401,27661,28757,28758,28759,28754,29214,29215,29353,29567,29912,29909,29913,29911,30317,30381,31029,31156,31344,31345,31831,31836,31833,31835,31834,31988,31985,32401,32591,32647,33246,33387,34356,34357,34355,34348,34354,34358,34860,34856,34854,34858,34853,35185,35263,35262,35323,35710,35716,35714,35718,35717,35711,36117,36501,36500,36506,36498,36496,36502,36503,36704,36706,37191,37964,37968,37962,37963,37967,37959,37957,37960,37961,37958,38719,38883,39018,39017,39115,39252,39259,39502,39507,39508,39500,39503,39496,39498,39497,39506,39504,39632,39705,39723,39739,39766,39765,40006,40008,39999,40004,39993,39987,40001,39996,39991,39988,39986,39997,39990,40411,40402,40414,40410,40395,40400,40412,40401,40415,40425,40409,40408,40406,40437,40405,40413,40630,40688,40757,40755,40754,40770,40811,40853,40866,20797,21145,22760,22759,22898,23373,24024,34863,24399,25089,25091,25092,25897,25893,26006,26347,27409,27410,27407,27594,28763,28762,29218,29570,29569,29571,30320,30676,31847,31846,32405,33388,34362,34368,34361,34364,34353,34363,34366,34864,34866,34862,34867,35190,35188,35187,35326,35724,35726,35723,35720,35909,36121,36504,36708,36707,37308,37986,37973,37981,37975,37982,38852,38853,38912,39510,39513,39710,39711,39712,40018,40024,40016,40010,40013,40011,40021,40025,40012,40014,40443,40439,40431,40419,40427,40440,40420,40438,40417,40430,40422,40434,40432,40418,40428,40436,40435,40424,40429,40642,40656,40690,40691,40710,40732,40760,40759,40758,40771,40783,40817,40816,40814,40815,22227,22221,23374,23661,25901,26349,26350,27411,28767,28769,28765,28768,29219,29915,29925,30677,31032,31159,31158,31850,32407,32649,33389,34371,34872,34871,34869,34891,35732,35733,36510,36511,36512,36509,37310,37309,37314,37995,37992,37993,38629,38726,38723,38727,38855,38885,39518,39637,39769,40035,40039,40038,40034,40030,40032,40450,40446,40455,40451,40454,40453,40448,40449,40457,40447,40445,40452,40608,40734,40774,40820,40821,40822,22228,25902,26040,27416,27417,27415,27418,28770,29222,29354,30680,30681,31033,31849,31851,31990,32410,32408,32411,32409,33248,33249,34374,34375,34376,35193,35194,35196,35195,35327,35736,35737,36517,36516,36515,37998,37997,37999,38001,38003,38729,39026,39263,40040,40046,40045,40459,40461,40464,40463,40466,40465,40609,40693,40713,40775,40824,40827,40826,40825,22302,28774,31855,34876,36274,36518,37315,38004,38008,38006,38005,39520,40052,40051,40049,40053,40468,40467,40694,40714,40868,28776,28773,31991,34410,34878,34877,34879,35742,35996,36521,36553,38731,39027,39028,39116,39265,39339,39524,39526,39527,39716,40469,40471,40776,25095,27422,29223,34380,36520,38018,38016,38017,39529,39528,39726,40473,29225,34379,35743,38019,40057,40631,30325,39531,40058,40477,28777,28778,40612,40830,40777,40856,30849,37561,35023,22715,24658,31911,23290,9556,9574,9559,9568,9580,9571,9562,9577,9565,9554,9572,9557,9566,9578,9569,9560,9575,9563,9555,9573,9558,9567,9579,9570,9561,9576,9564,9553,9552,9581,9582,9584,9583,65517,132423,37595,132575,147397,34124,17077,29679,20917,13897,149826,166372,37700,137691,33518,146632,30780,26436,25311,149811,166314,131744,158643,135941,20395,140525,20488,159017,162436,144896,150193,140563,20521,131966,24484,131968,131911,28379,132127,20605,20737,13434,20750,39020,14147,33814,149924,132231,20832,144308,20842,134143,139516,131813,140592,132494,143923,137603,23426,34685,132531,146585,20914,20920,40244,20937,20943,20945,15580,20947,150182,20915,20962,21314,20973,33741,26942,145197,24443,21003,21030,21052,21173,21079,21140,21177,21189,31765,34114,21216,34317,158483,21253,166622,21833,28377,147328,133460,147436,21299,21316,134114,27851,136998,26651,29653,24650,16042,14540,136936,29149,17570,21357,21364,165547,21374,21375,136598,136723,30694,21395,166555,21408,21419,21422,29607,153458,16217,29596,21441,21445,27721,20041,22526,21465,15019,134031,21472,147435,142755,21494,134263,21523,28793,21803,26199,27995,21613,158547,134516,21853,21647,21668,18342,136973,134877,15796,134477,166332,140952,21831,19693,21551,29719,21894,21929,22021,137431,147514,17746,148533,26291,135348,22071,26317,144010,26276,26285,22093,22095,30961,22257,38791,21502,22272,22255,22253,166758,13859,135759,22342,147877,27758,28811,22338,14001,158846,22502,136214,22531,136276,148323,22566,150517,22620,22698,13665,22752,22748,135740,22779,23551,22339,172368,148088,37843,13729,22815,26790,14019,28249,136766,23076,21843,136850,34053,22985,134478,158849,159018,137180,23001,137211,137138,159142,28017,137256,136917,23033,159301,23211,23139,14054,149929,23159,14088,23190,29797,23251,159649,140628,15749,137489,14130,136888,24195,21200,23414,25992,23420,162318,16388,18525,131588,23509,24928,137780,154060,132517,23539,23453,19728,23557,138052,23571,29646,23572,138405,158504,23625,18653,23685,23785,23791,23947,138745,138807,23824,23832,23878,138916,23738,24023,33532,14381,149761,139337,139635,33415,14390,15298,24110,27274,24181,24186,148668,134355,21414,20151,24272,21416,137073,24073,24308,164994,24313,24315,14496,24316,26686,37915,24333,131521,194708,15070,18606,135994,24378,157832,140240,24408,140401,24419,38845,159342,24434,37696,166454,24487,23990,15711,152144,139114,159992,140904,37334,131742,166441,24625,26245,137335,14691,15815,13881,22416,141236,31089,15936,24734,24740,24755,149890,149903,162387,29860,20705,23200,24932,33828,24898,194726,159442,24961,20980,132694,24967,23466,147383,141407,25043,166813,170333,25040,14642,141696,141505,24611,24924,25886,25483,131352,25285,137072,25301,142861,25452,149983,14871,25656,25592,136078,137212,25744,28554,142902,38932,147596,153373,25825,25829,38011,14950,25658,14935,25933,28438,150056,150051,25989,25965,25951,143486,26037,149824,19255,26065,16600,137257,26080,26083,24543,144384,26136,143863,143864,26180,143780,143781,26187,134773,26215,152038,26227,26228,138813,143921,165364,143816,152339,30661,141559,39332,26370,148380,150049,15147,27130,145346,26462,26471,26466,147917,168173,26583,17641,26658,28240,37436,26625,144358,159136,26717,144495,27105,27147,166623,26995,26819,144845,26881,26880,15666,14849,144956,15232,26540,26977,166474,17148,26934,27032,15265,132041,33635,20624,27129,144985,139562,27205,145155,27293,15347,26545,27336,168348,15373,27421,133411,24798,27445,27508,141261,28341,146139,132021,137560,14144,21537,146266,27617,147196,27612,27703,140427,149745,158545,27738,33318,27769,146876,17605,146877,147876,149772,149760,146633,14053,15595,134450,39811,143865,140433,32655,26679,159013,159137,159211,28054,27996,28284,28420,149887,147589,159346,34099,159604,20935,27804,28189,33838,166689,28207,146991,29779,147330,31180,28239,23185,143435,28664,14093,28573,146992,28410,136343,147517,17749,37872,28484,28508,15694,28532,168304,15675,28575,147780,28627,147601,147797,147513,147440,147380,147775,20959,147798,147799,147776,156125,28747,28798,28839,28801,28876,28885,28886,28895,16644,15848,29108,29078,148087,28971,28997,23176,29002,29038,23708,148325,29007,37730,148161,28972,148570,150055,150050,29114,166888,28861,29198,37954,29205,22801,37955,29220,37697,153093,29230,29248,149876,26813,29269,29271,15957,143428,26637,28477,29314,29482,29483,149539,165931,18669,165892,29480,29486,29647,29610,134202,158254,29641,29769,147938,136935,150052,26147,14021,149943,149901,150011,29687,29717,26883,150054,29753,132547,16087,29788,141485,29792,167602,29767,29668,29814,33721,29804,14128,29812,37873,27180,29826,18771,150156,147807,150137,166799,23366,166915,137374,29896,137608,29966,29929,29982,167641,137803,23511,167596,37765,30029,30026,30055,30062,151426,16132,150803,30094,29789,30110,30132,30210,30252,30289,30287,30319,30326,156661,30352,33263,14328,157969,157966,30369,30373,30391,30412,159647,33890,151709,151933,138780,30494,30502,30528,25775,152096,30552,144044,30639,166244,166248,136897,30708,30729,136054,150034,26826,30895,30919,30931,38565,31022,153056,30935,31028,30897,161292,36792,34948,166699,155779,140828,31110,35072,26882,31104,153687,31133,162617,31036,31145,28202,160038,16040,31174,168205,31188],"euc-kr":[44034,44035,44037,44038,44043,44044,44045,44046,44047,44056,44062,44063,44065,44066,44067,44069,44070,44071,44072,44073,44074,44075,44078,44082,44083,44084,null,null,null,null,null,null,44085,44086,44087,44090,44091,44093,44094,44095,44097,44098,44099,44100,44101,44102,44103,44104,44105,44106,44108,44110,44111,44112,44113,44114,44115,44117,null,null,null,null,null,null,44118,44119,44121,44122,44123,44125,44126,44127,44128,44129,44130,44131,44132,44133,44134,44135,44136,44137,44138,44139,44140,44141,44142,44143,44146,44147,44149,44150,44153,44155,44156,44157,44158,44159,44162,44167,44168,44173,44174,44175,44177,44178,44179,44181,44182,44183,44184,44185,44186,44187,44190,44194,44195,44196,44197,44198,44199,44203,44205,44206,44209,44210,44211,44212,44213,44214,44215,44218,44222,44223,44224,44226,44227,44229,44230,44231,44233,44234,44235,44237,44238,44239,44240,44241,44242,44243,44244,44246,44248,44249,44250,44251,44252,44253,44254,44255,44258,44259,44261,44262,44265,44267,44269,44270,44274,44276,44279,44280,44281,44282,44283,44286,44287,44289,44290,44291,44293,44295,44296,44297,44298,44299,44302,44304,44306,44307,44308,44309,44310,44311,44313,44314,44315,44317,44318,44319,44321,44322,44323,44324,44325,44326,44327,44328,44330,44331,44334,44335,44336,44337,44338,44339,null,null,null,null,null,null,44342,44343,44345,44346,44347,44349,44350,44351,44352,44353,44354,44355,44358,44360,44362,44363,44364,44365,44366,44367,44369,44370,44371,44373,44374,44375,null,null,null,null,null,null,44377,44378,44379,44380,44381,44382,44383,44384,44386,44388,44389,44390,44391,44392,44393,44394,44395,44398,44399,44401,44402,44407,44408,44409,44410,44414,44416,44419,44420,44421,44422,44423,44426,44427,44429,44430,44431,44433,44434,44435,44436,44437,44438,44439,44440,44441,44442,44443,44446,44447,44448,44449,44450,44451,44453,44454,44455,44456,44457,44458,44459,44460,44461,44462,44463,44464,44465,44466,44467,44468,44469,44470,44472,44473,44474,44475,44476,44477,44478,44479,44482,44483,44485,44486,44487,44489,44490,44491,44492,44493,44494,44495,44498,44500,44501,44502,44503,44504,44505,44506,44507,44509,44510,44511,44513,44514,44515,44517,44518,44519,44520,44521,44522,44523,44524,44525,44526,44527,44528,44529,44530,44531,44532,44533,44534,44535,44538,44539,44541,44542,44546,44547,44548,44549,44550,44551,44554,44556,44558,44559,44560,44561,44562,44563,44565,44566,44567,44568,44569,44570,44571,44572,null,null,null,null,null,null,44573,44574,44575,44576,44577,44578,44579,44580,44581,44582,44583,44584,44585,44586,44587,44588,44589,44590,44591,44594,44595,44597,44598,44601,44603,44604,null,null,null,null,null,null,44605,44606,44607,44610,44612,44615,44616,44617,44619,44623,44625,44626,44627,44629,44631,44632,44633,44634,44635,44638,44642,44643,44644,44646,44647,44650,44651,44653,44654,44655,44657,44658,44659,44660,44661,44662,44663,44666,44670,44671,44672,44673,44674,44675,44678,44679,44680,44681,44682,44683,44685,44686,44687,44688,44689,44690,44691,44692,44693,44694,44695,44696,44697,44698,44699,44700,44701,44702,44703,44704,44705,44706,44707,44708,44709,44710,44711,44712,44713,44714,44715,44716,44717,44718,44719,44720,44721,44722,44723,44724,44725,44726,44727,44728,44729,44730,44731,44735,44737,44738,44739,44741,44742,44743,44744,44745,44746,44747,44750,44754,44755,44756,44757,44758,44759,44762,44763,44765,44766,44767,44768,44769,44770,44771,44772,44773,44774,44775,44777,44778,44780,44782,44783,44784,44785,44786,44787,44789,44790,44791,44793,44794,44795,44797,44798,44799,44800,44801,44802,44803,44804,44805,null,null,null,null,null,null,44806,44809,44810,44811,44812,44814,44815,44817,44818,44819,44820,44821,44822,44823,44824,44825,44826,44827,44828,44829,44830,44831,44832,44833,44834,44835,null,null,null,null,null,null,44836,44837,44838,44839,44840,44841,44842,44843,44846,44847,44849,44851,44853,44854,44855,44856,44857,44858,44859,44862,44864,44868,44869,44870,44871,44874,44875,44876,44877,44878,44879,44881,44882,44883,44884,44885,44886,44887,44888,44889,44890,44891,44894,44895,44896,44897,44898,44899,44902,44903,44904,44905,44906,44907,44908,44909,44910,44911,44912,44913,44914,44915,44916,44917,44918,44919,44920,44922,44923,44924,44925,44926,44927,44929,44930,44931,44933,44934,44935,44937,44938,44939,44940,44941,44942,44943,44946,44947,44948,44950,44951,44952,44953,44954,44955,44957,44958,44959,44960,44961,44962,44963,44964,44965,44966,44967,44968,44969,44970,44971,44972,44973,44974,44975,44976,44977,44978,44979,44980,44981,44982,44983,44986,44987,44989,44990,44991,44993,44994,44995,44996,44997,44998,45002,45004,45007,45008,45009,45010,45011,45013,45014,45015,45016,45017,45018,45019,45021,45022,45023,45024,45025,null,null,null,null,null,null,45026,45027,45028,45029,45030,45031,45034,45035,45036,45037,45038,45039,45042,45043,45045,45046,45047,45049,45050,45051,45052,45053,45054,45055,45058,45059,null,null,null,null,null,null,45061,45062,45063,45064,45065,45066,45067,45069,45070,45071,45073,45074,45075,45077,45078,45079,45080,45081,45082,45083,45086,45087,45088,45089,45090,45091,45092,45093,45094,45095,45097,45098,45099,45100,45101,45102,45103,45104,45105,45106,45107,45108,45109,45110,45111,45112,45113,45114,45115,45116,45117,45118,45119,45120,45121,45122,45123,45126,45127,45129,45131,45133,45135,45136,45137,45138,45142,45144,45146,45147,45148,45150,45151,45152,45153,45154,45155,45156,45157,45158,45159,45160,45161,45162,45163,45164,45165,45166,45167,45168,45169,45170,45171,45172,45173,45174,45175,45176,45177,45178,45179,45182,45183,45185,45186,45187,45189,45190,45191,45192,45193,45194,45195,45198,45200,45202,45203,45204,45205,45206,45207,45211,45213,45214,45219,45220,45221,45222,45223,45226,45232,45234,45238,45239,45241,45242,45243,45245,45246,45247,45248,45249,45250,45251,45254,45258,45259,45260,45261,45262,45263,45266,null,null,null,null,null,null,45267,45269,45270,45271,45273,45274,45275,45276,45277,45278,45279,45281,45282,45283,45284,45286,45287,45288,45289,45290,45291,45292,45293,45294,45295,45296,null,null,null,null,null,null,45297,45298,45299,45300,45301,45302,45303,45304,45305,45306,45307,45308,45309,45310,45311,45312,45313,45314,45315,45316,45317,45318,45319,45322,45325,45326,45327,45329,45332,45333,45334,45335,45338,45342,45343,45344,45345,45346,45350,45351,45353,45354,45355,45357,45358,45359,45360,45361,45362,45363,45366,45370,45371,45372,45373,45374,45375,45378,45379,45381,45382,45383,45385,45386,45387,45388,45389,45390,45391,45394,45395,45398,45399,45401,45402,45403,45405,45406,45407,45409,45410,45411,45412,45413,45414,45415,45416,45417,45418,45419,45420,45421,45422,45423,45424,45425,45426,45427,45428,45429,45430,45431,45434,45435,45437,45438,45439,45441,45443,45444,45445,45446,45447,45450,45452,45454,45455,45456,45457,45461,45462,45463,45465,45466,45467,45469,45470,45471,45472,45473,45474,45475,45476,45477,45478,45479,45481,45482,45483,45484,45485,45486,45487,45488,45489,45490,45491,45492,45493,45494,45495,45496,null,null,null,null,null,null,45497,45498,45499,45500,45501,45502,45503,45504,45505,45506,45507,45508,45509,45510,45511,45512,45513,45514,45515,45517,45518,45519,45521,45522,45523,45525,null,null,null,null,null,null,45526,45527,45528,45529,45530,45531,45534,45536,45537,45538,45539,45540,45541,45542,45543,45546,45547,45549,45550,45551,45553,45554,45555,45556,45557,45558,45559,45560,45562,45564,45566,45567,45568,45569,45570,45571,45574,45575,45577,45578,45581,45582,45583,45584,45585,45586,45587,45590,45592,45594,45595,45596,45597,45598,45599,45601,45602,45603,45604,45605,45606,45607,45608,45609,45610,45611,45612,45613,45614,45615,45616,45617,45618,45619,45621,45622,45623,45624,45625,45626,45627,45629,45630,45631,45632,45633,45634,45635,45636,45637,45638,45639,45640,45641,45642,45643,45644,45645,45646,45647,45648,45649,45650,45651,45652,45653,45654,45655,45657,45658,45659,45661,45662,45663,45665,45666,45667,45668,45669,45670,45671,45674,45675,45676,45677,45678,45679,45680,45681,45682,45683,45686,45687,45688,45689,45690,45691,45693,45694,45695,45696,45697,45698,45699,45702,45703,45704,45706,45707,45708,45709,45710,null,null,null,null,null,null,45711,45714,45715,45717,45718,45719,45723,45724,45725,45726,45727,45730,45732,45735,45736,45737,45739,45741,45742,45743,45745,45746,45747,45749,45750,45751,null,null,null,null,null,null,45752,45753,45754,45755,45756,45757,45758,45759,45760,45761,45762,45763,45764,45765,45766,45767,45770,45771,45773,45774,45775,45777,45779,45780,45781,45782,45783,45786,45788,45790,45791,45792,45793,45795,45799,45801,45802,45808,45809,45810,45814,45820,45821,45822,45826,45827,45829,45830,45831,45833,45834,45835,45836,45837,45838,45839,45842,45846,45847,45848,45849,45850,45851,45853,45854,45855,45856,45857,45858,45859,45860,45861,45862,45863,45864,45865,45866,45867,45868,45869,45870,45871,45872,45873,45874,45875,45876,45877,45878,45879,45880,45881,45882,45883,45884,45885,45886,45887,45888,45889,45890,45891,45892,45893,45894,45895,45896,45897,45898,45899,45900,45901,45902,45903,45904,45905,45906,45907,45911,45913,45914,45917,45920,45921,45922,45923,45926,45928,45930,45932,45933,45935,45938,45939,45941,45942,45943,45945,45946,45947,45948,45949,45950,45951,45954,45958,45959,45960,45961,45962,45963,45965,null,null,null,null,null,null,45966,45967,45969,45970,45971,45973,45974,45975,45976,45977,45978,45979,45980,45981,45982,45983,45986,45987,45988,45989,45990,45991,45993,45994,45995,45997,null,null,null,null,null,null,45998,45999,46e3,46001,46002,46003,46004,46005,46006,46007,46008,46009,46010,46011,46012,46013,46014,46015,46016,46017,46018,46019,46022,46023,46025,46026,46029,46031,46033,46034,46035,46038,46040,46042,46044,46046,46047,46049,46050,46051,46053,46054,46055,46057,46058,46059,46060,46061,46062,46063,46064,46065,46066,46067,46068,46069,46070,46071,46072,46073,46074,46075,46077,46078,46079,46080,46081,46082,46083,46084,46085,46086,46087,46088,46089,46090,46091,46092,46093,46094,46095,46097,46098,46099,46100,46101,46102,46103,46105,46106,46107,46109,46110,46111,46113,46114,46115,46116,46117,46118,46119,46122,46124,46125,46126,46127,46128,46129,46130,46131,46133,46134,46135,46136,46137,46138,46139,46140,46141,46142,46143,46144,46145,46146,46147,46148,46149,46150,46151,46152,46153,46154,46155,46156,46157,46158,46159,46162,46163,46165,46166,46167,46169,46170,46171,46172,46173,46174,46175,46178,46180,46182,null,null,null,null,null,null,46183,46184,46185,46186,46187,46189,46190,46191,46192,46193,46194,46195,46196,46197,46198,46199,46200,46201,46202,46203,46204,46205,46206,46207,46209,46210,null,null,null,null,null,null,46211,46212,46213,46214,46215,46217,46218,46219,46220,46221,46222,46223,46224,46225,46226,46227,46228,46229,46230,46231,46232,46233,46234,46235,46236,46238,46239,46240,46241,46242,46243,46245,46246,46247,46249,46250,46251,46253,46254,46255,46256,46257,46258,46259,46260,46262,46264,46266,46267,46268,46269,46270,46271,46273,46274,46275,46277,46278,46279,46281,46282,46283,46284,46285,46286,46287,46289,46290,46291,46292,46294,46295,46296,46297,46298,46299,46302,46303,46305,46306,46309,46311,46312,46313,46314,46315,46318,46320,46322,46323,46324,46325,46326,46327,46329,46330,46331,46332,46333,46334,46335,46336,46337,46338,46339,46340,46341,46342,46343,46344,46345,46346,46347,46348,46349,46350,46351,46352,46353,46354,46355,46358,46359,46361,46362,46365,46366,46367,46368,46369,46370,46371,46374,46379,46380,46381,46382,46383,46386,46387,46389,46390,46391,46393,46394,46395,46396,46397,46398,46399,46402,46406,null,null,null,null,null,null,46407,46408,46409,46410,46414,46415,46417,46418,46419,46421,46422,46423,46424,46425,46426,46427,46430,46434,46435,46436,46437,46438,46439,46440,46441,46442,null,null,null,null,null,null,46443,46444,46445,46446,46447,46448,46449,46450,46451,46452,46453,46454,46455,46456,46457,46458,46459,46460,46461,46462,46463,46464,46465,46466,46467,46468,46469,46470,46471,46472,46473,46474,46475,46476,46477,46478,46479,46480,46481,46482,46483,46484,46485,46486,46487,46488,46489,46490,46491,46492,46493,46494,46495,46498,46499,46501,46502,46503,46505,46508,46509,46510,46511,46514,46518,46519,46520,46521,46522,46526,46527,46529,46530,46531,46533,46534,46535,46536,46537,46538,46539,46542,46546,46547,46548,46549,46550,46551,46553,46554,46555,46556,46557,46558,46559,46560,46561,46562,46563,46564,46565,46566,46567,46568,46569,46570,46571,46573,46574,46575,46576,46577,46578,46579,46580,46581,46582,46583,46584,46585,46586,46587,46588,46589,46590,46591,46592,46593,46594,46595,46596,46597,46598,46599,46600,46601,46602,46603,46604,46605,46606,46607,46610,46611,46613,46614,46615,46617,46618,46619,46620,46621,null,null,null,null,null,null,46622,46623,46624,46625,46626,46627,46628,46630,46631,46632,46633,46634,46635,46637,46638,46639,46640,46641,46642,46643,46645,46646,46647,46648,46649,46650,null,null,null,null,null,null,46651,46652,46653,46654,46655,46656,46657,46658,46659,46660,46661,46662,46663,46665,46666,46667,46668,46669,46670,46671,46672,46673,46674,46675,46676,46677,46678,46679,46680,46681,46682,46683,46684,46685,46686,46687,46688,46689,46690,46691,46693,46694,46695,46697,46698,46699,46700,46701,46702,46703,46704,46705,46706,46707,46708,46709,46710,46711,46712,46713,46714,46715,46716,46717,46718,46719,46720,46721,46722,46723,46724,46725,46726,46727,46728,46729,46730,46731,46732,46733,46734,46735,46736,46737,46738,46739,46740,46741,46742,46743,46744,46745,46746,46747,46750,46751,46753,46754,46755,46757,46758,46759,46760,46761,46762,46765,46766,46767,46768,46770,46771,46772,46773,46774,46775,46776,46777,46778,46779,46780,46781,46782,46783,46784,46785,46786,46787,46788,46789,46790,46791,46792,46793,46794,46795,46796,46797,46798,46799,46800,46801,46802,46803,46805,46806,46807,46808,46809,46810,46811,46812,46813,null,null,null,null,null,null,46814,46815,46816,46817,46818,46819,46820,46821,46822,46823,46824,46825,46826,46827,46828,46829,46830,46831,46833,46834,46835,46837,46838,46839,46841,46842,null,null,null,null,null,null,46843,46844,46845,46846,46847,46850,46851,46852,46854,46855,46856,46857,46858,46859,46860,46861,46862,46863,46864,46865,46866,46867,46868,46869,46870,46871,46872,46873,46874,46875,46876,46877,46878,46879,46880,46881,46882,46883,46884,46885,46886,46887,46890,46891,46893,46894,46897,46898,46899,46900,46901,46902,46903,46906,46908,46909,46910,46911,46912,46913,46914,46915,46917,46918,46919,46921,46922,46923,46925,46926,46927,46928,46929,46930,46931,46934,46935,46936,46937,46938,46939,46940,46941,46942,46943,46945,46946,46947,46949,46950,46951,46953,46954,46955,46956,46957,46958,46959,46962,46964,46966,46967,46968,46969,46970,46971,46974,46975,46977,46978,46979,46981,46982,46983,46984,46985,46986,46987,46990,46995,46996,46997,47002,47003,47005,47006,47007,47009,47010,47011,47012,47013,47014,47015,47018,47022,47023,47024,47025,47026,47027,47030,47031,47033,47034,47035,47036,47037,47038,47039,47040,47041,null,null,null,null,null,null,47042,47043,47044,47045,47046,47048,47050,47051,47052,47053,47054,47055,47056,47057,47058,47059,47060,47061,47062,47063,47064,47065,47066,47067,47068,47069,null,null,null,null,null,null,47070,47071,47072,47073,47074,47075,47076,47077,47078,47079,47080,47081,47082,47083,47086,47087,47089,47090,47091,47093,47094,47095,47096,47097,47098,47099,47102,47106,47107,47108,47109,47110,47114,47115,47117,47118,47119,47121,47122,47123,47124,47125,47126,47127,47130,47132,47134,47135,47136,47137,47138,47139,47142,47143,47145,47146,47147,47149,47150,47151,47152,47153,47154,47155,47158,47162,47163,47164,47165,47166,47167,47169,47170,47171,47173,47174,47175,47176,47177,47178,47179,47180,47181,47182,47183,47184,47186,47188,47189,47190,47191,47192,47193,47194,47195,47198,47199,47201,47202,47203,47205,47206,47207,47208,47209,47210,47211,47214,47216,47218,47219,47220,47221,47222,47223,47225,47226,47227,47229,47230,47231,47232,47233,47234,47235,47236,47237,47238,47239,47240,47241,47242,47243,47244,47246,47247,47248,47249,47250,47251,47252,47253,47254,47255,47256,47257,47258,47259,47260,47261,47262,47263,null,null,null,null,null,null,47264,47265,47266,47267,47268,47269,47270,47271,47273,47274,47275,47276,47277,47278,47279,47281,47282,47283,47285,47286,47287,47289,47290,47291,47292,47293,null,null,null,null,null,null,47294,47295,47298,47300,47302,47303,47304,47305,47306,47307,47309,47310,47311,47313,47314,47315,47317,47318,47319,47320,47321,47322,47323,47324,47326,47328,47330,47331,47332,47333,47334,47335,47338,47339,47341,47342,47343,47345,47346,47347,47348,47349,47350,47351,47354,47356,47358,47359,47360,47361,47362,47363,47365,47366,47367,47368,47369,47370,47371,47372,47373,47374,47375,47376,47377,47378,47379,47380,47381,47382,47383,47385,47386,47387,47388,47389,47390,47391,47393,47394,47395,47396,47397,47398,47399,47400,47401,47402,47403,47404,47405,47406,47407,47408,47409,47410,47411,47412,47413,47414,47415,47416,47417,47418,47419,47422,47423,47425,47426,47427,47429,47430,47431,47432,47433,47434,47435,47437,47438,47440,47442,47443,47444,47445,47446,47447,47450,47451,47453,47454,47455,47457,47458,47459,47460,47461,47462,47463,47466,47468,47470,47471,47472,47473,47474,47475,47478,47479,47481,47482,47483,47485,null,null,null,null,null,null,47486,47487,47488,47489,47490,47491,47494,47496,47499,47500,47503,47504,47505,47506,47507,47508,47509,47510,47511,47512,47513,47514,47515,47516,47517,47518,null,null,null,null,null,null,47519,47520,47521,47522,47523,47524,47525,47526,47527,47528,47529,47530,47531,47534,47535,47537,47538,47539,47541,47542,47543,47544,47545,47546,47547,47550,47552,47554,47555,47556,47557,47558,47559,47562,47563,47565,47571,47572,47573,47574,47575,47578,47580,47583,47584,47586,47590,47591,47593,47594,47595,47597,47598,47599,47600,47601,47602,47603,47606,47611,47612,47613,47614,47615,47618,47619,47620,47621,47622,47623,47625,47626,47627,47628,47629,47630,47631,47632,47633,47634,47635,47636,47638,47639,47640,47641,47642,47643,47644,47645,47646,47647,47648,47649,47650,47651,47652,47653,47654,47655,47656,47657,47658,47659,47660,47661,47662,47663,47664,47665,47666,47667,47668,47669,47670,47671,47674,47675,47677,47678,47679,47681,47683,47684,47685,47686,47687,47690,47692,47695,47696,47697,47698,47702,47703,47705,47706,47707,47709,47710,47711,47712,47713,47714,47715,47718,47722,47723,47724,47725,47726,47727,null,null,null,null,null,null,47730,47731,47733,47734,47735,47737,47738,47739,47740,47741,47742,47743,47744,47745,47746,47750,47752,47753,47754,47755,47757,47758,47759,47760,47761,47762,null,null,null,null,null,null,47763,47764,47765,47766,47767,47768,47769,47770,47771,47772,47773,47774,47775,47776,47777,47778,47779,47780,47781,47782,47783,47786,47789,47790,47791,47793,47795,47796,47797,47798,47799,47802,47804,47806,47807,47808,47809,47810,47811,47813,47814,47815,47817,47818,47819,47820,47821,47822,47823,47824,47825,47826,47827,47828,47829,47830,47831,47834,47835,47836,47837,47838,47839,47840,47841,47842,47843,47844,47845,47846,47847,47848,47849,47850,47851,47852,47853,47854,47855,47856,47857,47858,47859,47860,47861,47862,47863,47864,47865,47866,47867,47869,47870,47871,47873,47874,47875,47877,47878,47879,47880,47881,47882,47883,47884,47886,47888,47890,47891,47892,47893,47894,47895,47897,47898,47899,47901,47902,47903,47905,47906,47907,47908,47909,47910,47911,47912,47914,47916,47917,47918,47919,47920,47921,47922,47923,47927,47929,47930,47935,47936,47937,47938,47939,47942,47944,47946,47947,47948,47950,47953,47954,null,null,null,null,null,null,47955,47957,47958,47959,47961,47962,47963,47964,47965,47966,47967,47968,47970,47972,47973,47974,47975,47976,47977,47978,47979,47981,47982,47983,47984,47985,null,null,null,null,null,null,47986,47987,47988,47989,47990,47991,47992,47993,47994,47995,47996,47997,47998,47999,48e3,48001,48002,48003,48004,48005,48006,48007,48009,48010,48011,48013,48014,48015,48017,48018,48019,48020,48021,48022,48023,48024,48025,48026,48027,48028,48029,48030,48031,48032,48033,48034,48035,48037,48038,48039,48041,48042,48043,48045,48046,48047,48048,48049,48050,48051,48053,48054,48056,48057,48058,48059,48060,48061,48062,48063,48065,48066,48067,48069,48070,48071,48073,48074,48075,48076,48077,48078,48079,48081,48082,48084,48085,48086,48087,48088,48089,48090,48091,48092,48093,48094,48095,48096,48097,48098,48099,48100,48101,48102,48103,48104,48105,48106,48107,48108,48109,48110,48111,48112,48113,48114,48115,48116,48117,48118,48119,48122,48123,48125,48126,48129,48131,48132,48133,48134,48135,48138,48142,48144,48146,48147,48153,48154,48160,48161,48162,48163,48166,48168,48170,48171,48172,48174,48175,48178,48179,48181,null,null,null,null,null,null,48182,48183,48185,48186,48187,48188,48189,48190,48191,48194,48198,48199,48200,48202,48203,48206,48207,48209,48210,48211,48212,48213,48214,48215,48216,48217,null,null,null,null,null,null,48218,48219,48220,48222,48223,48224,48225,48226,48227,48228,48229,48230,48231,48232,48233,48234,48235,48236,48237,48238,48239,48240,48241,48242,48243,48244,48245,48246,48247,48248,48249,48250,48251,48252,48253,48254,48255,48256,48257,48258,48259,48262,48263,48265,48266,48269,48271,48272,48273,48274,48275,48278,48280,48283,48284,48285,48286,48287,48290,48291,48293,48294,48297,48298,48299,48300,48301,48302,48303,48306,48310,48311,48312,48313,48314,48315,48318,48319,48321,48322,48323,48325,48326,48327,48328,48329,48330,48331,48332,48334,48338,48339,48340,48342,48343,48345,48346,48347,48349,48350,48351,48352,48353,48354,48355,48356,48357,48358,48359,48360,48361,48362,48363,48364,48365,48366,48367,48368,48369,48370,48371,48375,48377,48378,48379,48381,48382,48383,48384,48385,48386,48387,48390,48392,48394,48395,48396,48397,48398,48399,48401,48402,48403,48405,48406,48407,48408,48409,48410,48411,48412,48413,null,null,null,null,null,null,48414,48415,48416,48417,48418,48419,48421,48422,48423,48424,48425,48426,48427,48429,48430,48431,48432,48433,48434,48435,48436,48437,48438,48439,48440,48441,null,null,null,null,null,null,48442,48443,48444,48445,48446,48447,48449,48450,48451,48452,48453,48454,48455,48458,48459,48461,48462,48463,48465,48466,48467,48468,48469,48470,48471,48474,48475,48476,48477,48478,48479,48480,48481,48482,48483,48485,48486,48487,48489,48490,48491,48492,48493,48494,48495,48496,48497,48498,48499,48500,48501,48502,48503,48504,48505,48506,48507,48508,48509,48510,48511,48514,48515,48517,48518,48523,48524,48525,48526,48527,48530,48532,48534,48535,48536,48539,48541,48542,48543,48544,48545,48546,48547,48549,48550,48551,48552,48553,48554,48555,48556,48557,48558,48559,48561,48562,48563,48564,48565,48566,48567,48569,48570,48571,48572,48573,48574,48575,48576,48577,48578,48579,48580,48581,48582,48583,48584,48585,48586,48587,48588,48589,48590,48591,48592,48593,48594,48595,48598,48599,48601,48602,48603,48605,48606,48607,48608,48609,48610,48611,48612,48613,48614,48615,48616,48618,48619,48620,48621,48622,48623,48625,null,null,null,null,null,null,48626,48627,48629,48630,48631,48633,48634,48635,48636,48637,48638,48639,48641,48642,48644,48646,48647,48648,48649,48650,48651,48654,48655,48657,48658,48659,null,null,null,null,null,null,48661,48662,48663,48664,48665,48666,48667,48670,48672,48673,48674,48675,48676,48677,48678,48679,48680,48681,48682,48683,48684,48685,48686,48687,48688,48689,48690,48691,48692,48693,48694,48695,48696,48697,48698,48699,48700,48701,48702,48703,48704,48705,48706,48707,48710,48711,48713,48714,48715,48717,48719,48720,48721,48722,48723,48726,48728,48732,48733,48734,48735,48738,48739,48741,48742,48743,48745,48747,48748,48749,48750,48751,48754,48758,48759,48760,48761,48762,48766,48767,48769,48770,48771,48773,48774,48775,48776,48777,48778,48779,48782,48786,48787,48788,48789,48790,48791,48794,48795,48796,48797,48798,48799,48800,48801,48802,48803,48804,48805,48806,48807,48809,48810,48811,48812,48813,48814,48815,48816,48817,48818,48819,48820,48821,48822,48823,48824,48825,48826,48827,48828,48829,48830,48831,48832,48833,48834,48835,48836,48837,48838,48839,48840,48841,48842,48843,48844,48845,48846,48847,48850,48851,null,null,null,null,null,null,48853,48854,48857,48858,48859,48860,48861,48862,48863,48865,48866,48870,48871,48872,48873,48874,48875,48877,48878,48879,48880,48881,48882,48883,48884,48885,null,null,null,null,null,null,48886,48887,48888,48889,48890,48891,48892,48893,48894,48895,48896,48898,48899,48900,48901,48902,48903,48906,48907,48908,48909,48910,48911,48912,48913,48914,48915,48916,48917,48918,48919,48922,48926,48927,48928,48929,48930,48931,48932,48933,48934,48935,48936,48937,48938,48939,48940,48941,48942,48943,48944,48945,48946,48947,48948,48949,48950,48951,48952,48953,48954,48955,48956,48957,48958,48959,48962,48963,48965,48966,48967,48969,48970,48971,48972,48973,48974,48975,48978,48979,48980,48982,48983,48984,48985,48986,48987,48988,48989,48990,48991,48992,48993,48994,48995,48996,48997,48998,48999,49e3,49001,49002,49003,49004,49005,49006,49007,49008,49009,49010,49011,49012,49013,49014,49015,49016,49017,49018,49019,49020,49021,49022,49023,49024,49025,49026,49027,49028,49029,49030,49031,49032,49033,49034,49035,49036,49037,49038,49039,49040,49041,49042,49043,49045,49046,49047,49048,49049,49050,49051,49052,49053,null,null,null,null,null,null,49054,49055,49056,49057,49058,49059,49060,49061,49062,49063,49064,49065,49066,49067,49068,49069,49070,49071,49073,49074,49075,49076,49077,49078,49079,49080,null,null,null,null,null,null,49081,49082,49083,49084,49085,49086,49087,49088,49089,49090,49091,49092,49094,49095,49096,49097,49098,49099,49102,49103,49105,49106,49107,49109,49110,49111,49112,49113,49114,49115,49117,49118,49120,49122,49123,49124,49125,49126,49127,49128,49129,49130,49131,49132,49133,49134,49135,49136,49137,49138,49139,49140,49141,49142,49143,49144,49145,49146,49147,49148,49149,49150,49151,49152,49153,49154,49155,49156,49157,49158,49159,49160,49161,49162,49163,49164,49165,49166,49167,49168,49169,49170,49171,49172,49173,49174,49175,49176,49177,49178,49179,49180,49181,49182,49183,49184,49185,49186,49187,49188,49189,49190,49191,49192,49193,49194,49195,49196,49197,49198,49199,49200,49201,49202,49203,49204,49205,49206,49207,49208,49209,49210,49211,49213,49214,49215,49216,49217,49218,49219,49220,49221,49222,49223,49224,49225,49226,49227,49228,49229,49230,49231,49232,49234,49235,49236,49237,49238,49239,49241,49242,49243,null,null,null,null,null,null,49245,49246,49247,49249,49250,49251,49252,49253,49254,49255,49258,49259,49260,49261,49262,49263,49264,49265,49266,49267,49268,49269,49270,49271,49272,49273,null,null,null,null,null,null,49274,49275,49276,49277,49278,49279,49280,49281,49282,49283,49284,49285,49286,49287,49288,49289,49290,49291,49292,49293,49294,49295,49298,49299,49301,49302,49303,49305,49306,49307,49308,49309,49310,49311,49314,49316,49318,49319,49320,49321,49322,49323,49326,49329,49330,49335,49336,49337,49338,49339,49342,49346,49347,49348,49350,49351,49354,49355,49357,49358,49359,49361,49362,49363,49364,49365,49366,49367,49370,49374,49375,49376,49377,49378,49379,49382,49383,49385,49386,49387,49389,49390,49391,49392,49393,49394,49395,49398,49400,49402,49403,49404,49405,49406,49407,49409,49410,49411,49413,49414,49415,49417,49418,49419,49420,49421,49422,49423,49425,49426,49427,49428,49430,49431,49432,49433,49434,49435,49441,49442,49445,49448,49449,49450,49451,49454,49458,49459,49460,49461,49463,49466,49467,49469,49470,49471,49473,49474,49475,49476,49477,49478,49479,49482,49486,49487,49488,49489,49490,49491,49494,49495,null,null,null,null,null,null,49497,49498,49499,49501,49502,49503,49504,49505,49506,49507,49510,49514,49515,49516,49517,49518,49519,49521,49522,49523,49525,49526,49527,49529,49530,49531,null,null,null,null,null,null,49532,49533,49534,49535,49536,49537,49538,49539,49540,49542,49543,49544,49545,49546,49547,49551,49553,49554,49555,49557,49559,49560,49561,49562,49563,49566,49568,49570,49571,49572,49574,49575,49578,49579,49581,49582,49583,49585,49586,49587,49588,49589,49590,49591,49592,49593,49594,49595,49596,49598,49599,49600,49601,49602,49603,49605,49606,49607,49609,49610,49611,49613,49614,49615,49616,49617,49618,49619,49621,49622,49625,49626,49627,49628,49629,49630,49631,49633,49634,49635,49637,49638,49639,49641,49642,49643,49644,49645,49646,49647,49650,49652,49653,49654,49655,49656,49657,49658,49659,49662,49663,49665,49666,49667,49669,49670,49671,49672,49673,49674,49675,49678,49680,49682,49683,49684,49685,49686,49687,49690,49691,49693,49694,49697,49698,49699,49700,49701,49702,49703,49706,49708,49710,49712,49715,49717,49718,49719,49720,49721,49722,49723,49724,49725,49726,49727,49728,49729,49730,49731,49732,49733,null,null,null,null,null,null,49734,49735,49737,49738,49739,49740,49741,49742,49743,49746,49747,49749,49750,49751,49753,49754,49755,49756,49757,49758,49759,49761,49762,49763,49764,49766,null,null,null,null,null,null,49767,49768,49769,49770,49771,49774,49775,49777,49778,49779,49781,49782,49783,49784,49785,49786,49787,49790,49792,49794,49795,49796,49797,49798,49799,49802,49803,49804,49805,49806,49807,49809,49810,49811,49812,49813,49814,49815,49817,49818,49820,49822,49823,49824,49825,49826,49827,49830,49831,49833,49834,49835,49838,49839,49840,49841,49842,49843,49846,49848,49850,49851,49852,49853,49854,49855,49856,49857,49858,49859,49860,49861,49862,49863,49864,49865,49866,49867,49868,49869,49870,49871,49872,49873,49874,49875,49876,49877,49878,49879,49880,49881,49882,49883,49886,49887,49889,49890,49893,49894,49895,49896,49897,49898,49902,49904,49906,49907,49908,49909,49911,49914,49917,49918,49919,49921,49922,49923,49924,49925,49926,49927,49930,49931,49934,49935,49936,49937,49938,49942,49943,49945,49946,49947,49949,49950,49951,49952,49953,49954,49955,49958,49959,49962,49963,49964,49965,49966,49967,49968,49969,49970,null,null,null,null,null,null,49971,49972,49973,49974,49975,49976,49977,49978,49979,49980,49981,49982,49983,49984,49985,49986,49987,49988,49990,49991,49992,49993,49994,49995,49996,49997,null,null,null,null,null,null,49998,49999,5e4,50001,50002,50003,50004,50005,50006,50007,50008,50009,50010,50011,50012,50013,50014,50015,50016,50017,50018,50019,50020,50021,50022,50023,50026,50027,50029,50030,50031,50033,50035,50036,50037,50038,50039,50042,50043,50046,50047,50048,50049,50050,50051,50053,50054,50055,50057,50058,50059,50061,50062,50063,50064,50065,50066,50067,50068,50069,50070,50071,50072,50073,50074,50075,50076,50077,50078,50079,50080,50081,50082,50083,50084,50085,50086,50087,50088,50089,50090,50091,50092,50093,50094,50095,50096,50097,50098,50099,50100,50101,50102,50103,50104,50105,50106,50107,50108,50109,50110,50111,50113,50114,50115,50116,50117,50118,50119,50120,50121,50122,50123,50124,50125,50126,50127,50128,50129,50130,50131,50132,50133,50134,50135,50138,50139,50141,50142,50145,50147,50148,50149,50150,50151,50154,50155,50156,50158,50159,50160,50161,50162,50163,50166,50167,50169,50170,50171,50172,50173,50174,null,null,null,null,null,null,50175,50176,50177,50178,50179,50180,50181,50182,50183,50185,50186,50187,50188,50189,50190,50191,50193,50194,50195,50196,50197,50198,50199,50200,50201,50202,null,null,null,null,null,null,50203,50204,50205,50206,50207,50208,50209,50210,50211,50213,50214,50215,50216,50217,50218,50219,50221,50222,50223,50225,50226,50227,50229,50230,50231,50232,50233,50234,50235,50238,50239,50240,50241,50242,50243,50244,50245,50246,50247,50249,50250,50251,50252,50253,50254,50255,50256,50257,50258,50259,50260,50261,50262,50263,50264,50265,50266,50267,50268,50269,50270,50271,50272,50273,50274,50275,50278,50279,50281,50282,50283,50285,50286,50287,50288,50289,50290,50291,50294,50295,50296,50298,50299,50300,50301,50302,50303,50305,50306,50307,50308,50309,50310,50311,50312,50313,50314,50315,50316,50317,50318,50319,50320,50321,50322,50323,50325,50326,50327,50328,50329,50330,50331,50333,50334,50335,50336,50337,50338,50339,50340,50341,50342,50343,50344,50345,50346,50347,50348,50349,50350,50351,50352,50353,50354,50355,50356,50357,50358,50359,50361,50362,50363,50365,50366,50367,50368,50369,50370,50371,50372,50373,null,null,null,null,null,null,50374,50375,50376,50377,50378,50379,50380,50381,50382,50383,50384,50385,50386,50387,50388,50389,50390,50391,50392,50393,50394,50395,50396,50397,50398,50399,null,null,null,null,null,null,50400,50401,50402,50403,50404,50405,50406,50407,50408,50410,50411,50412,50413,50414,50415,50418,50419,50421,50422,50423,50425,50427,50428,50429,50430,50434,50435,50436,50437,50438,50439,50440,50441,50442,50443,50445,50446,50447,50449,50450,50451,50453,50454,50455,50456,50457,50458,50459,50461,50462,50463,50464,50465,50466,50467,50468,50469,50470,50471,50474,50475,50477,50478,50479,50481,50482,50483,50484,50485,50486,50487,50490,50492,50494,50495,50496,50497,50498,50499,50502,50503,50507,50511,50512,50513,50514,50518,50522,50523,50524,50527,50530,50531,50533,50534,50535,50537,50538,50539,50540,50541,50542,50543,50546,50550,50551,50552,50553,50554,50555,50558,50559,50561,50562,50563,50565,50566,50568,50569,50570,50571,50574,50576,50578,50579,50580,50582,50585,50586,50587,50589,50590,50591,50593,50594,50595,50596,50597,50598,50599,50600,50602,50603,50604,50605,50606,50607,50608,50609,50610,50611,50614,null,null,null,null,null,null,50615,50618,50623,50624,50625,50626,50627,50635,50637,50639,50642,50643,50645,50646,50647,50649,50650,50651,50652,50653,50654,50655,50658,50660,50662,50663,null,null,null,null,null,null,50664,50665,50666,50667,50671,50673,50674,50675,50677,50680,50681,50682,50683,50690,50691,50692,50697,50698,50699,50701,50702,50703,50705,50706,50707,50708,50709,50710,50711,50714,50717,50718,50719,50720,50721,50722,50723,50726,50727,50729,50730,50731,50735,50737,50738,50742,50744,50746,50748,50749,50750,50751,50754,50755,50757,50758,50759,50761,50762,50763,50764,50765,50766,50767,50770,50774,50775,50776,50777,50778,50779,50782,50783,50785,50786,50787,50788,50789,50790,50791,50792,50793,50794,50795,50797,50798,50800,50802,50803,50804,50805,50806,50807,50810,50811,50813,50814,50815,50817,50818,50819,50820,50821,50822,50823,50826,50828,50830,50831,50832,50833,50834,50835,50838,50839,50841,50842,50843,50845,50846,50847,50848,50849,50850,50851,50854,50856,50858,50859,50860,50861,50862,50863,50866,50867,50869,50870,50871,50875,50876,50877,50878,50879,50882,50884,50886,50887,50888,50889,50890,50891,50894,null,null,null,null,null,null,50895,50897,50898,50899,50901,50902,50903,50904,50905,50906,50907,50910,50911,50914,50915,50916,50917,50918,50919,50922,50923,50925,50926,50927,50929,50930,null,null,null,null,null,null,50931,50932,50933,50934,50935,50938,50939,50940,50942,50943,50944,50945,50946,50947,50950,50951,50953,50954,50955,50957,50958,50959,50960,50961,50962,50963,50966,50968,50970,50971,50972,50973,50974,50975,50978,50979,50981,50982,50983,50985,50986,50987,50988,50989,50990,50991,50994,50996,50998,51e3,51001,51002,51003,51006,51007,51009,51010,51011,51013,51014,51015,51016,51017,51019,51022,51024,51033,51034,51035,51037,51038,51039,51041,51042,51043,51044,51045,51046,51047,51049,51050,51052,51053,51054,51055,51056,51057,51058,51059,51062,51063,51065,51066,51067,51071,51072,51073,51074,51078,51083,51084,51085,51087,51090,51091,51093,51097,51099,51100,51101,51102,51103,51106,51111,51112,51113,51114,51115,51118,51119,51121,51122,51123,51125,51126,51127,51128,51129,51130,51131,51134,51138,51139,51140,51141,51142,51143,51146,51147,51149,51151,51153,51154,51155,51156,51157,51158,51159,51161,51162,51163,51164,null,null,null,null,null,null,51166,51167,51168,51169,51170,51171,51173,51174,51175,51177,51178,51179,51181,51182,51183,51184,51185,51186,51187,51188,51189,51190,51191,51192,51193,51194,null,null,null,null,null,null,51195,51196,51197,51198,51199,51202,51203,51205,51206,51207,51209,51211,51212,51213,51214,51215,51218,51220,51223,51224,51225,51226,51227,51230,51231,51233,51234,51235,51237,51238,51239,51240,51241,51242,51243,51246,51248,51250,51251,51252,51253,51254,51255,51257,51258,51259,51261,51262,51263,51265,51266,51267,51268,51269,51270,51271,51274,51275,51278,51279,51280,51281,51282,51283,51285,51286,51287,51288,51289,51290,51291,51292,51293,51294,51295,51296,51297,51298,51299,51300,51301,51302,51303,51304,51305,51306,51307,51308,51309,51310,51311,51314,51315,51317,51318,51319,51321,51323,51324,51325,51326,51327,51330,51332,51336,51337,51338,51342,51343,51344,51345,51346,51347,51349,51350,51351,51352,51353,51354,51355,51356,51358,51360,51362,51363,51364,51365,51366,51367,51369,51370,51371,51372,51373,51374,51375,51376,51377,51378,51379,51380,51381,51382,51383,51384,51385,51386,51387,51390,51391,51392,51393,null,null,null,null,null,null,51394,51395,51397,51398,51399,51401,51402,51403,51405,51406,51407,51408,51409,51410,51411,51414,51416,51418,51419,51420,51421,51422,51423,51426,51427,51429,null,null,null,null,null,null,51430,51431,51432,51433,51434,51435,51436,51437,51438,51439,51440,51441,51442,51443,51444,51446,51447,51448,51449,51450,51451,51454,51455,51457,51458,51459,51463,51464,51465,51466,51467,51470,12288,12289,12290,183,8229,8230,168,12291,173,8213,8741,65340,8764,8216,8217,8220,8221,12308,12309,12296,12297,12298,12299,12300,12301,12302,12303,12304,12305,177,215,247,8800,8804,8805,8734,8756,176,8242,8243,8451,8491,65504,65505,65509,9794,9792,8736,8869,8978,8706,8711,8801,8786,167,8251,9734,9733,9675,9679,9678,9671,9670,9633,9632,9651,9650,9661,9660,8594,8592,8593,8595,8596,12307,8810,8811,8730,8765,8733,8757,8747,8748,8712,8715,8838,8839,8834,8835,8746,8745,8743,8744,65506,51472,51474,51475,51476,51477,51478,51479,51481,51482,51483,51484,51485,51486,51487,51488,51489,51490,51491,51492,51493,51494,51495,51496,51497,51498,51499,null,null,null,null,null,null,51501,51502,51503,51504,51505,51506,51507,51509,51510,51511,51512,51513,51514,51515,51516,51517,51518,51519,51520,51521,51522,51523,51524,51525,51526,51527,null,null,null,null,null,null,51528,51529,51530,51531,51532,51533,51534,51535,51538,51539,51541,51542,51543,51545,51546,51547,51548,51549,51550,51551,51554,51556,51557,51558,51559,51560,51561,51562,51563,51565,51566,51567,8658,8660,8704,8707,180,65374,711,728,733,730,729,184,731,161,191,720,8750,8721,8719,164,8457,8240,9665,9664,9655,9654,9828,9824,9825,9829,9831,9827,8857,9672,9635,9680,9681,9618,9636,9637,9640,9639,9638,9641,9832,9743,9742,9756,9758,182,8224,8225,8597,8599,8601,8598,8600,9837,9833,9834,9836,12927,12828,8470,13255,8482,13250,13272,8481,8364,174,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,51569,51570,51571,51573,51574,51575,51576,51577,51578,51579,51581,51582,51583,51584,51585,51586,51587,51588,51589,51590,51591,51594,51595,51597,51598,51599,null,null,null,null,null,null,51601,51602,51603,51604,51605,51606,51607,51610,51612,51614,51615,51616,51617,51618,51619,51620,51621,51622,51623,51624,51625,51626,51627,51628,51629,51630,null,null,null,null,null,null,51631,51632,51633,51634,51635,51636,51637,51638,51639,51640,51641,51642,51643,51644,51645,51646,51647,51650,51651,51653,51654,51657,51659,51660,51661,51662,51663,51666,51668,51671,51672,51675,65281,65282,65283,65284,65285,65286,65287,65288,65289,65290,65291,65292,65293,65294,65295,65296,65297,65298,65299,65300,65301,65302,65303,65304,65305,65306,65307,65308,65309,65310,65311,65312,65313,65314,65315,65316,65317,65318,65319,65320,65321,65322,65323,65324,65325,65326,65327,65328,65329,65330,65331,65332,65333,65334,65335,65336,65337,65338,65339,65510,65341,65342,65343,65344,65345,65346,65347,65348,65349,65350,65351,65352,65353,65354,65355,65356,65357,65358,65359,65360,65361,65362,65363,65364,65365,65366,65367,65368,65369,65370,65371,65372,65373,65507,51678,51679,51681,51683,51685,51686,51688,51689,51690,51691,51694,51698,51699,51700,51701,51702,51703,51706,51707,51709,51710,51711,51713,51714,51715,51716,null,null,null,null,null,null,51717,51718,51719,51722,51726,51727,51728,51729,51730,51731,51733,51734,51735,51737,51738,51739,51740,51741,51742,51743,51744,51745,51746,51747,51748,51749,null,null,null,null,null,null,51750,51751,51752,51754,51755,51756,51757,51758,51759,51760,51761,51762,51763,51764,51765,51766,51767,51768,51769,51770,51771,51772,51773,51774,51775,51776,51777,51778,51779,51780,51781,51782,12593,12594,12595,12596,12597,12598,12599,12600,12601,12602,12603,12604,12605,12606,12607,12608,12609,12610,12611,12612,12613,12614,12615,12616,12617,12618,12619,12620,12621,12622,12623,12624,12625,12626,12627,12628,12629,12630,12631,12632,12633,12634,12635,12636,12637,12638,12639,12640,12641,12642,12643,12644,12645,12646,12647,12648,12649,12650,12651,12652,12653,12654,12655,12656,12657,12658,12659,12660,12661,12662,12663,12664,12665,12666,12667,12668,12669,12670,12671,12672,12673,12674,12675,12676,12677,12678,12679,12680,12681,12682,12683,12684,12685,12686,51783,51784,51785,51786,51787,51790,51791,51793,51794,51795,51797,51798,51799,51800,51801,51802,51803,51806,51810,51811,51812,51813,51814,51815,51817,51818,null,null,null,null,null,null,51819,51820,51821,51822,51823,51824,51825,51826,51827,51828,51829,51830,51831,51832,51833,51834,51835,51836,51838,51839,51840,51841,51842,51843,51845,51846,null,null,null,null,null,null,51847,51848,51849,51850,51851,51852,51853,51854,51855,51856,51857,51858,51859,51860,51861,51862,51863,51865,51866,51867,51868,51869,51870,51871,51872,51873,51874,51875,51876,51877,51878,51879,8560,8561,8562,8563,8564,8565,8566,8567,8568,8569,null,null,null,null,null,8544,8545,8546,8547,8548,8549,8550,8551,8552,8553,null,null,null,null,null,null,null,913,914,915,916,917,918,919,920,921,922,923,924,925,926,927,928,929,931,932,933,934,935,936,937,null,null,null,null,null,null,null,null,945,946,947,948,949,950,951,952,953,954,955,956,957,958,959,960,961,963,964,965,966,967,968,969,null,null,null,null,null,null,51880,51881,51882,51883,51884,51885,51886,51887,51888,51889,51890,51891,51892,51893,51894,51895,51896,51897,51898,51899,51902,51903,51905,51906,51907,51909,null,null,null,null,null,null,51910,51911,51912,51913,51914,51915,51918,51920,51922,51924,51925,51926,51927,51930,51931,51932,51933,51934,51935,51937,51938,51939,51940,51941,51942,51943,null,null,null,null,null,null,51944,51945,51946,51947,51949,51950,51951,51952,51953,51954,51955,51957,51958,51959,51960,51961,51962,51963,51964,51965,51966,51967,51968,51969,51970,51971,51972,51973,51974,51975,51977,51978,9472,9474,9484,9488,9496,9492,9500,9516,9508,9524,9532,9473,9475,9487,9491,9499,9495,9507,9523,9515,9531,9547,9504,9519,9512,9527,9535,9501,9520,9509,9528,9538,9490,9489,9498,9497,9494,9493,9486,9485,9502,9503,9505,9506,9510,9511,9513,9514,9517,9518,9521,9522,9525,9526,9529,9530,9533,9534,9536,9537,9539,9540,9541,9542,9543,9544,9545,9546,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,51979,51980,51981,51982,51983,51985,51986,51987,51989,51990,51991,51993,51994,51995,51996,51997,51998,51999,52002,52003,52004,52005,52006,52007,52008,52009,null,null,null,null,null,null,52010,52011,52012,52013,52014,52015,52016,52017,52018,52019,52020,52021,52022,52023,52024,52025,52026,52027,52028,52029,52030,52031,52032,52034,52035,52036,null,null,null,null,null,null,52037,52038,52039,52042,52043,52045,52046,52047,52049,52050,52051,52052,52053,52054,52055,52058,52059,52060,52062,52063,52064,52065,52066,52067,52069,52070,52071,52072,52073,52074,52075,52076,13205,13206,13207,8467,13208,13252,13219,13220,13221,13222,13209,13210,13211,13212,13213,13214,13215,13216,13217,13218,13258,13197,13198,13199,13263,13192,13193,13256,13223,13224,13232,13233,13234,13235,13236,13237,13238,13239,13240,13241,13184,13185,13186,13187,13188,13242,13243,13244,13245,13246,13247,13200,13201,13202,13203,13204,8486,13248,13249,13194,13195,13196,13270,13253,13229,13230,13231,13275,13225,13226,13227,13228,13277,13264,13267,13251,13257,13276,13254,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,52077,52078,52079,52080,52081,52082,52083,52084,52085,52086,52087,52090,52091,52092,52093,52094,52095,52096,52097,52098,52099,52100,52101,52102,52103,52104,null,null,null,null,null,null,52105,52106,52107,52108,52109,52110,52111,52112,52113,52114,52115,52116,52117,52118,52119,52120,52121,52122,52123,52125,52126,52127,52128,52129,52130,52131,null,null,null,null,null,null,52132,52133,52134,52135,52136,52137,52138,52139,52140,52141,52142,52143,52144,52145,52146,52147,52148,52149,52150,52151,52153,52154,52155,52156,52157,52158,52159,52160,52161,52162,52163,52164,198,208,170,294,null,306,null,319,321,216,338,186,222,358,330,null,12896,12897,12898,12899,12900,12901,12902,12903,12904,12905,12906,12907,12908,12909,12910,12911,12912,12913,12914,12915,12916,12917,12918,12919,12920,12921,12922,12923,9424,9425,9426,9427,9428,9429,9430,9431,9432,9433,9434,9435,9436,9437,9438,9439,9440,9441,9442,9443,9444,9445,9446,9447,9448,9449,9312,9313,9314,9315,9316,9317,9318,9319,9320,9321,9322,9323,9324,9325,9326,189,8531,8532,188,190,8539,8540,8541,8542,52165,52166,52167,52168,52169,52170,52171,52172,52173,52174,52175,52176,52177,52178,52179,52181,52182,52183,52184,52185,52186,52187,52188,52189,52190,52191,null,null,null,null,null,null,52192,52193,52194,52195,52197,52198,52200,52202,52203,52204,52205,52206,52207,52208,52209,52210,52211,52212,52213,52214,52215,52216,52217,52218,52219,52220,null,null,null,null,null,null,52221,52222,52223,52224,52225,52226,52227,52228,52229,52230,52231,52232,52233,52234,52235,52238,52239,52241,52242,52243,52245,52246,52247,52248,52249,52250,52251,52254,52255,52256,52259,52260,230,273,240,295,305,307,312,320,322,248,339,223,254,359,331,329,12800,12801,12802,12803,12804,12805,12806,12807,12808,12809,12810,12811,12812,12813,12814,12815,12816,12817,12818,12819,12820,12821,12822,12823,12824,12825,12826,12827,9372,9373,9374,9375,9376,9377,9378,9379,9380,9381,9382,9383,9384,9385,9386,9387,9388,9389,9390,9391,9392,9393,9394,9395,9396,9397,9332,9333,9334,9335,9336,9337,9338,9339,9340,9341,9342,9343,9344,9345,9346,185,178,179,8308,8319,8321,8322,8323,8324,52261,52262,52266,52267,52269,52271,52273,52274,52275,52276,52277,52278,52279,52282,52287,52288,52289,52290,52291,52294,52295,52297,52298,52299,52301,52302,null,null,null,null,null,null,52303,52304,52305,52306,52307,52310,52314,52315,52316,52317,52318,52319,52321,52322,52323,52325,52327,52329,52330,52331,52332,52333,52334,52335,52337,52338,null,null,null,null,null,null,52339,52340,52342,52343,52344,52345,52346,52347,52348,52349,52350,52351,52352,52353,52354,52355,52356,52357,52358,52359,52360,52361,52362,52363,52364,52365,52366,52367,52368,52369,52370,52371,12353,12354,12355,12356,12357,12358,12359,12360,12361,12362,12363,12364,12365,12366,12367,12368,12369,12370,12371,12372,12373,12374,12375,12376,12377,12378,12379,12380,12381,12382,12383,12384,12385,12386,12387,12388,12389,12390,12391,12392,12393,12394,12395,12396,12397,12398,12399,12400,12401,12402,12403,12404,12405,12406,12407,12408,12409,12410,12411,12412,12413,12414,12415,12416,12417,12418,12419,12420,12421,12422,12423,12424,12425,12426,12427,12428,12429,12430,12431,12432,12433,12434,12435,null,null,null,null,null,null,null,null,null,null,null,52372,52373,52374,52375,52378,52379,52381,52382,52383,52385,52386,52387,52388,52389,52390,52391,52394,52398,52399,52400,52401,52402,52403,52406,52407,52409,null,null,null,null,null,null,52410,52411,52413,52414,52415,52416,52417,52418,52419,52422,52424,52426,52427,52428,52429,52430,52431,52433,52434,52435,52437,52438,52439,52440,52441,52442,null,null,null,null,null,null,52443,52444,52445,52446,52447,52448,52449,52450,52451,52453,52454,52455,52456,52457,52458,52459,52461,52462,52463,52465,52466,52467,52468,52469,52470,52471,52472,52473,52474,52475,52476,52477,12449,12450,12451,12452,12453,12454,12455,12456,12457,12458,12459,12460,12461,12462,12463,12464,12465,12466,12467,12468,12469,12470,12471,12472,12473,12474,12475,12476,12477,12478,12479,12480,12481,12482,12483,12484,12485,12486,12487,12488,12489,12490,12491,12492,12493,12494,12495,12496,12497,12498,12499,12500,12501,12502,12503,12504,12505,12506,12507,12508,12509,12510,12511,12512,12513,12514,12515,12516,12517,12518,12519,12520,12521,12522,12523,12524,12525,12526,12527,12528,12529,12530,12531,12532,12533,12534,null,null,null,null,null,null,null,null,52478,52479,52480,52482,52483,52484,52485,52486,52487,52490,52491,52493,52494,52495,52497,52498,52499,52500,52501,52502,52503,52506,52508,52510,52511,52512,null,null,null,null,null,null,52513,52514,52515,52517,52518,52519,52521,52522,52523,52525,52526,52527,52528,52529,52530,52531,52532,52533,52534,52535,52536,52538,52539,52540,52541,52542,null,null,null,null,null,null,52543,52544,52545,52546,52547,52548,52549,52550,52551,52552,52553,52554,52555,52556,52557,52558,52559,52560,52561,52562,52563,52564,52565,52566,52567,52568,52569,52570,52571,52573,52574,52575,1040,1041,1042,1043,1044,1045,1025,1046,1047,1048,1049,1050,1051,1052,1053,1054,1055,1056,1057,1058,1059,1060,1061,1062,1063,1064,1065,1066,1067,1068,1069,1070,1071,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,1072,1073,1074,1075,1076,1077,1105,1078,1079,1080,1081,1082,1083,1084,1085,1086,1087,1088,1089,1090,1091,1092,1093,1094,1095,1096,1097,1098,1099,1100,1101,1102,1103,null,null,null,null,null,null,null,null,null,null,null,null,null,52577,52578,52579,52581,52582,52583,52584,52585,52586,52587,52590,52592,52594,52595,52596,52597,52598,52599,52601,52602,52603,52604,52605,52606,52607,52608,null,null,null,null,null,null,52609,52610,52611,52612,52613,52614,52615,52617,52618,52619,52620,52621,52622,52623,52624,52625,52626,52627,52630,52631,52633,52634,52635,52637,52638,52639,null,null,null,null,null,null,52640,52641,52642,52643,52646,52648,52650,52651,52652,52653,52654,52655,52657,52658,52659,52660,52661,52662,52663,52664,52665,52666,52667,52668,52669,52670,52671,52672,52673,52674,52675,52677,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,52678,52679,52680,52681,52682,52683,52685,52686,52687,52689,52690,52691,52692,52693,52694,52695,52696,52697,52698,52699,52700,52701,52702,52703,52704,52705,null,null,null,null,null,null,52706,52707,52708,52709,52710,52711,52713,52714,52715,52717,52718,52719,52721,52722,52723,52724,52725,52726,52727,52730,52732,52734,52735,52736,52737,52738,null,null,null,null,null,null,52739,52741,52742,52743,52745,52746,52747,52749,52750,52751,52752,52753,52754,52755,52757,52758,52759,52760,52762,52763,52764,52765,52766,52767,52770,52771,52773,52774,52775,52777,52778,52779,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,52780,52781,52782,52783,52786,52788,52790,52791,52792,52793,52794,52795,52796,52797,52798,52799,52800,52801,52802,52803,52804,52805,52806,52807,52808,52809,null,null,null,null,null,null,52810,52811,52812,52813,52814,52815,52816,52817,52818,52819,52820,52821,52822,52823,52826,52827,52829,52830,52834,52835,52836,52837,52838,52839,52842,52844,null,null,null,null,null,null,52846,52847,52848,52849,52850,52851,52854,52855,52857,52858,52859,52861,52862,52863,52864,52865,52866,52867,52870,52872,52874,52875,52876,52877,52878,52879,52882,52883,52885,52886,52887,52889,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,52890,52891,52892,52893,52894,52895,52898,52902,52903,52904,52905,52906,52907,52910,52911,52912,52913,52914,52915,52916,52917,52918,52919,52920,52921,52922,null,null,null,null,null,null,52923,52924,52925,52926,52927,52928,52930,52931,52932,52933,52934,52935,52936,52937,52938,52939,52940,52941,52942,52943,52944,52945,52946,52947,52948,52949,null,null,null,null,null,null,52950,52951,52952,52953,52954,52955,52956,52957,52958,52959,52960,52961,52962,52963,52966,52967,52969,52970,52973,52974,52975,52976,52977,52978,52979,52982,52986,52987,52988,52989,52990,52991,44032,44033,44036,44039,44040,44041,44042,44048,44049,44050,44051,44052,44053,44054,44055,44057,44058,44059,44060,44061,44064,44068,44076,44077,44079,44080,44081,44088,44089,44092,44096,44107,44109,44116,44120,44124,44144,44145,44148,44151,44152,44154,44160,44161,44163,44164,44165,44166,44169,44170,44171,44172,44176,44180,44188,44189,44191,44192,44193,44200,44201,44202,44204,44207,44208,44216,44217,44219,44220,44221,44225,44228,44232,44236,44245,44247,44256,44257,44260,44263,44264,44266,44268,44271,44272,44273,44275,44277,44278,44284,44285,44288,44292,44294,52994,52995,52997,52998,52999,53001,53002,53003,53004,53005,53006,53007,53010,53012,53014,53015,53016,53017,53018,53019,53021,53022,53023,53025,53026,53027,null,null,null,null,null,null,53029,53030,53031,53032,53033,53034,53035,53038,53042,53043,53044,53045,53046,53047,53049,53050,53051,53052,53053,53054,53055,53056,53057,53058,53059,53060,null,null,null,null,null,null,53061,53062,53063,53064,53065,53066,53067,53068,53069,53070,53071,53072,53073,53074,53075,53078,53079,53081,53082,53083,53085,53086,53087,53088,53089,53090,53091,53094,53096,53098,53099,53100,44300,44301,44303,44305,44312,44316,44320,44329,44332,44333,44340,44341,44344,44348,44356,44357,44359,44361,44368,44372,44376,44385,44387,44396,44397,44400,44403,44404,44405,44406,44411,44412,44413,44415,44417,44418,44424,44425,44428,44432,44444,44445,44452,44471,44480,44481,44484,44488,44496,44497,44499,44508,44512,44516,44536,44537,44540,44543,44544,44545,44552,44553,44555,44557,44564,44592,44593,44596,44599,44600,44602,44608,44609,44611,44613,44614,44618,44620,44621,44622,44624,44628,44630,44636,44637,44639,44640,44641,44645,44648,44649,44652,44656,44664,53101,53102,53103,53106,53107,53109,53110,53111,53113,53114,53115,53116,53117,53118,53119,53121,53122,53123,53124,53126,53127,53128,53129,53130,53131,53133,null,null,null,null,null,null,53134,53135,53136,53137,53138,53139,53140,53141,53142,53143,53144,53145,53146,53147,53148,53149,53150,53151,53152,53154,53155,53156,53157,53158,53159,53161,null,null,null,null,null,null,53162,53163,53164,53165,53166,53167,53169,53170,53171,53172,53173,53174,53175,53176,53177,53178,53179,53180,53181,53182,53183,53184,53185,53186,53187,53189,53190,53191,53192,53193,53194,53195,44665,44667,44668,44669,44676,44677,44684,44732,44733,44734,44736,44740,44748,44749,44751,44752,44753,44760,44761,44764,44776,44779,44781,44788,44792,44796,44807,44808,44813,44816,44844,44845,44848,44850,44852,44860,44861,44863,44865,44866,44867,44872,44873,44880,44892,44893,44900,44901,44921,44928,44932,44936,44944,44945,44949,44956,44984,44985,44988,44992,44999,45e3,45001,45003,45005,45006,45012,45020,45032,45033,45040,45041,45044,45048,45056,45057,45060,45068,45072,45076,45084,45085,45096,45124,45125,45128,45130,45132,45134,45139,45140,45141,45143,45145,53196,53197,53198,53199,53200,53201,53202,53203,53204,53205,53206,53207,53208,53209,53210,53211,53212,53213,53214,53215,53218,53219,53221,53222,53223,53225,null,null,null,null,null,null,53226,53227,53228,53229,53230,53231,53234,53236,53238,53239,53240,53241,53242,53243,53245,53246,53247,53249,53250,53251,53253,53254,53255,53256,53257,53258,null,null,null,null,null,null,53259,53260,53261,53262,53263,53264,53266,53267,53268,53269,53270,53271,53273,53274,53275,53276,53277,53278,53279,53280,53281,53282,53283,53284,53285,53286,53287,53288,53289,53290,53291,53292,45149,45180,45181,45184,45188,45196,45197,45199,45201,45208,45209,45210,45212,45215,45216,45217,45218,45224,45225,45227,45228,45229,45230,45231,45233,45235,45236,45237,45240,45244,45252,45253,45255,45256,45257,45264,45265,45268,45272,45280,45285,45320,45321,45323,45324,45328,45330,45331,45336,45337,45339,45340,45341,45347,45348,45349,45352,45356,45364,45365,45367,45368,45369,45376,45377,45380,45384,45392,45393,45396,45397,45400,45404,45408,45432,45433,45436,45440,45442,45448,45449,45451,45453,45458,45459,45460,45464,45468,45480,45516,45520,45524,45532,45533,53294,53295,53296,53297,53298,53299,53302,53303,53305,53306,53307,53309,53310,53311,53312,53313,53314,53315,53318,53320,53322,53323,53324,53325,53326,53327,null,null,null,null,null,null,53329,53330,53331,53333,53334,53335,53337,53338,53339,53340,53341,53342,53343,53345,53346,53347,53348,53349,53350,53351,53352,53353,53354,53355,53358,53359,null,null,null,null,null,null,53361,53362,53363,53365,53366,53367,53368,53369,53370,53371,53374,53375,53376,53378,53379,53380,53381,53382,53383,53384,53385,53386,53387,53388,53389,53390,53391,53392,53393,53394,53395,53396,45535,45544,45545,45548,45552,45561,45563,45565,45572,45573,45576,45579,45580,45588,45589,45591,45593,45600,45620,45628,45656,45660,45664,45672,45673,45684,45685,45692,45700,45701,45705,45712,45713,45716,45720,45721,45722,45728,45729,45731,45733,45734,45738,45740,45744,45748,45768,45769,45772,45776,45778,45784,45785,45787,45789,45794,45796,45797,45798,45800,45803,45804,45805,45806,45807,45811,45812,45813,45815,45816,45817,45818,45819,45823,45824,45825,45828,45832,45840,45841,45843,45844,45845,45852,45908,45909,45910,45912,45915,45916,45918,45919,45924,45925,53397,53398,53399,53400,53401,53402,53403,53404,53405,53406,53407,53408,53409,53410,53411,53414,53415,53417,53418,53419,53421,53422,53423,53424,53425,53426,null,null,null,null,null,null,53427,53430,53432,53434,53435,53436,53437,53438,53439,53442,53443,53445,53446,53447,53450,53451,53452,53453,53454,53455,53458,53462,53463,53464,53465,53466,null,null,null,null,null,null,53467,53470,53471,53473,53474,53475,53477,53478,53479,53480,53481,53482,53483,53486,53490,53491,53492,53493,53494,53495,53497,53498,53499,53500,53501,53502,53503,53504,53505,53506,53507,53508,45927,45929,45931,45934,45936,45937,45940,45944,45952,45953,45955,45956,45957,45964,45968,45972,45984,45985,45992,45996,46020,46021,46024,46027,46028,46030,46032,46036,46037,46039,46041,46043,46045,46048,46052,46056,46076,46096,46104,46108,46112,46120,46121,46123,46132,46160,46161,46164,46168,46176,46177,46179,46181,46188,46208,46216,46237,46244,46248,46252,46261,46263,46265,46272,46276,46280,46288,46293,46300,46301,46304,46307,46308,46310,46316,46317,46319,46321,46328,46356,46357,46360,46363,46364,46372,46373,46375,46376,46377,46378,46384,46385,46388,46392,53509,53510,53511,53512,53513,53514,53515,53516,53518,53519,53520,53521,53522,53523,53524,53525,53526,53527,53528,53529,53530,53531,53532,53533,53534,53535,null,null,null,null,null,null,53536,53537,53538,53539,53540,53541,53542,53543,53544,53545,53546,53547,53548,53549,53550,53551,53554,53555,53557,53558,53559,53561,53563,53564,53565,53566,null,null,null,null,null,null,53567,53570,53574,53575,53576,53577,53578,53579,53582,53583,53585,53586,53587,53589,53590,53591,53592,53593,53594,53595,53598,53600,53602,53603,53604,53605,53606,53607,53609,53610,53611,53613,46400,46401,46403,46404,46405,46411,46412,46413,46416,46420,46428,46429,46431,46432,46433,46496,46497,46500,46504,46506,46507,46512,46513,46515,46516,46517,46523,46524,46525,46528,46532,46540,46541,46543,46544,46545,46552,46572,46608,46609,46612,46616,46629,46636,46644,46664,46692,46696,46748,46749,46752,46756,46763,46764,46769,46804,46832,46836,46840,46848,46849,46853,46888,46889,46892,46895,46896,46904,46905,46907,46916,46920,46924,46932,46933,46944,46948,46952,46960,46961,46963,46965,46972,46973,46976,46980,46988,46989,46991,46992,46993,46994,46998,46999,53614,53615,53616,53617,53618,53619,53620,53621,53622,53623,53624,53625,53626,53627,53629,53630,53631,53632,53633,53634,53635,53637,53638,53639,53641,53642,null,null,null,null,null,null,53643,53644,53645,53646,53647,53648,53649,53650,53651,53652,53653,53654,53655,53656,53657,53658,53659,53660,53661,53662,53663,53666,53667,53669,53670,53671,null,null,null,null,null,null,53673,53674,53675,53676,53677,53678,53679,53682,53684,53686,53687,53688,53689,53691,53693,53694,53695,53697,53698,53699,53700,53701,53702,53703,53704,53705,53706,53707,53708,53709,53710,53711,47e3,47001,47004,47008,47016,47017,47019,47020,47021,47028,47029,47032,47047,47049,47084,47085,47088,47092,47100,47101,47103,47104,47105,47111,47112,47113,47116,47120,47128,47129,47131,47133,47140,47141,47144,47148,47156,47157,47159,47160,47161,47168,47172,47185,47187,47196,47197,47200,47204,47212,47213,47215,47217,47224,47228,47245,47272,47280,47284,47288,47296,47297,47299,47301,47308,47312,47316,47325,47327,47329,47336,47337,47340,47344,47352,47353,47355,47357,47364,47384,47392,47420,47421,47424,47428,47436,47439,47441,47448,47449,47452,47456,47464,47465,53712,53713,53714,53715,53716,53717,53718,53719,53721,53722,53723,53724,53725,53726,53727,53728,53729,53730,53731,53732,53733,53734,53735,53736,53737,53738,null,null,null,null,null,null,53739,53740,53741,53742,53743,53744,53745,53746,53747,53749,53750,53751,53753,53754,53755,53756,53757,53758,53759,53760,53761,53762,53763,53764,53765,53766,null,null,null,null,null,null,53768,53770,53771,53772,53773,53774,53775,53777,53778,53779,53780,53781,53782,53783,53784,53785,53786,53787,53788,53789,53790,53791,53792,53793,53794,53795,53796,53797,53798,53799,53800,53801,47467,47469,47476,47477,47480,47484,47492,47493,47495,47497,47498,47501,47502,47532,47533,47536,47540,47548,47549,47551,47553,47560,47561,47564,47566,47567,47568,47569,47570,47576,47577,47579,47581,47582,47585,47587,47588,47589,47592,47596,47604,47605,47607,47608,47609,47610,47616,47617,47624,47637,47672,47673,47676,47680,47682,47688,47689,47691,47693,47694,47699,47700,47701,47704,47708,47716,47717,47719,47720,47721,47728,47729,47732,47736,47747,47748,47749,47751,47756,47784,47785,47787,47788,47792,47794,47800,47801,47803,47805,47812,47816,47832,47833,47868,53802,53803,53806,53807,53809,53810,53811,53813,53814,53815,53816,53817,53818,53819,53822,53824,53826,53827,53828,53829,53830,53831,53833,53834,53835,53836,null,null,null,null,null,null,53837,53838,53839,53840,53841,53842,53843,53844,53845,53846,53847,53848,53849,53850,53851,53853,53854,53855,53856,53857,53858,53859,53861,53862,53863,53864,null,null,null,null,null,null,53865,53866,53867,53868,53869,53870,53871,53872,53873,53874,53875,53876,53877,53878,53879,53880,53881,53882,53883,53884,53885,53886,53887,53890,53891,53893,53894,53895,53897,53898,53899,53900,47872,47876,47885,47887,47889,47896,47900,47904,47913,47915,47924,47925,47926,47928,47931,47932,47933,47934,47940,47941,47943,47945,47949,47951,47952,47956,47960,47969,47971,47980,48008,48012,48016,48036,48040,48044,48052,48055,48064,48068,48072,48080,48083,48120,48121,48124,48127,48128,48130,48136,48137,48139,48140,48141,48143,48145,48148,48149,48150,48151,48152,48155,48156,48157,48158,48159,48164,48165,48167,48169,48173,48176,48177,48180,48184,48192,48193,48195,48196,48197,48201,48204,48205,48208,48221,48260,48261,48264,48267,48268,48270,48276,48277,48279,53901,53902,53903,53906,53907,53908,53910,53911,53912,53913,53914,53915,53917,53918,53919,53921,53922,53923,53925,53926,53927,53928,53929,53930,53931,53933,null,null,null,null,null,null,53934,53935,53936,53938,53939,53940,53941,53942,53943,53946,53947,53949,53950,53953,53955,53956,53957,53958,53959,53962,53964,53965,53966,53967,53968,53969,null,null,null,null,null,null,53970,53971,53973,53974,53975,53977,53978,53979,53981,53982,53983,53984,53985,53986,53987,53990,53991,53992,53993,53994,53995,53996,53997,53998,53999,54002,54003,54005,54006,54007,54009,54010,48281,48282,48288,48289,48292,48295,48296,48304,48305,48307,48308,48309,48316,48317,48320,48324,48333,48335,48336,48337,48341,48344,48348,48372,48373,48374,48376,48380,48388,48389,48391,48393,48400,48404,48420,48428,48448,48456,48457,48460,48464,48472,48473,48484,48488,48512,48513,48516,48519,48520,48521,48522,48528,48529,48531,48533,48537,48538,48540,48548,48560,48568,48596,48597,48600,48604,48617,48624,48628,48632,48640,48643,48645,48652,48653,48656,48660,48668,48669,48671,48708,48709,48712,48716,48718,48724,48725,48727,48729,48730,48731,48736,48737,48740,54011,54012,54013,54014,54015,54018,54020,54022,54023,54024,54025,54026,54027,54031,54033,54034,54035,54037,54039,54040,54041,54042,54043,54046,54050,54051,null,null,null,null,null,null,54052,54054,54055,54058,54059,54061,54062,54063,54065,54066,54067,54068,54069,54070,54071,54074,54078,54079,54080,54081,54082,54083,54086,54087,54088,54089,null,null,null,null,null,null,54090,54091,54092,54093,54094,54095,54096,54097,54098,54099,54100,54101,54102,54103,54104,54105,54106,54107,54108,54109,54110,54111,54112,54113,54114,54115,54116,54117,54118,54119,54120,54121,48744,48746,48752,48753,48755,48756,48757,48763,48764,48765,48768,48772,48780,48781,48783,48784,48785,48792,48793,48808,48848,48849,48852,48855,48856,48864,48867,48868,48869,48876,48897,48904,48905,48920,48921,48923,48924,48925,48960,48961,48964,48968,48976,48977,48981,49044,49072,49093,49100,49101,49104,49108,49116,49119,49121,49212,49233,49240,49244,49248,49256,49257,49296,49297,49300,49304,49312,49313,49315,49317,49324,49325,49327,49328,49331,49332,49333,49334,49340,49341,49343,49344,49345,49349,49352,49353,49356,49360,49368,49369,49371,49372,49373,49380,54122,54123,54124,54125,54126,54127,54128,54129,54130,54131,54132,54133,54134,54135,54136,54137,54138,54139,54142,54143,54145,54146,54147,54149,54150,54151,null,null,null,null,null,null,54152,54153,54154,54155,54158,54162,54163,54164,54165,54166,54167,54170,54171,54173,54174,54175,54177,54178,54179,54180,54181,54182,54183,54186,54188,54190,null,null,null,null,null,null,54191,54192,54193,54194,54195,54197,54198,54199,54201,54202,54203,54205,54206,54207,54208,54209,54210,54211,54214,54215,54218,54219,54220,54221,54222,54223,54225,54226,54227,54228,54229,54230,49381,49384,49388,49396,49397,49399,49401,49408,49412,49416,49424,49429,49436,49437,49438,49439,49440,49443,49444,49446,49447,49452,49453,49455,49456,49457,49462,49464,49465,49468,49472,49480,49481,49483,49484,49485,49492,49493,49496,49500,49508,49509,49511,49512,49513,49520,49524,49528,49541,49548,49549,49550,49552,49556,49558,49564,49565,49567,49569,49573,49576,49577,49580,49584,49597,49604,49608,49612,49620,49623,49624,49632,49636,49640,49648,49649,49651,49660,49661,49664,49668,49676,49677,49679,49681,49688,49689,49692,49695,49696,49704,49705,49707,49709,54231,54233,54234,54235,54236,54237,54238,54239,54240,54242,54244,54245,54246,54247,54248,54249,54250,54251,54254,54255,54257,54258,54259,54261,54262,54263,null,null,null,null,null,null,54264,54265,54266,54267,54270,54272,54274,54275,54276,54277,54278,54279,54281,54282,54283,54284,54285,54286,54287,54288,54289,54290,54291,54292,54293,54294,null,null,null,null,null,null,54295,54296,54297,54298,54299,54300,54302,54303,54304,54305,54306,54307,54308,54309,54310,54311,54312,54313,54314,54315,54316,54317,54318,54319,54320,54321,54322,54323,54324,54325,54326,54327,49711,49713,49714,49716,49736,49744,49745,49748,49752,49760,49765,49772,49773,49776,49780,49788,49789,49791,49793,49800,49801,49808,49816,49819,49821,49828,49829,49832,49836,49837,49844,49845,49847,49849,49884,49885,49888,49891,49892,49899,49900,49901,49903,49905,49910,49912,49913,49915,49916,49920,49928,49929,49932,49933,49939,49940,49941,49944,49948,49956,49957,49960,49961,49989,50024,50025,50028,50032,50034,50040,50041,50044,50045,50052,50056,50060,50112,50136,50137,50140,50143,50144,50146,50152,50153,50157,50164,50165,50168,50184,50192,50212,50220,50224,54328,54329,54330,54331,54332,54333,54334,54335,54337,54338,54339,54341,54342,54343,54344,54345,54346,54347,54348,54349,54350,54351,54352,54353,54354,54355,null,null,null,null,null,null,54356,54357,54358,54359,54360,54361,54362,54363,54365,54366,54367,54369,54370,54371,54373,54374,54375,54376,54377,54378,54379,54380,54382,54384,54385,54386,null,null,null,null,null,null,54387,54388,54389,54390,54391,54394,54395,54397,54398,54401,54403,54404,54405,54406,54407,54410,54412,54414,54415,54416,54417,54418,54419,54421,54422,54423,54424,54425,54426,54427,54428,54429,50228,50236,50237,50248,50276,50277,50280,50284,50292,50293,50297,50304,50324,50332,50360,50364,50409,50416,50417,50420,50424,50426,50431,50432,50433,50444,50448,50452,50460,50472,50473,50476,50480,50488,50489,50491,50493,50500,50501,50504,50505,50506,50508,50509,50510,50515,50516,50517,50519,50520,50521,50525,50526,50528,50529,50532,50536,50544,50545,50547,50548,50549,50556,50557,50560,50564,50567,50572,50573,50575,50577,50581,50583,50584,50588,50592,50601,50612,50613,50616,50617,50619,50620,50621,50622,50628,50629,50630,50631,50632,50633,50634,50636,50638,54430,54431,54432,54433,54434,54435,54436,54437,54438,54439,54440,54442,54443,54444,54445,54446,54447,54448,54449,54450,54451,54452,54453,54454,54455,54456,null,null,null,null,null,null,54457,54458,54459,54460,54461,54462,54463,54464,54465,54466,54467,54468,54469,54470,54471,54472,54473,54474,54475,54477,54478,54479,54481,54482,54483,54485,null,null,null,null,null,null,54486,54487,54488,54489,54490,54491,54493,54494,54496,54497,54498,54499,54500,54501,54502,54503,54505,54506,54507,54509,54510,54511,54513,54514,54515,54516,54517,54518,54519,54521,54522,54524,50640,50641,50644,50648,50656,50657,50659,50661,50668,50669,50670,50672,50676,50678,50679,50684,50685,50686,50687,50688,50689,50693,50694,50695,50696,50700,50704,50712,50713,50715,50716,50724,50725,50728,50732,50733,50734,50736,50739,50740,50741,50743,50745,50747,50752,50753,50756,50760,50768,50769,50771,50772,50773,50780,50781,50784,50796,50799,50801,50808,50809,50812,50816,50824,50825,50827,50829,50836,50837,50840,50844,50852,50853,50855,50857,50864,50865,50868,50872,50873,50874,50880,50881,50883,50885,50892,50893,50896,50900,50908,50909,50912,50913,50920,54526,54527,54528,54529,54530,54531,54533,54534,54535,54537,54538,54539,54541,54542,54543,54544,54545,54546,54547,54550,54552,54553,54554,54555,54556,54557,null,null,null,null,null,null,54558,54559,54560,54561,54562,54563,54564,54565,54566,54567,54568,54569,54570,54571,54572,54573,54574,54575,54576,54577,54578,54579,54580,54581,54582,54583,null,null,null,null,null,null,54584,54585,54586,54587,54590,54591,54593,54594,54595,54597,54598,54599,54600,54601,54602,54603,54606,54608,54610,54611,54612,54613,54614,54615,54618,54619,54621,54622,54623,54625,54626,54627,50921,50924,50928,50936,50937,50941,50948,50949,50952,50956,50964,50965,50967,50969,50976,50977,50980,50984,50992,50993,50995,50997,50999,51004,51005,51008,51012,51018,51020,51021,51023,51025,51026,51027,51028,51029,51030,51031,51032,51036,51040,51048,51051,51060,51061,51064,51068,51069,51070,51075,51076,51077,51079,51080,51081,51082,51086,51088,51089,51092,51094,51095,51096,51098,51104,51105,51107,51108,51109,51110,51116,51117,51120,51124,51132,51133,51135,51136,51137,51144,51145,51148,51150,51152,51160,51165,51172,51176,51180,51200,51201,51204,51208,51210,54628,54630,54631,54634,54636,54638,54639,54640,54641,54642,54643,54646,54647,54649,54650,54651,54653,54654,54655,54656,54657,54658,54659,54662,54666,54667,null,null,null,null,null,null,54668,54669,54670,54671,54673,54674,54675,54676,54677,54678,54679,54680,54681,54682,54683,54684,54685,54686,54687,54688,54689,54690,54691,54692,54694,54695,null,null,null,null,null,null,54696,54697,54698,54699,54700,54701,54702,54703,54704,54705,54706,54707,54708,54709,54710,54711,54712,54713,54714,54715,54716,54717,54718,54719,54720,54721,54722,54723,54724,54725,54726,54727,51216,51217,51219,51221,51222,51228,51229,51232,51236,51244,51245,51247,51249,51256,51260,51264,51272,51273,51276,51277,51284,51312,51313,51316,51320,51322,51328,51329,51331,51333,51334,51335,51339,51340,51341,51348,51357,51359,51361,51368,51388,51389,51396,51400,51404,51412,51413,51415,51417,51424,51425,51428,51445,51452,51453,51456,51460,51461,51462,51468,51469,51471,51473,51480,51500,51508,51536,51537,51540,51544,51552,51553,51555,51564,51568,51572,51580,51592,51593,51596,51600,51608,51609,51611,51613,51648,51649,51652,51655,51656,51658,51664,51665,51667,54730,54731,54733,54734,54735,54737,54739,54740,54741,54742,54743,54746,54748,54750,54751,54752,54753,54754,54755,54758,54759,54761,54762,54763,54765,54766,null,null,null,null,null,null,54767,54768,54769,54770,54771,54774,54776,54778,54779,54780,54781,54782,54783,54786,54787,54789,54790,54791,54793,54794,54795,54796,54797,54798,54799,54802,null,null,null,null,null,null,54806,54807,54808,54809,54810,54811,54813,54814,54815,54817,54818,54819,54821,54822,54823,54824,54825,54826,54827,54828,54830,54831,54832,54833,54834,54835,54836,54837,54838,54839,54842,54843,51669,51670,51673,51674,51676,51677,51680,51682,51684,51687,51692,51693,51695,51696,51697,51704,51705,51708,51712,51720,51721,51723,51724,51725,51732,51736,51753,51788,51789,51792,51796,51804,51805,51807,51808,51809,51816,51837,51844,51864,51900,51901,51904,51908,51916,51917,51919,51921,51923,51928,51929,51936,51948,51956,51976,51984,51988,51992,52e3,52001,52033,52040,52041,52044,52048,52056,52057,52061,52068,52088,52089,52124,52152,52180,52196,52199,52201,52236,52237,52240,52244,52252,52253,52257,52258,52263,52264,52265,52268,52270,52272,52280,52281,52283,54845,54846,54847,54849,54850,54851,54852,54854,54855,54858,54860,54862,54863,54864,54866,54867,54870,54871,54873,54874,54875,54877,54878,54879,54880,54881,null,null,null,null,null,null,54882,54883,54884,54885,54886,54888,54890,54891,54892,54893,54894,54895,54898,54899,54901,54902,54903,54904,54905,54906,54907,54908,54909,54910,54911,54912,null,null,null,null,null,null,54913,54914,54916,54918,54919,54920,54921,54922,54923,54926,54927,54929,54930,54931,54933,54934,54935,54936,54937,54938,54939,54940,54942,54944,54946,54947,54948,54949,54950,54951,54953,54954,52284,52285,52286,52292,52293,52296,52300,52308,52309,52311,52312,52313,52320,52324,52326,52328,52336,52341,52376,52377,52380,52384,52392,52393,52395,52396,52397,52404,52405,52408,52412,52420,52421,52423,52425,52432,52436,52452,52460,52464,52481,52488,52489,52492,52496,52504,52505,52507,52509,52516,52520,52524,52537,52572,52576,52580,52588,52589,52591,52593,52600,52616,52628,52629,52632,52636,52644,52645,52647,52649,52656,52676,52684,52688,52712,52716,52720,52728,52729,52731,52733,52740,52744,52748,52756,52761,52768,52769,52772,52776,52784,52785,52787,52789,54955,54957,54958,54959,54961,54962,54963,54964,54965,54966,54967,54968,54970,54972,54973,54974,54975,54976,54977,54978,54979,54982,54983,54985,54986,54987,null,null,null,null,null,null,54989,54990,54991,54992,54994,54995,54997,54998,55e3,55002,55003,55004,55005,55006,55007,55009,55010,55011,55013,55014,55015,55017,55018,55019,55020,55021,null,null,null,null,null,null,55022,55023,55025,55026,55027,55028,55030,55031,55032,55033,55034,55035,55038,55039,55041,55042,55043,55045,55046,55047,55048,55049,55050,55051,55052,55053,55054,55055,55056,55058,55059,55060,52824,52825,52828,52831,52832,52833,52840,52841,52843,52845,52852,52853,52856,52860,52868,52869,52871,52873,52880,52881,52884,52888,52896,52897,52899,52900,52901,52908,52909,52929,52964,52965,52968,52971,52972,52980,52981,52983,52984,52985,52992,52993,52996,53e3,53008,53009,53011,53013,53020,53024,53028,53036,53037,53039,53040,53041,53048,53076,53077,53080,53084,53092,53093,53095,53097,53104,53105,53108,53112,53120,53125,53132,53153,53160,53168,53188,53216,53217,53220,53224,53232,53233,53235,53237,53244,53248,53252,53265,53272,53293,53300,53301,53304,53308,55061,55062,55063,55066,55067,55069,55070,55071,55073,55074,55075,55076,55077,55078,55079,55082,55084,55086,55087,55088,55089,55090,55091,55094,55095,55097,null,null,null,null,null,null,55098,55099,55101,55102,55103,55104,55105,55106,55107,55109,55110,55112,55114,55115,55116,55117,55118,55119,55122,55123,55125,55130,55131,55132,55133,55134,null,null,null,null,null,null,55135,55138,55140,55142,55143,55144,55146,55147,55149,55150,55151,55153,55154,55155,55157,55158,55159,55160,55161,55162,55163,55166,55167,55168,55170,55171,55172,55173,55174,55175,55178,55179,53316,53317,53319,53321,53328,53332,53336,53344,53356,53357,53360,53364,53372,53373,53377,53412,53413,53416,53420,53428,53429,53431,53433,53440,53441,53444,53448,53449,53456,53457,53459,53460,53461,53468,53469,53472,53476,53484,53485,53487,53488,53489,53496,53517,53552,53553,53556,53560,53562,53568,53569,53571,53572,53573,53580,53581,53584,53588,53596,53597,53599,53601,53608,53612,53628,53636,53640,53664,53665,53668,53672,53680,53681,53683,53685,53690,53692,53696,53720,53748,53752,53767,53769,53776,53804,53805,53808,53812,53820,53821,53823,53825,53832,53852,55181,55182,55183,55185,55186,55187,55188,55189,55190,55191,55194,55196,55198,55199,55200,55201,55202,55203,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,53860,53888,53889,53892,53896,53904,53905,53909,53916,53920,53924,53932,53937,53944,53945,53948,53951,53952,53954,53960,53961,53963,53972,53976,53980,53988,53989,54e3,54001,54004,54008,54016,54017,54019,54021,54028,54029,54030,54032,54036,54038,54044,54045,54047,54048,54049,54053,54056,54057,54060,54064,54072,54073,54075,54076,54077,54084,54085,54140,54141,54144,54148,54156,54157,54159,54160,54161,54168,54169,54172,54176,54184,54185,54187,54189,54196,54200,54204,54212,54213,54216,54217,54224,54232,54241,54243,54252,54253,54256,54260,54268,54269,54271,54273,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,54280,54301,54336,54340,54364,54368,54372,54381,54383,54392,54393,54396,54399,54400,54402,54408,54409,54411,54413,54420,54441,54476,54480,54484,54492,54495,54504,54508,54512,54520,54523,54525,54532,54536,54540,54548,54549,54551,54588,54589,54592,54596,54604,54605,54607,54609,54616,54617,54620,54624,54629,54632,54633,54635,54637,54644,54645,54648,54652,54660,54661,54663,54664,54665,54672,54693,54728,54729,54732,54736,54738,54744,54745,54747,54749,54756,54757,54760,54764,54772,54773,54775,54777,54784,54785,54788,54792,54800,54801,54803,54804,54805,54812,54816,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,54820,54829,54840,54841,54844,54848,54853,54856,54857,54859,54861,54865,54868,54869,54872,54876,54887,54889,54896,54897,54900,54915,54917,54924,54925,54928,54932,54941,54943,54945,54952,54956,54960,54969,54971,54980,54981,54984,54988,54993,54996,54999,55001,55008,55012,55016,55024,55029,55036,55037,55040,55044,55057,55064,55065,55068,55072,55080,55081,55083,55085,55092,55093,55096,55100,55108,55111,55113,55120,55121,55124,55126,55127,55128,55129,55136,55137,55139,55141,55145,55148,55152,55156,55164,55165,55169,55176,55177,55180,55184,55192,55193,55195,55197,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,20285,20339,20551,20729,21152,21487,21621,21733,22025,23233,23478,26247,26550,26551,26607,27468,29634,30146,31292,33499,33540,34903,34952,35382,36040,36303,36603,36838,39381,21051,21364,21508,24682,24932,27580,29647,33050,35258,35282,38307,20355,21002,22718,22904,23014,24178,24185,25031,25536,26438,26604,26751,28567,30286,30475,30965,31240,31487,31777,32925,33390,33393,35563,38291,20075,21917,26359,28212,30883,31469,33883,35088,34638,38824,21208,22350,22570,23884,24863,25022,25121,25954,26577,27204,28187,29976,30131,30435,30640,32058,37039,37969,37970,40853,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,21283,23724,30002,32987,37440,38296,21083,22536,23004,23713,23831,24247,24378,24394,24951,27743,30074,30086,31968,32115,32177,32652,33108,33313,34193,35137,35611,37628,38477,40007,20171,20215,20491,20977,22607,24887,24894,24936,25913,27114,28433,30117,30342,30422,31623,33445,33995,63744,37799,38283,21888,23458,22353,63745,31923,32697,37301,20520,21435,23621,24040,25298,25454,25818,25831,28192,28844,31067,36317,36382,63746,36989,37445,37624,20094,20214,20581,24062,24314,24838,26967,33137,34388,36423,37749,39467,20062,20625,26480,26688,20745,21133,21138,27298,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,30652,37392,40660,21163,24623,36850,20552,25001,25581,25802,26684,27268,28608,33160,35233,38548,22533,29309,29356,29956,32121,32365,32937,35211,35700,36963,40273,25225,27770,28500,32080,32570,35363,20860,24906,31645,35609,37463,37772,20140,20435,20510,20670,20742,21185,21197,21375,22384,22659,24218,24465,24950,25004,25806,25964,26223,26299,26356,26775,28039,28805,28913,29855,29861,29898,30169,30828,30956,31455,31478,32069,32147,32789,32831,33051,33686,35686,36629,36885,37857,38915,38968,39514,39912,20418,21843,22586,22865,23395,23622,24760,25106,26690,26800,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,26856,28330,30028,30328,30926,31293,31995,32363,32380,35336,35489,35903,38542,40388,21476,21481,21578,21617,22266,22993,23396,23611,24235,25335,25911,25925,25970,26272,26543,27073,27837,30204,30352,30590,31295,32660,32771,32929,33167,33510,33533,33776,34241,34865,34996,35493,63747,36764,37678,38599,39015,39640,40723,21741,26011,26354,26767,31296,35895,40288,22256,22372,23825,26118,26801,26829,28414,29736,34974,39908,27752,63748,39592,20379,20844,20849,21151,23380,24037,24656,24685,25329,25511,25915,29657,31354,34467,36002,38799,20018,23521,25096,26524,29916,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,31185,33747,35463,35506,36328,36942,37707,38982,24275,27112,34303,37101,63749,20896,23448,23532,24931,26874,27454,28748,29743,29912,31649,32592,33733,35264,36011,38364,39208,21038,24669,25324,36866,20362,20809,21281,22745,24291,26336,27960,28826,29378,29654,31568,33009,37979,21350,25499,32619,20054,20608,22602,22750,24618,24871,25296,27088,39745,23439,32024,32945,36703,20132,20689,21676,21932,23308,23968,24039,25898,25934,26657,27211,29409,30350,30703,32094,32761,33184,34126,34527,36611,36686,37066,39171,39509,39851,19992,20037,20061,20167,20465,20855,21246,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,21312,21475,21477,21646,22036,22389,22434,23495,23943,24272,25084,25304,25937,26552,26601,27083,27472,27590,27628,27714,28317,28792,29399,29590,29699,30655,30697,31350,32127,32777,33276,33285,33290,33503,34914,35635,36092,36544,36881,37041,37476,37558,39378,39493,40169,40407,40860,22283,23616,33738,38816,38827,40628,21531,31384,32676,35033,36557,37089,22528,23624,25496,31391,23470,24339,31353,31406,33422,36524,20518,21048,21240,21367,22280,25331,25458,27402,28099,30519,21413,29527,34152,36470,38357,26426,27331,28528,35437,36556,39243,63750,26231,27512,36020,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,39740,63751,21483,22317,22862,25542,27131,29674,30789,31418,31429,31998,33909,35215,36211,36917,38312,21243,22343,30023,31584,33740,37406,63752,27224,20811,21067,21127,25119,26840,26997,38553,20677,21156,21220,25027,26020,26681,27135,29822,31563,33465,33771,35250,35641,36817,39241,63753,20170,22935,25810,26129,27278,29748,31105,31165,33449,34942,34943,35167,63754,37670,20235,21450,24613,25201,27762,32026,32102,20120,20834,30684,32943,20225,20238,20854,20864,21980,22120,22331,22522,22524,22804,22855,22931,23492,23696,23822,24049,24190,24524,25216,26071,26083,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,26398,26399,26462,26827,26820,27231,27450,27683,27773,27778,28103,29592,29734,29738,29826,29859,30072,30079,30849,30959,31041,31047,31048,31098,31637,32e3,32186,32648,32774,32813,32908,35352,35663,35912,36215,37665,37668,39138,39249,39438,39439,39525,40594,32202,20342,21513,25326,26708,37329,21931,20794,63755,63756,23068,25062,63757,25295,25343,63758,63759,63760,63761,63762,63763,37027,63764,63765,63766,63767,63768,35582,63769,63770,63771,63772,26262,63773,29014,63774,63775,38627,63776,25423,25466,21335,63777,26511,26976,28275,63778,30007,63779,63780,63781,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,32013,63782,63783,34930,22218,23064,63784,63785,63786,63787,63788,20035,63789,20839,22856,26608,32784,63790,22899,24180,25754,31178,24565,24684,25288,25467,23527,23511,21162,63791,22900,24361,24594,63792,63793,63794,29785,63795,63796,63797,63798,63799,63800,39377,63801,63802,63803,63804,63805,63806,63807,63808,63809,63810,63811,28611,63812,63813,33215,36786,24817,63814,63815,33126,63816,63817,23615,63818,63819,63820,63821,63822,63823,63824,63825,23273,35365,26491,32016,63826,63827,63828,63829,63830,63831,33021,63832,63833,23612,27877,21311,28346,22810,33590,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,20025,20150,20294,21934,22296,22727,24406,26039,26086,27264,27573,28237,30701,31471,31774,32222,34507,34962,37170,37723,25787,28606,29562,30136,36948,21846,22349,25018,25812,26311,28129,28251,28525,28601,30192,32835,33213,34113,35203,35527,35674,37663,27795,30035,31572,36367,36957,21776,22530,22616,24162,25095,25758,26848,30070,31958,34739,40680,20195,22408,22382,22823,23565,23729,24118,24453,25140,25825,29619,33274,34955,36024,38538,40667,23429,24503,24755,20498,20992,21040,22294,22581,22615,23566,23648,23798,23947,24230,24466,24764,25361,25481,25623,26691,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,26873,27330,28120,28193,28372,28644,29182,30428,30585,31153,31291,33796,35241,36077,36339,36424,36867,36884,36947,37117,37709,38518,38876,27602,28678,29272,29346,29544,30563,31167,31716,32411,35712,22697,24775,25958,26109,26302,27788,28958,29129,35930,38931,20077,31361,20189,20908,20941,21205,21516,24999,26481,26704,26847,27934,28540,30140,30643,31461,33012,33891,37509,20828,26007,26460,26515,30168,31431,33651,63834,35910,36887,38957,23663,33216,33434,36929,36975,37389,24471,23965,27225,29128,30331,31561,34276,35588,37159,39472,21895,25078,63835,30313,32645,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,34367,34746,35064,37007,63836,27931,28889,29662,32097,33853,63837,37226,39409,63838,20098,21365,27396,27410,28734,29211,34349,40478,21068,36771,23888,25829,25900,27414,28651,31811,32412,34253,35172,35261,25289,33240,34847,24266,26391,28010,29436,29701,29807,34690,37086,20358,23821,24480,33802,20919,25504,30053,20142,20486,20841,20937,26753,27153,31918,31921,31975,33391,35538,36635,37327,20406,20791,21237,21570,24300,24942,25150,26053,27354,28670,31018,34268,34851,38317,39522,39530,40599,40654,21147,26310,27511,28701,31019,36706,38722,24976,25088,25891,28451,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,29001,29833,32244,32879,34030,36646,36899,37706,20925,21015,21155,27916,28872,35010,24265,25986,27566,28610,31806,29557,20196,20278,22265,63839,23738,23994,24604,29618,31533,32666,32718,32838,36894,37428,38646,38728,38936,40801,20363,28583,31150,37300,38583,21214,63840,25736,25796,27347,28510,28696,29200,30439,32769,34310,34396,36335,36613,38706,39791,40442,40565,30860,31103,32160,33737,37636,40575,40595,35542,22751,24324,26407,28711,29903,31840,32894,20769,28712,29282,30922,36034,36058,36084,38647,20102,20698,23534,24278,26009,29134,30274,30637,32842,34044,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,36988,39719,40845,22744,23105,23650,27155,28122,28431,30267,32047,32311,34078,35128,37860,38475,21129,26066,26611,27060,27969,28316,28687,29705,29792,30041,30244,30827,35628,39006,20845,25134,38520,20374,20523,23833,28138,32184,36650,24459,24900,26647,63841,38534,21202,32907,20956,20940,26974,31260,32190,33777,38517,20442,21033,21400,21519,21774,23653,24743,26446,26792,28012,29313,29432,29702,29827,63842,30178,31852,32633,32696,33673,35023,35041,37324,37328,38626,39881,21533,28542,29136,29848,34298,36522,38563,40023,40607,26519,28107,29747,33256,38678,30764,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,31435,31520,31890,25705,29802,30194,30908,30952,39340,39764,40635,23518,24149,28448,33180,33707,37e3,19975,21325,23081,24018,24398,24930,25405,26217,26364,28415,28459,28771,30622,33836,34067,34875,36627,39237,39995,21788,25273,26411,27819,33545,35178,38778,20129,22916,24536,24537,26395,32178,32596,33426,33579,33725,36638,37017,22475,22969,23186,23504,26151,26522,26757,27599,29028,32629,36023,36067,36993,39749,33032,35978,38476,39488,40613,23391,27667,29467,30450,30431,33804,20906,35219,20813,20885,21193,26825,27796,30468,30496,32191,32236,38754,40629,28357,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,34065,20901,21517,21629,26126,26269,26919,28319,30399,30609,33559,33986,34719,37225,37528,40180,34946,20398,20882,21215,22982,24125,24917,25720,25721,26286,26576,27169,27597,27611,29279,29281,29761,30520,30683,32791,33468,33541,35584,35624,35980,26408,27792,29287,30446,30566,31302,40361,27519,27794,22818,26406,33945,21359,22675,22937,24287,25551,26164,26483,28218,29483,31447,33495,37672,21209,24043,25006,25035,25098,25287,25771,26080,26969,27494,27595,28961,29687,30045,32326,33310,33538,34154,35491,36031,38695,40289,22696,40664,20497,21006,21563,21839,25991,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,27766,32010,32011,32862,34442,38272,38639,21247,27797,29289,21619,23194,23614,23883,24396,24494,26410,26806,26979,28220,28228,30473,31859,32654,34183,35598,36855,38753,40692,23735,24758,24845,25003,25935,26107,26108,27665,27887,29599,29641,32225,38292,23494,34588,35600,21085,21338,25293,25615,25778,26420,27192,27850,29632,29854,31636,31893,32283,33162,33334,34180,36843,38649,39361,20276,21322,21453,21467,25292,25644,25856,26001,27075,27886,28504,29677,30036,30242,30436,30460,30928,30971,31020,32070,33324,34784,36820,38930,39151,21187,25300,25765,28196,28497,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,30332,36299,37297,37474,39662,39747,20515,20621,22346,22952,23592,24135,24439,25151,25918,26041,26049,26121,26507,27036,28354,30917,32033,32938,33152,33323,33459,33953,34444,35370,35607,37030,38450,40848,20493,20467,63843,22521,24472,25308,25490,26479,28227,28953,30403,32972,32986,35060,35061,35097,36064,36649,37197,38506,20271,20336,24091,26575,26658,30333,30334,39748,24161,27146,29033,29140,30058,63844,32321,34115,34281,39132,20240,31567,32624,38309,20961,24070,26805,27710,27726,27867,29359,31684,33539,27861,29754,20731,21128,22721,25816,27287,29863,30294,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,30887,34327,38370,38713,63845,21342,24321,35722,36776,36783,37002,21029,30629,40009,40712,19993,20482,20853,23643,24183,26142,26170,26564,26821,28851,29953,30149,31177,31453,36647,39200,39432,20445,22561,22577,23542,26222,27493,27921,28282,28541,29668,29995,33769,35036,35091,35676,36628,20239,20693,21264,21340,23443,24489,26381,31119,33145,33583,34068,35079,35206,36665,36667,39333,39954,26412,20086,20472,22857,23553,23791,23792,25447,26834,28925,29090,29739,32299,34028,34562,36898,37586,40179,19981,20184,20463,20613,21078,21103,21542,21648,22496,22827,23142,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,23386,23413,23500,24220,63846,25206,25975,26023,28014,28325,29238,31526,31807,32566,33104,33105,33178,33344,33433,33705,35331,36e3,36070,36091,36212,36282,37096,37340,38428,38468,39385,40167,21271,20998,21545,22132,22707,22868,22894,24575,24996,25198,26128,27774,28954,30406,31881,31966,32027,33452,36033,38640,63847,20315,24343,24447,25282,23849,26379,26842,30844,32323,40300,19989,20633,21269,21290,21329,22915,23138,24199,24754,24970,25161,25209,26e3,26503,27047,27604,27606,27607,27608,27832,63848,29749,30202,30738,30865,31189,31192,31875,32203,32737,32933,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,33086,33218,33778,34586,35048,35513,35692,36027,37145,38750,39131,40763,22188,23338,24428,25996,27315,27567,27996,28657,28693,29277,29613,36007,36051,38971,24977,27703,32856,39425,20045,20107,20123,20181,20282,20284,20351,20447,20735,21490,21496,21766,21987,22235,22763,22882,23057,23531,23546,23556,24051,24107,24473,24605,25448,26012,26031,26614,26619,26797,27515,27801,27863,28195,28681,29509,30722,31038,31040,31072,31169,31721,32023,32114,32902,33293,33678,34001,34503,35039,35408,35422,35613,36060,36198,36781,37034,39164,39391,40605,21066,63849,26388,63850,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,20632,21034,23665,25955,27733,29642,29987,30109,31639,33948,37240,38704,20087,25746,27578,29022,34217,19977,63851,26441,26862,28183,33439,34072,34923,25591,28545,37394,39087,19978,20663,20687,20767,21830,21930,22039,23360,23577,23776,24120,24202,24224,24258,24819,26705,27233,28248,29245,29248,29376,30456,31077,31665,32724,35059,35316,35443,35937,36062,38684,22622,29885,36093,21959,63852,31329,32034,33394,29298,29983,29989,63853,31513,22661,22779,23996,24207,24246,24464,24661,25234,25471,25933,26257,26329,26360,26646,26866,29312,29790,31598,32110,32214,32626,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,32997,33298,34223,35199,35475,36893,37604,40653,40736,22805,22893,24109,24796,26132,26227,26512,27728,28101,28511,30707,30889,33990,37323,37675,20185,20682,20808,21892,23307,23459,25159,25982,26059,28210,29053,29697,29764,29831,29887,30316,31146,32218,32341,32680,33146,33203,33337,34330,34796,35445,36323,36984,37521,37925,39245,39854,21352,23633,26964,27844,27945,28203,33292,34203,35131,35373,35498,38634,40807,21089,26297,27570,32406,34814,36109,38275,38493,25885,28041,29166,63854,22478,22995,23468,24615,24826,25104,26143,26207,29481,29689,30427,30465,31596,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,32854,32882,33125,35488,37266,19990,21218,27506,27927,31237,31545,32048,63855,36016,21484,22063,22609,23477,23567,23569,24034,25152,25475,25620,26157,26803,27836,28040,28335,28703,28836,29138,29990,30095,30094,30233,31505,31712,31787,32032,32057,34092,34157,34311,35380,36877,36961,37045,37559,38902,39479,20439,23660,26463,28049,31903,32396,35606,36118,36895,23403,24061,25613,33984,36956,39137,29575,23435,24730,26494,28126,35359,35494,36865,38924,21047,63856,28753,30862,37782,34928,37335,20462,21463,22013,22234,22402,22781,23234,23432,23723,23744,24101,24833,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,25101,25163,25480,25628,25910,25976,27193,27530,27700,27929,28465,29159,29417,29560,29703,29874,30246,30561,31168,31319,31466,31929,32143,32172,32353,32670,33065,33585,33936,34010,34282,34966,35504,35728,36664,36930,36995,37228,37526,37561,38539,38567,38568,38614,38656,38920,39318,39635,39706,21460,22654,22809,23408,23487,28113,28506,29087,29729,29881,32901,33789,24033,24455,24490,24642,26092,26642,26991,27219,27529,27957,28147,29667,30462,30636,31565,32020,33059,33308,33600,34036,34147,35426,35524,37255,37662,38918,39348,25100,34899,36848,37477,23815,23847,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,23913,29791,33181,34664,28629,25342,32722,35126,35186,19998,20056,20711,21213,21319,25215,26119,32361,34821,38494,20365,21273,22070,22987,23204,23608,23630,23629,24066,24337,24643,26045,26159,26178,26558,26612,29468,30690,31034,32709,33940,33997,35222,35430,35433,35553,35925,35962,22516,23508,24335,24687,25325,26893,27542,28252,29060,31698,34645,35672,36606,39135,39166,20280,20353,20449,21627,23072,23480,24892,26032,26216,29180,30003,31070,32051,33102,33251,33688,34218,34254,34563,35338,36523,36763,63857,36805,22833,23460,23526,24713,23529,23563,24515,27777,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,63858,28145,28683,29978,33455,35574,20160,21313,63859,38617,27663,20126,20420,20818,21854,23077,23784,25105,29273,33469,33706,34558,34905,35357,38463,38597,39187,40201,40285,22538,23731,23997,24132,24801,24853,25569,27138,28197,37122,37716,38990,39952,40823,23433,23736,25353,26191,26696,30524,38593,38797,38996,39839,26017,35585,36555,38332,21813,23721,24022,24245,26263,30284,33780,38343,22739,25276,29390,40232,20208,22830,24591,26171,27523,31207,40230,21395,21696,22467,23830,24859,26326,28079,30861,33406,38552,38724,21380,25212,25494,28082,32266,33099,38989,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,27387,32588,40367,40474,20063,20539,20918,22812,24825,25590,26928,29242,32822,63860,37326,24369,63861,63862,32004,33509,33903,33979,34277,36493,63863,20335,63864,63865,22756,23363,24665,25562,25880,25965,26264,63866,26954,27171,27915,28673,29036,30162,30221,31155,31344,63867,32650,63868,35140,63869,35731,37312,38525,63870,39178,22276,24481,26044,28417,30208,31142,35486,39341,39770,40812,20740,25014,25233,27277,33222,20547,22576,24422,28937,35328,35578,23420,34326,20474,20796,22196,22852,25513,28153,23978,26989,20870,20104,20313,63871,63872,63873,22914,63874,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,63875,27487,27741,63876,29877,30998,63877,33287,33349,33593,36671,36701,63878,39192,63879,63880,63881,20134,63882,22495,24441,26131,63883,63884,30123,32377,35695,63885,36870,39515,22181,22567,23032,23071,23476,63886,24310,63887,63888,25424,25403,63889,26941,27783,27839,28046,28051,28149,28436,63890,28895,28982,29017,63891,29123,29141,63892,30799,30831,63893,31605,32227,63894,32303,63895,34893,36575,63896,63897,63898,37467,63899,40182,63900,63901,63902,24709,28037,63903,29105,63904,63905,38321,21421,63906,63907,63908,26579,63909,28814,28976,29744,33398,33490,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,63910,38331,39653,40573,26308,63911,29121,33865,63912,63913,22603,63914,63915,23992,24433,63916,26144,26254,27001,27054,27704,27891,28214,28481,28634,28699,28719,29008,29151,29552,63917,29787,63918,29908,30408,31310,32403,63919,63920,33521,35424,36814,63921,37704,63922,38681,63923,63924,20034,20522,63925,21e3,21473,26355,27757,28618,29450,30591,31330,33454,34269,34306,63926,35028,35427,35709,35947,63927,37555,63928,38675,38928,20116,20237,20425,20658,21320,21566,21555,21978,22626,22714,22887,23067,23524,24735,63929,25034,25942,26111,26212,26791,27738,28595,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,28879,29100,29522,31613,34568,35492,39986,40711,23627,27779,29508,29577,37434,28331,29797,30239,31337,32277,34314,20800,22725,25793,29934,29973,30320,32705,37013,38605,39252,28198,29926,31401,31402,33253,34521,34680,35355,23113,23436,23451,26785,26880,28003,29609,29715,29740,30871,32233,32747,33048,33109,33694,35916,38446,38929,26352,24448,26106,26505,27754,29579,20525,23043,27498,30702,22806,23916,24013,29477,30031,63930,63931,20709,20985,22575,22829,22934,23002,23525,63932,63933,23970,25303,25622,25747,25854,63934,26332,63935,27208,63936,29183,29796,63937,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,31368,31407,32327,32350,32768,33136,63938,34799,35201,35616,36953,63939,36992,39250,24958,27442,28020,32287,35109,36785,20433,20653,20887,21191,22471,22665,23481,24248,24898,27029,28044,28263,28342,29076,29794,29992,29996,32883,33592,33993,36362,37780,37854,63940,20110,20305,20598,20778,21448,21451,21491,23431,23507,23588,24858,24962,26100,29275,29591,29760,30402,31056,31121,31161,32006,32701,33419,34261,34398,36802,36935,37109,37354,38533,38632,38633,21206,24423,26093,26161,26671,29020,31286,37057,38922,20113,63941,27218,27550,28560,29065,32792,33464,34131,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,36939,38549,38642,38907,34074,39729,20112,29066,38596,20803,21407,21729,22291,22290,22435,23195,23236,23491,24616,24895,25588,27781,27961,28274,28304,29232,29503,29783,33489,34945,36677,36960,63942,38498,39e3,40219,26376,36234,37470,20301,20553,20702,21361,22285,22996,23041,23561,24944,26256,28205,29234,29771,32239,32963,33806,33894,34111,34655,34907,35096,35586,36949,38859,39759,20083,20369,20754,20842,63943,21807,21929,23418,23461,24188,24189,24254,24736,24799,24840,24841,25540,25912,26377,63944,26580,26586,63945,26977,26978,27833,27943,63946,28216,63947,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,28641,29494,29495,63948,29788,30001,63949,30290,63950,63951,32173,33278,33848,35029,35480,35547,35565,36400,36418,36938,36926,36986,37193,37321,37742,63952,63953,22537,63954,27603,32905,32946,63955,63956,20801,22891,23609,63957,63958,28516,29607,32996,36103,63959,37399,38287,63960,63961,63962,63963,32895,25102,28700,32104,34701,63964,22432,24681,24903,27575,35518,37504,38577,20057,21535,28139,34093,38512,38899,39150,25558,27875,37009,20957,25033,33210,40441,20381,20506,20736,23452,24847,25087,25836,26885,27589,30097,30691,32681,33380,34191,34811,34915,35516,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,35696,37291,20108,20197,20234,63965,63966,22839,23016,63967,24050,24347,24411,24609,63968,63969,63970,63971,29246,29669,63972,30064,30157,63973,31227,63974,32780,32819,32900,33505,33617,63975,63976,36029,36019,36999,63977,63978,39156,39180,63979,63980,28727,30410,32714,32716,32764,35610,20154,20161,20995,21360,63981,21693,22240,23035,23493,24341,24525,28270,63982,63983,32106,33589,63984,34451,35469,63985,38765,38775,63986,63987,19968,20314,20350,22777,26085,28322,36920,37808,39353,20219,22764,22922,23001,24641,63988,63989,31252,63990,33615,36035,20837,21316,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,63991,63992,63993,20173,21097,23381,33471,20180,21050,21672,22985,23039,23376,23383,23388,24675,24904,28363,28825,29038,29574,29943,30133,30913,32043,32773,33258,33576,34071,34249,35566,36039,38604,20316,21242,22204,26027,26152,28796,28856,29237,32189,33421,37196,38592,40306,23409,26855,27544,28538,30430,23697,26283,28507,31668,31786,34870,38620,19976,20183,21280,22580,22715,22767,22892,23559,24115,24196,24373,25484,26290,26454,27167,27299,27404,28479,29254,63994,29520,29835,31456,31911,33144,33247,33255,33674,33900,34083,34196,34255,35037,36115,37292,38263,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,38556,20877,21705,22312,23472,25165,26448,26685,26771,28221,28371,28797,32289,35009,36001,36617,40779,40782,29229,31631,35533,37658,20295,20302,20786,21632,22992,24213,25269,26485,26990,27159,27822,28186,29401,29482,30141,31672,32053,33511,33785,33879,34295,35419,36015,36487,36889,37048,38606,40799,21219,21514,23265,23490,25688,25973,28404,29380,63995,30340,31309,31515,31821,32318,32735,33659,35627,36042,36196,36321,36447,36842,36857,36969,37841,20291,20346,20659,20840,20856,21069,21098,22625,22652,22880,23560,23637,24283,24731,25136,26643,27583,27656,28593,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,29006,29728,3e4,30008,30033,30322,31564,31627,31661,31686,32399,35438,36670,36681,37439,37523,37666,37931,38651,39002,39019,39198,20999,25130,25240,27993,30308,31434,31680,32118,21344,23742,24215,28472,28857,31896,38673,39822,40670,25509,25722,34678,19969,20117,20141,20572,20597,21576,22979,23450,24128,24237,24311,24449,24773,25402,25919,25972,26060,26230,26232,26622,26984,27273,27491,27712,28096,28136,28191,28254,28702,28833,29582,29693,30010,30555,30855,31118,31243,31357,31934,32142,33351,35330,35562,35998,37165,37194,37336,37478,37580,37664,38662,38742,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,38748,38914,40718,21046,21137,21884,22564,24093,24351,24716,25552,26799,28639,31085,31532,33229,34234,35069,35576,36420,37261,38500,38555,38717,38988,40778,20430,20806,20939,21161,22066,24340,24427,25514,25805,26089,26177,26362,26361,26397,26781,26839,27133,28437,28526,29031,29157,29226,29866,30522,31062,31066,31199,31264,31381,31895,31967,32068,32368,32903,34299,34468,35412,35519,36249,36481,36896,36973,37347,38459,38613,40165,26063,31751,36275,37827,23384,23562,21330,25305,29469,20519,23447,24478,24752,24939,26837,28121,29742,31278,32066,32156,32305,33131,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,36394,36405,37758,37912,20304,22352,24038,24231,25387,32618,20027,20303,20367,20570,23005,32964,21610,21608,22014,22863,23449,24030,24282,26205,26417,26609,26666,27880,27954,28234,28557,28855,29664,30087,31820,32002,32044,32162,33311,34523,35387,35461,36208,36490,36659,36913,37198,37202,37956,39376,31481,31909,20426,20737,20934,22472,23535,23803,26201,27197,27994,28310,28652,28940,30063,31459,34850,36897,36981,38603,39423,33537,20013,20210,34886,37325,21373,27355,26987,27713,33914,22686,24974,26366,25327,28893,29969,30151,32338,33976,35657,36104,20043,21482,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,21675,22320,22336,24535,25345,25351,25711,25903,26088,26234,26525,26547,27490,27744,27802,28460,30693,30757,31049,31063,32025,32930,33026,33267,33437,33463,34584,35468,63996,36100,36286,36978,30452,31257,31287,32340,32887,21767,21972,22645,25391,25634,26185,26187,26733,27035,27524,27941,28337,29645,29800,29857,30043,30137,30433,30494,30603,31206,32265,32285,33275,34095,34967,35386,36049,36587,36784,36914,37805,38499,38515,38663,20356,21489,23018,23241,24089,26702,29894,30142,31209,31378,33187,34541,36074,36300,36845,26015,26389,63997,22519,28503,32221,36655,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,37878,38598,24501,25074,28548,19988,20376,20511,21449,21983,23919,24046,27425,27492,30923,31642,63998,36425,36554,36974,25417,25662,30528,31364,37679,38015,40810,25776,28591,29158,29864,29914,31428,31762,32386,31922,32408,35738,36106,38013,39184,39244,21049,23519,25830,26413,32046,20717,21443,22649,24920,24921,25082,26028,31449,35730,35734,20489,20513,21109,21809,23100,24288,24432,24884,25950,26124,26166,26274,27085,28356,28466,29462,30241,31379,33081,33369,33750,33980,20661,22512,23488,23528,24425,25505,30758,32181,33756,34081,37319,37365,20874,26613,31574,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,36012,20932,22971,24765,34389,20508,63999,21076,23610,24957,25114,25299,25842,26021,28364,30240,33034,36448,38495,38587,20191,21315,21912,22825,24029,25797,27849,28154,29588,31359,33307,34214,36068,36368,36983,37351,38369,38433,38854,20984,21746,21894,24505,25764,28552,32180,36639,36685,37941,20681,23574,27838,28155,29979,30651,31805,31844,35449,35522,22558,22974,24086,25463,29266,30090,30571,35548,36028,36626,24307,26228,28152,32893,33729,35531,38737,39894,64e3,21059,26367,28053,28399,32224,35558,36910,36958,39636,21021,21119,21736,24980,25220,25307,26786,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,26898,26970,27189,28818,28966,30813,30977,30990,31186,31245,32918,33400,33493,33609,34121,35970,36229,37218,37259,37294,20419,22225,29165,30679,34560,35320,23544,24534,26449,37032,21474,22618,23541,24740,24961,25696,32317,32880,34085,37507,25774,20652,23828,26368,22684,25277,25512,26894,27e3,27166,28267,30394,31179,33467,33833,35535,36264,36861,37138,37195,37276,37648,37656,37786,38619,39478,39949,19985,30044,31069,31482,31569,31689,32302,33988,36441,36468,36600,36880,26149,26943,29763,20986,26414,40668,20805,24544,27798,34802,34909,34935,24756,33205,33795,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,36101,21462,21561,22068,23094,23601,28810,32736,32858,33030,33261,36259,37257,39519,40434,20596,20164,21408,24827,28204,23652,20360,20516,21988,23769,24159,24677,26772,27835,28100,29118,30164,30196,30305,31258,31305,32199,32251,32622,33268,34473,36636,38601,39347,40786,21063,21189,39149,35242,19971,26578,28422,20405,23522,26517,27784,28024,29723,30759,37341,37756,34756,31204,31281,24555,20182,21668,21822,22702,22949,24816,25171,25302,26422,26965,33333,38464,39345,39389,20524,21331,21828,22396,64001,25176,64002,25826,26219,26589,28609,28655,29730,29752,35351,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,37944,21585,22022,22374,24392,24986,27470,28760,28845,32187,35477,22890,33067,25506,30472,32829,36010,22612,25645,27067,23445,24081,28271,64003,34153,20812,21488,22826,24608,24907,27526,27760,27888,31518,32974,33492,36294,37040,39089,64004,25799,28580,25745,25860,20814,21520,22303,35342,24927,26742,64005,30171,31570,32113,36890,22534,27084,33151,35114,36864,38969,20600,22871,22956,25237,36879,39722,24925,29305,38358,22369,23110,24052,25226,25773,25850,26487,27874,27966,29228,29750,30772,32631,33453,36315,38935,21028,22338,26495,29256,29923,36009,36774,37393,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,38442,20843,21485,25420,20329,21764,24726,25943,27803,28031,29260,29437,31255,35207,35997,24429,28558,28921,33192,24846,20415,20559,25153,29255,31687,32232,32745,36941,38829,39449,36022,22378,24179,26544,33805,35413,21536,23318,24163,24290,24330,25987,32954,34109,38281,38491,20296,21253,21261,21263,21638,21754,22275,24067,24598,25243,25265,25429,64006,27873,28006,30129,30770,32990,33071,33502,33889,33970,34957,35090,36875,37610,39165,39825,24133,26292,26333,28689,29190,64007,20469,21117,24426,24915,26451,27161,28418,29922,31080,34920,35961,39111,39108,39491,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,21697,31263,26963,35575,35914,39080,39342,24444,25259,30130,30382,34987,36991,38466,21305,24380,24517,27852,29644,30050,30091,31558,33534,39325,20047,36924,19979,20309,21414,22799,24264,26160,27827,29781,33655,34662,36032,36944,38686,39957,22737,23416,34384,35604,40372,23506,24680,24717,26097,27735,28450,28579,28698,32597,32752,38289,38290,38480,38867,21106,36676,20989,21547,21688,21859,21898,27323,28085,32216,33382,37532,38519,40569,21512,21704,30418,34532,38308,38356,38492,20130,20233,23022,23270,24055,24658,25239,26477,26689,27782,28207,32568,32923,33322,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,64008,64009,38917,20133,20565,21683,22419,22874,23401,23475,25032,26999,28023,28707,34809,35299,35442,35559,36994,39405,39608,21182,26680,20502,24184,26447,33607,34892,20139,21521,22190,29670,37141,38911,39177,39255,39321,22099,22687,34395,35377,25010,27382,29563,36562,27463,38570,39511,22869,29184,36203,38761,20436,23796,24358,25080,26203,27883,28843,29572,29625,29694,30505,30541,32067,32098,32291,33335,34898,64010,36066,37449,39023,23377,31348,34880,38913,23244,20448,21332,22846,23805,25406,28025,29433,33029,33031,33698,37583,38960,20136,20804,21009,22411,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,24418,27842,28366,28677,28752,28847,29074,29673,29801,33610,34722,34913,36872,37026,37795,39336,20846,24407,24800,24935,26291,34137,36426,37295,38795,20046,20114,21628,22741,22778,22909,23733,24359,25142,25160,26122,26215,27627,28009,28111,28246,28408,28564,28640,28649,28765,29392,29733,29786,29920,30355,31068,31946,32286,32993,33446,33899,33983,34382,34399,34676,35703,35946,37804,38912,39013,24785,25110,37239,23130,26127,28151,28222,29759,39746,24573,24794,31503,21700,24344,27742,27859,27946,28888,32005,34425,35340,40251,21270,21644,23301,27194,28779,30069,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,31117,31166,33457,33775,35441,35649,36008,38772,64011,25844,25899,30906,30907,31339,20024,21914,22864,23462,24187,24739,25563,27489,26213,26707,28185,29029,29872,32008,36996,39529,39973,27963,28369,29502,35905,38346,20976,24140,24488,24653,24822,24880,24908,26179,26180,27045,27841,28255,28361,28514,29004,29852,30343,31681,31783,33618,34647,36945,38541,40643,21295,22238,24315,24458,24674,24724,25079,26214,26371,27292,28142,28590,28784,29546,32362,33214,33588,34516,35496,36036,21123,29554,23446,27243,37892,21742,22150,23389,25928,25989,26313,26783,28045,28102,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,29243,32948,37237,39501,20399,20505,21402,21518,21564,21897,21957,24127,24460,26429,29030,29661,36869,21211,21235,22628,22734,28932,29071,29179,34224,35347,26248,34216,21927,26244,29002,33841,21321,21913,27585,24409,24509,25582,26249,28999,35569,36637,40638,20241,25658,28875,30054,34407,24676,35662,40440,20807,20982,21256,27958,33016,40657,26133,27427,28824,30165,21507,23673,32007,35350,27424,27453,27462,21560,24688,27965,32725,33288,20694,20958,21916,22123,22221,23020,23305,24076,24985,24984,25137,26206,26342,29081,29113,29114,29351,31143,31232,32690,35440,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null],gb18030:[19970,19972,19973,19974,19983,19986,19991,19999,2e4,20001,20003,20006,20009,20014,20015,20017,20019,20021,20023,20028,20032,20033,20034,20036,20038,20042,20049,20053,20055,20058,20059,20066,20067,20068,20069,20071,20072,20074,20075,20076,20077,20078,20079,20082,20084,20085,20086,20087,20088,20089,20090,20091,20092,20093,20095,20096,20097,20098,20099,20100,20101,20103,20106,20112,20118,20119,20121,20124,20125,20126,20131,20138,20143,20144,20145,20148,20150,20151,20152,20153,20156,20157,20158,20168,20172,20175,20176,20178,20186,20187,20188,20192,20194,20198,20199,20201,20205,20206,20207,20209,20212,20216,20217,20218,20220,20222,20224,20226,20227,20228,20229,20230,20231,20232,20235,20236,20242,20243,20244,20245,20246,20252,20253,20257,20259,20264,20265,20268,20269,20270,20273,20275,20277,20279,20281,20283,20286,20287,20288,20289,20290,20292,20293,20295,20296,20297,20298,20299,20300,20306,20308,20310,20321,20322,20326,20328,20330,20331,20333,20334,20337,20338,20341,20343,20344,20345,20346,20349,20352,20353,20354,20357,20358,20359,20362,20364,20366,20368,20370,20371,20373,20374,20376,20377,20378,20380,20382,20383,20385,20386,20388,20395,20397,20400,20401,20402,20403,20404,20406,20407,20408,20409,20410,20411,20412,20413,20414,20416,20417,20418,20422,20423,20424,20425,20427,20428,20429,20434,20435,20436,20437,20438,20441,20443,20448,20450,20452,20453,20455,20459,20460,20464,20466,20468,20469,20470,20471,20473,20475,20476,20477,20479,20480,20481,20482,20483,20484,20485,20486,20487,20488,20489,20490,20491,20494,20496,20497,20499,20501,20502,20503,20507,20509,20510,20512,20514,20515,20516,20519,20523,20527,20528,20529,20530,20531,20532,20533,20534,20535,20536,20537,20539,20541,20543,20544,20545,20546,20548,20549,20550,20553,20554,20555,20557,20560,20561,20562,20563,20564,20566,20567,20568,20569,20571,20573,20574,20575,20576,20577,20578,20579,20580,20582,20583,20584,20585,20586,20587,20589,20590,20591,20592,20593,20594,20595,20596,20597,20600,20601,20602,20604,20605,20609,20610,20611,20612,20614,20615,20617,20618,20619,20620,20622,20623,20624,20625,20626,20627,20628,20629,20630,20631,20632,20633,20634,20635,20636,20637,20638,20639,20640,20641,20642,20644,20646,20650,20651,20653,20654,20655,20656,20657,20659,20660,20661,20662,20663,20664,20665,20668,20669,20670,20671,20672,20673,20674,20675,20676,20677,20678,20679,20680,20681,20682,20683,20684,20685,20686,20688,20689,20690,20691,20692,20693,20695,20696,20697,20699,20700,20701,20702,20703,20704,20705,20706,20707,20708,20709,20712,20713,20714,20715,20719,20720,20721,20722,20724,20726,20727,20728,20729,20730,20732,20733,20734,20735,20736,20737,20738,20739,20740,20741,20744,20745,20746,20748,20749,20750,20751,20752,20753,20755,20756,20757,20758,20759,20760,20761,20762,20763,20764,20765,20766,20767,20768,20770,20771,20772,20773,20774,20775,20776,20777,20778,20779,20780,20781,20782,20783,20784,20785,20786,20787,20788,20789,20790,20791,20792,20793,20794,20795,20796,20797,20798,20802,20807,20810,20812,20814,20815,20816,20818,20819,20823,20824,20825,20827,20829,20830,20831,20832,20833,20835,20836,20838,20839,20841,20842,20847,20850,20858,20862,20863,20867,20868,20870,20871,20874,20875,20878,20879,20880,20881,20883,20884,20888,20890,20893,20894,20895,20897,20899,20902,20903,20904,20905,20906,20909,20910,20916,20920,20921,20922,20926,20927,20929,20930,20931,20933,20936,20938,20941,20942,20944,20946,20947,20948,20949,20950,20951,20952,20953,20954,20956,20958,20959,20962,20963,20965,20966,20967,20968,20969,20970,20972,20974,20977,20978,20980,20983,20990,20996,20997,21001,21003,21004,21007,21008,21011,21012,21013,21020,21022,21023,21025,21026,21027,21029,21030,21031,21034,21036,21039,21041,21042,21044,21045,21052,21054,21060,21061,21062,21063,21064,21065,21067,21070,21071,21074,21075,21077,21079,21080,21081,21082,21083,21085,21087,21088,21090,21091,21092,21094,21096,21099,21100,21101,21102,21104,21105,21107,21108,21109,21110,21111,21112,21113,21114,21115,21116,21118,21120,21123,21124,21125,21126,21127,21129,21130,21131,21132,21133,21134,21135,21137,21138,21140,21141,21142,21143,21144,21145,21146,21148,21156,21157,21158,21159,21166,21167,21168,21172,21173,21174,21175,21176,21177,21178,21179,21180,21181,21184,21185,21186,21188,21189,21190,21192,21194,21196,21197,21198,21199,21201,21203,21204,21205,21207,21209,21210,21211,21212,21213,21214,21216,21217,21218,21219,21221,21222,21223,21224,21225,21226,21227,21228,21229,21230,21231,21233,21234,21235,21236,21237,21238,21239,21240,21243,21244,21245,21249,21250,21251,21252,21255,21257,21258,21259,21260,21262,21265,21266,21267,21268,21272,21275,21276,21278,21279,21282,21284,21285,21287,21288,21289,21291,21292,21293,21295,21296,21297,21298,21299,21300,21301,21302,21303,21304,21308,21309,21312,21314,21316,21318,21323,21324,21325,21328,21332,21336,21337,21339,21341,21349,21352,21354,21356,21357,21362,21366,21369,21371,21372,21373,21374,21376,21377,21379,21383,21384,21386,21390,21391,21392,21393,21394,21395,21396,21398,21399,21401,21403,21404,21406,21408,21409,21412,21415,21418,21419,21420,21421,21423,21424,21425,21426,21427,21428,21429,21431,21432,21433,21434,21436,21437,21438,21440,21443,21444,21445,21446,21447,21454,21455,21456,21458,21459,21461,21466,21468,21469,21470,21473,21474,21479,21492,21498,21502,21503,21504,21506,21509,21511,21515,21524,21528,21529,21530,21532,21538,21540,21541,21546,21552,21555,21558,21559,21562,21565,21567,21569,21570,21572,21573,21575,21577,21580,21581,21582,21583,21585,21594,21597,21598,21599,21600,21601,21603,21605,21607,21609,21610,21611,21612,21613,21614,21615,21616,21620,21625,21626,21630,21631,21633,21635,21637,21639,21640,21641,21642,21645,21649,21651,21655,21656,21660,21662,21663,21664,21665,21666,21669,21678,21680,21682,21685,21686,21687,21689,21690,21692,21694,21699,21701,21706,21707,21718,21720,21723,21728,21729,21730,21731,21732,21739,21740,21743,21744,21745,21748,21749,21750,21751,21752,21753,21755,21758,21760,21762,21763,21764,21765,21768,21770,21771,21772,21773,21774,21778,21779,21781,21782,21783,21784,21785,21786,21788,21789,21790,21791,21793,21797,21798,21800,21801,21803,21805,21810,21812,21813,21814,21816,21817,21818,21819,21821,21824,21826,21829,21831,21832,21835,21836,21837,21838,21839,21841,21842,21843,21844,21847,21848,21849,21850,21851,21853,21854,21855,21856,21858,21859,21864,21865,21867,21871,21872,21873,21874,21875,21876,21881,21882,21885,21887,21893,21894,21900,21901,21902,21904,21906,21907,21909,21910,21911,21914,21915,21918,21920,21921,21922,21923,21924,21925,21926,21928,21929,21930,21931,21932,21933,21934,21935,21936,21938,21940,21942,21944,21946,21948,21951,21952,21953,21954,21955,21958,21959,21960,21962,21963,21966,21967,21968,21973,21975,21976,21977,21978,21979,21982,21984,21986,21991,21993,21997,21998,22e3,22001,22004,22006,22008,22009,22010,22011,22012,22015,22018,22019,22020,22021,22022,22023,22026,22027,22029,22032,22033,22034,22035,22036,22037,22038,22039,22041,22042,22044,22045,22048,22049,22050,22053,22054,22056,22057,22058,22059,22062,22063,22064,22067,22069,22071,22072,22074,22076,22077,22078,22080,22081,22082,22083,22084,22085,22086,22087,22088,22089,22090,22091,22095,22096,22097,22098,22099,22101,22102,22106,22107,22109,22110,22111,22112,22113,22115,22117,22118,22119,22125,22126,22127,22128,22130,22131,22132,22133,22135,22136,22137,22138,22141,22142,22143,22144,22145,22146,22147,22148,22151,22152,22153,22154,22155,22156,22157,22160,22161,22162,22164,22165,22166,22167,22168,22169,22170,22171,22172,22173,22174,22175,22176,22177,22178,22180,22181,22182,22183,22184,22185,22186,22187,22188,22189,22190,22192,22193,22194,22195,22196,22197,22198,22200,22201,22202,22203,22205,22206,22207,22208,22209,22210,22211,22212,22213,22214,22215,22216,22217,22219,22220,22221,22222,22223,22224,22225,22226,22227,22229,22230,22232,22233,22236,22243,22245,22246,22247,22248,22249,22250,22252,22254,22255,22258,22259,22262,22263,22264,22267,22268,22272,22273,22274,22277,22279,22283,22284,22285,22286,22287,22288,22289,22290,22291,22292,22293,22294,22295,22296,22297,22298,22299,22301,22302,22304,22305,22306,22308,22309,22310,22311,22315,22321,22322,22324,22325,22326,22327,22328,22332,22333,22335,22337,22339,22340,22341,22342,22344,22345,22347,22354,22355,22356,22357,22358,22360,22361,22370,22371,22373,22375,22380,22382,22384,22385,22386,22388,22389,22392,22393,22394,22397,22398,22399,22400,22401,22407,22408,22409,22410,22413,22414,22415,22416,22417,22420,22421,22422,22423,22424,22425,22426,22428,22429,22430,22431,22437,22440,22442,22444,22447,22448,22449,22451,22453,22454,22455,22457,22458,22459,22460,22461,22462,22463,22464,22465,22468,22469,22470,22471,22472,22473,22474,22476,22477,22480,22481,22483,22486,22487,22491,22492,22494,22497,22498,22499,22501,22502,22503,22504,22505,22506,22507,22508,22510,22512,22513,22514,22515,22517,22518,22519,22523,22524,22526,22527,22529,22531,22532,22533,22536,22537,22538,22540,22542,22543,22544,22546,22547,22548,22550,22551,22552,22554,22555,22556,22557,22559,22562,22563,22565,22566,22567,22568,22569,22571,22572,22573,22574,22575,22577,22578,22579,22580,22582,22583,22584,22585,22586,22587,22588,22589,22590,22591,22592,22593,22594,22595,22597,22598,22599,22600,22601,22602,22603,22606,22607,22608,22610,22611,22613,22614,22615,22617,22618,22619,22620,22621,22623,22624,22625,22626,22627,22628,22630,22631,22632,22633,22634,22637,22638,22639,22640,22641,22642,22643,22644,22645,22646,22647,22648,22649,22650,22651,22652,22653,22655,22658,22660,22662,22663,22664,22666,22667,22668,22669,22670,22671,22672,22673,22676,22677,22678,22679,22680,22683,22684,22685,22688,22689,22690,22691,22692,22693,22694,22695,22698,22699,22700,22701,22702,22703,22704,22705,22706,22707,22708,22709,22710,22711,22712,22713,22714,22715,22717,22718,22719,22720,22722,22723,22724,22726,22727,22728,22729,22730,22731,22732,22733,22734,22735,22736,22738,22739,22740,22742,22743,22744,22745,22746,22747,22748,22749,22750,22751,22752,22753,22754,22755,22757,22758,22759,22760,22761,22762,22765,22767,22769,22770,22772,22773,22775,22776,22778,22779,22780,22781,22782,22783,22784,22785,22787,22789,22790,22792,22793,22794,22795,22796,22798,22800,22801,22802,22803,22807,22808,22811,22813,22814,22816,22817,22818,22819,22822,22824,22828,22832,22834,22835,22837,22838,22843,22845,22846,22847,22848,22851,22853,22854,22858,22860,22861,22864,22866,22867,22873,22875,22876,22877,22878,22879,22881,22883,22884,22886,22887,22888,22889,22890,22891,22892,22893,22894,22895,22896,22897,22898,22901,22903,22906,22907,22908,22910,22911,22912,22917,22921,22923,22924,22926,22927,22928,22929,22932,22933,22936,22938,22939,22940,22941,22943,22944,22945,22946,22950,22951,22956,22957,22960,22961,22963,22964,22965,22966,22967,22968,22970,22972,22973,22975,22976,22977,22978,22979,22980,22981,22983,22984,22985,22988,22989,22990,22991,22997,22998,23001,23003,23006,23007,23008,23009,23010,23012,23014,23015,23017,23018,23019,23021,23022,23023,23024,23025,23026,23027,23028,23029,23030,23031,23032,23034,23036,23037,23038,23040,23042,23050,23051,23053,23054,23055,23056,23058,23060,23061,23062,23063,23065,23066,23067,23069,23070,23073,23074,23076,23078,23079,23080,23082,23083,23084,23085,23086,23087,23088,23091,23093,23095,23096,23097,23098,23099,23101,23102,23103,23105,23106,23107,23108,23109,23111,23112,23115,23116,23117,23118,23119,23120,23121,23122,23123,23124,23126,23127,23128,23129,23131,23132,23133,23134,23135,23136,23137,23139,23140,23141,23142,23144,23145,23147,23148,23149,23150,23151,23152,23153,23154,23155,23160,23161,23163,23164,23165,23166,23168,23169,23170,23171,23172,23173,23174,23175,23176,23177,23178,23179,23180,23181,23182,23183,23184,23185,23187,23188,23189,23190,23191,23192,23193,23196,23197,23198,23199,23200,23201,23202,23203,23204,23205,23206,23207,23208,23209,23211,23212,23213,23214,23215,23216,23217,23220,23222,23223,23225,23226,23227,23228,23229,23231,23232,23235,23236,23237,23238,23239,23240,23242,23243,23245,23246,23247,23248,23249,23251,23253,23255,23257,23258,23259,23261,23262,23263,23266,23268,23269,23271,23272,23274,23276,23277,23278,23279,23280,23282,23283,23284,23285,23286,23287,23288,23289,23290,23291,23292,23293,23294,23295,23296,23297,23298,23299,23300,23301,23302,23303,23304,23306,23307,23308,23309,23310,23311,23312,23313,23314,23315,23316,23317,23320,23321,23322,23323,23324,23325,23326,23327,23328,23329,23330,23331,23332,23333,23334,23335,23336,23337,23338,23339,23340,23341,23342,23343,23344,23345,23347,23349,23350,23352,23353,23354,23355,23356,23357,23358,23359,23361,23362,23363,23364,23365,23366,23367,23368,23369,23370,23371,23372,23373,23374,23375,23378,23382,23390,23392,23393,23399,23400,23403,23405,23406,23407,23410,23412,23414,23415,23416,23417,23419,23420,23422,23423,23426,23430,23434,23437,23438,23440,23441,23442,23444,23446,23455,23463,23464,23465,23468,23469,23470,23471,23473,23474,23479,23482,23483,23484,23488,23489,23491,23496,23497,23498,23499,23501,23502,23503,23505,23508,23509,23510,23511,23512,23513,23514,23515,23516,23520,23522,23523,23526,23527,23529,23530,23531,23532,23533,23535,23537,23538,23539,23540,23541,23542,23543,23549,23550,23552,23554,23555,23557,23559,23560,23563,23564,23565,23566,23568,23570,23571,23575,23577,23579,23582,23583,23584,23585,23587,23590,23592,23593,23594,23595,23597,23598,23599,23600,23602,23603,23605,23606,23607,23619,23620,23622,23623,23628,23629,23634,23635,23636,23638,23639,23640,23642,23643,23644,23645,23647,23650,23652,23655,23656,23657,23658,23659,23660,23661,23664,23666,23667,23668,23669,23670,23671,23672,23675,23676,23677,23678,23680,23683,23684,23685,23686,23687,23689,23690,23691,23694,23695,23698,23699,23701,23709,23710,23711,23712,23713,23716,23717,23718,23719,23720,23722,23726,23727,23728,23730,23732,23734,23737,23738,23739,23740,23742,23744,23746,23747,23749,23750,23751,23752,23753,23754,23756,23757,23758,23759,23760,23761,23763,23764,23765,23766,23767,23768,23770,23771,23772,23773,23774,23775,23776,23778,23779,23783,23785,23787,23788,23790,23791,23793,23794,23795,23796,23797,23798,23799,23800,23801,23802,23804,23805,23806,23807,23808,23809,23812,23813,23816,23817,23818,23819,23820,23821,23823,23824,23825,23826,23827,23829,23831,23832,23833,23834,23836,23837,23839,23840,23841,23842,23843,23845,23848,23850,23851,23852,23855,23856,23857,23858,23859,23861,23862,23863,23864,23865,23866,23867,23868,23871,23872,23873,23874,23875,23876,23877,23878,23880,23881,23885,23886,23887,23888,23889,23890,23891,23892,23893,23894,23895,23897,23898,23900,23902,23903,23904,23905,23906,23907,23908,23909,23910,23911,23912,23914,23917,23918,23920,23921,23922,23923,23925,23926,23927,23928,23929,23930,23931,23932,23933,23934,23935,23936,23937,23939,23940,23941,23942,23943,23944,23945,23946,23947,23948,23949,23950,23951,23952,23953,23954,23955,23956,23957,23958,23959,23960,23962,23963,23964,23966,23967,23968,23969,23970,23971,23972,23973,23974,23975,23976,23977,23978,23979,23980,23981,23982,23983,23984,23985,23986,23987,23988,23989,23990,23992,23993,23994,23995,23996,23997,23998,23999,24e3,24001,24002,24003,24004,24006,24007,24008,24009,24010,24011,24012,24014,24015,24016,24017,24018,24019,24020,24021,24022,24023,24024,24025,24026,24028,24031,24032,24035,24036,24042,24044,24045,24048,24053,24054,24056,24057,24058,24059,24060,24063,24064,24068,24071,24073,24074,24075,24077,24078,24082,24083,24087,24094,24095,24096,24097,24098,24099,24100,24101,24104,24105,24106,24107,24108,24111,24112,24114,24115,24116,24117,24118,24121,24122,24126,24127,24128,24129,24131,24134,24135,24136,24137,24138,24139,24141,24142,24143,24144,24145,24146,24147,24150,24151,24152,24153,24154,24156,24157,24159,24160,24163,24164,24165,24166,24167,24168,24169,24170,24171,24172,24173,24174,24175,24176,24177,24181,24183,24185,24190,24193,24194,24195,24197,24200,24201,24204,24205,24206,24210,24216,24219,24221,24225,24226,24227,24228,24232,24233,24234,24235,24236,24238,24239,24240,24241,24242,24244,24250,24251,24252,24253,24255,24256,24257,24258,24259,24260,24261,24262,24263,24264,24267,24268,24269,24270,24271,24272,24276,24277,24279,24280,24281,24282,24284,24285,24286,24287,24288,24289,24290,24291,24292,24293,24294,24295,24297,24299,24300,24301,24302,24303,24304,24305,24306,24307,24309,24312,24313,24315,24316,24317,24325,24326,24327,24329,24332,24333,24334,24336,24338,24340,24342,24345,24346,24348,24349,24350,24353,24354,24355,24356,24360,24363,24364,24366,24368,24370,24371,24372,24373,24374,24375,24376,24379,24381,24382,24383,24385,24386,24387,24388,24389,24390,24391,24392,24393,24394,24395,24396,24397,24398,24399,24401,24404,24409,24410,24411,24412,24414,24415,24416,24419,24421,24423,24424,24427,24430,24431,24434,24436,24437,24438,24440,24442,24445,24446,24447,24451,24454,24461,24462,24463,24465,24467,24468,24470,24474,24475,24477,24478,24479,24480,24482,24483,24484,24485,24486,24487,24489,24491,24492,24495,24496,24497,24498,24499,24500,24502,24504,24505,24506,24507,24510,24511,24512,24513,24514,24519,24520,24522,24523,24526,24531,24532,24533,24538,24539,24540,24542,24543,24546,24547,24549,24550,24552,24553,24556,24559,24560,24562,24563,24564,24566,24567,24569,24570,24572,24583,24584,24585,24587,24588,24592,24593,24595,24599,24600,24602,24606,24607,24610,24611,24612,24620,24621,24622,24624,24625,24626,24627,24628,24630,24631,24632,24633,24634,24637,24638,24640,24644,24645,24646,24647,24648,24649,24650,24652,24654,24655,24657,24659,24660,24662,24663,24664,24667,24668,24670,24671,24672,24673,24677,24678,24686,24689,24690,24692,24693,24695,24702,24704,24705,24706,24709,24710,24711,24712,24714,24715,24718,24719,24720,24721,24723,24725,24727,24728,24729,24732,24734,24737,24738,24740,24741,24743,24745,24746,24750,24752,24755,24757,24758,24759,24761,24762,24765,24766,24767,24768,24769,24770,24771,24772,24775,24776,24777,24780,24781,24782,24783,24784,24786,24787,24788,24790,24791,24793,24795,24798,24801,24802,24803,24804,24805,24810,24817,24818,24821,24823,24824,24827,24828,24829,24830,24831,24834,24835,24836,24837,24839,24842,24843,24844,24848,24849,24850,24851,24852,24854,24855,24856,24857,24859,24860,24861,24862,24865,24866,24869,24872,24873,24874,24876,24877,24878,24879,24880,24881,24882,24883,24884,24885,24886,24887,24888,24889,24890,24891,24892,24893,24894,24896,24897,24898,24899,24900,24901,24902,24903,24905,24907,24909,24911,24912,24914,24915,24916,24918,24919,24920,24921,24922,24923,24924,24926,24927,24928,24929,24931,24932,24933,24934,24937,24938,24939,24940,24941,24942,24943,24945,24946,24947,24948,24950,24952,24953,24954,24955,24956,24957,24958,24959,24960,24961,24962,24963,24964,24965,24966,24967,24968,24969,24970,24972,24973,24975,24976,24977,24978,24979,24981,24982,24983,24984,24985,24986,24987,24988,24990,24991,24992,24993,24994,24995,24996,24997,24998,25002,25003,25005,25006,25007,25008,25009,25010,25011,25012,25013,25014,25016,25017,25018,25019,25020,25021,25023,25024,25025,25027,25028,25029,25030,25031,25033,25036,25037,25038,25039,25040,25043,25045,25046,25047,25048,25049,25050,25051,25052,25053,25054,25055,25056,25057,25058,25059,25060,25061,25063,25064,25065,25066,25067,25068,25069,25070,25071,25072,25073,25074,25075,25076,25078,25079,25080,25081,25082,25083,25084,25085,25086,25088,25089,25090,25091,25092,25093,25095,25097,25107,25108,25113,25116,25117,25118,25120,25123,25126,25127,25128,25129,25131,25133,25135,25136,25137,25138,25141,25142,25144,25145,25146,25147,25148,25154,25156,25157,25158,25162,25167,25168,25173,25174,25175,25177,25178,25180,25181,25182,25183,25184,25185,25186,25188,25189,25192,25201,25202,25204,25205,25207,25208,25210,25211,25213,25217,25218,25219,25221,25222,25223,25224,25227,25228,25229,25230,25231,25232,25236,25241,25244,25245,25246,25251,25254,25255,25257,25258,25261,25262,25263,25264,25266,25267,25268,25270,25271,25272,25274,25278,25280,25281,25283,25291,25295,25297,25301,25309,25310,25312,25313,25316,25322,25323,25328,25330,25333,25336,25337,25338,25339,25344,25347,25348,25349,25350,25354,25355,25356,25357,25359,25360,25362,25363,25364,25365,25367,25368,25369,25372,25382,25383,25385,25388,25389,25390,25392,25393,25395,25396,25397,25398,25399,25400,25403,25404,25406,25407,25408,25409,25412,25415,25416,25418,25425,25426,25427,25428,25430,25431,25432,25433,25434,25435,25436,25437,25440,25444,25445,25446,25448,25450,25451,25452,25455,25456,25458,25459,25460,25461,25464,25465,25468,25469,25470,25471,25473,25475,25476,25477,25478,25483,25485,25489,25491,25492,25493,25495,25497,25498,25499,25500,25501,25502,25503,25505,25508,25510,25515,25519,25521,25522,25525,25526,25529,25531,25533,25535,25536,25537,25538,25539,25541,25543,25544,25546,25547,25548,25553,25555,25556,25557,25559,25560,25561,25562,25563,25564,25565,25567,25570,25572,25573,25574,25575,25576,25579,25580,25582,25583,25584,25585,25587,25589,25591,25593,25594,25595,25596,25598,25603,25604,25606,25607,25608,25609,25610,25613,25614,25617,25618,25621,25622,25623,25624,25625,25626,25629,25631,25634,25635,25636,25637,25639,25640,25641,25643,25646,25647,25648,25649,25650,25651,25653,25654,25655,25656,25657,25659,25660,25662,25664,25666,25667,25673,25675,25676,25677,25678,25679,25680,25681,25683,25685,25686,25687,25689,25690,25691,25692,25693,25695,25696,25697,25698,25699,25700,25701,25702,25704,25706,25707,25708,25710,25711,25712,25713,25714,25715,25716,25717,25718,25719,25723,25724,25725,25726,25727,25728,25729,25731,25734,25736,25737,25738,25739,25740,25741,25742,25743,25744,25747,25748,25751,25752,25754,25755,25756,25757,25759,25760,25761,25762,25763,25765,25766,25767,25768,25770,25771,25775,25777,25778,25779,25780,25782,25785,25787,25789,25790,25791,25793,25795,25796,25798,25799,25800,25801,25802,25803,25804,25807,25809,25811,25812,25813,25814,25817,25818,25819,25820,25821,25823,25824,25825,25827,25829,25831,25832,25833,25834,25835,25836,25837,25838,25839,25840,25841,25842,25843,25844,25845,25846,25847,25848,25849,25850,25851,25852,25853,25854,25855,25857,25858,25859,25860,25861,25862,25863,25864,25866,25867,25868,25869,25870,25871,25872,25873,25875,25876,25877,25878,25879,25881,25882,25883,25884,25885,25886,25887,25888,25889,25890,25891,25892,25894,25895,25896,25897,25898,25900,25901,25904,25905,25906,25907,25911,25914,25916,25917,25920,25921,25922,25923,25924,25926,25927,25930,25931,25933,25934,25936,25938,25939,25940,25943,25944,25946,25948,25951,25952,25953,25956,25957,25959,25960,25961,25962,25965,25966,25967,25969,25971,25973,25974,25976,25977,25978,25979,25980,25981,25982,25983,25984,25985,25986,25987,25988,25989,25990,25992,25993,25994,25997,25998,25999,26002,26004,26005,26006,26008,26010,26013,26014,26016,26018,26019,26022,26024,26026,26028,26030,26033,26034,26035,26036,26037,26038,26039,26040,26042,26043,26046,26047,26048,26050,26055,26056,26057,26058,26061,26064,26065,26067,26068,26069,26072,26073,26074,26075,26076,26077,26078,26079,26081,26083,26084,26090,26091,26098,26099,26100,26101,26104,26105,26107,26108,26109,26110,26111,26113,26116,26117,26119,26120,26121,26123,26125,26128,26129,26130,26134,26135,26136,26138,26139,26140,26142,26145,26146,26147,26148,26150,26153,26154,26155,26156,26158,26160,26162,26163,26167,26168,26169,26170,26171,26173,26175,26176,26178,26180,26181,26182,26183,26184,26185,26186,26189,26190,26192,26193,26200,26201,26203,26204,26205,26206,26208,26210,26211,26213,26215,26217,26218,26219,26220,26221,26225,26226,26227,26229,26232,26233,26235,26236,26237,26239,26240,26241,26243,26245,26246,26248,26249,26250,26251,26253,26254,26255,26256,26258,26259,26260,26261,26264,26265,26266,26267,26268,26270,26271,26272,26273,26274,26275,26276,26277,26278,26281,26282,26283,26284,26285,26287,26288,26289,26290,26291,26293,26294,26295,26296,26298,26299,26300,26301,26303,26304,26305,26306,26307,26308,26309,26310,26311,26312,26313,26314,26315,26316,26317,26318,26319,26320,26321,26322,26323,26324,26325,26326,26327,26328,26330,26334,26335,26336,26337,26338,26339,26340,26341,26343,26344,26346,26347,26348,26349,26350,26351,26353,26357,26358,26360,26362,26363,26365,26369,26370,26371,26372,26373,26374,26375,26380,26382,26383,26385,26386,26387,26390,26392,26393,26394,26396,26398,26400,26401,26402,26403,26404,26405,26407,26409,26414,26416,26418,26419,26422,26423,26424,26425,26427,26428,26430,26431,26433,26436,26437,26439,26442,26443,26445,26450,26452,26453,26455,26456,26457,26458,26459,26461,26466,26467,26468,26470,26471,26475,26476,26478,26481,26484,26486,26488,26489,26490,26491,26493,26496,26498,26499,26501,26502,26504,26506,26508,26509,26510,26511,26513,26514,26515,26516,26518,26521,26523,26527,26528,26529,26532,26534,26537,26540,26542,26545,26546,26548,26553,26554,26555,26556,26557,26558,26559,26560,26562,26565,26566,26567,26568,26569,26570,26571,26572,26573,26574,26581,26582,26583,26587,26591,26593,26595,26596,26598,26599,26600,26602,26603,26605,26606,26610,26613,26614,26615,26616,26617,26618,26619,26620,26622,26625,26626,26627,26628,26630,26637,26640,26642,26644,26645,26648,26649,26650,26651,26652,26654,26655,26656,26658,26659,26660,26661,26662,26663,26664,26667,26668,26669,26670,26671,26672,26673,26676,26677,26678,26682,26683,26687,26695,26699,26701,26703,26706,26710,26711,26712,26713,26714,26715,26716,26717,26718,26719,26730,26732,26733,26734,26735,26736,26737,26738,26739,26741,26744,26745,26746,26747,26748,26749,26750,26751,26752,26754,26756,26759,26760,26761,26762,26763,26764,26765,26766,26768,26769,26770,26772,26773,26774,26776,26777,26778,26779,26780,26781,26782,26783,26784,26785,26787,26788,26789,26793,26794,26795,26796,26798,26801,26802,26804,26806,26807,26808,26809,26810,26811,26812,26813,26814,26815,26817,26819,26820,26821,26822,26823,26824,26826,26828,26830,26831,26832,26833,26835,26836,26838,26839,26841,26843,26844,26845,26846,26847,26849,26850,26852,26853,26854,26855,26856,26857,26858,26859,26860,26861,26863,26866,26867,26868,26870,26871,26872,26875,26877,26878,26879,26880,26882,26883,26884,26886,26887,26888,26889,26890,26892,26895,26897,26899,26900,26901,26902,26903,26904,26905,26906,26907,26908,26909,26910,26913,26914,26915,26917,26918,26919,26920,26921,26922,26923,26924,26926,26927,26929,26930,26931,26933,26934,26935,26936,26938,26939,26940,26942,26944,26945,26947,26948,26949,26950,26951,26952,26953,26954,26955,26956,26957,26958,26959,26960,26961,26962,26963,26965,26966,26968,26969,26971,26972,26975,26977,26978,26980,26981,26983,26984,26985,26986,26988,26989,26991,26992,26994,26995,26996,26997,26998,27002,27003,27005,27006,27007,27009,27011,27013,27018,27019,27020,27022,27023,27024,27025,27026,27027,27030,27031,27033,27034,27037,27038,27039,27040,27041,27042,27043,27044,27045,27046,27049,27050,27052,27054,27055,27056,27058,27059,27061,27062,27064,27065,27066,27068,27069,27070,27071,27072,27074,27075,27076,27077,27078,27079,27080,27081,27083,27085,27087,27089,27090,27091,27093,27094,27095,27096,27097,27098,27100,27101,27102,27105,27106,27107,27108,27109,27110,27111,27112,27113,27114,27115,27116,27118,27119,27120,27121,27123,27124,27125,27126,27127,27128,27129,27130,27131,27132,27134,27136,27137,27138,27139,27140,27141,27142,27143,27144,27145,27147,27148,27149,27150,27151,27152,27153,27154,27155,27156,27157,27158,27161,27162,27163,27164,27165,27166,27168,27170,27171,27172,27173,27174,27175,27177,27179,27180,27181,27182,27184,27186,27187,27188,27190,27191,27192,27193,27194,27195,27196,27199,27200,27201,27202,27203,27205,27206,27208,27209,27210,27211,27212,27213,27214,27215,27217,27218,27219,27220,27221,27222,27223,27226,27228,27229,27230,27231,27232,27234,27235,27236,27238,27239,27240,27241,27242,27243,27244,27245,27246,27247,27248,27250,27251,27252,27253,27254,27255,27256,27258,27259,27261,27262,27263,27265,27266,27267,27269,27270,27271,27272,27273,27274,27275,27276,27277,27279,27282,27283,27284,27285,27286,27288,27289,27290,27291,27292,27293,27294,27295,27297,27298,27299,27300,27301,27302,27303,27304,27306,27309,27310,27311,27312,27313,27314,27315,27316,27317,27318,27319,27320,27321,27322,27323,27324,27325,27326,27327,27328,27329,27330,27331,27332,27333,27334,27335,27336,27337,27338,27339,27340,27341,27342,27343,27344,27345,27346,27347,27348,27349,27350,27351,27352,27353,27354,27355,27356,27357,27358,27359,27360,27361,27362,27363,27364,27365,27366,27367,27368,27369,27370,27371,27372,27373,27374,27375,27376,27377,27378,27379,27380,27381,27382,27383,27384,27385,27386,27387,27388,27389,27390,27391,27392,27393,27394,27395,27396,27397,27398,27399,27400,27401,27402,27403,27404,27405,27406,27407,27408,27409,27410,27411,27412,27413,27414,27415,27416,27417,27418,27419,27420,27421,27422,27423,27429,27430,27432,27433,27434,27435,27436,27437,27438,27439,27440,27441,27443,27444,27445,27446,27448,27451,27452,27453,27455,27456,27457,27458,27460,27461,27464,27466,27467,27469,27470,27471,27472,27473,27474,27475,27476,27477,27478,27479,27480,27482,27483,27484,27485,27486,27487,27488,27489,27496,27497,27499,27500,27501,27502,27503,27504,27505,27506,27507,27508,27509,27510,27511,27512,27514,27517,27518,27519,27520,27525,27528,27532,27534,27535,27536,27537,27540,27541,27543,27544,27545,27548,27549,27550,27551,27552,27554,27555,27556,27557,27558,27559,27560,27561,27563,27564,27565,27566,27567,27568,27569,27570,27574,27576,27577,27578,27579,27580,27581,27582,27584,27587,27588,27590,27591,27592,27593,27594,27596,27598,27600,27601,27608,27610,27612,27613,27614,27615,27616,27618,27619,27620,27621,27622,27623,27624,27625,27628,27629,27630,27632,27633,27634,27636,27638,27639,27640,27642,27643,27644,27646,27647,27648,27649,27650,27651,27652,27656,27657,27658,27659,27660,27662,27666,27671,27676,27677,27678,27680,27683,27685,27691,27692,27693,27697,27699,27702,27703,27705,27706,27707,27708,27710,27711,27715,27716,27717,27720,27723,27724,27725,27726,27727,27729,27730,27731,27734,27736,27737,27738,27746,27747,27749,27750,27751,27755,27756,27757,27758,27759,27761,27763,27765,27767,27768,27770,27771,27772,27775,27776,27780,27783,27786,27787,27789,27790,27793,27794,27797,27798,27799,27800,27802,27804,27805,27806,27808,27810,27816,27820,27823,27824,27828,27829,27830,27831,27834,27840,27841,27842,27843,27846,27847,27848,27851,27853,27854,27855,27857,27858,27864,27865,27866,27868,27869,27871,27876,27878,27879,27881,27884,27885,27890,27892,27897,27903,27904,27906,27907,27909,27910,27912,27913,27914,27917,27919,27920,27921,27923,27924,27925,27926,27928,27932,27933,27935,27936,27937,27938,27939,27940,27942,27944,27945,27948,27949,27951,27952,27956,27958,27959,27960,27962,27967,27968,27970,27972,27977,27980,27984,27989,27990,27991,27992,27995,27997,27999,28001,28002,28004,28005,28007,28008,28011,28012,28013,28016,28017,28018,28019,28021,28022,28025,28026,28027,28029,28030,28031,28032,28033,28035,28036,28038,28039,28042,28043,28045,28047,28048,28050,28054,28055,28056,28057,28058,28060,28066,28069,28076,28077,28080,28081,28083,28084,28086,28087,28089,28090,28091,28092,28093,28094,28097,28098,28099,28104,28105,28106,28109,28110,28111,28112,28114,28115,28116,28117,28119,28122,28123,28124,28127,28130,28131,28133,28135,28136,28137,28138,28141,28143,28144,28146,28148,28149,28150,28152,28154,28157,28158,28159,28160,28161,28162,28163,28164,28166,28167,28168,28169,28171,28175,28178,28179,28181,28184,28185,28187,28188,28190,28191,28194,28198,28199,28200,28202,28204,28206,28208,28209,28211,28213,28214,28215,28217,28219,28220,28221,28222,28223,28224,28225,28226,28229,28230,28231,28232,28233,28234,28235,28236,28239,28240,28241,28242,28245,28247,28249,28250,28252,28253,28254,28256,28257,28258,28259,28260,28261,28262,28263,28264,28265,28266,28268,28269,28271,28272,28273,28274,28275,28276,28277,28278,28279,28280,28281,28282,28283,28284,28285,28288,28289,28290,28292,28295,28296,28298,28299,28300,28301,28302,28305,28306,28307,28308,28309,28310,28311,28313,28314,28315,28317,28318,28320,28321,28323,28324,28326,28328,28329,28331,28332,28333,28334,28336,28339,28341,28344,28345,28348,28350,28351,28352,28355,28356,28357,28358,28360,28361,28362,28364,28365,28366,28368,28370,28374,28376,28377,28379,28380,28381,28387,28391,28394,28395,28396,28397,28398,28399,28400,28401,28402,28403,28405,28406,28407,28408,28410,28411,28412,28413,28414,28415,28416,28417,28419,28420,28421,28423,28424,28426,28427,28428,28429,28430,28432,28433,28434,28438,28439,28440,28441,28442,28443,28444,28445,28446,28447,28449,28450,28451,28453,28454,28455,28456,28460,28462,28464,28466,28468,28469,28471,28472,28473,28474,28475,28476,28477,28479,28480,28481,28482,28483,28484,28485,28488,28489,28490,28492,28494,28495,28496,28497,28498,28499,28500,28501,28502,28503,28505,28506,28507,28509,28511,28512,28513,28515,28516,28517,28519,28520,28521,28522,28523,28524,28527,28528,28529,28531,28533,28534,28535,28537,28539,28541,28542,28543,28544,28545,28546,28547,28549,28550,28551,28554,28555,28559,28560,28561,28562,28563,28564,28565,28566,28567,28568,28569,28570,28571,28573,28574,28575,28576,28578,28579,28580,28581,28582,28584,28585,28586,28587,28588,28589,28590,28591,28592,28593,28594,28596,28597,28599,28600,28602,28603,28604,28605,28606,28607,28609,28611,28612,28613,28614,28615,28616,28618,28619,28620,28621,28622,28623,28624,28627,28628,28629,28630,28631,28632,28633,28634,28635,28636,28637,28639,28642,28643,28644,28645,28646,28647,28648,28649,28650,28651,28652,28653,28656,28657,28658,28659,28660,28661,28662,28663,28664,28665,28666,28667,28668,28669,28670,28671,28672,28673,28674,28675,28676,28677,28678,28679,28680,28681,28682,28683,28684,28685,28686,28687,28688,28690,28691,28692,28693,28694,28695,28696,28697,28700,28701,28702,28703,28704,28705,28706,28708,28709,28710,28711,28712,28713,28714,28715,28716,28717,28718,28719,28720,28721,28722,28723,28724,28726,28727,28728,28730,28731,28732,28733,28734,28735,28736,28737,28738,28739,28740,28741,28742,28743,28744,28745,28746,28747,28749,28750,28752,28753,28754,28755,28756,28757,28758,28759,28760,28761,28762,28763,28764,28765,28767,28768,28769,28770,28771,28772,28773,28774,28775,28776,28777,28778,28782,28785,28786,28787,28788,28791,28793,28794,28795,28797,28801,28802,28803,28804,28806,28807,28808,28811,28812,28813,28815,28816,28817,28819,28823,28824,28826,28827,28830,28831,28832,28833,28834,28835,28836,28837,28838,28839,28840,28841,28842,28848,28850,28852,28853,28854,28858,28862,28863,28868,28869,28870,28871,28873,28875,28876,28877,28878,28879,28880,28881,28882,28883,28884,28885,28886,28887,28890,28892,28893,28894,28896,28897,28898,28899,28901,28906,28910,28912,28913,28914,28915,28916,28917,28918,28920,28922,28923,28924,28926,28927,28928,28929,28930,28931,28932,28933,28934,28935,28936,28939,28940,28941,28942,28943,28945,28946,28948,28951,28955,28956,28957,28958,28959,28960,28961,28962,28963,28964,28965,28967,28968,28969,28970,28971,28972,28973,28974,28978,28979,28980,28981,28983,28984,28985,28986,28987,28988,28989,28990,28991,28992,28993,28994,28995,28996,28998,28999,29e3,29001,29003,29005,29007,29008,29009,29010,29011,29012,29013,29014,29015,29016,29017,29018,29019,29021,29023,29024,29025,29026,29027,29029,29033,29034,29035,29036,29037,29039,29040,29041,29044,29045,29046,29047,29049,29051,29052,29054,29055,29056,29057,29058,29059,29061,29062,29063,29064,29065,29067,29068,29069,29070,29072,29073,29074,29075,29077,29078,29079,29082,29083,29084,29085,29086,29089,29090,29091,29092,29093,29094,29095,29097,29098,29099,29101,29102,29103,29104,29105,29106,29108,29110,29111,29112,29114,29115,29116,29117,29118,29119,29120,29121,29122,29124,29125,29126,29127,29128,29129,29130,29131,29132,29133,29135,29136,29137,29138,29139,29142,29143,29144,29145,29146,29147,29148,29149,29150,29151,29153,29154,29155,29156,29158,29160,29161,29162,29163,29164,29165,29167,29168,29169,29170,29171,29172,29173,29174,29175,29176,29178,29179,29180,29181,29182,29183,29184,29185,29186,29187,29188,29189,29191,29192,29193,29194,29195,29196,29197,29198,29199,29200,29201,29202,29203,29204,29205,29206,29207,29208,29209,29210,29211,29212,29214,29215,29216,29217,29218,29219,29220,29221,29222,29223,29225,29227,29229,29230,29231,29234,29235,29236,29242,29244,29246,29248,29249,29250,29251,29252,29253,29254,29257,29258,29259,29262,29263,29264,29265,29267,29268,29269,29271,29272,29274,29276,29278,29280,29283,29284,29285,29288,29290,29291,29292,29293,29296,29297,29299,29300,29302,29303,29304,29307,29308,29309,29314,29315,29317,29318,29319,29320,29321,29324,29326,29328,29329,29331,29332,29333,29334,29335,29336,29337,29338,29339,29340,29341,29342,29344,29345,29346,29347,29348,29349,29350,29351,29352,29353,29354,29355,29358,29361,29362,29363,29365,29370,29371,29372,29373,29374,29375,29376,29381,29382,29383,29385,29386,29387,29388,29391,29393,29395,29396,29397,29398,29400,29402,29403,58566,58567,58568,58569,58570,58571,58572,58573,58574,58575,58576,58577,58578,58579,58580,58581,58582,58583,58584,58585,58586,58587,58588,58589,58590,58591,58592,58593,58594,58595,58596,58597,58598,58599,58600,58601,58602,58603,58604,58605,58606,58607,58608,58609,58610,58611,58612,58613,58614,58615,58616,58617,58618,58619,58620,58621,58622,58623,58624,58625,58626,58627,58628,58629,58630,58631,58632,58633,58634,58635,58636,58637,58638,58639,58640,58641,58642,58643,58644,58645,58646,58647,58648,58649,58650,58651,58652,58653,58654,58655,58656,58657,58658,58659,58660,58661,12288,12289,12290,183,713,711,168,12291,12293,8212,65374,8214,8230,8216,8217,8220,8221,12308,12309,12296,12297,12298,12299,12300,12301,12302,12303,12310,12311,12304,12305,177,215,247,8758,8743,8744,8721,8719,8746,8745,8712,8759,8730,8869,8741,8736,8978,8857,8747,8750,8801,8780,8776,8765,8733,8800,8814,8815,8804,8805,8734,8757,8756,9794,9792,176,8242,8243,8451,65284,164,65504,65505,8240,167,8470,9734,9733,9675,9679,9678,9671,9670,9633,9632,9651,9650,8251,8594,8592,8593,8595,12307,58662,58663,58664,58665,58666,58667,58668,58669,58670,58671,58672,58673,58674,58675,58676,58677,58678,58679,58680,58681,58682,58683,58684,58685,58686,58687,58688,58689,58690,58691,58692,58693,58694,58695,58696,58697,58698,58699,58700,58701,58702,58703,58704,58705,58706,58707,58708,58709,58710,58711,58712,58713,58714,58715,58716,58717,58718,58719,58720,58721,58722,58723,58724,58725,58726,58727,58728,58729,58730,58731,58732,58733,58734,58735,58736,58737,58738,58739,58740,58741,58742,58743,58744,58745,58746,58747,58748,58749,58750,58751,58752,58753,58754,58755,58756,58757,8560,8561,8562,8563,8564,8565,8566,8567,8568,8569,59238,59239,59240,59241,59242,59243,9352,9353,9354,9355,9356,9357,9358,9359,9360,9361,9362,9363,9364,9365,9366,9367,9368,9369,9370,9371,9332,9333,9334,9335,9336,9337,9338,9339,9340,9341,9342,9343,9344,9345,9346,9347,9348,9349,9350,9351,9312,9313,9314,9315,9316,9317,9318,9319,9320,9321,8364,59245,12832,12833,12834,12835,12836,12837,12838,12839,12840,12841,59246,59247,8544,8545,8546,8547,8548,8549,8550,8551,8552,8553,8554,8555,59248,59249,58758,58759,58760,58761,58762,58763,58764,58765,58766,58767,58768,58769,58770,58771,58772,58773,58774,58775,58776,58777,58778,58779,58780,58781,58782,58783,58784,58785,58786,58787,58788,58789,58790,58791,58792,58793,58794,58795,58796,58797,58798,58799,58800,58801,58802,58803,58804,58805,58806,58807,58808,58809,58810,58811,58812,58813,58814,58815,58816,58817,58818,58819,58820,58821,58822,58823,58824,58825,58826,58827,58828,58829,58830,58831,58832,58833,58834,58835,58836,58837,58838,58839,58840,58841,58842,58843,58844,58845,58846,58847,58848,58849,58850,58851,58852,12288,65281,65282,65283,65509,65285,65286,65287,65288,65289,65290,65291,65292,65293,65294,65295,65296,65297,65298,65299,65300,65301,65302,65303,65304,65305,65306,65307,65308,65309,65310,65311,65312,65313,65314,65315,65316,65317,65318,65319,65320,65321,65322,65323,65324,65325,65326,65327,65328,65329,65330,65331,65332,65333,65334,65335,65336,65337,65338,65339,65340,65341,65342,65343,65344,65345,65346,65347,65348,65349,65350,65351,65352,65353,65354,65355,65356,65357,65358,65359,65360,65361,65362,65363,65364,65365,65366,65367,65368,65369,65370,65371,65372,65373,65507,58854,58855,58856,58857,58858,58859,58860,58861,58862,58863,58864,58865,58866,58867,58868,58869,58870,58871,58872,58873,58874,58875,58876,58877,58878,58879,58880,58881,58882,58883,58884,58885,58886,58887,58888,58889,58890,58891,58892,58893,58894,58895,58896,58897,58898,58899,58900,58901,58902,58903,58904,58905,58906,58907,58908,58909,58910,58911,58912,58913,58914,58915,58916,58917,58918,58919,58920,58921,58922,58923,58924,58925,58926,58927,58928,58929,58930,58931,58932,58933,58934,58935,58936,58937,58938,58939,58940,58941,58942,58943,58944,58945,58946,58947,58948,58949,12353,12354,12355,12356,12357,12358,12359,12360,12361,12362,12363,12364,12365,12366,12367,12368,12369,12370,12371,12372,12373,12374,12375,12376,12377,12378,12379,12380,12381,12382,12383,12384,12385,12386,12387,12388,12389,12390,12391,12392,12393,12394,12395,12396,12397,12398,12399,12400,12401,12402,12403,12404,12405,12406,12407,12408,12409,12410,12411,12412,12413,12414,12415,12416,12417,12418,12419,12420,12421,12422,12423,12424,12425,12426,12427,12428,12429,12430,12431,12432,12433,12434,12435,59250,59251,59252,59253,59254,59255,59256,59257,59258,59259,59260,58950,58951,58952,58953,58954,58955,58956,58957,58958,58959,58960,58961,58962,58963,58964,58965,58966,58967,58968,58969,58970,58971,58972,58973,58974,58975,58976,58977,58978,58979,58980,58981,58982,58983,58984,58985,58986,58987,58988,58989,58990,58991,58992,58993,58994,58995,58996,58997,58998,58999,59e3,59001,59002,59003,59004,59005,59006,59007,59008,59009,59010,59011,59012,59013,59014,59015,59016,59017,59018,59019,59020,59021,59022,59023,59024,59025,59026,59027,59028,59029,59030,59031,59032,59033,59034,59035,59036,59037,59038,59039,59040,59041,59042,59043,59044,59045,12449,12450,12451,12452,12453,12454,12455,12456,12457,12458,12459,12460,12461,12462,12463,12464,12465,12466,12467,12468,12469,12470,12471,12472,12473,12474,12475,12476,12477,12478,12479,12480,12481,12482,12483,12484,12485,12486,12487,12488,12489,12490,12491,12492,12493,12494,12495,12496,12497,12498,12499,12500,12501,12502,12503,12504,12505,12506,12507,12508,12509,12510,12511,12512,12513,12514,12515,12516,12517,12518,12519,12520,12521,12522,12523,12524,12525,12526,12527,12528,12529,12530,12531,12532,12533,12534,59261,59262,59263,59264,59265,59266,59267,59268,59046,59047,59048,59049,59050,59051,59052,59053,59054,59055,59056,59057,59058,59059,59060,59061,59062,59063,59064,59065,59066,59067,59068,59069,59070,59071,59072,59073,59074,59075,59076,59077,59078,59079,59080,59081,59082,59083,59084,59085,59086,59087,59088,59089,59090,59091,59092,59093,59094,59095,59096,59097,59098,59099,59100,59101,59102,59103,59104,59105,59106,59107,59108,59109,59110,59111,59112,59113,59114,59115,59116,59117,59118,59119,59120,59121,59122,59123,59124,59125,59126,59127,59128,59129,59130,59131,59132,59133,59134,59135,59136,59137,59138,59139,59140,59141,913,914,915,916,917,918,919,920,921,922,923,924,925,926,927,928,929,931,932,933,934,935,936,937,59269,59270,59271,59272,59273,59274,59275,59276,945,946,947,948,949,950,951,952,953,954,955,956,957,958,959,960,961,963,964,965,966,967,968,969,59277,59278,59279,59280,59281,59282,59283,65077,65078,65081,65082,65087,65088,65085,65086,65089,65090,65091,65092,59284,59285,65083,65084,65079,65080,65073,59286,65075,65076,59287,59288,59289,59290,59291,59292,59293,59294,59295,59142,59143,59144,59145,59146,59147,59148,59149,59150,59151,59152,59153,59154,59155,59156,59157,59158,59159,59160,59161,59162,59163,59164,59165,59166,59167,59168,59169,59170,59171,59172,59173,59174,59175,59176,59177,59178,59179,59180,59181,59182,59183,59184,59185,59186,59187,59188,59189,59190,59191,59192,59193,59194,59195,59196,59197,59198,59199,59200,59201,59202,59203,59204,59205,59206,59207,59208,59209,59210,59211,59212,59213,59214,59215,59216,59217,59218,59219,59220,59221,59222,59223,59224,59225,59226,59227,59228,59229,59230,59231,59232,59233,59234,59235,59236,59237,1040,1041,1042,1043,1044,1045,1025,1046,1047,1048,1049,1050,1051,1052,1053,1054,1055,1056,1057,1058,1059,1060,1061,1062,1063,1064,1065,1066,1067,1068,1069,1070,1071,59296,59297,59298,59299,59300,59301,59302,59303,59304,59305,59306,59307,59308,59309,59310,1072,1073,1074,1075,1076,1077,1105,1078,1079,1080,1081,1082,1083,1084,1085,1086,1087,1088,1089,1090,1091,1092,1093,1094,1095,1096,1097,1098,1099,1100,1101,1102,1103,59311,59312,59313,59314,59315,59316,59317,59318,59319,59320,59321,59322,59323,714,715,729,8211,8213,8229,8245,8453,8457,8598,8599,8600,8601,8725,8735,8739,8786,8806,8807,8895,9552,9553,9554,9555,9556,9557,9558,9559,9560,9561,9562,9563,9564,9565,9566,9567,9568,9569,9570,9571,9572,9573,9574,9575,9576,9577,9578,9579,9580,9581,9582,9583,9584,9585,9586,9587,9601,9602,9603,9604,9605,9606,9607,9608,9609,9610,9611,9612,9613,9614,9615,9619,9620,9621,9660,9661,9698,9699,9700,9701,9737,8853,12306,12317,12318,59324,59325,59326,59327,59328,59329,59330,59331,59332,59333,59334,257,225,462,224,275,233,283,232,299,237,464,236,333,243,466,242,363,250,468,249,470,472,474,476,252,234,593,7743,324,328,505,609,59337,59338,59339,59340,12549,12550,12551,12552,12553,12554,12555,12556,12557,12558,12559,12560,12561,12562,12563,12564,12565,12566,12567,12568,12569,12570,12571,12572,12573,12574,12575,12576,12577,12578,12579,12580,12581,12582,12583,12584,12585,59341,59342,59343,59344,59345,59346,59347,59348,59349,59350,59351,59352,59353,59354,59355,59356,59357,59358,59359,59360,59361,12321,12322,12323,12324,12325,12326,12327,12328,12329,12963,13198,13199,13212,13213,13214,13217,13252,13262,13265,13266,13269,65072,65506,65508,59362,8481,12849,59363,8208,59364,59365,59366,12540,12443,12444,12541,12542,12294,12445,12446,65097,65098,65099,65100,65101,65102,65103,65104,65105,65106,65108,65109,65110,65111,65113,65114,65115,65116,65117,65118,65119,65120,65121,65122,65123,65124,65125,65126,65128,65129,65130,65131,12350,12272,12273,12274,12275,12276,12277,12278,12279,12280,12281,12282,12283,12295,59380,59381,59382,59383,59384,59385,59386,59387,59388,59389,59390,59391,59392,9472,9473,9474,9475,9476,9477,9478,9479,9480,9481,9482,9483,9484,9485,9486,9487,9488,9489,9490,9491,9492,9493,9494,9495,9496,9497,9498,9499,9500,9501,9502,9503,9504,9505,9506,9507,9508,9509,9510,9511,9512,9513,9514,9515,9516,9517,9518,9519,9520,9521,9522,9523,9524,9525,9526,9527,9528,9529,9530,9531,9532,9533,9534,9535,9536,9537,9538,9539,9540,9541,9542,9543,9544,9545,9546,9547,59393,59394,59395,59396,59397,59398,59399,59400,59401,59402,59403,59404,59405,59406,59407,29404,29405,29407,29410,29411,29412,29413,29414,29415,29418,29419,29429,29430,29433,29437,29438,29439,29440,29442,29444,29445,29446,29447,29448,29449,29451,29452,29453,29455,29456,29457,29458,29460,29464,29465,29466,29471,29472,29475,29476,29478,29479,29480,29485,29487,29488,29490,29491,29493,29494,29498,29499,29500,29501,29504,29505,29506,29507,29508,29509,29510,29511,29512,29513,29514,29515,29516,29518,29519,29521,29523,29524,29525,29526,29528,29529,29530,29531,29532,29533,29534,29535,29537,29538,29539,29540,29541,29542,29543,29544,29545,29546,29547,29550,29552,29553,57344,57345,57346,57347,57348,57349,57350,57351,57352,57353,57354,57355,57356,57357,57358,57359,57360,57361,57362,57363,57364,57365,57366,57367,57368,57369,57370,57371,57372,57373,57374,57375,57376,57377,57378,57379,57380,57381,57382,57383,57384,57385,57386,57387,57388,57389,57390,57391,57392,57393,57394,57395,57396,57397,57398,57399,57400,57401,57402,57403,57404,57405,57406,57407,57408,57409,57410,57411,57412,57413,57414,57415,57416,57417,57418,57419,57420,57421,57422,57423,57424,57425,57426,57427,57428,57429,57430,57431,57432,57433,57434,57435,57436,57437,29554,29555,29556,29557,29558,29559,29560,29561,29562,29563,29564,29565,29567,29568,29569,29570,29571,29573,29574,29576,29578,29580,29581,29583,29584,29586,29587,29588,29589,29591,29592,29593,29594,29596,29597,29598,29600,29601,29603,29604,29605,29606,29607,29608,29610,29612,29613,29617,29620,29621,29622,29624,29625,29628,29629,29630,29631,29633,29635,29636,29637,29638,29639,29643,29644,29646,29650,29651,29652,29653,29654,29655,29656,29658,29659,29660,29661,29663,29665,29666,29667,29668,29670,29672,29674,29675,29676,29678,29679,29680,29681,29683,29684,29685,29686,29687,57438,57439,57440,57441,57442,57443,57444,57445,57446,57447,57448,57449,57450,57451,57452,57453,57454,57455,57456,57457,57458,57459,57460,57461,57462,57463,57464,57465,57466,57467,57468,57469,57470,57471,57472,57473,57474,57475,57476,57477,57478,57479,57480,57481,57482,57483,57484,57485,57486,57487,57488,57489,57490,57491,57492,57493,57494,57495,57496,57497,57498,57499,57500,57501,57502,57503,57504,57505,57506,57507,57508,57509,57510,57511,57512,57513,57514,57515,57516,57517,57518,57519,57520,57521,57522,57523,57524,57525,57526,57527,57528,57529,57530,57531,29688,29689,29690,29691,29692,29693,29694,29695,29696,29697,29698,29700,29703,29704,29707,29708,29709,29710,29713,29714,29715,29716,29717,29718,29719,29720,29721,29724,29725,29726,29727,29728,29729,29731,29732,29735,29737,29739,29741,29743,29745,29746,29751,29752,29753,29754,29755,29757,29758,29759,29760,29762,29763,29764,29765,29766,29767,29768,29769,29770,29771,29772,29773,29774,29775,29776,29777,29778,29779,29780,29782,29784,29789,29792,29793,29794,29795,29796,29797,29798,29799,29800,29801,29802,29803,29804,29806,29807,29809,29810,29811,29812,29813,29816,29817,29818,57532,57533,57534,57535,57536,57537,57538,57539,57540,57541,57542,57543,57544,57545,57546,57547,57548,57549,57550,57551,57552,57553,57554,57555,57556,57557,57558,57559,57560,57561,57562,57563,57564,57565,57566,57567,57568,57569,57570,57571,57572,57573,57574,57575,57576,57577,57578,57579,57580,57581,57582,57583,57584,57585,57586,57587,57588,57589,57590,57591,57592,57593,57594,57595,57596,57597,57598,57599,57600,57601,57602,57603,57604,57605,57606,57607,57608,57609,57610,57611,57612,57613,57614,57615,57616,57617,57618,57619,57620,57621,57622,57623,57624,57625,29819,29820,29821,29823,29826,29828,29829,29830,29832,29833,29834,29836,29837,29839,29841,29842,29843,29844,29845,29846,29847,29848,29849,29850,29851,29853,29855,29856,29857,29858,29859,29860,29861,29862,29866,29867,29868,29869,29870,29871,29872,29873,29874,29875,29876,29877,29878,29879,29880,29881,29883,29884,29885,29886,29887,29888,29889,29890,29891,29892,29893,29894,29895,29896,29897,29898,29899,29900,29901,29902,29903,29904,29905,29907,29908,29909,29910,29911,29912,29913,29914,29915,29917,29919,29921,29925,29927,29928,29929,29930,29931,29932,29933,29936,29937,29938,57626,57627,57628,57629,57630,57631,57632,57633,57634,57635,57636,57637,57638,57639,57640,57641,57642,57643,57644,57645,57646,57647,57648,57649,57650,57651,57652,57653,57654,57655,57656,57657,57658,57659,57660,57661,57662,57663,57664,57665,57666,57667,57668,57669,57670,57671,57672,57673,57674,57675,57676,57677,57678,57679,57680,57681,57682,57683,57684,57685,57686,57687,57688,57689,57690,57691,57692,57693,57694,57695,57696,57697,57698,57699,57700,57701,57702,57703,57704,57705,57706,57707,57708,57709,57710,57711,57712,57713,57714,57715,57716,57717,57718,57719,29939,29941,29944,29945,29946,29947,29948,29949,29950,29952,29953,29954,29955,29957,29958,29959,29960,29961,29962,29963,29964,29966,29968,29970,29972,29973,29974,29975,29979,29981,29982,29984,29985,29986,29987,29988,29990,29991,29994,29998,30004,30006,30009,30012,30013,30015,30017,30018,30019,30020,30022,30023,30025,30026,30029,30032,30033,30034,30035,30037,30038,30039,30040,30045,30046,30047,30048,30049,30050,30051,30052,30055,30056,30057,30059,30060,30061,30062,30063,30064,30065,30067,30069,30070,30071,30074,30075,30076,30077,30078,30080,30081,30082,30084,30085,30087,57720,57721,57722,57723,57724,57725,57726,57727,57728,57729,57730,57731,57732,57733,57734,57735,57736,57737,57738,57739,57740,57741,57742,57743,57744,57745,57746,57747,57748,57749,57750,57751,57752,57753,57754,57755,57756,57757,57758,57759,57760,57761,57762,57763,57764,57765,57766,57767,57768,57769,57770,57771,57772,57773,57774,57775,57776,57777,57778,57779,57780,57781,57782,57783,57784,57785,57786,57787,57788,57789,57790,57791,57792,57793,57794,57795,57796,57797,57798,57799,57800,57801,57802,57803,57804,57805,57806,57807,57808,57809,57810,57811,57812,57813,30088,30089,30090,30092,30093,30094,30096,30099,30101,30104,30107,30108,30110,30114,30118,30119,30120,30121,30122,30125,30134,30135,30138,30139,30143,30144,30145,30150,30155,30156,30158,30159,30160,30161,30163,30167,30169,30170,30172,30173,30175,30176,30177,30181,30185,30188,30189,30190,30191,30194,30195,30197,30198,30199,30200,30202,30203,30205,30206,30210,30212,30214,30215,30216,30217,30219,30221,30222,30223,30225,30226,30227,30228,30230,30234,30236,30237,30238,30241,30243,30247,30248,30252,30254,30255,30257,30258,30262,30263,30265,30266,30267,30269,30273,30274,30276,57814,57815,57816,57817,57818,57819,57820,57821,57822,57823,57824,57825,57826,57827,57828,57829,57830,57831,57832,57833,57834,57835,57836,57837,57838,57839,57840,57841,57842,57843,57844,57845,57846,57847,57848,57849,57850,57851,57852,57853,57854,57855,57856,57857,57858,57859,57860,57861,57862,57863,57864,57865,57866,57867,57868,57869,57870,57871,57872,57873,57874,57875,57876,57877,57878,57879,57880,57881,57882,57883,57884,57885,57886,57887,57888,57889,57890,57891,57892,57893,57894,57895,57896,57897,57898,57899,57900,57901,57902,57903,57904,57905,57906,57907,30277,30278,30279,30280,30281,30282,30283,30286,30287,30288,30289,30290,30291,30293,30295,30296,30297,30298,30299,30301,30303,30304,30305,30306,30308,30309,30310,30311,30312,30313,30314,30316,30317,30318,30320,30321,30322,30323,30324,30325,30326,30327,30329,30330,30332,30335,30336,30337,30339,30341,30345,30346,30348,30349,30351,30352,30354,30356,30357,30359,30360,30362,30363,30364,30365,30366,30367,30368,30369,30370,30371,30373,30374,30375,30376,30377,30378,30379,30380,30381,30383,30384,30387,30389,30390,30391,30392,30393,30394,30395,30396,30397,30398,30400,30401,30403,21834,38463,22467,25384,21710,21769,21696,30353,30284,34108,30702,33406,30861,29233,38552,38797,27688,23433,20474,25353,26263,23736,33018,26696,32942,26114,30414,20985,25942,29100,32753,34948,20658,22885,25034,28595,33453,25420,25170,21485,21543,31494,20843,30116,24052,25300,36299,38774,25226,32793,22365,38712,32610,29240,30333,26575,30334,25670,20336,36133,25308,31255,26001,29677,25644,25203,33324,39041,26495,29256,25198,25292,20276,29923,21322,21150,32458,37030,24110,26758,27036,33152,32465,26834,30917,34444,38225,20621,35876,33502,32990,21253,35090,21093,30404,30407,30409,30411,30412,30419,30421,30425,30426,30428,30429,30430,30432,30433,30434,30435,30436,30438,30439,30440,30441,30442,30443,30444,30445,30448,30451,30453,30454,30455,30458,30459,30461,30463,30464,30466,30467,30469,30470,30474,30476,30478,30479,30480,30481,30482,30483,30484,30485,30486,30487,30488,30491,30492,30493,30494,30497,30499,30500,30501,30503,30506,30507,30508,30510,30512,30513,30514,30515,30516,30521,30523,30525,30526,30527,30530,30532,30533,30534,30536,30537,30538,30539,30540,30541,30542,30543,30546,30547,30548,30549,30550,30551,30552,30553,30556,34180,38649,20445,22561,39281,23453,25265,25253,26292,35961,40077,29190,26479,30865,24754,21329,21271,36744,32972,36125,38049,20493,29384,22791,24811,28953,34987,22868,33519,26412,31528,23849,32503,29997,27893,36454,36856,36924,40763,27604,37145,31508,24444,30887,34006,34109,27605,27609,27606,24065,24199,30201,38381,25949,24330,24517,36767,22721,33218,36991,38491,38829,36793,32534,36140,25153,20415,21464,21342,36776,36777,36779,36941,26631,24426,33176,34920,40150,24971,21035,30250,24428,25996,28626,28392,23486,25672,20853,20912,26564,19993,31177,39292,28851,30557,30558,30559,30560,30564,30567,30569,30570,30573,30574,30575,30576,30577,30578,30579,30580,30581,30582,30583,30584,30586,30587,30588,30593,30594,30595,30598,30599,30600,30601,30602,30603,30607,30608,30611,30612,30613,30614,30615,30616,30617,30618,30619,30620,30621,30622,30625,30627,30628,30630,30632,30635,30637,30638,30639,30641,30642,30644,30646,30647,30648,30649,30650,30652,30654,30656,30657,30658,30659,30660,30661,30662,30663,30664,30665,30666,30667,30668,30670,30671,30672,30673,30674,30675,30676,30677,30678,30680,30681,30682,30685,30686,30687,30688,30689,30692,30149,24182,29627,33760,25773,25320,38069,27874,21338,21187,25615,38082,31636,20271,24091,33334,33046,33162,28196,27850,39539,25429,21340,21754,34917,22496,19981,24067,27493,31807,37096,24598,25830,29468,35009,26448,25165,36130,30572,36393,37319,24425,33756,34081,39184,21442,34453,27531,24813,24808,28799,33485,33329,20179,27815,34255,25805,31961,27133,26361,33609,21397,31574,20391,20876,27979,23618,36461,25554,21449,33580,33590,26597,30900,25661,23519,23700,24046,35815,25286,26612,35962,25600,25530,34633,39307,35863,32544,38130,20135,38416,39076,26124,29462,30694,30696,30698,30703,30704,30705,30706,30708,30709,30711,30713,30714,30715,30716,30723,30724,30725,30726,30727,30728,30730,30731,30734,30735,30736,30739,30741,30745,30747,30750,30752,30753,30754,30756,30760,30762,30763,30766,30767,30769,30770,30771,30773,30774,30781,30783,30785,30786,30787,30788,30790,30792,30793,30794,30795,30797,30799,30801,30803,30804,30808,30809,30810,30811,30812,30814,30815,30816,30817,30818,30819,30820,30821,30822,30823,30824,30825,30831,30832,30833,30834,30835,30836,30837,30838,30840,30841,30842,30843,30845,30846,30847,30848,30849,30850,30851,22330,23581,24120,38271,20607,32928,21378,25950,30021,21809,20513,36229,25220,38046,26397,22066,28526,24034,21557,28818,36710,25199,25764,25507,24443,28552,37108,33251,36784,23576,26216,24561,27785,38472,36225,34924,25745,31216,22478,27225,25104,21576,20056,31243,24809,28548,35802,25215,36894,39563,31204,21507,30196,25345,21273,27744,36831,24347,39536,32827,40831,20360,23610,36196,32709,26021,28861,20805,20914,34411,23815,23456,25277,37228,30068,36364,31264,24833,31609,20167,32504,30597,19985,33261,21021,20986,27249,21416,36487,38148,38607,28353,38500,26970,30852,30853,30854,30856,30858,30859,30863,30864,30866,30868,30869,30870,30873,30877,30878,30880,30882,30884,30886,30888,30889,30890,30891,30892,30893,30894,30895,30901,30902,30903,30904,30906,30907,30908,30909,30911,30912,30914,30915,30916,30918,30919,30920,30924,30925,30926,30927,30929,30930,30931,30934,30935,30936,30938,30939,30940,30941,30942,30943,30944,30945,30946,30947,30948,30949,30950,30951,30953,30954,30955,30957,30958,30959,30960,30961,30963,30965,30966,30968,30969,30971,30972,30973,30974,30975,30976,30978,30979,30980,30982,30983,30984,30985,30986,30987,30988,30784,20648,30679,25616,35302,22788,25571,24029,31359,26941,20256,33337,21912,20018,30126,31383,24162,24202,38383,21019,21561,28810,25462,38180,22402,26149,26943,37255,21767,28147,32431,34850,25139,32496,30133,33576,30913,38604,36766,24904,29943,35789,27492,21050,36176,27425,32874,33905,22257,21254,20174,19995,20945,31895,37259,31751,20419,36479,31713,31388,25703,23828,20652,33030,30209,31929,28140,32736,26449,23384,23544,30923,25774,25619,25514,25387,38169,25645,36798,31572,30249,25171,22823,21574,27513,20643,25140,24102,27526,20195,36151,34955,24453,36910,30989,30990,30991,30992,30993,30994,30996,30997,30998,30999,31e3,31001,31002,31003,31004,31005,31007,31008,31009,31010,31011,31013,31014,31015,31016,31017,31018,31019,31020,31021,31022,31023,31024,31025,31026,31027,31029,31030,31031,31032,31033,31037,31039,31042,31043,31044,31045,31047,31050,31051,31052,31053,31054,31055,31056,31057,31058,31060,31061,31064,31065,31073,31075,31076,31078,31081,31082,31083,31084,31086,31088,31089,31090,31091,31092,31093,31094,31097,31099,31100,31101,31102,31103,31106,31107,31110,31111,31112,31113,31115,31116,31117,31118,31120,31121,31122,24608,32829,25285,20025,21333,37112,25528,32966,26086,27694,20294,24814,28129,35806,24377,34507,24403,25377,20826,33633,26723,20992,25443,36424,20498,23707,31095,23548,21040,31291,24764,36947,30423,24503,24471,30340,36460,28783,30331,31561,30634,20979,37011,22564,20302,28404,36842,25932,31515,29380,28068,32735,23265,25269,24213,22320,33922,31532,24093,24351,36882,32532,39072,25474,28359,30872,28857,20856,38747,22443,30005,20291,30008,24215,24806,22880,28096,27583,30857,21500,38613,20939,20993,25481,21514,38035,35843,36300,29241,30879,34678,36845,35853,21472,31123,31124,31125,31126,31127,31128,31129,31131,31132,31133,31134,31135,31136,31137,31138,31139,31140,31141,31142,31144,31145,31146,31147,31148,31149,31150,31151,31152,31153,31154,31156,31157,31158,31159,31160,31164,31167,31170,31172,31173,31175,31176,31178,31180,31182,31183,31184,31187,31188,31190,31191,31193,31194,31195,31196,31197,31198,31200,31201,31202,31205,31208,31210,31212,31214,31217,31218,31219,31220,31221,31222,31223,31225,31226,31228,31230,31231,31233,31236,31237,31239,31240,31241,31242,31244,31247,31248,31249,31250,31251,31253,31254,31256,31257,31259,31260,19969,30447,21486,38025,39030,40718,38189,23450,35746,20002,19996,20908,33891,25026,21160,26635,20375,24683,20923,27934,20828,25238,26007,38497,35910,36887,30168,37117,30563,27602,29322,29420,35835,22581,30585,36172,26460,38208,32922,24230,28193,22930,31471,30701,38203,27573,26029,32526,22534,20817,38431,23545,22697,21544,36466,25958,39039,22244,38045,30462,36929,25479,21702,22810,22842,22427,36530,26421,36346,33333,21057,24816,22549,34558,23784,40517,20420,39069,35769,23077,24694,21380,25212,36943,37122,39295,24681,32780,20799,32819,23572,39285,27953,20108,31261,31263,31265,31266,31268,31269,31270,31271,31272,31273,31274,31275,31276,31277,31278,31279,31280,31281,31282,31284,31285,31286,31288,31290,31294,31296,31297,31298,31299,31300,31301,31303,31304,31305,31306,31307,31308,31309,31310,31311,31312,31314,31315,31316,31317,31318,31320,31321,31322,31323,31324,31325,31326,31327,31328,31329,31330,31331,31332,31333,31334,31335,31336,31337,31338,31339,31340,31341,31342,31343,31345,31346,31347,31349,31355,31356,31357,31358,31362,31365,31367,31369,31370,31371,31372,31374,31375,31376,31379,31380,31385,31386,31387,31390,31393,31394,36144,21457,32602,31567,20240,20047,38400,27861,29648,34281,24070,30058,32763,27146,30718,38034,32321,20961,28902,21453,36820,33539,36137,29359,39277,27867,22346,33459,26041,32938,25151,38450,22952,20223,35775,32442,25918,33778,38750,21857,39134,32933,21290,35837,21536,32954,24223,27832,36153,33452,37210,21545,27675,20998,32439,22367,28954,27774,31881,22859,20221,24575,24868,31914,20016,23553,26539,34562,23792,38155,39118,30127,28925,36898,20911,32541,35773,22857,20964,20315,21542,22827,25975,32932,23413,25206,25282,36752,24133,27679,31526,20239,20440,26381,31395,31396,31399,31401,31402,31403,31406,31407,31408,31409,31410,31412,31413,31414,31415,31416,31417,31418,31419,31420,31421,31422,31424,31425,31426,31427,31428,31429,31430,31431,31432,31433,31434,31436,31437,31438,31439,31440,31441,31442,31443,31444,31445,31447,31448,31450,31451,31452,31453,31457,31458,31460,31463,31464,31465,31466,31467,31468,31470,31472,31473,31474,31475,31476,31477,31478,31479,31480,31483,31484,31486,31488,31489,31490,31493,31495,31497,31500,31501,31502,31504,31506,31507,31510,31511,31512,31514,31516,31517,31519,31521,31522,31523,31527,31529,31533,28014,28074,31119,34993,24343,29995,25242,36741,20463,37340,26023,33071,33105,24220,33104,36212,21103,35206,36171,22797,20613,20184,38428,29238,33145,36127,23500,35747,38468,22919,32538,21648,22134,22030,35813,25913,27010,38041,30422,28297,24178,29976,26438,26577,31487,32925,36214,24863,31174,25954,36195,20872,21018,38050,32568,32923,32434,23703,28207,26464,31705,30347,39640,33167,32660,31957,25630,38224,31295,21578,21733,27468,25601,25096,40509,33011,30105,21106,38761,33883,26684,34532,38401,38548,38124,20010,21508,32473,26681,36319,32789,26356,24218,32697,31535,31536,31538,31540,31541,31542,31543,31545,31547,31549,31551,31552,31553,31554,31555,31556,31558,31560,31562,31565,31566,31571,31573,31575,31577,31580,31582,31583,31585,31587,31588,31589,31590,31591,31592,31593,31594,31595,31596,31597,31599,31600,31603,31604,31606,31608,31610,31612,31613,31615,31617,31618,31619,31620,31622,31623,31624,31625,31626,31627,31628,31630,31631,31633,31634,31635,31638,31640,31641,31642,31643,31646,31647,31648,31651,31652,31653,31662,31663,31664,31666,31667,31669,31670,31671,31673,31674,31675,31676,31677,31678,31679,31680,31682,31683,31684,22466,32831,26775,24037,25915,21151,24685,40858,20379,36524,20844,23467,24339,24041,27742,25329,36129,20849,38057,21246,27807,33503,29399,22434,26500,36141,22815,36764,33735,21653,31629,20272,27837,23396,22993,40723,21476,34506,39592,35895,32929,25925,39038,22266,38599,21038,29916,21072,23521,25346,35074,20054,25296,24618,26874,20851,23448,20896,35266,31649,39302,32592,24815,28748,36143,20809,24191,36891,29808,35268,22317,30789,24402,40863,38394,36712,39740,35809,30328,26690,26588,36330,36149,21053,36746,28378,26829,38149,37101,22269,26524,35065,36807,21704,31685,31688,31689,31690,31691,31693,31694,31695,31696,31698,31700,31701,31702,31703,31704,31707,31708,31710,31711,31712,31714,31715,31716,31719,31720,31721,31723,31724,31725,31727,31728,31730,31731,31732,31733,31734,31736,31737,31738,31739,31741,31743,31744,31745,31746,31747,31748,31749,31750,31752,31753,31754,31757,31758,31760,31761,31762,31763,31764,31765,31767,31768,31769,31770,31771,31772,31773,31774,31776,31777,31778,31779,31780,31781,31784,31785,31787,31788,31789,31790,31791,31792,31793,31794,31795,31796,31797,31798,31799,31801,31802,31803,31804,31805,31806,31810,39608,23401,28023,27686,20133,23475,39559,37219,25e3,37039,38889,21547,28085,23506,20989,21898,32597,32752,25788,25421,26097,25022,24717,28938,27735,27721,22831,26477,33322,22741,22158,35946,27627,37085,22909,32791,21495,28009,21621,21917,33655,33743,26680,31166,21644,20309,21512,30418,35977,38402,27827,28088,36203,35088,40548,36154,22079,40657,30165,24456,29408,24680,21756,20136,27178,34913,24658,36720,21700,28888,34425,40511,27946,23439,24344,32418,21897,20399,29492,21564,21402,20505,21518,21628,20046,24573,29786,22774,33899,32993,34676,29392,31946,28246,31811,31812,31813,31814,31815,31816,31817,31818,31819,31820,31822,31823,31824,31825,31826,31827,31828,31829,31830,31831,31832,31833,31834,31835,31836,31837,31838,31839,31840,31841,31842,31843,31844,31845,31846,31847,31848,31849,31850,31851,31852,31853,31854,31855,31856,31857,31858,31861,31862,31863,31864,31865,31866,31870,31871,31872,31873,31874,31875,31876,31877,31878,31879,31880,31882,31883,31884,31885,31886,31887,31888,31891,31892,31894,31897,31898,31899,31904,31905,31907,31910,31911,31912,31913,31915,31916,31917,31919,31920,31924,31925,31926,31927,31928,31930,31931,24359,34382,21804,25252,20114,27818,25143,33457,21719,21326,29502,28369,30011,21010,21270,35805,27088,24458,24576,28142,22351,27426,29615,26707,36824,32531,25442,24739,21796,30186,35938,28949,28067,23462,24187,33618,24908,40644,30970,34647,31783,30343,20976,24822,29004,26179,24140,24653,35854,28784,25381,36745,24509,24674,34516,22238,27585,24724,24935,21321,24800,26214,36159,31229,20250,28905,27719,35763,35826,32472,33636,26127,23130,39746,27985,28151,35905,27963,20249,28779,33719,25110,24785,38669,36135,31096,20987,22334,22522,26426,30072,31293,31215,31637,31935,31936,31938,31939,31940,31942,31945,31947,31950,31951,31952,31953,31954,31955,31956,31960,31962,31963,31965,31966,31969,31970,31971,31972,31973,31974,31975,31977,31978,31979,31980,31981,31982,31984,31985,31986,31987,31988,31989,31990,31991,31993,31994,31996,31997,31998,31999,32e3,32001,32002,32003,32004,32005,32006,32007,32008,32009,32011,32012,32013,32014,32015,32016,32017,32018,32019,32020,32021,32022,32023,32024,32025,32026,32027,32028,32029,32030,32031,32033,32035,32036,32037,32038,32040,32041,32042,32044,32045,32046,32048,32049,32050,32051,32052,32053,32054,32908,39269,36857,28608,35749,40481,23020,32489,32521,21513,26497,26840,36753,31821,38598,21450,24613,30142,27762,21363,23241,32423,25380,20960,33034,24049,34015,25216,20864,23395,20238,31085,21058,24760,27982,23492,23490,35745,35760,26082,24524,38469,22931,32487,32426,22025,26551,22841,20339,23478,21152,33626,39050,36158,30002,38078,20551,31292,20215,26550,39550,23233,27516,30417,22362,23574,31546,38388,29006,20860,32937,33392,22904,32516,33575,26816,26604,30897,30839,25315,25441,31616,20461,21098,20943,33616,27099,37492,36341,36145,35265,38190,31661,20214,32055,32056,32057,32058,32059,32060,32061,32062,32063,32064,32065,32066,32067,32068,32069,32070,32071,32072,32073,32074,32075,32076,32077,32078,32079,32080,32081,32082,32083,32084,32085,32086,32087,32088,32089,32090,32091,32092,32093,32094,32095,32096,32097,32098,32099,32100,32101,32102,32103,32104,32105,32106,32107,32108,32109,32111,32112,32113,32114,32115,32116,32117,32118,32120,32121,32122,32123,32124,32125,32126,32127,32128,32129,32130,32131,32132,32133,32134,32135,32136,32137,32138,32139,32140,32141,32142,32143,32144,32145,32146,32147,32148,32149,32150,32151,32152,20581,33328,21073,39279,28176,28293,28071,24314,20725,23004,23558,27974,27743,30086,33931,26728,22870,35762,21280,37233,38477,34121,26898,30977,28966,33014,20132,37066,27975,39556,23047,22204,25605,38128,30699,20389,33050,29409,35282,39290,32564,32478,21119,25945,37237,36735,36739,21483,31382,25581,25509,30342,31224,34903,38454,25130,21163,33410,26708,26480,25463,30571,31469,27905,32467,35299,22992,25106,34249,33445,30028,20511,20171,30117,35819,23626,24062,31563,26020,37329,20170,27941,35167,32039,38182,20165,35880,36827,38771,26187,31105,36817,28908,28024,32153,32154,32155,32156,32157,32158,32159,32160,32161,32162,32163,32164,32165,32167,32168,32169,32170,32171,32172,32173,32175,32176,32177,32178,32179,32180,32181,32182,32183,32184,32185,32186,32187,32188,32189,32190,32191,32192,32193,32194,32195,32196,32197,32198,32199,32200,32201,32202,32203,32204,32205,32206,32207,32208,32209,32210,32211,32212,32213,32214,32215,32216,32217,32218,32219,32220,32221,32222,32223,32224,32225,32226,32227,32228,32229,32230,32231,32232,32233,32234,32235,32236,32237,32238,32239,32240,32241,32242,32243,32244,32245,32246,32247,32248,32249,32250,23613,21170,33606,20834,33550,30555,26230,40120,20140,24778,31934,31923,32463,20117,35686,26223,39048,38745,22659,25964,38236,24452,30153,38742,31455,31454,20928,28847,31384,25578,31350,32416,29590,38893,20037,28792,20061,37202,21417,25937,26087,33276,33285,21646,23601,30106,38816,25304,29401,30141,23621,39545,33738,23616,21632,30697,20030,27822,32858,25298,25454,24040,20855,36317,36382,38191,20465,21477,24807,28844,21095,25424,40515,23071,20518,30519,21367,32482,25733,25899,25225,25496,20500,29237,35273,20915,35776,32477,22343,33740,38055,20891,21531,23803,32251,32252,32253,32254,32255,32256,32257,32258,32259,32260,32261,32262,32263,32264,32265,32266,32267,32268,32269,32270,32271,32272,32273,32274,32275,32276,32277,32278,32279,32280,32281,32282,32283,32284,32285,32286,32287,32288,32289,32290,32291,32292,32293,32294,32295,32296,32297,32298,32299,32300,32301,32302,32303,32304,32305,32306,32307,32308,32309,32310,32311,32312,32313,32314,32316,32317,32318,32319,32320,32322,32323,32324,32325,32326,32328,32329,32330,32331,32332,32333,32334,32335,32336,32337,32338,32339,32340,32341,32342,32343,32344,32345,32346,32347,32348,32349,20426,31459,27994,37089,39567,21888,21654,21345,21679,24320,25577,26999,20975,24936,21002,22570,21208,22350,30733,30475,24247,24951,31968,25179,25239,20130,28821,32771,25335,28900,38752,22391,33499,26607,26869,30933,39063,31185,22771,21683,21487,28212,20811,21051,23458,35838,32943,21827,22438,24691,22353,21549,31354,24656,23380,25511,25248,21475,25187,23495,26543,21741,31391,33510,37239,24211,35044,22840,22446,25358,36328,33007,22359,31607,20393,24555,23485,27454,21281,31568,29378,26694,30719,30518,26103,20917,20111,30420,23743,31397,33909,22862,39745,20608,32350,32351,32352,32353,32354,32355,32356,32357,32358,32359,32360,32361,32362,32363,32364,32365,32366,32367,32368,32369,32370,32371,32372,32373,32374,32375,32376,32377,32378,32379,32380,32381,32382,32383,32384,32385,32387,32388,32389,32390,32391,32392,32393,32394,32395,32396,32397,32398,32399,32400,32401,32402,32403,32404,32405,32406,32407,32408,32409,32410,32412,32413,32414,32430,32436,32443,32444,32470,32484,32492,32505,32522,32528,32542,32567,32569,32571,32572,32573,32574,32575,32576,32577,32579,32582,32583,32584,32585,32586,32587,32588,32589,32590,32591,32594,32595,39304,24871,28291,22372,26118,25414,22256,25324,25193,24275,38420,22403,25289,21895,34593,33098,36771,21862,33713,26469,36182,34013,23146,26639,25318,31726,38417,20848,28572,35888,25597,35272,25042,32518,28866,28389,29701,27028,29436,24266,37070,26391,28010,25438,21171,29282,32769,20332,23013,37226,28889,28061,21202,20048,38647,38253,34174,30922,32047,20769,22418,25794,32907,31867,27882,26865,26974,20919,21400,26792,29313,40654,31729,29432,31163,28435,29702,26446,37324,40100,31036,33673,33620,21519,26647,20029,21385,21169,30782,21382,21033,20616,20363,20432,32598,32601,32603,32604,32605,32606,32608,32611,32612,32613,32614,32615,32619,32620,32621,32623,32624,32627,32629,32630,32631,32632,32634,32635,32636,32637,32639,32640,32642,32643,32644,32645,32646,32647,32648,32649,32651,32653,32655,32656,32657,32658,32659,32661,32662,32663,32664,32665,32667,32668,32672,32674,32675,32677,32678,32680,32681,32682,32683,32684,32685,32686,32689,32691,32692,32693,32694,32695,32698,32699,32702,32704,32706,32707,32708,32710,32711,32712,32713,32715,32717,32719,32720,32721,32722,32723,32726,32727,32729,32730,32731,32732,32733,32734,32738,32739,30178,31435,31890,27813,38582,21147,29827,21737,20457,32852,33714,36830,38256,24265,24604,28063,24088,25947,33080,38142,24651,28860,32451,31918,20937,26753,31921,33391,20004,36742,37327,26238,20142,35845,25769,32842,20698,30103,29134,23525,36797,28518,20102,25730,38243,24278,26009,21015,35010,28872,21155,29454,29747,26519,30967,38678,20020,37051,40158,28107,20955,36161,21533,25294,29618,33777,38646,40836,38083,20278,32666,20940,28789,38517,23725,39046,21478,20196,28316,29705,27060,30827,39311,30041,21016,30244,27969,26611,20845,40857,32843,21657,31548,31423,32740,32743,32744,32746,32747,32748,32749,32751,32754,32756,32757,32758,32759,32760,32761,32762,32765,32766,32767,32770,32775,32776,32777,32778,32782,32783,32785,32787,32794,32795,32797,32798,32799,32801,32803,32804,32811,32812,32813,32814,32815,32816,32818,32820,32825,32826,32828,32830,32832,32833,32836,32837,32839,32840,32841,32846,32847,32848,32849,32851,32853,32854,32855,32857,32859,32860,32861,32862,32863,32864,32865,32866,32867,32868,32869,32870,32871,32872,32875,32876,32877,32878,32879,32880,32882,32883,32884,32885,32886,32887,32888,32889,32890,32891,32892,32893,38534,22404,25314,38471,27004,23044,25602,31699,28431,38475,33446,21346,39045,24208,28809,25523,21348,34383,40065,40595,30860,38706,36335,36162,40575,28510,31108,24405,38470,25134,39540,21525,38109,20387,26053,23653,23649,32533,34385,27695,24459,29575,28388,32511,23782,25371,23402,28390,21365,20081,25504,30053,25249,36718,20262,20177,27814,32438,35770,33821,34746,32599,36923,38179,31657,39585,35064,33853,27931,39558,32476,22920,40635,29595,30721,34434,39532,39554,22043,21527,22475,20080,40614,21334,36808,33033,30610,39314,34542,28385,34067,26364,24930,28459,32894,32897,32898,32901,32904,32906,32909,32910,32911,32912,32913,32914,32916,32917,32919,32921,32926,32931,32934,32935,32936,32940,32944,32947,32949,32950,32952,32953,32955,32965,32967,32968,32969,32970,32971,32975,32976,32977,32978,32979,32980,32981,32984,32991,32992,32994,32995,32998,33006,33013,33015,33017,33019,33022,33023,33024,33025,33027,33028,33029,33031,33032,33035,33036,33045,33047,33049,33051,33052,33053,33055,33056,33057,33058,33059,33060,33061,33062,33063,33064,33065,33066,33067,33069,33070,33072,33075,33076,33077,33079,33081,33082,33083,33084,33085,33087,35881,33426,33579,30450,27667,24537,33725,29483,33541,38170,27611,30683,38086,21359,33538,20882,24125,35980,36152,20040,29611,26522,26757,37238,38665,29028,27809,30473,23186,38209,27599,32654,26151,23504,22969,23194,38376,38391,20204,33804,33945,27308,30431,38192,29467,26790,23391,30511,37274,38753,31964,36855,35868,24357,31859,31192,35269,27852,34588,23494,24130,26825,30496,32501,20885,20813,21193,23081,32517,38754,33495,25551,30596,34256,31186,28218,24217,22937,34065,28781,27665,25279,30399,25935,24751,38397,26126,34719,40483,38125,21517,21629,35884,25720,33088,33089,33090,33091,33092,33093,33095,33097,33101,33102,33103,33106,33110,33111,33112,33115,33116,33117,33118,33119,33121,33122,33123,33124,33126,33128,33130,33131,33132,33135,33138,33139,33141,33142,33143,33144,33153,33155,33156,33157,33158,33159,33161,33163,33164,33165,33166,33168,33170,33171,33172,33173,33174,33175,33177,33178,33182,33183,33184,33185,33186,33188,33189,33191,33193,33195,33196,33197,33198,33199,33200,33201,33202,33204,33205,33206,33207,33208,33209,33212,33213,33214,33215,33220,33221,33223,33224,33225,33227,33229,33230,33231,33232,33233,33234,33235,25721,34321,27169,33180,30952,25705,39764,25273,26411,33707,22696,40664,27819,28448,23518,38476,35851,29279,26576,25287,29281,20137,22982,27597,22675,26286,24149,21215,24917,26408,30446,30566,29287,31302,25343,21738,21584,38048,37027,23068,32435,27670,20035,22902,32784,22856,21335,30007,38590,22218,25376,33041,24700,38393,28118,21602,39297,20869,23273,33021,22958,38675,20522,27877,23612,25311,20320,21311,33147,36870,28346,34091,25288,24180,30910,25781,25467,24565,23064,37247,40479,23615,25423,32834,23421,21870,38218,38221,28037,24744,26592,29406,20957,23425,33236,33237,33238,33239,33240,33241,33242,33243,33244,33245,33246,33247,33248,33249,33250,33252,33253,33254,33256,33257,33259,33262,33263,33264,33265,33266,33269,33270,33271,33272,33273,33274,33277,33279,33283,33287,33288,33289,33290,33291,33294,33295,33297,33299,33301,33302,33303,33304,33305,33306,33309,33312,33316,33317,33318,33319,33321,33326,33330,33338,33340,33341,33343,33344,33345,33346,33347,33349,33350,33352,33354,33356,33357,33358,33360,33361,33362,33363,33364,33365,33366,33367,33369,33371,33372,33373,33374,33376,33377,33378,33379,33380,33381,33382,33383,33385,25319,27870,29275,25197,38062,32445,33043,27987,20892,24324,22900,21162,24594,22899,26262,34384,30111,25386,25062,31983,35834,21734,27431,40485,27572,34261,21589,20598,27812,21866,36276,29228,24085,24597,29750,25293,25490,29260,24472,28227,27966,25856,28504,30424,30928,30460,30036,21028,21467,20051,24222,26049,32810,32982,25243,21638,21032,28846,34957,36305,27873,21624,32986,22521,35060,36180,38506,37197,20329,27803,21943,30406,30768,25256,28921,28558,24429,34028,26842,30844,31735,33192,26379,40527,25447,30896,22383,30738,38713,25209,25259,21128,29749,27607,33386,33387,33388,33389,33393,33397,33398,33399,33400,33403,33404,33408,33409,33411,33413,33414,33415,33417,33420,33424,33427,33428,33429,33430,33434,33435,33438,33440,33442,33443,33447,33458,33461,33462,33466,33467,33468,33471,33472,33474,33475,33477,33478,33481,33488,33494,33497,33498,33501,33506,33511,33512,33513,33514,33516,33517,33518,33520,33522,33523,33525,33526,33528,33530,33532,33533,33534,33535,33536,33546,33547,33549,33552,33554,33555,33558,33560,33561,33565,33566,33567,33568,33569,33570,33571,33572,33573,33574,33577,33578,33582,33584,33586,33591,33595,33597,21860,33086,30130,30382,21305,30174,20731,23617,35692,31687,20559,29255,39575,39128,28418,29922,31080,25735,30629,25340,39057,36139,21697,32856,20050,22378,33529,33805,24179,20973,29942,35780,23631,22369,27900,39047,23110,30772,39748,36843,31893,21078,25169,38138,20166,33670,33889,33769,33970,22484,26420,22275,26222,28006,35889,26333,28689,26399,27450,26646,25114,22971,19971,20932,28422,26578,27791,20854,26827,22855,27495,30054,23822,33040,40784,26071,31048,31041,39569,36215,23682,20062,20225,21551,22865,30732,22120,27668,36804,24323,27773,27875,35755,25488,33598,33599,33601,33602,33604,33605,33608,33610,33611,33612,33613,33614,33619,33621,33622,33623,33624,33625,33629,33634,33648,33649,33650,33651,33652,33653,33654,33657,33658,33662,33663,33664,33665,33666,33667,33668,33671,33672,33674,33675,33676,33677,33679,33680,33681,33684,33685,33686,33687,33689,33690,33693,33695,33697,33698,33699,33700,33701,33702,33703,33708,33709,33710,33711,33717,33723,33726,33727,33730,33731,33732,33734,33736,33737,33739,33741,33742,33744,33745,33746,33747,33749,33751,33753,33754,33755,33758,33762,33763,33764,33766,33767,33768,33771,33772,33773,24688,27965,29301,25190,38030,38085,21315,36801,31614,20191,35878,20094,40660,38065,38067,21069,28508,36963,27973,35892,22545,23884,27424,27465,26538,21595,33108,32652,22681,34103,24378,25250,27207,38201,25970,24708,26725,30631,20052,20392,24039,38808,25772,32728,23789,20431,31373,20999,33540,19988,24623,31363,38054,20405,20146,31206,29748,21220,33465,25810,31165,23517,27777,38738,36731,27682,20542,21375,28165,25806,26228,27696,24773,39031,35831,24198,29756,31351,31179,19992,37041,29699,27714,22234,37195,27845,36235,21306,34502,26354,36527,23624,39537,28192,33774,33775,33779,33780,33781,33782,33783,33786,33787,33788,33790,33791,33792,33794,33797,33799,33800,33801,33802,33808,33810,33811,33812,33813,33814,33815,33817,33818,33819,33822,33823,33824,33825,33826,33827,33833,33834,33835,33836,33837,33838,33839,33840,33842,33843,33844,33845,33846,33847,33849,33850,33851,33854,33855,33856,33857,33858,33859,33860,33861,33863,33864,33865,33866,33867,33868,33869,33870,33871,33872,33874,33875,33876,33877,33878,33880,33885,33886,33887,33888,33890,33892,33893,33894,33895,33896,33898,33902,33903,33904,33906,33908,33911,33913,33915,33916,21462,23094,40843,36259,21435,22280,39079,26435,37275,27849,20840,30154,25331,29356,21048,21149,32570,28820,30264,21364,40522,27063,30830,38592,35033,32676,28982,29123,20873,26579,29924,22756,25880,22199,35753,39286,25200,32469,24825,28909,22764,20161,20154,24525,38887,20219,35748,20995,22922,32427,25172,20173,26085,25102,33592,33993,33635,34701,29076,28342,23481,32466,20887,25545,26580,32905,33593,34837,20754,23418,22914,36785,20083,27741,20837,35109,36719,38446,34122,29790,38160,38384,28070,33509,24369,25746,27922,33832,33134,40131,22622,36187,19977,21441,33917,33918,33919,33920,33921,33923,33924,33925,33926,33930,33933,33935,33936,33937,33938,33939,33940,33941,33942,33944,33946,33947,33949,33950,33951,33952,33954,33955,33956,33957,33958,33959,33960,33961,33962,33963,33964,33965,33966,33968,33969,33971,33973,33974,33975,33979,33980,33982,33984,33986,33987,33989,33990,33991,33992,33995,33996,33998,33999,34002,34004,34005,34007,34008,34009,34010,34011,34012,34014,34017,34018,34020,34023,34024,34025,34026,34027,34029,34030,34031,34033,34034,34035,34036,34037,34038,34039,34040,34041,34042,34043,34045,34046,34048,34049,34050,20254,25955,26705,21971,20007,25620,39578,25195,23234,29791,33394,28073,26862,20711,33678,30722,26432,21049,27801,32433,20667,21861,29022,31579,26194,29642,33515,26441,23665,21024,29053,34923,38378,38485,25797,36193,33203,21892,27733,25159,32558,22674,20260,21830,36175,26188,19978,23578,35059,26786,25422,31245,28903,33421,21242,38902,23569,21736,37045,32461,22882,36170,34503,33292,33293,36198,25668,23556,24913,28041,31038,35774,30775,30003,21627,20280,36523,28145,23072,32453,31070,27784,23457,23158,29978,32958,24910,28183,22768,29983,29989,29298,21319,32499,34051,34052,34053,34054,34055,34056,34057,34058,34059,34061,34062,34063,34064,34066,34068,34069,34070,34072,34073,34075,34076,34077,34078,34080,34082,34083,34084,34085,34086,34087,34088,34089,34090,34093,34094,34095,34096,34097,34098,34099,34100,34101,34102,34110,34111,34112,34113,34114,34116,34117,34118,34119,34123,34124,34125,34126,34127,34128,34129,34130,34131,34132,34133,34135,34136,34138,34139,34140,34141,34143,34144,34145,34146,34147,34149,34150,34151,34153,34154,34155,34156,34157,34158,34159,34160,34161,34163,34165,34166,34167,34168,34172,34173,34175,34176,34177,30465,30427,21097,32988,22307,24072,22833,29422,26045,28287,35799,23608,34417,21313,30707,25342,26102,20160,39135,34432,23454,35782,21490,30690,20351,23630,39542,22987,24335,31034,22763,19990,26623,20107,25325,35475,36893,21183,26159,21980,22124,36866,20181,20365,37322,39280,27663,24066,24643,23460,35270,35797,25910,25163,39318,23432,23551,25480,21806,21463,30246,20861,34092,26530,26803,27530,25234,36755,21460,33298,28113,30095,20070,36174,23408,29087,34223,26257,26329,32626,34560,40653,40736,23646,26415,36848,26641,26463,25101,31446,22661,24246,25968,28465,34178,34179,34182,34184,34185,34186,34187,34188,34189,34190,34192,34193,34194,34195,34196,34197,34198,34199,34200,34201,34202,34205,34206,34207,34208,34209,34210,34211,34213,34214,34215,34217,34219,34220,34221,34225,34226,34227,34228,34229,34230,34232,34234,34235,34236,34237,34238,34239,34240,34242,34243,34244,34245,34246,34247,34248,34250,34251,34252,34253,34254,34257,34258,34260,34262,34263,34264,34265,34266,34267,34269,34270,34271,34272,34273,34274,34275,34277,34278,34279,34280,34282,34283,34284,34285,34286,34287,34288,34289,34290,34291,34292,34293,34294,34295,34296,24661,21047,32781,25684,34928,29993,24069,26643,25332,38684,21452,29245,35841,27700,30561,31246,21550,30636,39034,33308,35828,30805,26388,28865,26031,25749,22070,24605,31169,21496,19997,27515,32902,23546,21987,22235,20282,20284,39282,24051,26494,32824,24578,39042,36865,23435,35772,35829,25628,33368,25822,22013,33487,37221,20439,32032,36895,31903,20723,22609,28335,23487,35785,32899,37240,33948,31639,34429,38539,38543,32485,39635,30862,23681,31319,36930,38567,31071,23385,25439,31499,34001,26797,21766,32553,29712,32034,38145,25152,22604,20182,23427,22905,22612,34297,34298,34300,34301,34302,34304,34305,34306,34307,34308,34310,34311,34312,34313,34314,34315,34316,34317,34318,34319,34320,34322,34323,34324,34325,34327,34328,34329,34330,34331,34332,34333,34334,34335,34336,34337,34338,34339,34340,34341,34342,34344,34346,34347,34348,34349,34350,34351,34352,34353,34354,34355,34356,34357,34358,34359,34361,34362,34363,34365,34366,34367,34368,34369,34370,34371,34372,34373,34374,34375,34376,34377,34378,34379,34380,34386,34387,34389,34390,34391,34392,34393,34395,34396,34397,34399,34400,34401,34403,34404,34405,34406,34407,34408,34409,34410,29549,25374,36427,36367,32974,33492,25260,21488,27888,37214,22826,24577,27760,22349,25674,36138,30251,28393,22363,27264,30192,28525,35885,35848,22374,27631,34962,30899,25506,21497,28845,27748,22616,25642,22530,26848,33179,21776,31958,20504,36538,28108,36255,28907,25487,28059,28372,32486,33796,26691,36867,28120,38518,35752,22871,29305,34276,33150,30140,35466,26799,21076,36386,38161,25552,39064,36420,21884,20307,26367,22159,24789,28053,21059,23625,22825,28155,22635,3e4,29980,24684,33300,33094,25361,26465,36834,30522,36339,36148,38081,24086,21381,21548,28867,34413,34415,34416,34418,34419,34420,34421,34422,34423,34424,34435,34436,34437,34438,34439,34440,34441,34446,34447,34448,34449,34450,34452,34454,34455,34456,34457,34458,34459,34462,34463,34464,34465,34466,34469,34470,34475,34477,34478,34482,34483,34487,34488,34489,34491,34492,34493,34494,34495,34497,34498,34499,34501,34504,34508,34509,34514,34515,34517,34518,34519,34522,34524,34525,34528,34529,34530,34531,34533,34534,34535,34536,34538,34539,34540,34543,34549,34550,34551,34554,34555,34556,34557,34559,34561,34564,34565,34566,34571,34572,34574,34575,34576,34577,34580,34582,27712,24311,20572,20141,24237,25402,33351,36890,26704,37230,30643,21516,38108,24420,31461,26742,25413,31570,32479,30171,20599,25237,22836,36879,20984,31171,31361,22270,24466,36884,28034,23648,22303,21520,20820,28237,22242,25512,39059,33151,34581,35114,36864,21534,23663,33216,25302,25176,33073,40501,38464,39534,39548,26925,22949,25299,21822,25366,21703,34521,27964,23043,29926,34972,27498,22806,35916,24367,28286,29609,39037,20024,28919,23436,30871,25405,26202,30358,24779,23451,23113,19975,33109,27754,29579,20129,26505,32593,24448,26106,26395,24536,22916,23041,34585,34587,34589,34591,34592,34596,34598,34599,34600,34602,34603,34604,34605,34607,34608,34610,34611,34613,34614,34616,34617,34618,34620,34621,34624,34625,34626,34627,34628,34629,34630,34634,34635,34637,34639,34640,34641,34642,34644,34645,34646,34648,34650,34651,34652,34653,34654,34655,34657,34658,34662,34663,34664,34665,34666,34667,34668,34669,34671,34673,34674,34675,34677,34679,34680,34681,34682,34687,34688,34689,34692,34694,34695,34697,34698,34700,34702,34703,34704,34705,34706,34708,34709,34710,34712,34713,34714,34715,34716,34717,34718,34720,34721,34722,34723,34724,24013,24494,21361,38886,36829,26693,22260,21807,24799,20026,28493,32500,33479,33806,22996,20255,20266,23614,32428,26410,34074,21619,30031,32963,21890,39759,20301,28205,35859,23561,24944,21355,30239,28201,34442,25991,38395,32441,21563,31283,32010,38382,21985,32705,29934,25373,34583,28065,31389,25105,26017,21351,25569,27779,24043,21596,38056,20044,27745,35820,23627,26080,33436,26791,21566,21556,27595,27494,20116,25410,21320,33310,20237,20398,22366,25098,38654,26212,29289,21247,21153,24735,35823,26132,29081,26512,35199,30802,30717,26224,22075,21560,38177,29306,34725,34726,34727,34729,34730,34734,34736,34737,34738,34740,34742,34743,34744,34745,34747,34748,34750,34751,34753,34754,34755,34756,34757,34759,34760,34761,34764,34765,34766,34767,34768,34772,34773,34774,34775,34776,34777,34778,34780,34781,34782,34783,34785,34786,34787,34788,34790,34791,34792,34793,34795,34796,34797,34799,34800,34801,34802,34803,34804,34805,34806,34807,34808,34810,34811,34812,34813,34815,34816,34817,34818,34820,34821,34822,34823,34824,34825,34827,34828,34829,34830,34831,34832,34833,34834,34836,34839,34840,34841,34842,34844,34845,34846,34847,34848,34851,31232,24687,24076,24713,33181,22805,24796,29060,28911,28330,27728,29312,27268,34989,24109,20064,23219,21916,38115,27927,31995,38553,25103,32454,30606,34430,21283,38686,36758,26247,23777,20384,29421,19979,21414,22799,21523,25472,38184,20808,20185,40092,32420,21688,36132,34900,33335,38386,28046,24358,23244,26174,38505,29616,29486,21439,33146,39301,32673,23466,38519,38480,32447,30456,21410,38262,39321,31665,35140,28248,20065,32724,31077,35814,24819,21709,20139,39033,24055,27233,20687,21521,35937,33831,30813,38660,21066,21742,22179,38144,28040,23477,28102,26195,34852,34853,34854,34855,34856,34857,34858,34859,34860,34861,34862,34863,34864,34865,34867,34868,34869,34870,34871,34872,34874,34875,34877,34878,34879,34881,34882,34883,34886,34887,34888,34889,34890,34891,34894,34895,34896,34897,34898,34899,34901,34902,34904,34906,34907,34908,34909,34910,34911,34912,34918,34919,34922,34925,34927,34929,34931,34932,34933,34934,34936,34937,34938,34939,34940,34944,34947,34950,34951,34953,34954,34956,34958,34959,34960,34961,34963,34964,34965,34967,34968,34969,34970,34971,34973,34974,34975,34976,34977,34979,34981,34982,34983,34984,34985,34986,23567,23389,26657,32918,21880,31505,25928,26964,20123,27463,34638,38795,21327,25375,25658,37034,26012,32961,35856,20889,26800,21368,34809,25032,27844,27899,35874,23633,34218,33455,38156,27427,36763,26032,24571,24515,20449,34885,26143,33125,29481,24826,20852,21009,22411,24418,37026,34892,37266,24184,26447,24615,22995,20804,20982,33016,21256,27769,38596,29066,20241,20462,32670,26429,21957,38152,31168,34966,32483,22687,25100,38656,34394,22040,39035,24464,35768,33988,37207,21465,26093,24207,30044,24676,32110,23167,32490,32493,36713,21927,23459,24748,26059,29572,34988,34990,34991,34992,34994,34995,34996,34997,34998,35e3,35001,35002,35003,35005,35006,35007,35008,35011,35012,35015,35016,35018,35019,35020,35021,35023,35024,35025,35027,35030,35031,35034,35035,35036,35037,35038,35040,35041,35046,35047,35049,35050,35051,35052,35053,35054,35055,35058,35061,35062,35063,35066,35067,35069,35071,35072,35073,35075,35076,35077,35078,35079,35080,35081,35083,35084,35085,35086,35087,35089,35092,35093,35094,35095,35096,35100,35101,35102,35103,35104,35106,35107,35108,35110,35111,35112,35113,35116,35117,35118,35119,35121,35122,35123,35125,35127,36873,30307,30505,32474,38772,34203,23398,31348,38634,34880,21195,29071,24490,26092,35810,23547,39535,24033,27529,27739,35757,35759,36874,36805,21387,25276,40486,40493,21568,20011,33469,29273,34460,23830,34905,28079,38597,21713,20122,35766,28937,21693,38409,28895,28153,30416,20005,30740,34578,23721,24310,35328,39068,38414,28814,27839,22852,25513,30524,34893,28436,33395,22576,29141,21388,30746,38593,21761,24422,28976,23476,35866,39564,27523,22830,40495,31207,26472,25196,20335,30113,32650,27915,38451,27687,20208,30162,20859,26679,28478,36992,33136,22934,29814,35128,35129,35130,35131,35132,35133,35134,35135,35136,35138,35139,35141,35142,35143,35144,35145,35146,35147,35148,35149,35150,35151,35152,35153,35154,35155,35156,35157,35158,35159,35160,35161,35162,35163,35164,35165,35168,35169,35170,35171,35172,35173,35175,35176,35177,35178,35179,35180,35181,35182,35183,35184,35185,35186,35187,35188,35189,35190,35191,35192,35193,35194,35196,35197,35198,35200,35202,35204,35205,35207,35208,35209,35210,35211,35212,35213,35214,35215,35216,35217,35218,35219,35220,35221,35222,35223,35224,35225,35226,35227,35228,35229,35230,35231,35232,35233,25671,23591,36965,31377,35875,23002,21676,33280,33647,35201,32768,26928,22094,32822,29239,37326,20918,20063,39029,25494,19994,21494,26355,33099,22812,28082,19968,22777,21307,25558,38129,20381,20234,34915,39056,22839,36951,31227,20202,33008,30097,27778,23452,23016,24413,26885,34433,20506,24050,20057,30691,20197,33402,25233,26131,37009,23673,20159,24441,33222,36920,32900,30123,20134,35028,24847,27589,24518,20041,30410,28322,35811,35758,35850,35793,24322,32764,32716,32462,33589,33643,22240,27575,38899,38452,23035,21535,38134,28139,23493,39278,23609,24341,38544,35234,35235,35236,35237,35238,35239,35240,35241,35242,35243,35244,35245,35246,35247,35248,35249,35250,35251,35252,35253,35254,35255,35256,35257,35258,35259,35260,35261,35262,35263,35264,35267,35277,35283,35284,35285,35287,35288,35289,35291,35293,35295,35296,35297,35298,35300,35303,35304,35305,35306,35308,35309,35310,35312,35313,35314,35316,35317,35318,35319,35320,35321,35322,35323,35324,35325,35326,35327,35329,35330,35331,35332,35333,35334,35336,35337,35338,35339,35340,35341,35342,35343,35344,35345,35346,35347,35348,35349,35350,35351,35352,35353,35354,35355,35356,35357,21360,33521,27185,23156,40560,24212,32552,33721,33828,33829,33639,34631,36814,36194,30408,24433,39062,30828,26144,21727,25317,20323,33219,30152,24248,38605,36362,34553,21647,27891,28044,27704,24703,21191,29992,24189,20248,24736,24551,23588,30001,37038,38080,29369,27833,28216,37193,26377,21451,21491,20305,37321,35825,21448,24188,36802,28132,20110,30402,27014,34398,24858,33286,20313,20446,36926,40060,24841,28189,28180,38533,20104,23089,38632,19982,23679,31161,23431,35821,32701,29577,22495,33419,37057,21505,36935,21947,23786,24481,24840,27442,29425,32946,35465,35358,35359,35360,35361,35362,35363,35364,35365,35366,35367,35368,35369,35370,35371,35372,35373,35374,35375,35376,35377,35378,35379,35380,35381,35382,35383,35384,35385,35386,35387,35388,35389,35391,35392,35393,35394,35395,35396,35397,35398,35399,35401,35402,35403,35404,35405,35406,35407,35408,35409,35410,35411,35412,35413,35414,35415,35416,35417,35418,35419,35420,35421,35422,35423,35424,35425,35426,35427,35428,35429,35430,35431,35432,35433,35434,35435,35436,35437,35438,35439,35440,35441,35442,35443,35444,35445,35446,35447,35448,35450,35451,35452,35453,35454,35455,35456,28020,23507,35029,39044,35947,39533,40499,28170,20900,20803,22435,34945,21407,25588,36757,22253,21592,22278,29503,28304,32536,36828,33489,24895,24616,38498,26352,32422,36234,36291,38053,23731,31908,26376,24742,38405,32792,20113,37095,21248,38504,20801,36816,34164,37213,26197,38901,23381,21277,30776,26434,26685,21705,28798,23472,36733,20877,22312,21681,25874,26242,36190,36163,33039,33900,36973,31967,20991,34299,26531,26089,28577,34468,36481,22122,36896,30338,28790,29157,36131,25321,21017,27901,36156,24590,22686,24974,26366,36192,25166,21939,28195,26413,36711,35457,35458,35459,35460,35461,35462,35463,35464,35467,35468,35469,35470,35471,35472,35473,35474,35476,35477,35478,35479,35480,35481,35482,35483,35484,35485,35486,35487,35488,35489,35490,35491,35492,35493,35494,35495,35496,35497,35498,35499,35500,35501,35502,35503,35504,35505,35506,35507,35508,35509,35510,35511,35512,35513,35514,35515,35516,35517,35518,35519,35520,35521,35522,35523,35524,35525,35526,35527,35528,35529,35530,35531,35532,35533,35534,35535,35536,35537,35538,35539,35540,35541,35542,35543,35544,35545,35546,35547,35548,35549,35550,35551,35552,35553,35554,35555,38113,38392,30504,26629,27048,21643,20045,28856,35784,25688,25995,23429,31364,20538,23528,30651,27617,35449,31896,27838,30415,26025,36759,23853,23637,34360,26632,21344,25112,31449,28251,32509,27167,31456,24432,28467,24352,25484,28072,26454,19976,24080,36134,20183,32960,30260,38556,25307,26157,25214,27836,36213,29031,32617,20806,32903,21484,36974,25240,21746,34544,36761,32773,38167,34071,36825,27993,29645,26015,30495,29956,30759,33275,36126,38024,20390,26517,30137,35786,38663,25391,38215,38453,33976,25379,30529,24449,29424,20105,24596,25972,25327,27491,25919,35556,35557,35558,35559,35560,35561,35562,35563,35564,35565,35566,35567,35568,35569,35570,35571,35572,35573,35574,35575,35576,35577,35578,35579,35580,35581,35582,35583,35584,35585,35586,35587,35588,35589,35590,35592,35593,35594,35595,35596,35597,35598,35599,35600,35601,35602,35603,35604,35605,35606,35607,35608,35609,35610,35611,35612,35613,35614,35615,35616,35617,35618,35619,35620,35621,35623,35624,35625,35626,35627,35628,35629,35630,35631,35632,35633,35634,35635,35636,35637,35638,35639,35640,35641,35642,35643,35644,35645,35646,35647,35648,35649,35650,35651,35652,35653,24103,30151,37073,35777,33437,26525,25903,21553,34584,30693,32930,33026,27713,20043,32455,32844,30452,26893,27542,25191,20540,20356,22336,25351,27490,36286,21482,26088,32440,24535,25370,25527,33267,33268,32622,24092,23769,21046,26234,31209,31258,36136,28825,30164,28382,27835,31378,20013,30405,24544,38047,34935,32456,31181,32959,37325,20210,20247,33311,21608,24030,27954,35788,31909,36724,32920,24090,21650,30385,23449,26172,39588,29664,26666,34523,26417,29482,35832,35803,36880,31481,28891,29038,25284,30633,22065,20027,33879,26609,21161,34496,36142,38136,31569,35654,35655,35656,35657,35658,35659,35660,35661,35662,35663,35664,35665,35666,35667,35668,35669,35670,35671,35672,35673,35674,35675,35676,35677,35678,35679,35680,35681,35682,35683,35684,35685,35687,35688,35689,35690,35691,35693,35694,35695,35696,35697,35698,35699,35700,35701,35702,35703,35704,35705,35706,35707,35708,35709,35710,35711,35712,35713,35714,35715,35716,35717,35718,35719,35720,35721,35722,35723,35724,35725,35726,35727,35728,35729,35730,35731,35732,35733,35734,35735,35736,35737,35738,35739,35740,35741,35742,35743,35756,35761,35771,35783,35792,35818,35849,35870,20303,27880,31069,39547,25235,29226,25341,19987,30742,36716,25776,36186,31686,26729,24196,35013,22918,25758,22766,29366,26894,38181,36861,36184,22368,32512,35846,20934,25417,25305,21331,26700,29730,33537,37196,21828,30528,28796,27978,20857,21672,36164,23039,28363,28100,23388,32043,20180,31869,28371,23376,33258,28173,23383,39683,26837,36394,23447,32508,24635,32437,37049,36208,22863,25549,31199,36275,21330,26063,31062,35781,38459,32452,38075,32386,22068,37257,26368,32618,23562,36981,26152,24038,20304,26590,20570,20316,22352,24231,59408,59409,59410,59411,59412,35896,35897,35898,35899,35900,35901,35902,35903,35904,35906,35907,35908,35909,35912,35914,35915,35917,35918,35919,35920,35921,35922,35923,35924,35926,35927,35928,35929,35931,35932,35933,35934,35935,35936,35939,35940,35941,35942,35943,35944,35945,35948,35949,35950,35951,35952,35953,35954,35956,35957,35958,35959,35963,35964,35965,35966,35967,35968,35969,35971,35972,35974,35975,35976,35979,35981,35982,35983,35984,35985,35986,35987,35989,35990,35991,35993,35994,35995,35996,35997,35998,35999,36e3,36001,36002,36003,36004,36005,36006,36007,36008,36009,36010,36011,36012,36013,20109,19980,20800,19984,24319,21317,19989,20120,19998,39730,23404,22121,20008,31162,20031,21269,20039,22829,29243,21358,27664,22239,32996,39319,27603,30590,40727,20022,20127,40720,20060,20073,20115,33416,23387,21868,22031,20164,21389,21405,21411,21413,21422,38757,36189,21274,21493,21286,21294,21310,36188,21350,21347,20994,21e3,21006,21037,21043,21055,21056,21068,21086,21089,21084,33967,21117,21122,21121,21136,21139,20866,32596,20155,20163,20169,20162,20200,20193,20203,20190,20251,20211,20258,20324,20213,20261,20263,20233,20267,20318,20327,25912,20314,20317,36014,36015,36016,36017,36018,36019,36020,36021,36022,36023,36024,36025,36026,36027,36028,36029,36030,36031,36032,36033,36034,36035,36036,36037,36038,36039,36040,36041,36042,36043,36044,36045,36046,36047,36048,36049,36050,36051,36052,36053,36054,36055,36056,36057,36058,36059,36060,36061,36062,36063,36064,36065,36066,36067,36068,36069,36070,36071,36072,36073,36074,36075,36076,36077,36078,36079,36080,36081,36082,36083,36084,36085,36086,36087,36088,36089,36090,36091,36092,36093,36094,36095,36096,36097,36098,36099,36100,36101,36102,36103,36104,36105,36106,36107,36108,36109,20319,20311,20274,20285,20342,20340,20369,20361,20355,20367,20350,20347,20394,20348,20396,20372,20454,20456,20458,20421,20442,20451,20444,20433,20447,20472,20521,20556,20467,20524,20495,20526,20525,20478,20508,20492,20517,20520,20606,20547,20565,20552,20558,20588,20603,20645,20647,20649,20666,20694,20742,20717,20716,20710,20718,20743,20747,20189,27709,20312,20325,20430,40864,27718,31860,20846,24061,40649,39320,20865,22804,21241,21261,35335,21264,20971,22809,20821,20128,20822,20147,34926,34980,20149,33044,35026,31104,23348,34819,32696,20907,20913,20925,20924,36110,36111,36112,36113,36114,36115,36116,36117,36118,36119,36120,36121,36122,36123,36124,36128,36177,36178,36183,36191,36197,36200,36201,36202,36204,36206,36207,36209,36210,36216,36217,36218,36219,36220,36221,36222,36223,36224,36226,36227,36230,36231,36232,36233,36236,36237,36238,36239,36240,36242,36243,36245,36246,36247,36248,36249,36250,36251,36252,36253,36254,36256,36257,36258,36260,36261,36262,36263,36264,36265,36266,36267,36268,36269,36270,36271,36272,36274,36278,36279,36281,36283,36285,36288,36289,36290,36293,36295,36296,36297,36298,36301,36304,36306,36307,36308,20935,20886,20898,20901,35744,35750,35751,35754,35764,35765,35767,35778,35779,35787,35791,35790,35794,35795,35796,35798,35800,35801,35804,35807,35808,35812,35816,35817,35822,35824,35827,35830,35833,35836,35839,35840,35842,35844,35847,35852,35855,35857,35858,35860,35861,35862,35865,35867,35864,35869,35871,35872,35873,35877,35879,35882,35883,35886,35887,35890,35891,35893,35894,21353,21370,38429,38434,38433,38449,38442,38461,38460,38466,38473,38484,38495,38503,38508,38514,38516,38536,38541,38551,38576,37015,37019,37021,37017,37036,37025,37044,37043,37046,37050,36309,36312,36313,36316,36320,36321,36322,36325,36326,36327,36329,36333,36334,36336,36337,36338,36340,36342,36348,36350,36351,36352,36353,36354,36355,36356,36358,36359,36360,36363,36365,36366,36368,36369,36370,36371,36373,36374,36375,36376,36377,36378,36379,36380,36384,36385,36388,36389,36390,36391,36392,36395,36397,36400,36402,36403,36404,36406,36407,36408,36411,36412,36414,36415,36419,36421,36422,36428,36429,36430,36431,36432,36435,36436,36437,36438,36439,36440,36442,36443,36444,36445,36446,36447,36448,36449,36450,36451,36452,36453,36455,36456,36458,36459,36462,36465,37048,37040,37071,37061,37054,37072,37060,37063,37075,37094,37090,37084,37079,37083,37099,37103,37118,37124,37154,37150,37155,37169,37167,37177,37187,37190,21005,22850,21154,21164,21165,21182,21759,21200,21206,21232,21471,29166,30669,24308,20981,20988,39727,21430,24321,30042,24047,22348,22441,22433,22654,22716,22725,22737,22313,22316,22314,22323,22329,22318,22319,22364,22331,22338,22377,22405,22379,22406,22396,22395,22376,22381,22390,22387,22445,22436,22412,22450,22479,22439,22452,22419,22432,22485,22488,22490,22489,22482,22456,22516,22511,22520,22500,22493,36467,36469,36471,36472,36473,36474,36475,36477,36478,36480,36482,36483,36484,36486,36488,36489,36490,36491,36492,36493,36494,36497,36498,36499,36501,36502,36503,36504,36505,36506,36507,36509,36511,36512,36513,36514,36515,36516,36517,36518,36519,36520,36521,36522,36525,36526,36528,36529,36531,36532,36533,36534,36535,36536,36537,36539,36540,36541,36542,36543,36544,36545,36546,36547,36548,36549,36550,36551,36552,36553,36554,36555,36556,36557,36559,36560,36561,36562,36563,36564,36565,36566,36567,36568,36569,36570,36571,36572,36573,36574,36575,36576,36577,36578,36579,36580,22539,22541,22525,22509,22528,22558,22553,22596,22560,22629,22636,22657,22665,22682,22656,39336,40729,25087,33401,33405,33407,33423,33418,33448,33412,33422,33425,33431,33433,33451,33464,33470,33456,33480,33482,33507,33432,33463,33454,33483,33484,33473,33449,33460,33441,33450,33439,33476,33486,33444,33505,33545,33527,33508,33551,33543,33500,33524,33490,33496,33548,33531,33491,33553,33562,33542,33556,33557,33504,33493,33564,33617,33627,33628,33544,33682,33596,33588,33585,33691,33630,33583,33615,33607,33603,33631,33600,33559,33632,33581,33594,33587,33638,33637,36581,36582,36583,36584,36585,36586,36587,36588,36589,36590,36591,36592,36593,36594,36595,36596,36597,36598,36599,36600,36601,36602,36603,36604,36605,36606,36607,36608,36609,36610,36611,36612,36613,36614,36615,36616,36617,36618,36619,36620,36621,36622,36623,36624,36625,36626,36627,36628,36629,36630,36631,36632,36633,36634,36635,36636,36637,36638,36639,36640,36641,36642,36643,36644,36645,36646,36647,36648,36649,36650,36651,36652,36653,36654,36655,36656,36657,36658,36659,36660,36661,36662,36663,36664,36665,36666,36667,36668,36669,36670,36671,36672,36673,36674,36675,36676,33640,33563,33641,33644,33642,33645,33646,33712,33656,33715,33716,33696,33706,33683,33692,33669,33660,33718,33705,33661,33720,33659,33688,33694,33704,33722,33724,33729,33793,33765,33752,22535,33816,33803,33757,33789,33750,33820,33848,33809,33798,33748,33759,33807,33795,33784,33785,33770,33733,33728,33830,33776,33761,33884,33873,33882,33881,33907,33927,33928,33914,33929,33912,33852,33862,33897,33910,33932,33934,33841,33901,33985,33997,34e3,34022,33981,34003,33994,33983,33978,34016,33953,33977,33972,33943,34021,34019,34060,29965,34104,34032,34105,34079,34106,36677,36678,36679,36680,36681,36682,36683,36684,36685,36686,36687,36688,36689,36690,36691,36692,36693,36694,36695,36696,36697,36698,36699,36700,36701,36702,36703,36704,36705,36706,36707,36708,36709,36714,36736,36748,36754,36765,36768,36769,36770,36772,36773,36774,36775,36778,36780,36781,36782,36783,36786,36787,36788,36789,36791,36792,36794,36795,36796,36799,36800,36803,36806,36809,36810,36811,36812,36813,36815,36818,36822,36823,36826,36832,36833,36835,36839,36844,36847,36849,36850,36852,36853,36854,36858,36859,36860,36862,36863,36871,36872,36876,36878,36883,36885,36888,34134,34107,34047,34044,34137,34120,34152,34148,34142,34170,30626,34115,34162,34171,34212,34216,34183,34191,34169,34222,34204,34181,34233,34231,34224,34259,34241,34268,34303,34343,34309,34345,34326,34364,24318,24328,22844,22849,32823,22869,22874,22872,21263,23586,23589,23596,23604,25164,25194,25247,25275,25290,25306,25303,25326,25378,25334,25401,25419,25411,25517,25590,25457,25466,25486,25524,25453,25516,25482,25449,25518,25532,25586,25592,25568,25599,25540,25566,25550,25682,25542,25534,25669,25665,25611,25627,25632,25612,25638,25633,25694,25732,25709,25750,36889,36892,36899,36900,36901,36903,36904,36905,36906,36907,36908,36912,36913,36914,36915,36916,36919,36921,36922,36925,36927,36928,36931,36933,36934,36936,36937,36938,36939,36940,36942,36948,36949,36950,36953,36954,36956,36957,36958,36959,36960,36961,36964,36966,36967,36969,36970,36971,36972,36975,36976,36977,36978,36979,36982,36983,36984,36985,36986,36987,36988,36990,36993,36996,36997,36998,36999,37001,37002,37004,37005,37006,37007,37008,37010,37012,37014,37016,37018,37020,37022,37023,37024,37028,37029,37031,37032,37033,37035,37037,37042,37047,37052,37053,37055,37056,25722,25783,25784,25753,25786,25792,25808,25815,25828,25826,25865,25893,25902,24331,24530,29977,24337,21343,21489,21501,21481,21480,21499,21522,21526,21510,21579,21586,21587,21588,21590,21571,21537,21591,21593,21539,21554,21634,21652,21623,21617,21604,21658,21659,21636,21622,21606,21661,21712,21677,21698,21684,21714,21671,21670,21715,21716,21618,21667,21717,21691,21695,21708,21721,21722,21724,21673,21674,21668,21725,21711,21726,21787,21735,21792,21757,21780,21747,21794,21795,21775,21777,21799,21802,21863,21903,21941,21833,21869,21825,21845,21823,21840,21820,37058,37059,37062,37064,37065,37067,37068,37069,37074,37076,37077,37078,37080,37081,37082,37086,37087,37088,37091,37092,37093,37097,37098,37100,37102,37104,37105,37106,37107,37109,37110,37111,37113,37114,37115,37116,37119,37120,37121,37123,37125,37126,37127,37128,37129,37130,37131,37132,37133,37134,37135,37136,37137,37138,37139,37140,37141,37142,37143,37144,37146,37147,37148,37149,37151,37152,37153,37156,37157,37158,37159,37160,37161,37162,37163,37164,37165,37166,37168,37170,37171,37172,37173,37174,37175,37176,37178,37179,37180,37181,37182,37183,37184,37185,37186,37188,21815,21846,21877,21878,21879,21811,21808,21852,21899,21970,21891,21937,21945,21896,21889,21919,21886,21974,21905,21883,21983,21949,21950,21908,21913,21994,22007,21961,22047,21969,21995,21996,21972,21990,21981,21956,21999,21989,22002,22003,21964,21965,21992,22005,21988,36756,22046,22024,22028,22017,22052,22051,22014,22016,22055,22061,22104,22073,22103,22060,22093,22114,22105,22108,22092,22100,22150,22116,22129,22123,22139,22140,22149,22163,22191,22228,22231,22237,22241,22261,22251,22265,22271,22276,22282,22281,22300,24079,24089,24084,24081,24113,24123,24124,37189,37191,37192,37201,37203,37204,37205,37206,37208,37209,37211,37212,37215,37216,37222,37223,37224,37227,37229,37235,37242,37243,37244,37248,37249,37250,37251,37252,37254,37256,37258,37262,37263,37267,37268,37269,37270,37271,37272,37273,37276,37277,37278,37279,37280,37281,37284,37285,37286,37287,37288,37289,37291,37292,37296,37297,37298,37299,37302,37303,37304,37305,37307,37308,37309,37310,37311,37312,37313,37314,37315,37316,37317,37318,37320,37323,37328,37330,37331,37332,37333,37334,37335,37336,37337,37338,37339,37341,37342,37343,37344,37345,37346,37347,37348,37349,24119,24132,24148,24155,24158,24161,23692,23674,23693,23696,23702,23688,23704,23705,23697,23706,23708,23733,23714,23741,23724,23723,23729,23715,23745,23735,23748,23762,23780,23755,23781,23810,23811,23847,23846,23854,23844,23838,23814,23835,23896,23870,23860,23869,23916,23899,23919,23901,23915,23883,23882,23913,23924,23938,23961,23965,35955,23991,24005,24435,24439,24450,24455,24457,24460,24469,24473,24476,24488,24493,24501,24508,34914,24417,29357,29360,29364,29367,29368,29379,29377,29390,29389,29394,29416,29423,29417,29426,29428,29431,29441,29427,29443,29434,37350,37351,37352,37353,37354,37355,37356,37357,37358,37359,37360,37361,37362,37363,37364,37365,37366,37367,37368,37369,37370,37371,37372,37373,37374,37375,37376,37377,37378,37379,37380,37381,37382,37383,37384,37385,37386,37387,37388,37389,37390,37391,37392,37393,37394,37395,37396,37397,37398,37399,37400,37401,37402,37403,37404,37405,37406,37407,37408,37409,37410,37411,37412,37413,37414,37415,37416,37417,37418,37419,37420,37421,37422,37423,37424,37425,37426,37427,37428,37429,37430,37431,37432,37433,37434,37435,37436,37437,37438,37439,37440,37441,37442,37443,37444,37445,29435,29463,29459,29473,29450,29470,29469,29461,29474,29497,29477,29484,29496,29489,29520,29517,29527,29536,29548,29551,29566,33307,22821,39143,22820,22786,39267,39271,39272,39273,39274,39275,39276,39284,39287,39293,39296,39300,39303,39306,39309,39312,39313,39315,39316,39317,24192,24209,24203,24214,24229,24224,24249,24245,24254,24243,36179,24274,24273,24283,24296,24298,33210,24516,24521,24534,24527,24579,24558,24580,24545,24548,24574,24581,24582,24554,24557,24568,24601,24629,24614,24603,24591,24589,24617,24619,24586,24639,24609,24696,24697,24699,24698,24642,37446,37447,37448,37449,37450,37451,37452,37453,37454,37455,37456,37457,37458,37459,37460,37461,37462,37463,37464,37465,37466,37467,37468,37469,37470,37471,37472,37473,37474,37475,37476,37477,37478,37479,37480,37481,37482,37483,37484,37485,37486,37487,37488,37489,37490,37491,37493,37494,37495,37496,37497,37498,37499,37500,37501,37502,37503,37504,37505,37506,37507,37508,37509,37510,37511,37512,37513,37514,37515,37516,37517,37519,37520,37521,37522,37523,37524,37525,37526,37527,37528,37529,37530,37531,37532,37533,37534,37535,37536,37537,37538,37539,37540,37541,37542,37543,24682,24701,24726,24730,24749,24733,24707,24722,24716,24731,24812,24763,24753,24797,24792,24774,24794,24756,24864,24870,24853,24867,24820,24832,24846,24875,24906,24949,25004,24980,24999,25015,25044,25077,24541,38579,38377,38379,38385,38387,38389,38390,38396,38398,38403,38404,38406,38408,38410,38411,38412,38413,38415,38418,38421,38422,38423,38425,38426,20012,29247,25109,27701,27732,27740,27722,27811,27781,27792,27796,27788,27752,27753,27764,27766,27782,27817,27856,27860,27821,27895,27896,27889,27863,27826,27872,27862,27898,27883,27886,27825,27859,27887,27902,37544,37545,37546,37547,37548,37549,37551,37552,37553,37554,37555,37556,37557,37558,37559,37560,37561,37562,37563,37564,37565,37566,37567,37568,37569,37570,37571,37572,37573,37574,37575,37577,37578,37579,37580,37581,37582,37583,37584,37585,37586,37587,37588,37589,37590,37591,37592,37593,37594,37595,37596,37597,37598,37599,37600,37601,37602,37603,37604,37605,37606,37607,37608,37609,37610,37611,37612,37613,37614,37615,37616,37617,37618,37619,37620,37621,37622,37623,37624,37625,37626,37627,37628,37629,37630,37631,37632,37633,37634,37635,37636,37637,37638,37639,37640,37641,27961,27943,27916,27971,27976,27911,27908,27929,27918,27947,27981,27950,27957,27930,27983,27986,27988,27955,28049,28015,28062,28064,27998,28051,28052,27996,28e3,28028,28003,28186,28103,28101,28126,28174,28095,28128,28177,28134,28125,28121,28182,28075,28172,28078,28203,28270,28238,28267,28338,28255,28294,28243,28244,28210,28197,28228,28383,28337,28312,28384,28461,28386,28325,28327,28349,28347,28343,28375,28340,28367,28303,28354,28319,28514,28486,28487,28452,28437,28409,28463,28470,28491,28532,28458,28425,28457,28553,28557,28556,28536,28530,28540,28538,28625,37642,37643,37644,37645,37646,37647,37648,37649,37650,37651,37652,37653,37654,37655,37656,37657,37658,37659,37660,37661,37662,37663,37664,37665,37666,37667,37668,37669,37670,37671,37672,37673,37674,37675,37676,37677,37678,37679,37680,37681,37682,37683,37684,37685,37686,37687,37688,37689,37690,37691,37692,37693,37695,37696,37697,37698,37699,37700,37701,37702,37703,37704,37705,37706,37707,37708,37709,37710,37711,37712,37713,37714,37715,37716,37717,37718,37719,37720,37721,37722,37723,37724,37725,37726,37727,37728,37729,37730,37731,37732,37733,37734,37735,37736,37737,37739,28617,28583,28601,28598,28610,28641,28654,28638,28640,28655,28698,28707,28699,28729,28725,28751,28766,23424,23428,23445,23443,23461,23480,29999,39582,25652,23524,23534,35120,23536,36423,35591,36790,36819,36821,36837,36846,36836,36841,36838,36851,36840,36869,36868,36875,36902,36881,36877,36886,36897,36917,36918,36909,36911,36932,36945,36946,36944,36968,36952,36962,36955,26297,36980,36989,36994,37e3,36995,37003,24400,24407,24406,24408,23611,21675,23632,23641,23409,23651,23654,32700,24362,24361,24365,33396,24380,39739,23662,22913,22915,22925,22953,22954,22947,37740,37741,37742,37743,37744,37745,37746,37747,37748,37749,37750,37751,37752,37753,37754,37755,37756,37757,37758,37759,37760,37761,37762,37763,37764,37765,37766,37767,37768,37769,37770,37771,37772,37773,37774,37776,37777,37778,37779,37780,37781,37782,37783,37784,37785,37786,37787,37788,37789,37790,37791,37792,37793,37794,37795,37796,37797,37798,37799,37800,37801,37802,37803,37804,37805,37806,37807,37808,37809,37810,37811,37812,37813,37814,37815,37816,37817,37818,37819,37820,37821,37822,37823,37824,37825,37826,37827,37828,37829,37830,37831,37832,37833,37835,37836,37837,22935,22986,22955,22942,22948,22994,22962,22959,22999,22974,23045,23046,23005,23048,23011,23e3,23033,23052,23049,23090,23092,23057,23075,23059,23104,23143,23114,23125,23100,23138,23157,33004,23210,23195,23159,23162,23230,23275,23218,23250,23252,23224,23264,23267,23281,23254,23270,23256,23260,23305,23319,23318,23346,23351,23360,23573,23580,23386,23397,23411,23377,23379,23394,39541,39543,39544,39546,39551,39549,39552,39553,39557,39560,39562,39568,39570,39571,39574,39576,39579,39580,39581,39583,39584,39586,39587,39589,39591,32415,32417,32419,32421,32424,32425,37838,37839,37840,37841,37842,37843,37844,37845,37847,37848,37849,37850,37851,37852,37853,37854,37855,37856,37857,37858,37859,37860,37861,37862,37863,37864,37865,37866,37867,37868,37869,37870,37871,37872,37873,37874,37875,37876,37877,37878,37879,37880,37881,37882,37883,37884,37885,37886,37887,37888,37889,37890,37891,37892,37893,37894,37895,37896,37897,37898,37899,37900,37901,37902,37903,37904,37905,37906,37907,37908,37909,37910,37911,37912,37913,37914,37915,37916,37917,37918,37919,37920,37921,37922,37923,37924,37925,37926,37927,37928,37929,37930,37931,37932,37933,37934,32429,32432,32446,32448,32449,32450,32457,32459,32460,32464,32468,32471,32475,32480,32481,32488,32491,32494,32495,32497,32498,32525,32502,32506,32507,32510,32513,32514,32515,32519,32520,32523,32524,32527,32529,32530,32535,32537,32540,32539,32543,32545,32546,32547,32548,32549,32550,32551,32554,32555,32556,32557,32559,32560,32561,32562,32563,32565,24186,30079,24027,30014,37013,29582,29585,29614,29602,29599,29647,29634,29649,29623,29619,29632,29641,29640,29669,29657,39036,29706,29673,29671,29662,29626,29682,29711,29738,29787,29734,29733,29736,29744,29742,29740,37935,37936,37937,37938,37939,37940,37941,37942,37943,37944,37945,37946,37947,37948,37949,37951,37952,37953,37954,37955,37956,37957,37958,37959,37960,37961,37962,37963,37964,37965,37966,37967,37968,37969,37970,37971,37972,37973,37974,37975,37976,37977,37978,37979,37980,37981,37982,37983,37984,37985,37986,37987,37988,37989,37990,37991,37992,37993,37994,37996,37997,37998,37999,38e3,38001,38002,38003,38004,38005,38006,38007,38008,38009,38010,38011,38012,38013,38014,38015,38016,38017,38018,38019,38020,38033,38038,38040,38087,38095,38099,38100,38106,38118,38139,38172,38176,29723,29722,29761,29788,29783,29781,29785,29815,29805,29822,29852,29838,29824,29825,29831,29835,29854,29864,29865,29840,29863,29906,29882,38890,38891,38892,26444,26451,26462,26440,26473,26533,26503,26474,26483,26520,26535,26485,26536,26526,26541,26507,26487,26492,26608,26633,26584,26634,26601,26544,26636,26585,26549,26586,26547,26589,26624,26563,26552,26594,26638,26561,26621,26674,26675,26720,26721,26702,26722,26692,26724,26755,26653,26709,26726,26689,26727,26688,26686,26698,26697,26665,26805,26767,26740,26743,26771,26731,26818,26990,26876,26911,26912,26873,38183,38195,38205,38211,38216,38219,38229,38234,38240,38254,38260,38261,38263,38264,38265,38266,38267,38268,38269,38270,38272,38273,38274,38275,38276,38277,38278,38279,38280,38281,38282,38283,38284,38285,38286,38287,38288,38289,38290,38291,38292,38293,38294,38295,38296,38297,38298,38299,38300,38301,38302,38303,38304,38305,38306,38307,38308,38309,38310,38311,38312,38313,38314,38315,38316,38317,38318,38319,38320,38321,38322,38323,38324,38325,38326,38327,38328,38329,38330,38331,38332,38333,38334,38335,38336,38337,38338,38339,38340,38341,38342,38343,38344,38345,38346,38347,26916,26864,26891,26881,26967,26851,26896,26993,26937,26976,26946,26973,27012,26987,27008,27032,27e3,26932,27084,27015,27016,27086,27017,26982,26979,27001,27035,27047,27067,27051,27053,27092,27057,27073,27082,27103,27029,27104,27021,27135,27183,27117,27159,27160,27237,27122,27204,27198,27296,27216,27227,27189,27278,27257,27197,27176,27224,27260,27281,27280,27305,27287,27307,29495,29522,27521,27522,27527,27524,27538,27539,27533,27546,27547,27553,27562,36715,36717,36721,36722,36723,36725,36726,36728,36727,36729,36730,36732,36734,36737,36738,36740,36743,36747,38348,38349,38350,38351,38352,38353,38354,38355,38356,38357,38358,38359,38360,38361,38362,38363,38364,38365,38366,38367,38368,38369,38370,38371,38372,38373,38374,38375,38380,38399,38407,38419,38424,38427,38430,38432,38435,38436,38437,38438,38439,38440,38441,38443,38444,38445,38447,38448,38455,38456,38457,38458,38462,38465,38467,38474,38478,38479,38481,38482,38483,38486,38487,38488,38489,38490,38492,38493,38494,38496,38499,38501,38502,38507,38509,38510,38511,38512,38513,38515,38520,38521,38522,38523,38524,38525,38526,38527,38528,38529,38530,38531,38532,38535,38537,38538,36749,36750,36751,36760,36762,36558,25099,25111,25115,25119,25122,25121,25125,25124,25132,33255,29935,29940,29951,29967,29969,29971,25908,26094,26095,26096,26122,26137,26482,26115,26133,26112,28805,26359,26141,26164,26161,26166,26165,32774,26207,26196,26177,26191,26198,26209,26199,26231,26244,26252,26279,26269,26302,26331,26332,26342,26345,36146,36147,36150,36155,36157,36160,36165,36166,36168,36169,36167,36173,36181,36185,35271,35274,35275,35276,35278,35279,35280,35281,29294,29343,29277,29286,29295,29310,29311,29316,29323,29325,29327,29330,25352,25394,25520,38540,38542,38545,38546,38547,38549,38550,38554,38555,38557,38558,38559,38560,38561,38562,38563,38564,38565,38566,38568,38569,38570,38571,38572,38573,38574,38575,38577,38578,38580,38581,38583,38584,38586,38587,38591,38594,38595,38600,38602,38603,38608,38609,38611,38612,38614,38615,38616,38617,38618,38619,38620,38621,38622,38623,38625,38626,38627,38628,38629,38630,38631,38635,38636,38637,38638,38640,38641,38642,38644,38645,38648,38650,38651,38652,38653,38655,38658,38659,38661,38666,38667,38668,38672,38673,38674,38676,38677,38679,38680,38681,38682,38683,38685,38687,38688,25663,25816,32772,27626,27635,27645,27637,27641,27653,27655,27654,27661,27669,27672,27673,27674,27681,27689,27684,27690,27698,25909,25941,25963,29261,29266,29270,29232,34402,21014,32927,32924,32915,32956,26378,32957,32945,32939,32941,32948,32951,32999,33e3,33001,33002,32987,32962,32964,32985,32973,32983,26384,32989,33003,33009,33012,33005,33037,33038,33010,33020,26389,33042,35930,33078,33054,33068,33048,33074,33096,33100,33107,33140,33113,33114,33137,33120,33129,33148,33149,33133,33127,22605,23221,33160,33154,33169,28373,33187,33194,33228,26406,33226,33211,38689,38690,38691,38692,38693,38694,38695,38696,38697,38699,38700,38702,38703,38705,38707,38708,38709,38710,38711,38714,38715,38716,38717,38719,38720,38721,38722,38723,38724,38725,38726,38727,38728,38729,38730,38731,38732,38733,38734,38735,38736,38737,38740,38741,38743,38744,38746,38748,38749,38751,38755,38756,38758,38759,38760,38762,38763,38764,38765,38766,38767,38768,38769,38770,38773,38775,38776,38777,38778,38779,38781,38782,38783,38784,38785,38786,38787,38788,38790,38791,38792,38793,38794,38796,38798,38799,38800,38803,38805,38806,38807,38809,38810,38811,38812,38813,33217,33190,27428,27447,27449,27459,27462,27481,39121,39122,39123,39125,39129,39130,27571,24384,27586,35315,26e3,40785,26003,26044,26054,26052,26051,26060,26062,26066,26070,28800,28828,28822,28829,28859,28864,28855,28843,28849,28904,28874,28944,28947,28950,28975,28977,29043,29020,29032,28997,29042,29002,29048,29050,29080,29107,29109,29096,29088,29152,29140,29159,29177,29213,29224,28780,28952,29030,29113,25150,25149,25155,25160,25161,31035,31040,31046,31049,31067,31068,31059,31066,31074,31063,31072,31087,31079,31098,31109,31114,31130,31143,31155,24529,24528,38814,38815,38817,38818,38820,38821,38822,38823,38824,38825,38826,38828,38830,38832,38833,38835,38837,38838,38839,38840,38841,38842,38843,38844,38845,38846,38847,38848,38849,38850,38851,38852,38853,38854,38855,38856,38857,38858,38859,38860,38861,38862,38863,38864,38865,38866,38867,38868,38869,38870,38871,38872,38873,38874,38875,38876,38877,38878,38879,38880,38881,38882,38883,38884,38885,38888,38894,38895,38896,38897,38898,38900,38903,38904,38905,38906,38907,38908,38909,38910,38911,38912,38913,38914,38915,38916,38917,38918,38919,38920,38921,38922,38923,38924,38925,38926,24636,24669,24666,24679,24641,24665,24675,24747,24838,24845,24925,25001,24989,25035,25041,25094,32896,32895,27795,27894,28156,30710,30712,30720,30729,30743,30744,30737,26027,30765,30748,30749,30777,30778,30779,30751,30780,30757,30764,30755,30761,30798,30829,30806,30807,30758,30800,30791,30796,30826,30875,30867,30874,30855,30876,30881,30883,30898,30905,30885,30932,30937,30921,30956,30962,30981,30964,30995,31012,31006,31028,40859,40697,40699,40700,30449,30468,30477,30457,30471,30472,30490,30498,30489,30509,30502,30517,30520,30544,30545,30535,30531,30554,30568,38927,38928,38929,38930,38931,38932,38933,38934,38935,38936,38937,38938,38939,38940,38941,38942,38943,38944,38945,38946,38947,38948,38949,38950,38951,38952,38953,38954,38955,38956,38957,38958,38959,38960,38961,38962,38963,38964,38965,38966,38967,38968,38969,38970,38971,38972,38973,38974,38975,38976,38977,38978,38979,38980,38981,38982,38983,38984,38985,38986,38987,38988,38989,38990,38991,38992,38993,38994,38995,38996,38997,38998,38999,39e3,39001,39002,39003,39004,39005,39006,39007,39008,39009,39010,39011,39012,39013,39014,39015,39016,39017,39018,39019,39020,39021,39022,30562,30565,30591,30605,30589,30592,30604,30609,30623,30624,30640,30645,30653,30010,30016,30030,30027,30024,30043,30066,30073,30083,32600,32609,32607,35400,32616,32628,32625,32633,32641,32638,30413,30437,34866,38021,38022,38023,38027,38026,38028,38029,38031,38032,38036,38039,38037,38042,38043,38044,38051,38052,38059,38058,38061,38060,38063,38064,38066,38068,38070,38071,38072,38073,38074,38076,38077,38079,38084,38088,38089,38090,38091,38092,38093,38094,38096,38097,38098,38101,38102,38103,38105,38104,38107,38110,38111,38112,38114,38116,38117,38119,38120,38122,39023,39024,39025,39026,39027,39028,39051,39054,39058,39061,39065,39075,39080,39081,39082,39083,39084,39085,39086,39087,39088,39089,39090,39091,39092,39093,39094,39095,39096,39097,39098,39099,39100,39101,39102,39103,39104,39105,39106,39107,39108,39109,39110,39111,39112,39113,39114,39115,39116,39117,39119,39120,39124,39126,39127,39131,39132,39133,39136,39137,39138,39139,39140,39141,39142,39145,39146,39147,39148,39149,39150,39151,39152,39153,39154,39155,39156,39157,39158,39159,39160,39161,39162,39163,39164,39165,39166,39167,39168,39169,39170,39171,39172,39173,39174,39175,38121,38123,38126,38127,38131,38132,38133,38135,38137,38140,38141,38143,38147,38146,38150,38151,38153,38154,38157,38158,38159,38162,38163,38164,38165,38166,38168,38171,38173,38174,38175,38178,38186,38187,38185,38188,38193,38194,38196,38198,38199,38200,38204,38206,38207,38210,38197,38212,38213,38214,38217,38220,38222,38223,38226,38227,38228,38230,38231,38232,38233,38235,38238,38239,38237,38241,38242,38244,38245,38246,38247,38248,38249,38250,38251,38252,38255,38257,38258,38259,38202,30695,30700,38601,31189,31213,31203,31211,31238,23879,31235,31234,31262,31252,39176,39177,39178,39179,39180,39182,39183,39185,39186,39187,39188,39189,39190,39191,39192,39193,39194,39195,39196,39197,39198,39199,39200,39201,39202,39203,39204,39205,39206,39207,39208,39209,39210,39211,39212,39213,39215,39216,39217,39218,39219,39220,39221,39222,39223,39224,39225,39226,39227,39228,39229,39230,39231,39232,39233,39234,39235,39236,39237,39238,39239,39240,39241,39242,39243,39244,39245,39246,39247,39248,39249,39250,39251,39254,39255,39256,39257,39258,39259,39260,39261,39262,39263,39264,39265,39266,39268,39270,39283,39288,39289,39291,39294,39298,39299,39305,31289,31287,31313,40655,39333,31344,30344,30350,30355,30361,30372,29918,29920,29996,40480,40482,40488,40489,40490,40491,40492,40498,40497,40502,40504,40503,40505,40506,40510,40513,40514,40516,40518,40519,40520,40521,40523,40524,40526,40529,40533,40535,40538,40539,40540,40542,40547,40550,40551,40552,40553,40554,40555,40556,40561,40557,40563,30098,30100,30102,30112,30109,30124,30115,30131,30132,30136,30148,30129,30128,30147,30146,30166,30157,30179,30184,30182,30180,30187,30183,30211,30193,30204,30207,30224,30208,30213,30220,30231,30218,30245,30232,30229,30233,39308,39310,39322,39323,39324,39325,39326,39327,39328,39329,39330,39331,39332,39334,39335,39337,39338,39339,39340,39341,39342,39343,39344,39345,39346,39347,39348,39349,39350,39351,39352,39353,39354,39355,39356,39357,39358,39359,39360,39361,39362,39363,39364,39365,39366,39367,39368,39369,39370,39371,39372,39373,39374,39375,39376,39377,39378,39379,39380,39381,39382,39383,39384,39385,39386,39387,39388,39389,39390,39391,39392,39393,39394,39395,39396,39397,39398,39399,39400,39401,39402,39403,39404,39405,39406,39407,39408,39409,39410,39411,39412,39413,39414,39415,39416,39417,30235,30268,30242,30240,30272,30253,30256,30271,30261,30275,30270,30259,30285,30302,30292,30300,30294,30315,30319,32714,31462,31352,31353,31360,31366,31368,31381,31398,31392,31404,31400,31405,31411,34916,34921,34930,34941,34943,34946,34978,35014,34999,35004,35017,35042,35022,35043,35045,35057,35098,35068,35048,35070,35056,35105,35097,35091,35099,35082,35124,35115,35126,35137,35174,35195,30091,32997,30386,30388,30684,32786,32788,32790,32796,32800,32802,32805,32806,32807,32809,32808,32817,32779,32821,32835,32838,32845,32850,32873,32881,35203,39032,39040,39043,39418,39419,39420,39421,39422,39423,39424,39425,39426,39427,39428,39429,39430,39431,39432,39433,39434,39435,39436,39437,39438,39439,39440,39441,39442,39443,39444,39445,39446,39447,39448,39449,39450,39451,39452,39453,39454,39455,39456,39457,39458,39459,39460,39461,39462,39463,39464,39465,39466,39467,39468,39469,39470,39471,39472,39473,39474,39475,39476,39477,39478,39479,39480,39481,39482,39483,39484,39485,39486,39487,39488,39489,39490,39491,39492,39493,39494,39495,39496,39497,39498,39499,39500,39501,39502,39503,39504,39505,39506,39507,39508,39509,39510,39511,39512,39513,39049,39052,39053,39055,39060,39066,39067,39070,39071,39073,39074,39077,39078,34381,34388,34412,34414,34431,34426,34428,34427,34472,34445,34443,34476,34461,34471,34467,34474,34451,34473,34486,34500,34485,34510,34480,34490,34481,34479,34505,34511,34484,34537,34545,34546,34541,34547,34512,34579,34526,34548,34527,34520,34513,34563,34567,34552,34568,34570,34573,34569,34595,34619,34590,34597,34606,34586,34622,34632,34612,34609,34601,34615,34623,34690,34594,34685,34686,34683,34656,34672,34636,34670,34699,34643,34659,34684,34660,34649,34661,34707,34735,34728,34770,39514,39515,39516,39517,39518,39519,39520,39521,39522,39523,39524,39525,39526,39527,39528,39529,39530,39531,39538,39555,39561,39565,39566,39572,39573,39577,39590,39593,39594,39595,39596,39597,39598,39599,39602,39603,39604,39605,39609,39611,39613,39614,39615,39619,39620,39622,39623,39624,39625,39626,39629,39630,39631,39632,39634,39636,39637,39638,39639,39641,39642,39643,39644,39645,39646,39648,39650,39651,39652,39653,39655,39656,39657,39658,39660,39662,39664,39665,39666,39667,39668,39669,39670,39671,39672,39674,39676,39677,39678,39679,39680,39681,39682,39684,39685,39686,34758,34696,34693,34733,34711,34691,34731,34789,34732,34741,34739,34763,34771,34749,34769,34752,34762,34779,34794,34784,34798,34838,34835,34814,34826,34843,34849,34873,34876,32566,32578,32580,32581,33296,31482,31485,31496,31491,31492,31509,31498,31531,31503,31559,31544,31530,31513,31534,31537,31520,31525,31524,31539,31550,31518,31576,31578,31557,31605,31564,31581,31584,31598,31611,31586,31602,31601,31632,31654,31655,31672,31660,31645,31656,31621,31658,31644,31650,31659,31668,31697,31681,31692,31709,31706,31717,31718,31722,31756,31742,31740,31759,31766,31755,39687,39689,39690,39691,39692,39693,39694,39696,39697,39698,39700,39701,39702,39703,39704,39705,39706,39707,39708,39709,39710,39712,39713,39714,39716,39717,39718,39719,39720,39721,39722,39723,39724,39725,39726,39728,39729,39731,39732,39733,39734,39735,39736,39737,39738,39741,39742,39743,39744,39750,39754,39755,39756,39758,39760,39762,39763,39765,39766,39767,39768,39769,39770,39771,39772,39773,39774,39775,39776,39777,39778,39779,39780,39781,39782,39783,39784,39785,39786,39787,39788,39789,39790,39791,39792,39793,39794,39795,39796,39797,39798,39799,39800,39801,39802,39803,31775,31786,31782,31800,31809,31808,33278,33281,33282,33284,33260,34884,33313,33314,33315,33325,33327,33320,33323,33336,33339,33331,33332,33342,33348,33353,33355,33359,33370,33375,33384,34942,34949,34952,35032,35039,35166,32669,32671,32679,32687,32688,32690,31868,25929,31889,31901,31900,31902,31906,31922,31932,31933,31937,31943,31948,31949,31944,31941,31959,31976,33390,26280,32703,32718,32725,32741,32737,32742,32745,32750,32755,31992,32119,32166,32174,32327,32411,40632,40628,36211,36228,36244,36241,36273,36199,36205,35911,35913,37194,37200,37198,37199,37220,39804,39805,39806,39807,39808,39809,39810,39811,39812,39813,39814,39815,39816,39817,39818,39819,39820,39821,39822,39823,39824,39825,39826,39827,39828,39829,39830,39831,39832,39833,39834,39835,39836,39837,39838,39839,39840,39841,39842,39843,39844,39845,39846,39847,39848,39849,39850,39851,39852,39853,39854,39855,39856,39857,39858,39859,39860,39861,39862,39863,39864,39865,39866,39867,39868,39869,39870,39871,39872,39873,39874,39875,39876,39877,39878,39879,39880,39881,39882,39883,39884,39885,39886,39887,39888,39889,39890,39891,39892,39893,39894,39895,39896,39897,39898,39899,37218,37217,37232,37225,37231,37245,37246,37234,37236,37241,37260,37253,37264,37261,37265,37282,37283,37290,37293,37294,37295,37301,37300,37306,35925,40574,36280,36331,36357,36441,36457,36277,36287,36284,36282,36292,36310,36311,36314,36318,36302,36303,36315,36294,36332,36343,36344,36323,36345,36347,36324,36361,36349,36372,36381,36383,36396,36398,36387,36399,36410,36416,36409,36405,36413,36401,36425,36417,36418,36433,36434,36426,36464,36470,36476,36463,36468,36485,36495,36500,36496,36508,36510,35960,35970,35978,35973,35992,35988,26011,35286,35294,35290,35292,39900,39901,39902,39903,39904,39905,39906,39907,39908,39909,39910,39911,39912,39913,39914,39915,39916,39917,39918,39919,39920,39921,39922,39923,39924,39925,39926,39927,39928,39929,39930,39931,39932,39933,39934,39935,39936,39937,39938,39939,39940,39941,39942,39943,39944,39945,39946,39947,39948,39949,39950,39951,39952,39953,39954,39955,39956,39957,39958,39959,39960,39961,39962,39963,39964,39965,39966,39967,39968,39969,39970,39971,39972,39973,39974,39975,39976,39977,39978,39979,39980,39981,39982,39983,39984,39985,39986,39987,39988,39989,39990,39991,39992,39993,39994,39995,35301,35307,35311,35390,35622,38739,38633,38643,38639,38662,38657,38664,38671,38670,38698,38701,38704,38718,40832,40835,40837,40838,40839,40840,40841,40842,40844,40702,40715,40717,38585,38588,38589,38606,38610,30655,38624,37518,37550,37576,37694,37738,37834,37775,37950,37995,40063,40066,40069,40070,40071,40072,31267,40075,40078,40080,40081,40082,40084,40085,40090,40091,40094,40095,40096,40097,40098,40099,40101,40102,40103,40104,40105,40107,40109,40110,40112,40113,40114,40115,40116,40117,40118,40119,40122,40123,40124,40125,40132,40133,40134,40135,40138,40139,39996,39997,39998,39999,4e4,40001,40002,40003,40004,40005,40006,40007,40008,40009,40010,40011,40012,40013,40014,40015,40016,40017,40018,40019,40020,40021,40022,40023,40024,40025,40026,40027,40028,40029,40030,40031,40032,40033,40034,40035,40036,40037,40038,40039,40040,40041,40042,40043,40044,40045,40046,40047,40048,40049,40050,40051,40052,40053,40054,40055,40056,40057,40058,40059,40061,40062,40064,40067,40068,40073,40074,40076,40079,40083,40086,40087,40088,40089,40093,40106,40108,40111,40121,40126,40127,40128,40129,40130,40136,40137,40145,40146,40154,40155,40160,40161,40140,40141,40142,40143,40144,40147,40148,40149,40151,40152,40153,40156,40157,40159,40162,38780,38789,38801,38802,38804,38831,38827,38819,38834,38836,39601,39600,39607,40536,39606,39610,39612,39617,39616,39621,39618,39627,39628,39633,39749,39747,39751,39753,39752,39757,39761,39144,39181,39214,39253,39252,39647,39649,39654,39663,39659,39675,39661,39673,39688,39695,39699,39711,39715,40637,40638,32315,40578,40583,40584,40587,40594,37846,40605,40607,40667,40668,40669,40672,40671,40674,40681,40679,40677,40682,40687,40738,40748,40751,40761,40759,40765,40766,40772,40163,40164,40165,40166,40167,40168,40169,40170,40171,40172,40173,40174,40175,40176,40177,40178,40179,40180,40181,40182,40183,40184,40185,40186,40187,40188,40189,40190,40191,40192,40193,40194,40195,40196,40197,40198,40199,40200,40201,40202,40203,40204,40205,40206,40207,40208,40209,40210,40211,40212,40213,40214,40215,40216,40217,40218,40219,40220,40221,40222,40223,40224,40225,40226,40227,40228,40229,40230,40231,40232,40233,40234,40235,40236,40237,40238,40239,40240,40241,40242,40243,40244,40245,40246,40247,40248,40249,40250,40251,40252,40253,40254,40255,40256,40257,40258,57908,57909,57910,57911,57912,57913,57914,57915,57916,57917,57918,57919,57920,57921,57922,57923,57924,57925,57926,57927,57928,57929,57930,57931,57932,57933,57934,57935,57936,57937,57938,57939,57940,57941,57942,57943,57944,57945,57946,57947,57948,57949,57950,57951,57952,57953,57954,57955,57956,57957,57958,57959,57960,57961,57962,57963,57964,57965,57966,57967,57968,57969,57970,57971,57972,57973,57974,57975,57976,57977,57978,57979,57980,57981,57982,57983,57984,57985,57986,57987,57988,57989,57990,57991,57992,57993,57994,57995,57996,57997,57998,57999,58e3,58001,40259,40260,40261,40262,40263,40264,40265,40266,40267,40268,40269,40270,40271,40272,40273,40274,40275,40276,40277,40278,40279,40280,40281,40282,40283,40284,40285,40286,40287,40288,40289,40290,40291,40292,40293,40294,40295,40296,40297,40298,40299,40300,40301,40302,40303,40304,40305,40306,40307,40308,40309,40310,40311,40312,40313,40314,40315,40316,40317,40318,40319,40320,40321,40322,40323,40324,40325,40326,40327,40328,40329,40330,40331,40332,40333,40334,40335,40336,40337,40338,40339,40340,40341,40342,40343,40344,40345,40346,40347,40348,40349,40350,40351,40352,40353,40354,58002,58003,58004,58005,58006,58007,58008,58009,58010,58011,58012,58013,58014,58015,58016,58017,58018,58019,58020,58021,58022,58023,58024,58025,58026,58027,58028,58029,58030,58031,58032,58033,58034,58035,58036,58037,58038,58039,58040,58041,58042,58043,58044,58045,58046,58047,58048,58049,58050,58051,58052,58053,58054,58055,58056,58057,58058,58059,58060,58061,58062,58063,58064,58065,58066,58067,58068,58069,58070,58071,58072,58073,58074,58075,58076,58077,58078,58079,58080,58081,58082,58083,58084,58085,58086,58087,58088,58089,58090,58091,58092,58093,58094,58095,40355,40356,40357,40358,40359,40360,40361,40362,40363,40364,40365,40366,40367,40368,40369,40370,40371,40372,40373,40374,40375,40376,40377,40378,40379,40380,40381,40382,40383,40384,40385,40386,40387,40388,40389,40390,40391,40392,40393,40394,40395,40396,40397,40398,40399,40400,40401,40402,40403,40404,40405,40406,40407,40408,40409,40410,40411,40412,40413,40414,40415,40416,40417,40418,40419,40420,40421,40422,40423,40424,40425,40426,40427,40428,40429,40430,40431,40432,40433,40434,40435,40436,40437,40438,40439,40440,40441,40442,40443,40444,40445,40446,40447,40448,40449,40450,58096,58097,58098,58099,58100,58101,58102,58103,58104,58105,58106,58107,58108,58109,58110,58111,58112,58113,58114,58115,58116,58117,58118,58119,58120,58121,58122,58123,58124,58125,58126,58127,58128,58129,58130,58131,58132,58133,58134,58135,58136,58137,58138,58139,58140,58141,58142,58143,58144,58145,58146,58147,58148,58149,58150,58151,58152,58153,58154,58155,58156,58157,58158,58159,58160,58161,58162,58163,58164,58165,58166,58167,58168,58169,58170,58171,58172,58173,58174,58175,58176,58177,58178,58179,58180,58181,58182,58183,58184,58185,58186,58187,58188,58189,40451,40452,40453,40454,40455,40456,40457,40458,40459,40460,40461,40462,40463,40464,40465,40466,40467,40468,40469,40470,40471,40472,40473,40474,40475,40476,40477,40478,40484,40487,40494,40496,40500,40507,40508,40512,40525,40528,40530,40531,40532,40534,40537,40541,40543,40544,40545,40546,40549,40558,40559,40562,40564,40565,40566,40567,40568,40569,40570,40571,40572,40573,40576,40577,40579,40580,40581,40582,40585,40586,40588,40589,40590,40591,40592,40593,40596,40597,40598,40599,40600,40601,40602,40603,40604,40606,40608,40609,40610,40611,40612,40613,40615,40616,40617,40618,58190,58191,58192,58193,58194,58195,58196,58197,58198,58199,58200,58201,58202,58203,58204,58205,58206,58207,58208,58209,58210,58211,58212,58213,58214,58215,58216,58217,58218,58219,58220,58221,58222,58223,58224,58225,58226,58227,58228,58229,58230,58231,58232,58233,58234,58235,58236,58237,58238,58239,58240,58241,58242,58243,58244,58245,58246,58247,58248,58249,58250,58251,58252,58253,58254,58255,58256,58257,58258,58259,58260,58261,58262,58263,58264,58265,58266,58267,58268,58269,58270,58271,58272,58273,58274,58275,58276,58277,58278,58279,58280,58281,58282,58283,40619,40620,40621,40622,40623,40624,40625,40626,40627,40629,40630,40631,40633,40634,40636,40639,40640,40641,40642,40643,40645,40646,40647,40648,40650,40651,40652,40656,40658,40659,40661,40662,40663,40665,40666,40670,40673,40675,40676,40678,40680,40683,40684,40685,40686,40688,40689,40690,40691,40692,40693,40694,40695,40696,40698,40701,40703,40704,40705,40706,40707,40708,40709,40710,40711,40712,40713,40714,40716,40719,40721,40722,40724,40725,40726,40728,40730,40731,40732,40733,40734,40735,40737,40739,40740,40741,40742,40743,40744,40745,40746,40747,40749,40750,40752,40753,58284,58285,58286,58287,58288,58289,58290,58291,58292,58293,58294,58295,58296,58297,58298,58299,58300,58301,58302,58303,58304,58305,58306,58307,58308,58309,58310,58311,58312,58313,58314,58315,58316,58317,58318,58319,58320,58321,58322,58323,58324,58325,58326,58327,58328,58329,58330,58331,58332,58333,58334,58335,58336,58337,58338,58339,58340,58341,58342,58343,58344,58345,58346,58347,58348,58349,58350,58351,58352,58353,58354,58355,58356,58357,58358,58359,58360,58361,58362,58363,58364,58365,58366,58367,58368,58369,58370,58371,58372,58373,58374,58375,58376,58377,40754,40755,40756,40757,40758,40760,40762,40764,40767,40768,40769,40770,40771,40773,40774,40775,40776,40777,40778,40779,40780,40781,40782,40783,40786,40787,40788,40789,40790,40791,40792,40793,40794,40795,40796,40797,40798,40799,40800,40801,40802,40803,40804,40805,40806,40807,40808,40809,40810,40811,40812,40813,40814,40815,40816,40817,40818,40819,40820,40821,40822,40823,40824,40825,40826,40827,40828,40829,40830,40833,40834,40845,40846,40847,40848,40849,40850,40851,40852,40853,40854,40855,40856,40860,40861,40862,40865,40866,40867,40868,40869,63788,63865,63893,63975,63985,58378,58379,58380,58381,58382,58383,58384,58385,58386,58387,58388,58389,58390,58391,58392,58393,58394,58395,58396,58397,58398,58399,58400,58401,58402,58403,58404,58405,58406,58407,58408,58409,58410,58411,58412,58413,58414,58415,58416,58417,58418,58419,58420,58421,58422,58423,58424,58425,58426,58427,58428,58429,58430,58431,58432,58433,58434,58435,58436,58437,58438,58439,58440,58441,58442,58443,58444,58445,58446,58447,58448,58449,58450,58451,58452,58453,58454,58455,58456,58457,58458,58459,58460,58461,58462,58463,58464,58465,58466,58467,58468,58469,58470,58471,64012,64013,64014,64015,64017,64019,64020,64024,64031,64032,64033,64035,64036,64039,64040,64041,11905,59414,59415,59416,11908,13427,13383,11912,11915,59422,13726,13850,13838,11916,11927,14702,14616,59430,14799,14815,14963,14800,59435,59436,15182,15470,15584,11943,59441,59442,11946,16470,16735,11950,17207,11955,11958,11959,59451,17329,17324,11963,17373,17622,18017,17996,59459,18211,18217,18300,18317,11978,18759,18810,18813,18818,18819,18821,18822,18847,18843,18871,18870,59476,59477,19619,19615,19616,19617,19575,19618,19731,19732,19733,19734,19735,19736,19737,19886,59492,58472,58473,58474,58475,58476,58477,58478,58479,58480,58481,58482,58483,58484,58485,58486,58487,58488,58489,58490,58491,58492,58493,58494,58495,58496,58497,58498,58499,58500,58501,58502,58503,58504,58505,58506,58507,58508,58509,58510,58511,58512,58513,58514,58515,58516,58517,58518,58519,58520,58521,58522,58523,58524,58525,58526,58527,58528,58529,58530,58531,58532,58533,58534,58535,58536,58537,58538,58539,58540,58541,58542,58543,58544,58545,58546,58547,58548,58549,58550,58551,58552,58553,58554,58555,58556,58557,58558,58559,58560,58561,58562,58563,58564,58565],"gb18030-ranges":[[0,128],[36,165],[38,169],[45,178],[50,184],[81,216],[89,226],[95,235],[96,238],[100,244],[103,248],[104,251],[105,253],[109,258],[126,276],[133,284],[148,300],[172,325],[175,329],[179,334],[208,364],[306,463],[307,465],[308,467],[309,469],[310,471],[311,473],[312,475],[313,477],[341,506],[428,594],[443,610],[544,712],[545,716],[558,730],[741,930],[742,938],[749,962],[750,970],[805,1026],[819,1104],[820,1106],[7922,8209],[7924,8215],[7925,8218],[7927,8222],[7934,8231],[7943,8241],[7944,8244],[7945,8246],[7950,8252],[8062,8365],[8148,8452],[8149,8454],[8152,8458],[8164,8471],[8174,8482],[8236,8556],[8240,8570],[8262,8596],[8264,8602],[8374,8713],[8380,8720],[8381,8722],[8384,8726],[8388,8731],[8390,8737],[8392,8740],[8393,8742],[8394,8748],[8396,8751],[8401,8760],[8406,8766],[8416,8777],[8419,8781],[8424,8787],[8437,8802],[8439,8808],[8445,8816],[8482,8854],[8485,8858],[8496,8870],[8521,8896],[8603,8979],[8936,9322],[8946,9372],[9046,9548],[9050,9588],[9063,9616],[9066,9622],[9076,9634],[9092,9652],[9100,9662],[9108,9672],[9111,9676],[9113,9680],[9131,9702],[9162,9735],[9164,9738],[9218,9793],[9219,9795],[11329,11906],[11331,11909],[11334,11913],[11336,11917],[11346,11928],[11361,11944],[11363,11947],[11366,11951],[11370,11956],[11372,11960],[11375,11964],[11389,11979],[11682,12284],[11686,12292],[11687,12312],[11692,12319],[11694,12330],[11714,12351],[11716,12436],[11723,12447],[11725,12535],[11730,12543],[11736,12586],[11982,12842],[11989,12850],[12102,12964],[12336,13200],[12348,13215],[12350,13218],[12384,13253],[12393,13263],[12395,13267],[12397,13270],[12510,13384],[12553,13428],[12851,13727],[12962,13839],[12973,13851],[13738,14617],[13823,14703],[13919,14801],[13933,14816],[14080,14964],[14298,15183],[14585,15471],[14698,15585],[15583,16471],[15847,16736],[16318,17208],[16434,17325],[16438,17330],[16481,17374],[16729,17623],[17102,17997],[17122,18018],[17315,18212],[17320,18218],[17402,18301],[17418,18318],[17859,18760],[17909,18811],[17911,18814],[17915,18820],[17916,18823],[17936,18844],[17939,18848],[17961,18872],[18664,19576],[18703,19620],[18814,19738],[18962,19887],[19043,40870],[33469,59244],[33470,59336],[33471,59367],[33484,59413],[33485,59417],[33490,59423],[33497,59431],[33501,59437],[33505,59443],[33513,59452],[33520,59460],[33536,59478],[33550,59493],[37845,63789],[37921,63866],[37948,63894],[38029,63976],[38038,63986],[38064,64016],[38065,64018],[38066,64021],[38069,64025],[38075,64034],[38076,64037],[38078,64042],[39108,65074],[39109,65093],[39113,65107],[39114,65112],[39115,65127],[39116,65132],[39265,65375],[39394,65510],[189e3,65536]],jis0208:[12288,12289,12290,65292,65294,12539,65306,65307,65311,65281,12443,12444,180,65344,168,65342,65507,65343,12541,12542,12445,12446,12291,20189,12293,12294,12295,12540,8213,8208,65295,65340,65374,8741,65372,8230,8229,8216,8217,8220,8221,65288,65289,12308,12309,65339,65341,65371,65373,12296,12297,12298,12299,12300,12301,12302,12303,12304,12305,65291,65293,177,215,247,65309,8800,65308,65310,8806,8807,8734,8756,9794,9792,176,8242,8243,8451,65509,65284,65504,65505,65285,65283,65286,65290,65312,167,9734,9733,9675,9679,9678,9671,9670,9633,9632,9651,9650,9661,9660,8251,12306,8594,8592,8593,8595,12307,null,null,null,null,null,null,null,null,null,null,null,8712,8715,8838,8839,8834,8835,8746,8745,null,null,null,null,null,null,null,null,8743,8744,65506,8658,8660,8704,8707,null,null,null,null,null,null,null,null,null,null,null,8736,8869,8978,8706,8711,8801,8786,8810,8811,8730,8765,8733,8757,8747,8748,null,null,null,null,null,null,null,8491,8240,9839,9837,9834,8224,8225,182,null,null,null,null,9711,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,65296,65297,65298,65299,65300,65301,65302,65303,65304,65305,null,null,null,null,null,null,null,65313,65314,65315,65316,65317,65318,65319,65320,65321,65322,65323,65324,65325,65326,65327,65328,65329,65330,65331,65332,65333,65334,65335,65336,65337,65338,null,null,null,null,null,null,65345,65346,65347,65348,65349,65350,65351,65352,65353,65354,65355,65356,65357,65358,65359,65360,65361,65362,65363,65364,65365,65366,65367,65368,65369,65370,null,null,null,null,12353,12354,12355,12356,12357,12358,12359,12360,12361,12362,12363,12364,12365,12366,12367,12368,12369,12370,12371,12372,12373,12374,12375,12376,12377,12378,12379,12380,12381,12382,12383,12384,12385,12386,12387,12388,12389,12390,12391,12392,12393,12394,12395,12396,12397,12398,12399,12400,12401,12402,12403,12404,12405,12406,12407,12408,12409,12410,12411,12412,12413,12414,12415,12416,12417,12418,12419,12420,12421,12422,12423,12424,12425,12426,12427,12428,12429,12430,12431,12432,12433,12434,12435,null,null,null,null,null,null,null,null,null,null,null,12449,12450,12451,12452,12453,12454,12455,12456,12457,12458,12459,12460,12461,12462,12463,12464,12465,12466,12467,12468,12469,12470,12471,12472,12473,12474,12475,12476,12477,12478,12479,12480,12481,12482,12483,12484,12485,12486,12487,12488,12489,12490,12491,12492,12493,12494,12495,12496,12497,12498,12499,12500,12501,12502,12503,12504,12505,12506,12507,12508,12509,12510,12511,12512,12513,12514,12515,12516,12517,12518,12519,12520,12521,12522,12523,12524,12525,12526,12527,12528,12529,12530,12531,12532,12533,12534,null,null,null,null,null,null,null,null,913,914,915,916,917,918,919,920,921,922,923,924,925,926,927,928,929,931,932,933,934,935,936,937,null,null,null,null,null,null,null,null,945,946,947,948,949,950,951,952,953,954,955,956,957,958,959,960,961,963,964,965,966,967,968,969,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,1040,1041,1042,1043,1044,1045,1025,1046,1047,1048,1049,1050,1051,1052,1053,1054,1055,1056,1057,1058,1059,1060,1061,1062,1063,1064,1065,1066,1067,1068,1069,1070,1071,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,1072,1073,1074,1075,1076,1077,1105,1078,1079,1080,1081,1082,1083,1084,1085,1086,1087,1088,1089,1090,1091,1092,1093,1094,1095,1096,1097,1098,1099,1100,1101,1102,1103,null,null,null,null,null,null,null,null,null,null,null,null,null,9472,9474,9484,9488,9496,9492,9500,9516,9508,9524,9532,9473,9475,9487,9491,9499,9495,9507,9523,9515,9531,9547,9504,9519,9512,9527,9535,9501,9520,9509,9528,9538,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,9312,9313,9314,9315,9316,9317,9318,9319,9320,9321,9322,9323,9324,9325,9326,9327,9328,9329,9330,9331,8544,8545,8546,8547,8548,8549,8550,8551,8552,8553,null,13129,13076,13090,13133,13080,13095,13059,13110,13137,13143,13069,13094,13091,13099,13130,13115,13212,13213,13214,13198,13199,13252,13217,null,null,null,null,null,null,null,null,13179,12317,12319,8470,13261,8481,12964,12965,12966,12967,12968,12849,12850,12857,13182,13181,13180,8786,8801,8747,8750,8721,8730,8869,8736,8735,8895,8757,8745,8746,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,20124,21782,23043,38463,21696,24859,25384,23030,36898,33909,33564,31312,24746,25569,28197,26093,33894,33446,39925,26771,22311,26017,25201,23451,22992,34427,39156,32098,32190,39822,25110,31903,34999,23433,24245,25353,26263,26696,38343,38797,26447,20197,20234,20301,20381,20553,22258,22839,22996,23041,23561,24799,24847,24944,26131,26885,28858,30031,30064,31227,32173,32239,32963,33806,34915,35586,36949,36986,21307,20117,20133,22495,32946,37057,30959,19968,22769,28322,36920,31282,33576,33419,39983,20801,21360,21693,21729,22240,23035,24341,39154,28139,32996,34093,38498,38512,38560,38907,21515,21491,23431,28879,32701,36802,38632,21359,40284,31418,19985,30867,33276,28198,22040,21764,27421,34074,39995,23013,21417,28006,29916,38287,22082,20113,36939,38642,33615,39180,21473,21942,23344,24433,26144,26355,26628,27704,27891,27945,29787,30408,31310,38964,33521,34907,35424,37613,28082,30123,30410,39365,24742,35585,36234,38322,27022,21421,20870,22290,22576,22852,23476,24310,24616,25513,25588,27839,28436,28814,28948,29017,29141,29503,32257,33398,33489,34199,36960,37467,40219,22633,26044,27738,29989,20985,22830,22885,24448,24540,25276,26106,27178,27431,27572,29579,32705,35158,40236,40206,40644,23713,27798,33659,20740,23627,25014,33222,26742,29281,20057,20474,21368,24681,28201,31311,38899,19979,21270,20206,20309,20285,20385,20339,21152,21487,22025,22799,23233,23478,23521,31185,26247,26524,26550,27468,27827,28779,29634,31117,31166,31292,31623,33457,33499,33540,33655,33775,33747,34662,35506,22057,36008,36838,36942,38686,34442,20420,23784,25105,29273,30011,33253,33469,34558,36032,38597,39187,39381,20171,20250,35299,22238,22602,22730,24315,24555,24618,24724,24674,25040,25106,25296,25913,39745,26214,26800,28023,28784,30028,30342,32117,33445,34809,38283,38542,35997,20977,21182,22806,21683,23475,23830,24936,27010,28079,30861,33995,34903,35442,37799,39608,28012,39336,34521,22435,26623,34510,37390,21123,22151,21508,24275,25313,25785,26684,26680,27579,29554,30906,31339,35226,35282,36203,36611,37101,38307,38548,38761,23398,23731,27005,38989,38990,25499,31520,27179,27263,26806,39949,28511,21106,21917,24688,25324,27963,28167,28369,33883,35088,36676,19988,39993,21494,26907,27194,38788,26666,20828,31427,33970,37340,37772,22107,40232,26658,33541,33841,31909,21e3,33477,29926,20094,20355,20896,23506,21002,21208,21223,24059,21914,22570,23014,23436,23448,23515,24178,24185,24739,24863,24931,25022,25563,25954,26577,26707,26874,27454,27475,27735,28450,28567,28485,29872,29976,30435,30475,31487,31649,31777,32233,32566,32752,32925,33382,33694,35251,35532,36011,36996,37969,38291,38289,38306,38501,38867,39208,33304,20024,21547,23736,24012,29609,30284,30524,23721,32747,36107,38593,38929,38996,39e3,20225,20238,21361,21916,22120,22522,22855,23305,23492,23696,24076,24190,24524,25582,26426,26071,26082,26399,26827,26820,27231,24112,27589,27671,27773,30079,31048,23395,31232,32e3,24509,35215,35352,36020,36215,36556,36637,39138,39438,39740,20096,20605,20736,22931,23452,25135,25216,25836,27450,29344,30097,31047,32681,34811,35516,35696,25516,33738,38816,21513,21507,21931,26708,27224,35440,30759,26485,40653,21364,23458,33050,34384,36870,19992,20037,20167,20241,21450,21560,23470,24339,24613,25937,26429,27714,27762,27875,28792,29699,31350,31406,31496,32026,31998,32102,26087,29275,21435,23621,24040,25298,25312,25369,28192,34394,35377,36317,37624,28417,31142,39770,20136,20139,20140,20379,20384,20689,20807,31478,20849,20982,21332,21281,21375,21483,21932,22659,23777,24375,24394,24623,24656,24685,25375,25945,27211,27841,29378,29421,30703,33016,33029,33288,34126,37111,37857,38911,39255,39514,20208,20957,23597,26241,26989,23616,26354,26997,29577,26704,31873,20677,21220,22343,24062,37670,26020,27427,27453,29748,31105,31165,31563,32202,33465,33740,34943,35167,35641,36817,37329,21535,37504,20061,20534,21477,21306,29399,29590,30697,33510,36527,39366,39368,39378,20855,24858,34398,21936,31354,20598,23507,36935,38533,20018,27355,37351,23633,23624,25496,31391,27795,38772,36705,31402,29066,38536,31874,26647,32368,26705,37740,21234,21531,34219,35347,32676,36557,37089,21350,34952,31041,20418,20670,21009,20804,21843,22317,29674,22411,22865,24418,24452,24693,24950,24935,25001,25522,25658,25964,26223,26690,28179,30054,31293,31995,32076,32153,32331,32619,33550,33610,34509,35336,35427,35686,36605,38938,40335,33464,36814,39912,21127,25119,25731,28608,38553,26689,20625,27424,27770,28500,31348,32080,34880,35363,26376,20214,20537,20518,20581,20860,21048,21091,21927,22287,22533,23244,24314,25010,25080,25331,25458,26908,27177,29309,29356,29486,30740,30831,32121,30476,32937,35211,35609,36066,36562,36963,37749,38522,38997,39443,40568,20803,21407,21427,24187,24358,28187,28304,29572,29694,32067,33335,35328,35578,38480,20046,20491,21476,21628,22266,22993,23396,24049,24235,24359,25144,25925,26543,28246,29392,31946,34996,32929,32993,33776,34382,35463,36328,37431,38599,39015,40723,20116,20114,20237,21320,21577,21566,23087,24460,24481,24735,26791,27278,29786,30849,35486,35492,35703,37264,20062,39881,20132,20348,20399,20505,20502,20809,20844,21151,21177,21246,21402,21475,21521,21518,21897,22353,22434,22909,23380,23389,23439,24037,24039,24055,24184,24195,24218,24247,24344,24658,24908,25239,25304,25511,25915,26114,26179,26356,26477,26657,26775,27083,27743,27946,28009,28207,28317,30002,30343,30828,31295,31968,32005,32024,32094,32177,32789,32771,32943,32945,33108,33167,33322,33618,34892,34913,35611,36002,36092,37066,37237,37489,30783,37628,38308,38477,38917,39321,39640,40251,21083,21163,21495,21512,22741,25335,28640,35946,36703,40633,20811,21051,21578,22269,31296,37239,40288,40658,29508,28425,33136,29969,24573,24794,39592,29403,36796,27492,38915,20170,22256,22372,22718,23130,24680,25031,26127,26118,26681,26801,28151,30165,32058,33390,39746,20123,20304,21449,21766,23919,24038,24046,26619,27801,29811,30722,35408,37782,35039,22352,24231,25387,20661,20652,20877,26368,21705,22622,22971,23472,24425,25165,25505,26685,27507,28168,28797,37319,29312,30741,30758,31085,25998,32048,33756,35009,36617,38555,21092,22312,26448,32618,36001,20916,22338,38442,22586,27018,32948,21682,23822,22524,30869,40442,20316,21066,21643,25662,26152,26388,26613,31364,31574,32034,37679,26716,39853,31545,21273,20874,21047,23519,25334,25774,25830,26413,27578,34217,38609,30352,39894,25420,37638,39851,30399,26194,19977,20632,21442,23665,24808,25746,25955,26719,29158,29642,29987,31639,32386,34453,35715,36059,37240,39184,26028,26283,27531,20181,20180,20282,20351,21050,21496,21490,21987,22235,22763,22987,22985,23039,23376,23629,24066,24107,24535,24605,25351,25903,23388,26031,26045,26088,26525,27490,27515,27663,29509,31049,31169,31992,32025,32043,32930,33026,33267,35222,35422,35433,35430,35468,35566,36039,36060,38604,39164,27503,20107,20284,20365,20816,23383,23546,24904,25345,26178,27425,28363,27835,29246,29885,30164,30913,31034,32780,32819,33258,33940,36766,27728,40575,24335,35672,40235,31482,36600,23437,38635,19971,21489,22519,22833,23241,23460,24713,28287,28422,30142,36074,23455,34048,31712,20594,26612,33437,23649,34122,32286,33294,20889,23556,25448,36198,26012,29038,31038,32023,32773,35613,36554,36974,34503,37034,20511,21242,23610,26451,28796,29237,37196,37320,37675,33509,23490,24369,24825,20027,21462,23432,25163,26417,27530,29417,29664,31278,33131,36259,37202,39318,20754,21463,21610,23551,25480,27193,32172,38656,22234,21454,21608,23447,23601,24030,20462,24833,25342,27954,31168,31179,32066,32333,32722,33261,33311,33936,34886,35186,35728,36468,36655,36913,37195,37228,38598,37276,20160,20303,20805,21313,24467,25102,26580,27713,28171,29539,32294,37325,37507,21460,22809,23487,28113,31069,32302,31899,22654,29087,20986,34899,36848,20426,23803,26149,30636,31459,33308,39423,20934,24490,26092,26991,27529,28147,28310,28516,30462,32020,24033,36981,37255,38918,20966,21021,25152,26257,26329,28186,24246,32210,32626,26360,34223,34295,35576,21161,21465,22899,24207,24464,24661,37604,38500,20663,20767,21213,21280,21319,21484,21736,21830,21809,22039,22888,22974,23100,23477,23558,23567,23569,23578,24196,24202,24288,24432,25215,25220,25307,25484,25463,26119,26124,26157,26230,26494,26786,27167,27189,27836,28040,28169,28248,28988,28966,29031,30151,30465,30813,30977,31077,31216,31456,31505,31911,32057,32918,33750,33931,34121,34909,35059,35359,35388,35412,35443,35937,36062,37284,37478,37758,37912,38556,38808,19978,19976,19998,20055,20887,21104,22478,22580,22732,23330,24120,24773,25854,26465,26454,27972,29366,30067,31331,33976,35698,37304,37664,22065,22516,39166,25325,26893,27542,29165,32340,32887,33394,35302,39135,34645,36785,23611,20280,20449,20405,21767,23072,23517,23529,24515,24910,25391,26032,26187,26862,27035,28024,28145,30003,30137,30495,31070,31206,32051,33251,33455,34218,35242,35386,36523,36763,36914,37341,38663,20154,20161,20995,22645,22764,23563,29978,23613,33102,35338,36805,38499,38765,31525,35535,38920,37218,22259,21416,36887,21561,22402,24101,25512,27700,28810,30561,31883,32736,34928,36930,37204,37648,37656,38543,29790,39620,23815,23913,25968,26530,36264,38619,25454,26441,26905,33733,38935,38592,35070,28548,25722,23544,19990,28716,30045,26159,20932,21046,21218,22995,24449,24615,25104,25919,25972,26143,26228,26866,26646,27491,28165,29298,29983,30427,31934,32854,22768,35069,35199,35488,35475,35531,36893,37266,38738,38745,25993,31246,33030,38587,24109,24796,25114,26021,26132,26512,30707,31309,31821,32318,33034,36012,36196,36321,36447,30889,20999,25305,25509,25666,25240,35373,31363,31680,35500,38634,32118,33292,34633,20185,20808,21315,21344,23459,23554,23574,24029,25126,25159,25776,26643,26676,27849,27973,27927,26579,28508,29006,29053,26059,31359,31661,32218,32330,32680,33146,33307,33337,34214,35438,36046,36341,36984,36983,37549,37521,38275,39854,21069,21892,28472,28982,20840,31109,32341,33203,31950,22092,22609,23720,25514,26366,26365,26970,29401,30095,30094,30990,31062,31199,31895,32032,32068,34311,35380,38459,36961,40736,20711,21109,21452,21474,20489,21930,22766,22863,29245,23435,23652,21277,24803,24819,25436,25475,25407,25531,25805,26089,26361,24035,27085,27133,28437,29157,20105,30185,30456,31379,31967,32207,32156,32865,33609,33624,33900,33980,34299,35013,36208,36865,36973,37783,38684,39442,20687,22679,24974,33235,34101,36104,36896,20419,20596,21063,21363,24687,25417,26463,28204,36275,36895,20439,23646,36042,26063,32154,21330,34966,20854,25539,23384,23403,23562,25613,26449,36956,20182,22810,22826,27760,35409,21822,22549,22949,24816,25171,26561,33333,26965,38464,39364,39464,20307,22534,23550,32784,23729,24111,24453,24608,24907,25140,26367,27888,28382,32974,33151,33492,34955,36024,36864,36910,38538,40667,39899,20195,21488,22823,31532,37261,38988,40441,28381,28711,21331,21828,23429,25176,25246,25299,27810,28655,29730,35351,37944,28609,35582,33592,20967,34552,21482,21481,20294,36948,36784,22890,33073,24061,31466,36799,26842,35895,29432,40008,27197,35504,20025,21336,22022,22374,25285,25506,26086,27470,28129,28251,28845,30701,31471,31658,32187,32829,32966,34507,35477,37723,22243,22727,24382,26029,26262,27264,27573,30007,35527,20516,30693,22320,24347,24677,26234,27744,30196,31258,32622,33268,34584,36933,39347,31689,30044,31481,31569,33988,36880,31209,31378,33590,23265,30528,20013,20210,23449,24544,25277,26172,26609,27880,34411,34935,35387,37198,37619,39376,27159,28710,29482,33511,33879,36015,19969,20806,20939,21899,23541,24086,24115,24193,24340,24373,24427,24500,25074,25361,26274,26397,28526,29266,30010,30522,32884,33081,33144,34678,35519,35548,36229,36339,37530,38263,38914,40165,21189,25431,30452,26389,27784,29645,36035,37806,38515,27941,22684,26894,27084,36861,37786,30171,36890,22618,26626,25524,27131,20291,28460,26584,36795,34086,32180,37716,26943,28528,22378,22775,23340,32044,29226,21514,37347,40372,20141,20302,20572,20597,21059,35998,21576,22564,23450,24093,24213,24237,24311,24351,24716,25269,25402,25552,26799,27712,30855,31118,31243,32224,33351,35330,35558,36420,36883,37048,37165,37336,40718,27877,25688,25826,25973,28404,30340,31515,36969,37841,28346,21746,24505,25764,36685,36845,37444,20856,22635,22825,23637,24215,28155,32399,29980,36028,36578,39003,28857,20253,27583,28593,3e4,38651,20814,21520,22581,22615,22956,23648,24466,26007,26460,28193,30331,33759,36077,36884,37117,37709,30757,30778,21162,24230,22303,22900,24594,20498,20826,20908,20941,20992,21776,22612,22616,22871,23445,23798,23947,24764,25237,25645,26481,26691,26812,26847,30423,28120,28271,28059,28783,29128,24403,30168,31095,31561,31572,31570,31958,32113,21040,33891,34153,34276,35342,35588,35910,36367,36867,36879,37913,38518,38957,39472,38360,20685,21205,21516,22530,23566,24999,25758,27934,30643,31461,33012,33796,36947,37509,23776,40199,21311,24471,24499,28060,29305,30563,31167,31716,27602,29420,35501,26627,27233,20984,31361,26932,23626,40182,33515,23493,37193,28702,22136,23663,24775,25958,27788,35930,36929,38931,21585,26311,37389,22856,37027,20869,20045,20970,34201,35598,28760,25466,37707,26978,39348,32260,30071,21335,26976,36575,38627,27741,20108,23612,24336,36841,21250,36049,32905,34425,24319,26085,20083,20837,22914,23615,38894,20219,22922,24525,35469,28641,31152,31074,23527,33905,29483,29105,24180,24565,25467,25754,29123,31896,20035,24316,20043,22492,22178,24745,28611,32013,33021,33075,33215,36786,35223,34468,24052,25226,25773,35207,26487,27874,27966,29750,30772,23110,32629,33453,39340,20467,24259,25309,25490,25943,26479,30403,29260,32972,32954,36649,37197,20493,22521,23186,26757,26995,29028,29437,36023,22770,36064,38506,36889,34687,31204,30695,33833,20271,21093,21338,25293,26575,27850,30333,31636,31893,33334,34180,36843,26333,28448,29190,32283,33707,39361,40614,20989,31665,30834,31672,32903,31560,27368,24161,32908,30033,30048,20843,37474,28300,30330,37271,39658,20240,32624,25244,31567,38309,40169,22138,22617,34532,38588,20276,21028,21322,21453,21467,24070,25644,26001,26495,27710,27726,29256,29359,29677,30036,32321,33324,34281,36009,31684,37318,29033,38930,39151,25405,26217,30058,30436,30928,34115,34542,21290,21329,21542,22915,24199,24444,24754,25161,25209,25259,26e3,27604,27852,30130,30382,30865,31192,32203,32631,32933,34987,35513,36027,36991,38750,39131,27147,31800,20633,23614,24494,26503,27608,29749,30473,32654,40763,26570,31255,21305,30091,39661,24422,33181,33777,32920,24380,24517,30050,31558,36924,26727,23019,23195,32016,30334,35628,20469,24426,27161,27703,28418,29922,31080,34920,35413,35961,24287,25551,30149,31186,33495,37672,37618,33948,34541,39981,21697,24428,25996,27996,28693,36007,36051,38971,25935,29942,19981,20184,22496,22827,23142,23500,20904,24067,24220,24598,25206,25975,26023,26222,28014,29238,31526,33104,33178,33433,35676,36e3,36070,36212,38428,38468,20398,25771,27494,33310,33889,34154,37096,23553,26963,39080,33914,34135,20239,21103,24489,24133,26381,31119,33145,35079,35206,28149,24343,25173,27832,20175,29289,39826,20998,21563,22132,22707,24996,25198,28954,22894,31881,31966,32027,38640,25991,32862,19993,20341,20853,22592,24163,24179,24330,26564,20006,34109,38281,38491,31859,38913,20731,22721,30294,30887,21029,30629,34065,31622,20559,22793,29255,31687,32232,36794,36820,36941,20415,21193,23081,24321,38829,20445,33303,37610,22275,25429,27497,29995,35036,36628,31298,21215,22675,24917,25098,26286,27597,31807,33769,20515,20472,21253,21574,22577,22857,23453,23792,23791,23849,24214,25265,25447,25918,26041,26379,27861,27873,28921,30770,32299,32990,33459,33804,34028,34562,35090,35370,35914,37030,37586,39165,40179,40300,20047,20129,20621,21078,22346,22952,24125,24536,24537,25151,26292,26395,26576,26834,20882,32033,32938,33192,35584,35980,36031,37502,38450,21536,38956,21271,20693,21340,22696,25778,26420,29287,30566,31302,37350,21187,27809,27526,22528,24140,22868,26412,32763,20961,30406,25705,30952,39764,40635,22475,22969,26151,26522,27598,21737,27097,24149,33180,26517,39850,26622,40018,26717,20134,20451,21448,25273,26411,27819,36804,20397,32365,40639,19975,24930,28288,28459,34067,21619,26410,39749,24051,31637,23724,23494,34588,28234,34001,31252,33032,22937,31885,27665,30496,21209,22818,28961,29279,30683,38695,40289,26891,23167,23064,20901,21517,21629,26126,30431,36855,37528,40180,23018,29277,28357,20813,26825,32191,32236,38754,40634,25720,27169,33538,22916,23391,27611,29467,30450,32178,32791,33945,20786,26408,40665,30446,26466,21247,39173,23588,25147,31870,36016,21839,24758,32011,38272,21249,20063,20918,22812,29242,32822,37326,24357,30690,21380,24441,32004,34220,35379,36493,38742,26611,34222,37971,24841,24840,27833,30290,35565,36664,21807,20305,20778,21191,21451,23461,24189,24736,24962,25558,26377,26586,28263,28044,29494,29495,30001,31056,35029,35480,36938,37009,37109,38596,34701,22805,20104,20313,19982,35465,36671,38928,20653,24188,22934,23481,24248,25562,25594,25793,26332,26954,27096,27915,28342,29076,29992,31407,32650,32768,33865,33993,35201,35617,36362,36965,38525,39178,24958,25233,27442,27779,28020,32716,32764,28096,32645,34746,35064,26469,33713,38972,38647,27931,32097,33853,37226,20081,21365,23888,27396,28651,34253,34349,35239,21033,21519,23653,26446,26792,29702,29827,30178,35023,35041,37324,38626,38520,24459,29575,31435,33870,25504,30053,21129,27969,28316,29705,30041,30827,31890,38534,31452,40845,20406,24942,26053,34396,20102,20142,20698,20001,20940,23534,26009,26753,28092,29471,30274,30637,31260,31975,33391,35538,36988,37327,38517,38936,21147,32209,20523,21400,26519,28107,29136,29747,33256,36650,38563,40023,40607,29792,22593,28057,32047,39006,20196,20278,20363,20919,21169,23994,24604,29618,31036,33491,37428,38583,38646,38666,40599,40802,26278,27508,21015,21155,28872,35010,24265,24651,24976,28451,29001,31806,32244,32879,34030,36899,37676,21570,39791,27347,28809,36034,36335,38706,21172,23105,24266,24324,26391,27004,27028,28010,28431,29282,29436,31725,32769,32894,34635,37070,20845,40595,31108,32907,37682,35542,20525,21644,35441,27498,36036,33031,24785,26528,40434,20121,20120,39952,35435,34241,34152,26880,28286,30871,33109,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,24332,19984,19989,20010,20017,20022,20028,20031,20034,20054,20056,20098,20101,35947,20106,33298,24333,20110,20126,20127,20128,20130,20144,20147,20150,20174,20173,20164,20166,20162,20183,20190,20205,20191,20215,20233,20314,20272,20315,20317,20311,20295,20342,20360,20367,20376,20347,20329,20336,20369,20335,20358,20374,20760,20436,20447,20430,20440,20443,20433,20442,20432,20452,20453,20506,20520,20500,20522,20517,20485,20252,20470,20513,20521,20524,20478,20463,20497,20486,20547,20551,26371,20565,20560,20552,20570,20566,20588,20600,20608,20634,20613,20660,20658,20681,20682,20659,20674,20694,20702,20709,20717,20707,20718,20729,20725,20745,20737,20738,20758,20757,20756,20762,20769,20794,20791,20796,20795,20799,20800,20818,20812,20820,20834,31480,20841,20842,20846,20864,20866,22232,20876,20873,20879,20881,20883,20885,20886,20900,20902,20898,20905,20906,20907,20915,20913,20914,20912,20917,20925,20933,20937,20955,20960,34389,20969,20973,20976,20981,20990,20996,21003,21012,21006,21031,21034,21038,21043,21049,21071,21060,21067,21068,21086,21076,21098,21108,21097,21107,21119,21117,21133,21140,21138,21105,21128,21137,36776,36775,21164,21165,21180,21173,21185,21197,21207,21214,21219,21222,39149,21216,21235,21237,21240,21241,21254,21256,30008,21261,21264,21263,21269,21274,21283,21295,21297,21299,21304,21312,21318,21317,19991,21321,21325,20950,21342,21353,21358,22808,21371,21367,21378,21398,21408,21414,21413,21422,21424,21430,21443,31762,38617,21471,26364,29166,21486,21480,21485,21498,21505,21565,21568,21548,21549,21564,21550,21558,21545,21533,21582,21647,21621,21646,21599,21617,21623,21616,21650,21627,21632,21622,21636,21648,21638,21703,21666,21688,21669,21676,21700,21704,21672,21675,21698,21668,21694,21692,21720,21733,21734,21775,21780,21757,21742,21741,21754,21730,21817,21824,21859,21836,21806,21852,21829,21846,21847,21816,21811,21853,21913,21888,21679,21898,21919,21883,21886,21912,21918,21934,21884,21891,21929,21895,21928,21978,21957,21983,21956,21980,21988,21972,22036,22007,22038,22014,22013,22043,22009,22094,22096,29151,22068,22070,22066,22072,22123,22116,22063,22124,22122,22150,22144,22154,22176,22164,22159,22181,22190,22198,22196,22210,22204,22209,22211,22208,22216,22222,22225,22227,22231,22254,22265,22272,22271,22276,22281,22280,22283,22285,22291,22296,22294,21959,22300,22310,22327,22328,22350,22331,22336,22351,22377,22464,22408,22369,22399,22409,22419,22432,22451,22436,22442,22448,22467,22470,22484,22482,22483,22538,22486,22499,22539,22553,22557,22642,22561,22626,22603,22640,27584,22610,22589,22649,22661,22713,22687,22699,22714,22750,22715,22712,22702,22725,22739,22737,22743,22745,22744,22757,22748,22756,22751,22767,22778,22777,22779,22780,22781,22786,22794,22800,22811,26790,22821,22828,22829,22834,22840,22846,31442,22869,22864,22862,22874,22872,22882,22880,22887,22892,22889,22904,22913,22941,20318,20395,22947,22962,22982,23016,23004,22925,23001,23002,23077,23071,23057,23068,23049,23066,23104,23148,23113,23093,23094,23138,23146,23194,23228,23230,23243,23234,23229,23267,23255,23270,23273,23254,23290,23291,23308,23307,23318,23346,23248,23338,23350,23358,23363,23365,23360,23377,23381,23386,23387,23397,23401,23408,23411,23413,23416,25992,23418,23424,23427,23462,23480,23491,23495,23497,23508,23504,23524,23526,23522,23518,23525,23531,23536,23542,23539,23557,23559,23560,23565,23571,23584,23586,23592,23608,23609,23617,23622,23630,23635,23632,23631,23409,23660,23662,20066,23670,23673,23692,23697,23700,22939,23723,23739,23734,23740,23735,23749,23742,23751,23769,23785,23805,23802,23789,23948,23786,23819,23829,23831,23900,23839,23835,23825,23828,23842,23834,23833,23832,23884,23890,23886,23883,23916,23923,23926,23943,23940,23938,23970,23965,23980,23982,23997,23952,23991,23996,24009,24013,24019,24018,24022,24027,24043,24050,24053,24075,24090,24089,24081,24091,24118,24119,24132,24131,24128,24142,24151,24148,24159,24162,24164,24135,24181,24182,24186,40636,24191,24224,24257,24258,24264,24272,24271,24278,24291,24285,24282,24283,24290,24289,24296,24297,24300,24305,24307,24304,24308,24312,24318,24323,24329,24413,24412,24331,24337,24342,24361,24365,24376,24385,24392,24396,24398,24367,24401,24406,24407,24409,24417,24429,24435,24439,24451,24450,24447,24458,24456,24465,24455,24478,24473,24472,24480,24488,24493,24508,24534,24571,24548,24568,24561,24541,24755,24575,24609,24672,24601,24592,24617,24590,24625,24603,24597,24619,24614,24591,24634,24666,24641,24682,24695,24671,24650,24646,24653,24675,24643,24676,24642,24684,24683,24665,24705,24717,24807,24707,24730,24708,24731,24726,24727,24722,24743,24715,24801,24760,24800,24787,24756,24560,24765,24774,24757,24792,24909,24853,24838,24822,24823,24832,24820,24826,24835,24865,24827,24817,24845,24846,24903,24894,24872,24871,24906,24895,24892,24876,24884,24893,24898,24900,24947,24951,24920,24921,24922,24939,24948,24943,24933,24945,24927,24925,24915,24949,24985,24982,24967,25004,24980,24986,24970,24977,25003,25006,25036,25034,25033,25079,25032,25027,25030,25018,25035,32633,25037,25062,25059,25078,25082,25076,25087,25085,25084,25086,25088,25096,25097,25101,25100,25108,25115,25118,25121,25130,25134,25136,25138,25139,25153,25166,25182,25187,25179,25184,25192,25212,25218,25225,25214,25234,25235,25238,25300,25219,25236,25303,25297,25275,25295,25343,25286,25812,25288,25308,25292,25290,25282,25287,25243,25289,25356,25326,25329,25383,25346,25352,25327,25333,25424,25406,25421,25628,25423,25494,25486,25472,25515,25462,25507,25487,25481,25503,25525,25451,25449,25534,25577,25536,25542,25571,25545,25554,25590,25540,25622,25652,25606,25619,25638,25654,25885,25623,25640,25615,25703,25711,25718,25678,25898,25749,25747,25765,25769,25736,25788,25818,25810,25797,25799,25787,25816,25794,25841,25831,33289,25824,25825,25260,25827,25839,25900,25846,25844,25842,25850,25856,25853,25880,25884,25861,25892,25891,25899,25908,25909,25911,25910,25912,30027,25928,25942,25941,25933,25944,25950,25949,25970,25976,25986,25987,35722,26011,26015,26027,26039,26051,26054,26049,26052,26060,26066,26075,26073,26080,26081,26097,26482,26122,26115,26107,26483,26165,26166,26164,26140,26191,26180,26185,26177,26206,26205,26212,26215,26216,26207,26210,26224,26243,26248,26254,26249,26244,26264,26269,26305,26297,26313,26302,26300,26308,26296,26326,26330,26336,26175,26342,26345,26352,26357,26359,26383,26390,26398,26406,26407,38712,26414,26431,26422,26433,26424,26423,26438,26462,26464,26457,26467,26468,26505,26480,26537,26492,26474,26508,26507,26534,26529,26501,26551,26607,26548,26604,26547,26601,26552,26596,26590,26589,26594,26606,26553,26574,26566,26599,27292,26654,26694,26665,26688,26701,26674,26702,26803,26667,26713,26723,26743,26751,26783,26767,26797,26772,26781,26779,26755,27310,26809,26740,26805,26784,26810,26895,26765,26750,26881,26826,26888,26840,26914,26918,26849,26892,26829,26836,26855,26837,26934,26898,26884,26839,26851,26917,26873,26848,26863,26920,26922,26906,26915,26913,26822,27001,26999,26972,27e3,26987,26964,27006,26990,26937,26996,26941,26969,26928,26977,26974,26973,27009,26986,27058,27054,27088,27071,27073,27091,27070,27086,23528,27082,27101,27067,27075,27047,27182,27025,27040,27036,27029,27060,27102,27112,27138,27163,27135,27402,27129,27122,27111,27141,27057,27166,27117,27156,27115,27146,27154,27329,27171,27155,27204,27148,27250,27190,27256,27207,27234,27225,27238,27208,27192,27170,27280,27277,27296,27268,27298,27299,27287,34327,27323,27331,27330,27320,27315,27308,27358,27345,27359,27306,27354,27370,27387,27397,34326,27386,27410,27414,39729,27423,27448,27447,30428,27449,39150,27463,27459,27465,27472,27481,27476,27483,27487,27489,27512,27513,27519,27520,27524,27523,27533,27544,27541,27550,27556,27562,27563,27567,27570,27569,27571,27575,27580,27590,27595,27603,27615,27628,27627,27635,27631,40638,27656,27667,27668,27675,27684,27683,27742,27733,27746,27754,27778,27789,27802,27777,27803,27774,27752,27763,27794,27792,27844,27889,27859,27837,27863,27845,27869,27822,27825,27838,27834,27867,27887,27865,27882,27935,34893,27958,27947,27965,27960,27929,27957,27955,27922,27916,28003,28051,28004,27994,28025,27993,28046,28053,28644,28037,28153,28181,28170,28085,28103,28134,28088,28102,28140,28126,28108,28136,28114,28101,28154,28121,28132,28117,28138,28142,28205,28270,28206,28185,28274,28255,28222,28195,28267,28203,28278,28237,28191,28227,28218,28238,28196,28415,28189,28216,28290,28330,28312,28361,28343,28371,28349,28335,28356,28338,28372,28373,28303,28325,28354,28319,28481,28433,28748,28396,28408,28414,28479,28402,28465,28399,28466,28364,28478,28435,28407,28550,28538,28536,28545,28544,28527,28507,28659,28525,28546,28540,28504,28558,28561,28610,28518,28595,28579,28577,28580,28601,28614,28586,28639,28629,28652,28628,28632,28657,28654,28635,28681,28683,28666,28689,28673,28687,28670,28699,28698,28532,28701,28696,28703,28720,28734,28722,28753,28771,28825,28818,28847,28913,28844,28856,28851,28846,28895,28875,28893,28889,28937,28925,28956,28953,29029,29013,29064,29030,29026,29004,29014,29036,29071,29179,29060,29077,29096,29100,29143,29113,29118,29138,29129,29140,29134,29152,29164,29159,29173,29180,29177,29183,29197,29200,29211,29224,29229,29228,29232,29234,29243,29244,29247,29248,29254,29259,29272,29300,29310,29314,29313,29319,29330,29334,29346,29351,29369,29362,29379,29382,29380,29390,29394,29410,29408,29409,29433,29431,20495,29463,29450,29468,29462,29469,29492,29487,29481,29477,29502,29518,29519,40664,29527,29546,29544,29552,29560,29557,29563,29562,29640,29619,29646,29627,29632,29669,29678,29662,29858,29701,29807,29733,29688,29746,29754,29781,29759,29791,29785,29761,29788,29801,29808,29795,29802,29814,29822,29835,29854,29863,29898,29903,29908,29681,29920,29923,29927,29929,29934,29938,29936,29937,29944,29943,29956,29955,29957,29964,29966,29965,29973,29971,29982,29990,29996,30012,30020,30029,30026,30025,30043,30022,30042,30057,30052,30055,30059,30061,30072,30070,30086,30087,30068,30090,30089,30082,30100,30106,30109,30117,30115,30146,30131,30147,30133,30141,30136,30140,30129,30157,30154,30162,30169,30179,30174,30206,30207,30204,30209,30192,30202,30194,30195,30219,30221,30217,30239,30247,30240,30241,30242,30244,30260,30256,30267,30279,30280,30278,30300,30296,30305,30306,30312,30313,30314,30311,30316,30320,30322,30326,30328,30332,30336,30339,30344,30347,30350,30358,30355,30361,30362,30384,30388,30392,30393,30394,30402,30413,30422,30418,30430,30433,30437,30439,30442,34351,30459,30472,30471,30468,30505,30500,30494,30501,30502,30491,30519,30520,30535,30554,30568,30571,30555,30565,30591,30590,30585,30606,30603,30609,30624,30622,30640,30646,30649,30655,30652,30653,30651,30663,30669,30679,30682,30684,30691,30702,30716,30732,30738,31014,30752,31018,30789,30862,30836,30854,30844,30874,30860,30883,30901,30890,30895,30929,30918,30923,30932,30910,30908,30917,30922,30956,30951,30938,30973,30964,30983,30994,30993,31001,31020,31019,31040,31072,31063,31071,31066,31061,31059,31098,31103,31114,31133,31143,40779,31146,31150,31155,31161,31162,31177,31189,31207,31212,31201,31203,31240,31245,31256,31257,31264,31263,31104,31281,31291,31294,31287,31299,31319,31305,31329,31330,31337,40861,31344,31353,31357,31368,31383,31381,31384,31382,31401,31432,31408,31414,31429,31428,31423,36995,31431,31434,31437,31439,31445,31443,31449,31450,31453,31457,31458,31462,31469,31472,31490,31503,31498,31494,31539,31512,31513,31518,31541,31528,31542,31568,31610,31492,31565,31499,31564,31557,31605,31589,31604,31591,31600,31601,31596,31598,31645,31640,31647,31629,31644,31642,31627,31634,31631,31581,31641,31691,31681,31692,31695,31668,31686,31709,31721,31761,31764,31718,31717,31840,31744,31751,31763,31731,31735,31767,31757,31734,31779,31783,31786,31775,31799,31787,31805,31820,31811,31828,31823,31808,31824,31832,31839,31844,31830,31845,31852,31861,31875,31888,31908,31917,31906,31915,31905,31912,31923,31922,31921,31918,31929,31933,31936,31941,31938,31960,31954,31964,31970,39739,31983,31986,31988,31990,31994,32006,32002,32028,32021,32010,32069,32075,32046,32050,32063,32053,32070,32115,32086,32078,32114,32104,32110,32079,32099,32147,32137,32091,32143,32125,32155,32186,32174,32163,32181,32199,32189,32171,32317,32162,32175,32220,32184,32159,32176,32216,32221,32228,32222,32251,32242,32225,32261,32266,32291,32289,32274,32305,32287,32265,32267,32290,32326,32358,32315,32309,32313,32323,32311,32306,32314,32359,32349,32342,32350,32345,32346,32377,32362,32361,32380,32379,32387,32213,32381,36782,32383,32392,32393,32396,32402,32400,32403,32404,32406,32398,32411,32412,32568,32570,32581,32588,32589,32590,32592,32593,32597,32596,32600,32607,32608,32616,32617,32615,32632,32642,32646,32643,32648,32647,32652,32660,32670,32669,32666,32675,32687,32690,32697,32686,32694,32696,35697,32709,32710,32714,32725,32724,32737,32742,32745,32755,32761,39132,32774,32772,32779,32786,32792,32793,32796,32801,32808,32831,32827,32842,32838,32850,32856,32858,32863,32866,32872,32883,32882,32880,32886,32889,32893,32895,32900,32902,32901,32923,32915,32922,32941,20880,32940,32987,32997,32985,32989,32964,32986,32982,33033,33007,33009,33051,33065,33059,33071,33099,38539,33094,33086,33107,33105,33020,33137,33134,33125,33126,33140,33155,33160,33162,33152,33154,33184,33173,33188,33187,33119,33171,33193,33200,33205,33214,33208,33213,33216,33218,33210,33225,33229,33233,33241,33240,33224,33242,33247,33248,33255,33274,33275,33278,33281,33282,33285,33287,33290,33293,33296,33302,33321,33323,33336,33331,33344,33369,33368,33373,33370,33375,33380,33378,33384,33386,33387,33326,33393,33399,33400,33406,33421,33426,33451,33439,33467,33452,33505,33507,33503,33490,33524,33523,33530,33683,33539,33531,33529,33502,33542,33500,33545,33497,33589,33588,33558,33586,33585,33600,33593,33616,33605,33583,33579,33559,33560,33669,33690,33706,33695,33698,33686,33571,33678,33671,33674,33660,33717,33651,33653,33696,33673,33704,33780,33811,33771,33742,33789,33795,33752,33803,33729,33783,33799,33760,33778,33805,33826,33824,33725,33848,34054,33787,33901,33834,33852,34138,33924,33911,33899,33965,33902,33922,33897,33862,33836,33903,33913,33845,33994,33890,33977,33983,33951,34009,33997,33979,34010,34e3,33985,33990,34006,33953,34081,34047,34036,34071,34072,34092,34079,34069,34068,34044,34112,34147,34136,34120,34113,34306,34123,34133,34176,34212,34184,34193,34186,34216,34157,34196,34203,34282,34183,34204,34167,34174,34192,34249,34234,34255,34233,34256,34261,34269,34277,34268,34297,34314,34323,34315,34302,34298,34310,34338,34330,34352,34367,34381,20053,34388,34399,34407,34417,34451,34467,34473,34474,34443,34444,34486,34479,34500,34502,34480,34505,34851,34475,34516,34526,34537,34540,34527,34523,34543,34578,34566,34568,34560,34563,34555,34577,34569,34573,34553,34570,34612,34623,34615,34619,34597,34601,34586,34656,34655,34680,34636,34638,34676,34647,34664,34670,34649,34643,34659,34666,34821,34722,34719,34690,34735,34763,34749,34752,34768,38614,34731,34756,34739,34759,34758,34747,34799,34802,34784,34831,34829,34814,34806,34807,34830,34770,34833,34838,34837,34850,34849,34865,34870,34873,34855,34875,34884,34882,34898,34905,34910,34914,34923,34945,34942,34974,34933,34941,34997,34930,34946,34967,34962,34990,34969,34978,34957,34980,34992,35007,34993,35011,35012,35028,35032,35033,35037,35065,35074,35068,35060,35048,35058,35076,35084,35082,35091,35139,35102,35109,35114,35115,35137,35140,35131,35126,35128,35148,35101,35168,35166,35174,35172,35181,35178,35183,35188,35191,35198,35203,35208,35210,35219,35224,35233,35241,35238,35244,35247,35250,35258,35261,35263,35264,35290,35292,35293,35303,35316,35320,35331,35350,35344,35340,35355,35357,35365,35382,35393,35419,35410,35398,35400,35452,35437,35436,35426,35461,35458,35460,35496,35489,35473,35493,35494,35482,35491,35524,35533,35522,35546,35563,35571,35559,35556,35569,35604,35552,35554,35575,35550,35547,35596,35591,35610,35553,35606,35600,35607,35616,35635,38827,35622,35627,35646,35624,35649,35660,35663,35662,35657,35670,35675,35674,35691,35679,35692,35695,35700,35709,35712,35724,35726,35730,35731,35734,35737,35738,35898,35905,35903,35912,35916,35918,35920,35925,35938,35948,35960,35962,35970,35977,35973,35978,35981,35982,35988,35964,35992,25117,36013,36010,36029,36018,36019,36014,36022,36040,36033,36068,36067,36058,36093,36090,36091,36100,36101,36106,36103,36111,36109,36112,40782,36115,36045,36116,36118,36199,36205,36209,36211,36225,36249,36290,36286,36282,36303,36314,36310,36300,36315,36299,36330,36331,36319,36323,36348,36360,36361,36351,36381,36382,36368,36383,36418,36405,36400,36404,36426,36423,36425,36428,36432,36424,36441,36452,36448,36394,36451,36437,36470,36466,36476,36481,36487,36485,36484,36491,36490,36499,36497,36500,36505,36522,36513,36524,36528,36550,36529,36542,36549,36552,36555,36571,36579,36604,36603,36587,36606,36618,36613,36629,36626,36633,36627,36636,36639,36635,36620,36646,36659,36667,36665,36677,36674,36670,36684,36681,36678,36686,36695,36700,36706,36707,36708,36764,36767,36771,36781,36783,36791,36826,36837,36834,36842,36847,36999,36852,36869,36857,36858,36881,36885,36897,36877,36894,36886,36875,36903,36918,36917,36921,36856,36943,36944,36945,36946,36878,36937,36926,36950,36952,36958,36968,36975,36982,38568,36978,36994,36989,36993,36992,37002,37001,37007,37032,37039,37041,37045,37090,37092,25160,37083,37122,37138,37145,37170,37168,37194,37206,37208,37219,37221,37225,37235,37234,37259,37257,37250,37282,37291,37295,37290,37301,37300,37306,37312,37313,37321,37323,37328,37334,37343,37345,37339,37372,37365,37366,37406,37375,37396,37420,37397,37393,37470,37463,37445,37449,37476,37448,37525,37439,37451,37456,37532,37526,37523,37531,37466,37583,37561,37559,37609,37647,37626,37700,37678,37657,37666,37658,37667,37690,37685,37691,37724,37728,37756,37742,37718,37808,37804,37805,37780,37817,37846,37847,37864,37861,37848,37827,37853,37840,37832,37860,37914,37908,37907,37891,37895,37904,37942,37931,37941,37921,37946,37953,37970,37956,37979,37984,37986,37982,37994,37417,38e3,38005,38007,38013,37978,38012,38014,38017,38015,38274,38279,38282,38292,38294,38296,38297,38304,38312,38311,38317,38332,38331,38329,38334,38346,28662,38339,38349,38348,38357,38356,38358,38364,38369,38373,38370,38433,38440,38446,38447,38466,38476,38479,38475,38519,38492,38494,38493,38495,38502,38514,38508,38541,38552,38549,38551,38570,38567,38577,38578,38576,38580,38582,38584,38585,38606,38603,38601,38605,35149,38620,38669,38613,38649,38660,38662,38664,38675,38670,38673,38671,38678,38681,38692,38698,38704,38713,38717,38718,38724,38726,38728,38722,38729,38748,38752,38756,38758,38760,21202,38763,38769,38777,38789,38780,38785,38778,38790,38795,38799,38800,38812,38824,38822,38819,38835,38836,38851,38854,38856,38859,38876,38893,40783,38898,31455,38902,38901,38927,38924,38968,38948,38945,38967,38973,38982,38991,38987,39019,39023,39024,39025,39028,39027,39082,39087,39089,39094,39108,39107,39110,39145,39147,39171,39177,39186,39188,39192,39201,39197,39198,39204,39200,39212,39214,39229,39230,39234,39241,39237,39248,39243,39249,39250,39244,39253,39319,39320,39333,39341,39342,39356,39391,39387,39389,39384,39377,39405,39406,39409,39410,39419,39416,39425,39439,39429,39394,39449,39467,39479,39493,39490,39488,39491,39486,39509,39501,39515,39511,39519,39522,39525,39524,39529,39531,39530,39597,39600,39612,39616,39631,39633,39635,39636,39646,39647,39650,39651,39654,39663,39659,39662,39668,39665,39671,39675,39686,39704,39706,39711,39714,39715,39717,39719,39720,39721,39722,39726,39727,39730,39748,39747,39759,39757,39758,39761,39768,39796,39827,39811,39825,39830,39831,39839,39840,39848,39860,39872,39882,39865,39878,39887,39889,39890,39907,39906,39908,39892,39905,39994,39922,39921,39920,39957,39956,39945,39955,39948,39942,39944,39954,39946,39940,39982,39963,39973,39972,39969,39984,40007,39986,40006,39998,40026,40032,40039,40054,40056,40167,40172,40176,40201,40200,40171,40195,40198,40234,40230,40367,40227,40223,40260,40213,40210,40257,40255,40254,40262,40264,40285,40286,40292,40273,40272,40281,40306,40329,40327,40363,40303,40314,40346,40356,40361,40370,40388,40385,40379,40376,40378,40390,40399,40386,40409,40403,40440,40422,40429,40431,40445,40474,40475,40478,40565,40569,40573,40577,40584,40587,40588,40594,40597,40593,40605,40613,40617,40632,40618,40621,38753,40652,40654,40655,40656,40660,40668,40670,40669,40672,40677,40680,40687,40692,40694,40695,40697,40699,40700,40701,40711,40712,30391,40725,40737,40748,40766,40778,40786,40788,40803,40799,40800,40801,40806,40807,40812,40810,40823,40818,40822,40853,40860,40864,22575,27079,36953,29796,20956,29081,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,32394,35100,37704,37512,34012,20425,28859,26161,26824,37625,26363,24389,20008,20193,20220,20224,20227,20281,20310,20370,20362,20378,20372,20429,20544,20514,20479,20510,20550,20592,20546,20628,20724,20696,20810,20836,20893,20926,20972,21013,21148,21158,21184,21211,21248,21255,21284,21362,21395,21426,21469,64014,21660,21642,21673,21759,21894,22361,22373,22444,22472,22471,64015,64016,22686,22706,22795,22867,22875,22877,22883,22948,22970,23382,23488,29999,23512,23532,23582,23718,23738,23797,23847,23891,64017,23874,23917,23992,23993,24016,24353,24372,24423,24503,24542,24669,24709,24714,24798,24789,24864,24818,24849,24887,24880,24984,25107,25254,25589,25696,25757,25806,25934,26112,26133,26171,26121,26158,26142,26148,26213,26199,26201,64018,26227,26265,26272,26290,26303,26362,26382,63785,26470,26555,26706,26560,26625,26692,26831,64019,26984,64020,27032,27106,27184,27243,27206,27251,27262,27362,27364,27606,27711,27740,27782,27759,27866,27908,28039,28015,28054,28076,28111,28152,28146,28156,28217,28252,28199,28220,28351,28552,28597,28661,28677,28679,28712,28805,28843,28943,28932,29020,28998,28999,64021,29121,29182,29361,29374,29476,64022,29559,29629,29641,29654,29667,29650,29703,29685,29734,29738,29737,29742,29794,29833,29855,29953,30063,30338,30364,30366,30363,30374,64023,30534,21167,30753,30798,30820,30842,31024,64024,64025,64026,31124,64027,31131,31441,31463,64028,31467,31646,64029,32072,32092,32183,32160,32214,32338,32583,32673,64030,33537,33634,33663,33735,33782,33864,33972,34131,34137,34155,64031,34224,64032,64033,34823,35061,35346,35383,35449,35495,35518,35551,64034,35574,35667,35711,36080,36084,36114,36214,64035,36559,64036,64037,36967,37086,64038,37141,37159,37338,37335,37342,37357,37358,37348,37349,37382,37392,37386,37434,37440,37436,37454,37465,37457,37433,37479,37543,37495,37496,37607,37591,37593,37584,64039,37589,37600,37587,37669,37665,37627,64040,37662,37631,37661,37634,37744,37719,37796,37830,37854,37880,37937,37957,37960,38290,63964,64041,38557,38575,38707,38715,38723,38733,38735,38737,38741,38999,39013,64042,64043,39207,64044,39326,39502,39641,39644,39797,39794,39823,39857,39867,39936,40304,40299,64045,40473,40657,null,null,8560,8561,8562,8563,8564,8565,8566,8567,8568,8569,65506,65508,65287,65282,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,8560,8561,8562,8563,8564,8565,8566,8567,8568,8569,8544,8545,8546,8547,8548,8549,8550,8551,8552,8553,65506,65508,65287,65282,12849,8470,8481,8757,32394,35100,37704,37512,34012,20425,28859,26161,26824,37625,26363,24389,20008,20193,20220,20224,20227,20281,20310,20370,20362,20378,20372,20429,20544,20514,20479,20510,20550,20592,20546,20628,20724,20696,20810,20836,20893,20926,20972,21013,21148,21158,21184,21211,21248,21255,21284,21362,21395,21426,21469,64014,21660,21642,21673,21759,21894,22361,22373,22444,22472,22471,64015,64016,22686,22706,22795,22867,22875,22877,22883,22948,22970,23382,23488,29999,23512,23532,23582,23718,23738,23797,23847,23891,64017,23874,23917,23992,23993,24016,24353,24372,24423,24503,24542,24669,24709,24714,24798,24789,24864,24818,24849,24887,24880,24984,25107,25254,25589,25696,25757,25806,25934,26112,26133,26171,26121,26158,26142,26148,26213,26199,26201,64018,26227,26265,26272,26290,26303,26362,26382,63785,26470,26555,26706,26560,26625,26692,26831,64019,26984,64020,27032,27106,27184,27243,27206,27251,27262,27362,27364,27606,27711,27740,27782,27759,27866,27908,28039,28015,28054,28076,28111,28152,28146,28156,28217,28252,28199,28220,28351,28552,28597,28661,28677,28679,28712,28805,28843,28943,28932,29020,28998,28999,64021,29121,29182,29361,29374,29476,64022,29559,29629,29641,29654,29667,29650,29703,29685,29734,29738,29737,29742,29794,29833,29855,29953,30063,30338,30364,30366,30363,30374,64023,30534,21167,30753,30798,30820,30842,31024,64024,64025,64026,31124,64027,31131,31441,31463,64028,31467,31646,64029,32072,32092,32183,32160,32214,32338,32583,32673,64030,33537,33634,33663,33735,33782,33864,33972,34131,34137,34155,64031,34224,64032,64033,34823,35061,35346,35383,35449,35495,35518,35551,64034,35574,35667,35711,36080,36084,36114,36214,64035,36559,64036,64037,36967,37086,64038,37141,37159,37338,37335,37342,37357,37358,37348,37349,37382,37392,37386,37434,37440,37436,37454,37465,37457,37433,37479,37543,37495,37496,37607,37591,37593,37584,64039,37589,37600,37587,37669,37665,37627,64040,37662,37631,37661,37634,37744,37719,37796,37830,37854,37880,37937,37957,37960,38290,63964,64041,38557,38575,38707,38715,38723,38733,38735,38737,38741,38999,39013,64042,64043,39207,64044,39326,39502,39641,39644,39797,39794,39823,39857,39867,39936,40304,40299,64045,40473,40657,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null],jis0212:[null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,728,711,184,729,733,175,731,730,65374,900,901,null,null,null,null,null,null,null,null,161,166,191,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,186,170,169,174,8482,164,8470,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,902,904,905,906,938,null,908,null,910,939,null,911,null,null,null,null,940,941,942,943,970,912,972,962,973,971,944,974,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,1026,1027,1028,1029,1030,1031,1032,1033,1034,1035,1036,1038,1039,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,1106,1107,1108,1109,1110,1111,1112,1113,1114,1115,1116,1118,1119,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,198,272,null,294,null,306,null,321,319,null,330,216,338,null,358,222,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,230,273,240,295,305,307,312,322,320,329,331,248,339,223,359,254,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,193,192,196,194,258,461,256,260,197,195,262,264,268,199,266,270,201,200,203,202,282,278,274,280,null,284,286,290,288,292,205,204,207,206,463,304,298,302,296,308,310,313,317,315,323,327,325,209,211,210,214,212,465,336,332,213,340,344,342,346,348,352,350,356,354,218,217,220,219,364,467,368,362,370,366,360,471,475,473,469,372,221,376,374,377,381,379,null,null,null,null,null,null,null,225,224,228,226,259,462,257,261,229,227,263,265,269,231,267,271,233,232,235,234,283,279,275,281,501,285,287,null,289,293,237,236,239,238,464,null,299,303,297,309,311,314,318,316,324,328,326,241,243,242,246,244,466,337,333,245,341,345,343,347,349,353,351,357,355,250,249,252,251,365,468,369,363,371,367,361,472,476,474,470,373,253,255,375,378,382,380,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,19970,19972,19973,19980,19986,19999,20003,20004,20008,20011,20014,20015,20016,20021,20032,20033,20036,20039,20049,20058,20060,20067,20072,20073,20084,20085,20089,20095,20109,20118,20119,20125,20143,20153,20163,20176,20186,20187,20192,20193,20194,20200,20207,20209,20211,20213,20221,20222,20223,20224,20226,20227,20232,20235,20236,20242,20245,20246,20247,20249,20270,20273,20320,20275,20277,20279,20281,20283,20286,20288,20290,20296,20297,20299,20300,20306,20308,20310,20312,20319,20323,20330,20332,20334,20337,20343,20344,20345,20346,20349,20350,20353,20354,20356,20357,20361,20362,20364,20366,20368,20370,20371,20372,20375,20377,20378,20382,20383,20402,20407,20409,20411,20412,20413,20414,20416,20417,20421,20422,20424,20425,20427,20428,20429,20431,20434,20444,20448,20450,20464,20466,20476,20477,20479,20480,20481,20484,20487,20490,20492,20494,20496,20499,20503,20504,20507,20508,20509,20510,20514,20519,20526,20528,20530,20531,20533,20544,20545,20546,20549,20550,20554,20556,20558,20561,20562,20563,20567,20569,20575,20576,20578,20579,20582,20583,20586,20589,20592,20593,20539,20609,20611,20612,20614,20618,20622,20623,20624,20626,20627,20628,20630,20635,20636,20638,20639,20640,20641,20642,20650,20655,20656,20665,20666,20669,20672,20675,20676,20679,20684,20686,20688,20691,20692,20696,20700,20701,20703,20706,20708,20710,20712,20713,20719,20721,20726,20730,20734,20739,20742,20743,20744,20747,20748,20749,20750,20722,20752,20759,20761,20763,20764,20765,20766,20771,20775,20776,20780,20781,20783,20785,20787,20788,20789,20792,20793,20802,20810,20815,20819,20821,20823,20824,20831,20836,20838,20862,20867,20868,20875,20878,20888,20893,20897,20899,20909,20920,20922,20924,20926,20927,20930,20936,20943,20945,20946,20947,20949,20952,20958,20962,20965,20974,20978,20979,20980,20983,20993,20994,20997,21010,21011,21013,21014,21016,21026,21032,21041,21042,21045,21052,21061,21065,21077,21079,21080,21082,21084,21087,21088,21089,21094,21102,21111,21112,21113,21120,21122,21125,21130,21132,21139,21141,21142,21143,21144,21146,21148,21156,21157,21158,21159,21167,21168,21174,21175,21176,21178,21179,21181,21184,21188,21190,21192,21196,21199,21201,21204,21206,21211,21212,21217,21221,21224,21225,21226,21228,21232,21233,21236,21238,21239,21248,21251,21258,21259,21260,21265,21267,21272,21275,21276,21278,21279,21285,21287,21288,21289,21291,21292,21293,21296,21298,21301,21308,21309,21310,21314,21324,21323,21337,21339,21345,21347,21349,21356,21357,21362,21369,21374,21379,21383,21384,21390,21395,21396,21401,21405,21409,21412,21418,21419,21423,21426,21428,21429,21431,21432,21434,21437,21440,21445,21455,21458,21459,21461,21466,21469,21470,21472,21478,21479,21493,21506,21523,21530,21537,21543,21544,21546,21551,21553,21556,21557,21571,21572,21575,21581,21583,21598,21602,21604,21606,21607,21609,21611,21613,21614,21620,21631,21633,21635,21637,21640,21641,21645,21649,21653,21654,21660,21663,21665,21670,21671,21673,21674,21677,21678,21681,21687,21689,21690,21691,21695,21702,21706,21709,21710,21728,21738,21740,21743,21750,21756,21758,21759,21760,21761,21765,21768,21769,21772,21773,21774,21781,21802,21803,21810,21813,21814,21819,21820,21821,21825,21831,21833,21834,21837,21840,21841,21848,21850,21851,21854,21856,21857,21860,21862,21887,21889,21890,21894,21896,21902,21903,21905,21906,21907,21908,21911,21923,21924,21933,21938,21951,21953,21955,21958,21961,21963,21964,21966,21969,21970,21971,21975,21976,21979,21982,21986,21993,22006,22015,22021,22024,22026,22029,22030,22031,22032,22033,22034,22041,22060,22064,22067,22069,22071,22073,22075,22076,22077,22079,22080,22081,22083,22084,22086,22089,22091,22093,22095,22100,22110,22112,22113,22114,22115,22118,22121,22125,22127,22129,22130,22133,22148,22149,22152,22155,22156,22165,22169,22170,22173,22174,22175,22182,22183,22184,22185,22187,22188,22189,22193,22195,22199,22206,22213,22217,22218,22219,22223,22224,22220,22221,22233,22236,22237,22239,22241,22244,22245,22246,22247,22248,22257,22251,22253,22262,22263,22273,22274,22279,22282,22284,22289,22293,22298,22299,22301,22304,22306,22307,22308,22309,22313,22314,22316,22318,22319,22323,22324,22333,22334,22335,22341,22342,22348,22349,22354,22370,22373,22375,22376,22379,22381,22382,22383,22384,22385,22387,22388,22389,22391,22393,22394,22395,22396,22398,22401,22403,22412,22420,22423,22425,22426,22428,22429,22430,22431,22433,22421,22439,22440,22441,22444,22456,22461,22471,22472,22476,22479,22485,22493,22494,22500,22502,22503,22505,22509,22512,22517,22518,22520,22525,22526,22527,22531,22532,22536,22537,22497,22540,22541,22555,22558,22559,22560,22566,22567,22573,22578,22585,22591,22601,22604,22605,22607,22608,22613,22623,22625,22628,22631,22632,22648,22652,22655,22656,22657,22663,22664,22665,22666,22668,22669,22671,22672,22676,22678,22685,22688,22689,22690,22694,22697,22705,22706,22724,22716,22722,22728,22733,22734,22736,22738,22740,22742,22746,22749,22753,22754,22761,22771,22789,22790,22795,22796,22802,22803,22804,34369,22813,22817,22819,22820,22824,22831,22832,22835,22837,22838,22847,22851,22854,22866,22867,22873,22875,22877,22878,22879,22881,22883,22891,22893,22895,22898,22901,22902,22905,22907,22908,22923,22924,22926,22930,22933,22935,22943,22948,22951,22957,22958,22959,22960,22963,22967,22970,22972,22977,22979,22980,22984,22986,22989,22994,23005,23006,23007,23011,23012,23015,23022,23023,23025,23026,23028,23031,23040,23044,23052,23053,23054,23058,23059,23070,23075,23076,23079,23080,23082,23085,23088,23108,23109,23111,23112,23116,23120,23125,23134,23139,23141,23143,23149,23159,23162,23163,23166,23179,23184,23187,23190,23193,23196,23198,23199,23200,23202,23207,23212,23217,23218,23219,23221,23224,23226,23227,23231,23236,23238,23240,23247,23258,23260,23264,23269,23274,23278,23285,23286,23293,23296,23297,23304,23319,23348,23321,23323,23325,23329,23333,23341,23352,23361,23371,23372,23378,23382,23390,23400,23406,23407,23420,23421,23422,23423,23425,23428,23430,23434,23438,23440,23441,23443,23444,23446,23464,23465,23468,23469,23471,23473,23474,23479,23482,23484,23488,23489,23501,23503,23510,23511,23512,23513,23514,23520,23535,23537,23540,23549,23564,23575,23582,23583,23587,23590,23593,23595,23596,23598,23600,23602,23605,23606,23641,23642,23644,23650,23651,23655,23656,23657,23661,23664,23668,23669,23674,23675,23676,23677,23687,23688,23690,23695,23698,23709,23711,23712,23714,23715,23718,23722,23730,23732,23733,23738,23753,23755,23762,23773,23767,23790,23793,23794,23796,23809,23814,23821,23826,23851,23843,23844,23846,23847,23857,23860,23865,23869,23871,23874,23875,23878,23880,23893,23889,23897,23882,23903,23904,23905,23906,23908,23914,23917,23920,23929,23930,23934,23935,23937,23939,23944,23946,23954,23955,23956,23957,23961,23963,23967,23968,23975,23979,23984,23988,23992,23993,24003,24007,24011,24016,24014,24024,24025,24032,24036,24041,24056,24057,24064,24071,24077,24082,24084,24085,24088,24095,24096,24110,24104,24114,24117,24126,24139,24144,24137,24145,24150,24152,24155,24156,24158,24168,24170,24171,24172,24173,24174,24176,24192,24203,24206,24226,24228,24229,24232,24234,24236,24241,24243,24253,24254,24255,24262,24268,24267,24270,24273,24274,24276,24277,24284,24286,24293,24299,24322,24326,24327,24328,24334,24345,24348,24349,24353,24354,24355,24356,24360,24363,24364,24366,24368,24372,24374,24379,24381,24383,24384,24388,24389,24391,24397,24400,24404,24408,24411,24416,24419,24420,24423,24431,24434,24436,24437,24440,24442,24445,24446,24457,24461,24463,24470,24476,24477,24482,24487,24491,24484,24492,24495,24496,24497,24504,24516,24519,24520,24521,24523,24528,24529,24530,24531,24532,24542,24545,24546,24552,24553,24554,24556,24557,24558,24559,24562,24563,24566,24570,24572,24583,24586,24589,24595,24596,24599,24600,24602,24607,24612,24621,24627,24629,24640,24647,24648,24649,24652,24657,24660,24662,24663,24669,24673,24679,24689,24702,24703,24706,24710,24712,24714,24718,24721,24723,24725,24728,24733,24734,24738,24740,24741,24744,24752,24753,24759,24763,24766,24770,24772,24776,24777,24778,24779,24782,24783,24788,24789,24793,24795,24797,24798,24802,24805,24818,24821,24824,24828,24829,24834,24839,24842,24844,24848,24849,24850,24851,24852,24854,24855,24857,24860,24862,24866,24874,24875,24880,24881,24885,24886,24887,24889,24897,24901,24902,24905,24926,24928,24940,24946,24952,24955,24956,24959,24960,24961,24963,24964,24971,24973,24978,24979,24983,24984,24988,24989,24991,24992,24997,25e3,25002,25005,25016,25017,25020,25024,25025,25026,25038,25039,25045,25052,25053,25054,25055,25057,25058,25063,25065,25061,25068,25069,25071,25089,25091,25092,25095,25107,25109,25116,25120,25122,25123,25127,25129,25131,25145,25149,25154,25155,25156,25158,25164,25168,25169,25170,25172,25174,25178,25180,25188,25197,25199,25203,25210,25213,25229,25230,25231,25232,25254,25256,25267,25270,25271,25274,25278,25279,25284,25294,25301,25302,25306,25322,25330,25332,25340,25341,25347,25348,25354,25355,25357,25360,25363,25366,25368,25385,25386,25389,25397,25398,25401,25404,25409,25410,25411,25412,25414,25418,25419,25422,25426,25427,25428,25432,25435,25445,25446,25452,25453,25457,25460,25461,25464,25468,25469,25471,25474,25476,25479,25482,25488,25492,25493,25497,25498,25502,25508,25510,25517,25518,25519,25533,25537,25541,25544,25550,25553,25555,25556,25557,25564,25568,25573,25578,25580,25586,25587,25589,25592,25593,25609,25610,25616,25618,25620,25624,25630,25632,25634,25636,25637,25641,25642,25647,25648,25653,25661,25663,25675,25679,25681,25682,25683,25684,25690,25691,25692,25693,25695,25696,25697,25699,25709,25715,25716,25723,25725,25733,25735,25743,25744,25745,25752,25753,25755,25757,25759,25761,25763,25766,25768,25772,25779,25789,25790,25791,25796,25801,25802,25803,25804,25806,25808,25809,25813,25815,25828,25829,25833,25834,25837,25840,25845,25847,25851,25855,25857,25860,25864,25865,25866,25871,25875,25876,25878,25881,25883,25886,25887,25890,25894,25897,25902,25905,25914,25916,25917,25923,25927,25929,25936,25938,25940,25951,25952,25959,25963,25978,25981,25985,25989,25994,26002,26005,26008,26013,26016,26019,26022,26030,26034,26035,26036,26047,26050,26056,26057,26062,26064,26068,26070,26072,26079,26096,26098,26100,26101,26105,26110,26111,26112,26116,26120,26121,26125,26129,26130,26133,26134,26141,26142,26145,26146,26147,26148,26150,26153,26154,26155,26156,26158,26160,26161,26163,26169,26167,26176,26181,26182,26186,26188,26193,26190,26199,26200,26201,26203,26204,26208,26209,26363,26218,26219,26220,26238,26227,26229,26239,26231,26232,26233,26235,26240,26236,26251,26252,26253,26256,26258,26265,26266,26267,26268,26271,26272,26276,26285,26289,26290,26293,26299,26303,26304,26306,26307,26312,26316,26318,26319,26324,26331,26335,26344,26347,26348,26350,26362,26373,26375,26382,26387,26393,26396,26400,26402,26419,26430,26437,26439,26440,26444,26452,26453,26461,26470,26476,26478,26484,26486,26491,26497,26500,26510,26511,26513,26515,26518,26520,26521,26523,26544,26545,26546,26549,26555,26556,26557,26617,26560,26562,26563,26565,26568,26569,26578,26583,26585,26588,26593,26598,26608,26610,26614,26615,26706,26644,26649,26653,26655,26664,26663,26668,26669,26671,26672,26673,26675,26683,26687,26692,26693,26698,26700,26709,26711,26712,26715,26731,26734,26735,26736,26737,26738,26741,26745,26746,26747,26748,26754,26756,26758,26760,26774,26776,26778,26780,26785,26787,26789,26793,26794,26798,26802,26811,26821,26824,26828,26831,26832,26833,26835,26838,26841,26844,26845,26853,26856,26858,26859,26860,26861,26864,26865,26869,26870,26875,26876,26877,26886,26889,26890,26896,26897,26899,26902,26903,26929,26931,26933,26936,26939,26946,26949,26953,26958,26967,26971,26979,26980,26981,26982,26984,26985,26988,26992,26993,26994,27002,27003,27007,27008,27021,27026,27030,27032,27041,27045,27046,27048,27051,27053,27055,27063,27064,27066,27068,27077,27080,27089,27094,27095,27106,27109,27118,27119,27121,27123,27125,27134,27136,27137,27139,27151,27153,27157,27162,27165,27168,27172,27176,27184,27186,27188,27191,27195,27198,27199,27205,27206,27209,27210,27214,27216,27217,27218,27221,27222,27227,27236,27239,27242,27249,27251,27262,27265,27267,27270,27271,27273,27275,27281,27291,27293,27294,27295,27301,27307,27311,27312,27313,27316,27325,27326,27327,27334,27337,27336,27340,27344,27348,27349,27350,27356,27357,27364,27367,27372,27376,27377,27378,27388,27389,27394,27395,27398,27399,27401,27407,27408,27409,27415,27419,27422,27428,27432,27435,27436,27439,27445,27446,27451,27455,27462,27466,27469,27474,27478,27480,27485,27488,27495,27499,27502,27504,27509,27517,27518,27522,27525,27543,27547,27551,27552,27554,27555,27560,27561,27564,27565,27566,27568,27576,27577,27581,27582,27587,27588,27593,27596,27606,27610,27617,27619,27622,27623,27630,27633,27639,27641,27647,27650,27652,27653,27657,27661,27662,27664,27666,27673,27679,27686,27687,27688,27692,27694,27699,27701,27702,27706,27707,27711,27722,27723,27725,27727,27730,27732,27737,27739,27740,27755,27757,27759,27764,27766,27768,27769,27771,27781,27782,27783,27785,27796,27797,27799,27800,27804,27807,27824,27826,27828,27842,27846,27853,27855,27856,27857,27858,27860,27862,27866,27868,27872,27879,27881,27883,27884,27886,27890,27892,27908,27911,27914,27918,27919,27921,27923,27930,27942,27943,27944,27751,27950,27951,27953,27961,27964,27967,27991,27998,27999,28001,28005,28007,28015,28016,28028,28034,28039,28049,28050,28052,28054,28055,28056,28074,28076,28084,28087,28089,28093,28095,28100,28104,28106,28110,28111,28118,28123,28125,28127,28128,28130,28133,28137,28143,28144,28148,28150,28156,28160,28164,28190,28194,28199,28210,28214,28217,28219,28220,28228,28229,28232,28233,28235,28239,28241,28242,28243,28244,28247,28252,28253,28254,28258,28259,28264,28275,28283,28285,28301,28307,28313,28320,28327,28333,28334,28337,28339,28347,28351,28352,28353,28355,28359,28360,28362,28365,28366,28367,28395,28397,28398,28409,28411,28413,28420,28424,28426,28428,28429,28438,28440,28442,28443,28454,28457,28458,28463,28464,28467,28470,28475,28476,28461,28495,28497,28498,28499,28503,28505,28506,28509,28510,28513,28514,28520,28524,28541,28542,28547,28551,28552,28555,28556,28557,28560,28562,28563,28564,28566,28570,28575,28576,28581,28582,28583,28584,28590,28591,28592,28597,28598,28604,28613,28615,28616,28618,28634,28638,28648,28649,28656,28661,28665,28668,28669,28672,28677,28678,28679,28685,28695,28704,28707,28719,28724,28727,28729,28732,28739,28740,28744,28745,28746,28747,28756,28757,28765,28766,28750,28772,28773,28780,28782,28789,28790,28798,28801,28805,28806,28820,28821,28822,28823,28824,28827,28836,28843,28848,28849,28852,28855,28874,28881,28883,28884,28885,28886,28888,28892,28900,28922,28931,28932,28933,28934,28935,28939,28940,28943,28958,28960,28971,28973,28975,28976,28977,28984,28993,28997,28998,28999,29002,29003,29008,29010,29015,29018,29020,29022,29024,29032,29049,29056,29061,29063,29068,29074,29082,29083,29088,29090,29103,29104,29106,29107,29114,29119,29120,29121,29124,29131,29132,29139,29142,29145,29146,29148,29176,29182,29184,29191,29192,29193,29203,29207,29210,29213,29215,29220,29227,29231,29236,29240,29241,29249,29250,29251,29253,29262,29263,29264,29267,29269,29270,29274,29276,29278,29280,29283,29288,29291,29294,29295,29297,29303,29304,29307,29308,29311,29316,29321,29325,29326,29331,29339,29352,29357,29358,29361,29364,29374,29377,29383,29385,29388,29397,29398,29400,29407,29413,29427,29428,29434,29435,29438,29442,29444,29445,29447,29451,29453,29458,29459,29464,29465,29470,29474,29476,29479,29480,29484,29489,29490,29493,29498,29499,29501,29507,29517,29520,29522,29526,29528,29533,29534,29535,29536,29542,29543,29545,29547,29548,29550,29551,29553,29559,29561,29564,29568,29569,29571,29573,29574,29582,29584,29587,29589,29591,29592,29596,29598,29599,29600,29602,29605,29606,29610,29611,29613,29621,29623,29625,29628,29629,29631,29637,29638,29641,29643,29644,29647,29650,29651,29654,29657,29661,29665,29667,29670,29671,29673,29684,29685,29687,29689,29690,29691,29693,29695,29696,29697,29700,29703,29706,29713,29722,29723,29732,29734,29736,29737,29738,29739,29740,29741,29742,29743,29744,29745,29753,29760,29763,29764,29766,29767,29771,29773,29777,29778,29783,29789,29794,29798,29799,29800,29803,29805,29806,29809,29810,29824,29825,29829,29830,29831,29833,29839,29840,29841,29842,29848,29849,29850,29852,29855,29856,29857,29859,29862,29864,29865,29866,29867,29870,29871,29873,29874,29877,29881,29883,29887,29896,29897,29900,29904,29907,29912,29914,29915,29918,29919,29924,29928,29930,29931,29935,29940,29946,29947,29948,29951,29958,29970,29974,29975,29984,29985,29988,29991,29993,29994,29999,30006,30009,30013,30014,30015,30016,30019,30023,30024,30030,30032,30034,30039,30046,30047,30049,30063,30065,30073,30074,30075,30076,30077,30078,30081,30085,30096,30098,30099,30101,30105,30108,30114,30116,30132,30138,30143,30144,30145,30148,30150,30156,30158,30159,30167,30172,30175,30176,30177,30180,30183,30188,30190,30191,30193,30201,30208,30210,30211,30212,30215,30216,30218,30220,30223,30226,30227,30229,30230,30233,30235,30236,30237,30238,30243,30245,30246,30249,30253,30258,30259,30261,30264,30265,30266,30268,30282,30272,30273,30275,30276,30277,30281,30283,30293,30297,30303,30308,30309,30317,30318,30319,30321,30324,30337,30341,30348,30349,30357,30363,30364,30365,30367,30368,30370,30371,30372,30373,30374,30375,30376,30378,30381,30397,30401,30405,30409,30411,30412,30414,30420,30425,30432,30438,30440,30444,30448,30449,30454,30457,30460,30464,30470,30474,30478,30482,30484,30485,30487,30489,30490,30492,30498,30504,30509,30510,30511,30516,30517,30518,30521,30525,30526,30530,30533,30534,30538,30541,30542,30543,30546,30550,30551,30556,30558,30559,30560,30562,30564,30567,30570,30572,30576,30578,30579,30580,30586,30589,30592,30596,30604,30605,30612,30613,30614,30618,30623,30626,30631,30634,30638,30639,30641,30645,30654,30659,30665,30673,30674,30677,30681,30686,30687,30688,30692,30694,30698,30700,30704,30705,30708,30712,30715,30725,30726,30729,30733,30734,30737,30749,30753,30754,30755,30765,30766,30768,30773,30775,30787,30788,30791,30792,30796,30798,30802,30812,30814,30816,30817,30819,30820,30824,30826,30830,30842,30846,30858,30863,30868,30872,30881,30877,30878,30879,30884,30888,30892,30893,30896,30897,30898,30899,30907,30909,30911,30919,30920,30921,30924,30926,30930,30931,30933,30934,30948,30939,30943,30944,30945,30950,30954,30962,30963,30976,30966,30967,30970,30971,30975,30982,30988,30992,31002,31004,31006,31007,31008,31013,31015,31017,31021,31025,31028,31029,31035,31037,31039,31044,31045,31046,31050,31051,31055,31057,31060,31064,31067,31068,31079,31081,31083,31090,31097,31099,31100,31102,31115,31116,31121,31123,31124,31125,31126,31128,31131,31132,31137,31144,31145,31147,31151,31153,31156,31160,31163,31170,31172,31175,31176,31178,31183,31188,31190,31194,31197,31198,31200,31202,31205,31210,31211,31213,31217,31224,31228,31234,31235,31239,31241,31242,31244,31249,31253,31259,31262,31265,31271,31275,31277,31279,31280,31284,31285,31288,31289,31290,31300,31301,31303,31304,31308,31317,31318,31321,31324,31325,31327,31328,31333,31335,31338,31341,31349,31352,31358,31360,31362,31365,31366,31370,31371,31376,31377,31380,31390,31392,31395,31404,31411,31413,31417,31419,31420,31430,31433,31436,31438,31441,31451,31464,31465,31467,31468,31473,31476,31483,31485,31486,31495,31508,31519,31523,31527,31529,31530,31531,31533,31534,31535,31536,31537,31540,31549,31551,31552,31553,31559,31566,31573,31584,31588,31590,31593,31594,31597,31599,31602,31603,31607,31620,31625,31630,31632,31633,31638,31643,31646,31648,31653,31660,31663,31664,31666,31669,31670,31674,31675,31676,31677,31682,31685,31688,31690,31700,31702,31703,31705,31706,31707,31720,31722,31730,31732,31733,31736,31737,31738,31740,31742,31745,31746,31747,31748,31750,31753,31755,31756,31758,31759,31769,31771,31776,31781,31782,31784,31788,31793,31795,31796,31798,31801,31802,31814,31818,31829,31825,31826,31827,31833,31834,31835,31836,31837,31838,31841,31843,31847,31849,31853,31854,31856,31858,31865,31868,31869,31878,31879,31887,31892,31902,31904,31910,31920,31926,31927,31930,31931,31932,31935,31940,31943,31944,31945,31949,31951,31955,31956,31957,31959,31961,31962,31965,31974,31977,31979,31989,32003,32007,32008,32009,32015,32017,32018,32019,32022,32029,32030,32035,32038,32042,32045,32049,32060,32061,32062,32064,32065,32071,32072,32077,32081,32083,32087,32089,32090,32092,32093,32101,32103,32106,32112,32120,32122,32123,32127,32129,32130,32131,32133,32134,32136,32139,32140,32141,32145,32150,32151,32157,32158,32166,32167,32170,32179,32182,32183,32185,32194,32195,32196,32197,32198,32204,32205,32206,32215,32217,32256,32226,32229,32230,32234,32235,32237,32241,32245,32246,32249,32250,32264,32272,32273,32277,32279,32284,32285,32288,32295,32296,32300,32301,32303,32307,32310,32319,32324,32325,32327,32334,32336,32338,32344,32351,32353,32354,32357,32363,32366,32367,32371,32376,32382,32385,32390,32391,32394,32397,32401,32405,32408,32410,32413,32414,32572,32571,32573,32574,32575,32579,32580,32583,32591,32594,32595,32603,32604,32605,32609,32611,32612,32613,32614,32621,32625,32637,32638,32639,32640,32651,32653,32655,32656,32657,32662,32663,32668,32673,32674,32678,32682,32685,32692,32700,32703,32704,32707,32712,32718,32719,32731,32735,32739,32741,32744,32748,32750,32751,32754,32762,32765,32766,32767,32775,32776,32778,32781,32782,32783,32785,32787,32788,32790,32797,32798,32799,32800,32804,32806,32812,32814,32816,32820,32821,32823,32825,32826,32828,32830,32832,32836,32864,32868,32870,32877,32881,32885,32897,32904,32910,32924,32926,32934,32935,32939,32952,32953,32968,32973,32975,32978,32980,32981,32983,32984,32992,33005,33006,33008,33010,33011,33014,33017,33018,33022,33027,33035,33046,33047,33048,33052,33054,33056,33060,33063,33068,33072,33077,33082,33084,33093,33095,33098,33100,33106,33111,33120,33121,33127,33128,33129,33133,33135,33143,33153,33168,33156,33157,33158,33163,33166,33174,33176,33179,33182,33186,33198,33202,33204,33211,33227,33219,33221,33226,33230,33231,33237,33239,33243,33245,33246,33249,33252,33259,33260,33264,33265,33266,33269,33270,33272,33273,33277,33279,33280,33283,33295,33299,33300,33305,33306,33309,33313,33314,33320,33330,33332,33338,33347,33348,33349,33350,33355,33358,33359,33361,33366,33372,33376,33379,33383,33389,33396,33403,33405,33407,33408,33409,33411,33412,33415,33417,33418,33422,33425,33428,33430,33432,33434,33435,33440,33441,33443,33444,33447,33448,33449,33450,33454,33456,33458,33460,33463,33466,33468,33470,33471,33478,33488,33493,33498,33504,33506,33508,33512,33514,33517,33519,33526,33527,33533,33534,33536,33537,33543,33544,33546,33547,33620,33563,33565,33566,33567,33569,33570,33580,33581,33582,33584,33587,33591,33594,33596,33597,33602,33603,33604,33607,33613,33614,33617,33621,33622,33623,33648,33656,33661,33663,33664,33666,33668,33670,33677,33682,33684,33685,33688,33689,33691,33692,33693,33702,33703,33705,33708,33726,33727,33728,33735,33737,33743,33744,33745,33748,33757,33619,33768,33770,33782,33784,33785,33788,33793,33798,33802,33807,33809,33813,33817,33709,33839,33849,33861,33863,33864,33866,33869,33871,33873,33874,33878,33880,33881,33882,33884,33888,33892,33893,33895,33898,33904,33907,33908,33910,33912,33916,33917,33921,33925,33938,33939,33941,33950,33958,33960,33961,33962,33967,33969,33972,33978,33981,33982,33984,33986,33991,33992,33996,33999,34003,34012,34023,34026,34031,34032,34033,34034,34039,34098,34042,34043,34045,34050,34051,34055,34060,34062,34064,34076,34078,34082,34083,34084,34085,34087,34090,34091,34095,34099,34100,34102,34111,34118,34127,34128,34129,34130,34131,34134,34137,34140,34141,34142,34143,34144,34145,34146,34148,34155,34159,34169,34170,34171,34173,34175,34177,34181,34182,34185,34187,34188,34191,34195,34200,34205,34207,34208,34210,34213,34215,34228,34230,34231,34232,34236,34237,34238,34239,34242,34247,34250,34251,34254,34221,34264,34266,34271,34272,34278,34280,34285,34291,34294,34300,34303,34304,34308,34309,34317,34318,34320,34321,34322,34328,34329,34331,34334,34337,34343,34345,34358,34360,34362,34364,34365,34368,34370,34374,34386,34387,34390,34391,34392,34393,34397,34400,34401,34402,34403,34404,34409,34412,34415,34421,34422,34423,34426,34445,34449,34454,34456,34458,34460,34465,34470,34471,34472,34477,34481,34483,34484,34485,34487,34488,34489,34495,34496,34497,34499,34501,34513,34514,34517,34519,34522,34524,34528,34531,34533,34535,34440,34554,34556,34557,34564,34565,34567,34571,34574,34575,34576,34579,34580,34585,34590,34591,34593,34595,34600,34606,34607,34609,34610,34617,34618,34620,34621,34622,34624,34627,34629,34637,34648,34653,34657,34660,34661,34671,34673,34674,34683,34691,34692,34693,34694,34695,34696,34697,34699,34700,34704,34707,34709,34711,34712,34713,34718,34720,34723,34727,34732,34733,34734,34737,34741,34750,34751,34753,34760,34761,34762,34766,34773,34774,34777,34778,34780,34783,34786,34787,34788,34794,34795,34797,34801,34803,34808,34810,34815,34817,34819,34822,34825,34826,34827,34832,34841,34834,34835,34836,34840,34842,34843,34844,34846,34847,34856,34861,34862,34864,34866,34869,34874,34876,34881,34883,34885,34888,34889,34890,34891,34894,34897,34901,34902,34904,34906,34908,34911,34912,34916,34921,34929,34937,34939,34944,34968,34970,34971,34972,34975,34976,34984,34986,35002,35005,35006,35008,35018,35019,35020,35021,35022,35025,35026,35027,35035,35038,35047,35055,35056,35057,35061,35063,35073,35078,35085,35086,35087,35093,35094,35096,35097,35098,35100,35104,35110,35111,35112,35120,35121,35122,35125,35129,35130,35134,35136,35138,35141,35142,35145,35151,35154,35159,35162,35163,35164,35169,35170,35171,35179,35182,35184,35187,35189,35194,35195,35196,35197,35209,35213,35216,35220,35221,35227,35228,35231,35232,35237,35248,35252,35253,35254,35255,35260,35284,35285,35286,35287,35288,35301,35305,35307,35309,35313,35315,35318,35321,35325,35327,35332,35333,35335,35343,35345,35346,35348,35349,35358,35360,35362,35364,35366,35371,35372,35375,35381,35383,35389,35390,35392,35395,35397,35399,35401,35405,35406,35411,35414,35415,35416,35420,35421,35425,35429,35431,35445,35446,35447,35449,35450,35451,35454,35455,35456,35459,35462,35467,35471,35472,35474,35478,35479,35481,35487,35495,35497,35502,35503,35507,35510,35511,35515,35518,35523,35526,35528,35529,35530,35537,35539,35540,35541,35543,35549,35551,35564,35568,35572,35573,35574,35580,35583,35589,35590,35595,35601,35612,35614,35615,35594,35629,35632,35639,35644,35650,35651,35652,35653,35654,35656,35666,35667,35668,35673,35661,35678,35683,35693,35702,35704,35705,35708,35710,35713,35716,35717,35723,35725,35727,35732,35733,35740,35742,35743,35896,35897,35901,35902,35909,35911,35913,35915,35919,35921,35923,35924,35927,35928,35931,35933,35929,35939,35940,35942,35944,35945,35949,35955,35957,35958,35963,35966,35974,35975,35979,35984,35986,35987,35993,35995,35996,36004,36025,36026,36037,36038,36041,36043,36047,36054,36053,36057,36061,36065,36072,36076,36079,36080,36082,36085,36087,36088,36094,36095,36097,36099,36105,36114,36119,36123,36197,36201,36204,36206,36223,36226,36228,36232,36237,36240,36241,36245,36254,36255,36256,36262,36267,36268,36271,36274,36277,36279,36281,36283,36288,36293,36294,36295,36296,36298,36302,36305,36308,36309,36311,36313,36324,36325,36327,36332,36336,36284,36337,36338,36340,36349,36353,36356,36357,36358,36363,36369,36372,36374,36384,36385,36386,36387,36390,36391,36401,36403,36406,36407,36408,36409,36413,36416,36417,36427,36429,36430,36431,36436,36443,36444,36445,36446,36449,36450,36457,36460,36461,36463,36464,36465,36473,36474,36475,36482,36483,36489,36496,36498,36501,36506,36507,36509,36510,36514,36519,36521,36525,36526,36531,36533,36538,36539,36544,36545,36547,36548,36551,36559,36561,36564,36572,36584,36590,36592,36593,36599,36601,36602,36589,36608,36610,36615,36616,36623,36624,36630,36631,36632,36638,36640,36641,36643,36645,36647,36648,36652,36653,36654,36660,36661,36662,36663,36666,36672,36673,36675,36679,36687,36689,36690,36691,36692,36693,36696,36701,36702,36709,36765,36768,36769,36772,36773,36774,36789,36790,36792,36798,36800,36801,36806,36810,36811,36813,36816,36818,36819,36821,36832,36835,36836,36840,36846,36849,36853,36854,36859,36862,36866,36868,36872,36876,36888,36891,36904,36905,36911,36906,36908,36909,36915,36916,36919,36927,36931,36932,36940,36955,36957,36962,36966,36967,36972,36976,36980,36985,36997,37e3,37003,37004,37006,37008,37013,37015,37016,37017,37019,37024,37025,37026,37029,37040,37042,37043,37044,37046,37053,37068,37054,37059,37060,37061,37063,37064,37077,37079,37080,37081,37084,37085,37087,37093,37074,37110,37099,37103,37104,37108,37118,37119,37120,37124,37125,37126,37128,37133,37136,37140,37142,37143,37144,37146,37148,37150,37152,37157,37154,37155,37159,37161,37166,37167,37169,37172,37174,37175,37177,37178,37180,37181,37187,37191,37192,37199,37203,37207,37209,37210,37211,37217,37220,37223,37229,37236,37241,37242,37243,37249,37251,37253,37254,37258,37262,37265,37267,37268,37269,37272,37278,37281,37286,37288,37292,37293,37294,37296,37297,37298,37299,37302,37307,37308,37309,37311,37314,37315,37317,37331,37332,37335,37337,37338,37342,37348,37349,37353,37354,37356,37357,37358,37359,37360,37361,37367,37369,37371,37373,37376,37377,37380,37381,37382,37383,37385,37386,37388,37392,37394,37395,37398,37400,37404,37405,37411,37412,37413,37414,37416,37422,37423,37424,37427,37429,37430,37432,37433,37434,37436,37438,37440,37442,37443,37446,37447,37450,37453,37454,37455,37457,37464,37465,37468,37469,37472,37473,37477,37479,37480,37481,37486,37487,37488,37493,37494,37495,37496,37497,37499,37500,37501,37503,37512,37513,37514,37517,37518,37522,37527,37529,37535,37536,37540,37541,37543,37544,37547,37551,37554,37558,37560,37562,37563,37564,37565,37567,37568,37569,37570,37571,37573,37574,37575,37576,37579,37580,37581,37582,37584,37587,37589,37591,37592,37593,37596,37597,37599,37600,37601,37603,37605,37607,37608,37612,37614,37616,37625,37627,37631,37632,37634,37640,37645,37649,37652,37653,37660,37661,37662,37663,37665,37668,37669,37671,37673,37674,37683,37684,37686,37687,37703,37704,37705,37712,37713,37714,37717,37719,37720,37722,37726,37732,37733,37735,37737,37738,37741,37743,37744,37745,37747,37748,37750,37754,37757,37759,37760,37761,37762,37768,37770,37771,37773,37775,37778,37781,37784,37787,37790,37793,37795,37796,37798,37800,37803,37812,37813,37814,37818,37801,37825,37828,37829,37830,37831,37833,37834,37835,37836,37837,37843,37849,37852,37854,37855,37858,37862,37863,37881,37879,37880,37882,37883,37885,37889,37890,37892,37896,37897,37901,37902,37903,37909,37910,37911,37919,37934,37935,37937,37938,37939,37940,37947,37951,37949,37955,37957,37960,37962,37964,37973,37977,37980,37983,37985,37987,37992,37995,37997,37998,37999,38001,38002,38020,38019,38264,38265,38270,38276,38280,38284,38285,38286,38301,38302,38303,38305,38310,38313,38315,38316,38324,38326,38330,38333,38335,38342,38344,38345,38347,38352,38353,38354,38355,38361,38362,38365,38366,38367,38368,38372,38374,38429,38430,38434,38436,38437,38438,38444,38449,38451,38455,38456,38457,38458,38460,38461,38465,38482,38484,38486,38487,38488,38497,38510,38516,38523,38524,38526,38527,38529,38530,38531,38532,38537,38545,38550,38554,38557,38559,38564,38565,38566,38569,38574,38575,38579,38586,38602,38610,23986,38616,38618,38621,38622,38623,38633,38639,38641,38650,38658,38659,38661,38665,38682,38683,38685,38689,38690,38691,38696,38705,38707,38721,38723,38730,38734,38735,38741,38743,38744,38746,38747,38755,38759,38762,38766,38771,38774,38775,38776,38779,38781,38783,38784,38793,38805,38806,38807,38809,38810,38814,38815,38818,38828,38830,38833,38834,38837,38838,38840,38841,38842,38844,38846,38847,38849,38852,38853,38855,38857,38858,38860,38861,38862,38864,38865,38868,38871,38872,38873,38877,38878,38880,38875,38881,38884,38895,38897,38900,38903,38904,38906,38919,38922,38937,38925,38926,38932,38934,38940,38942,38944,38947,38950,38955,38958,38959,38960,38962,38963,38965,38949,38974,38980,38983,38986,38993,38994,38995,38998,38999,39001,39002,39010,39011,39013,39014,39018,39020,39083,39085,39086,39088,39092,39095,39096,39098,39099,39103,39106,39109,39112,39116,39137,39139,39141,39142,39143,39146,39155,39158,39170,39175,39176,39185,39189,39190,39191,39194,39195,39196,39199,39202,39206,39207,39211,39217,39218,39219,39220,39221,39225,39226,39227,39228,39232,39233,39238,39239,39240,39245,39246,39252,39256,39257,39259,39260,39262,39263,39264,39323,39325,39327,39334,39344,39345,39346,39349,39353,39354,39357,39359,39363,39369,39379,39380,39385,39386,39388,39390,39399,39402,39403,39404,39408,39412,39413,39417,39421,39422,39426,39427,39428,39435,39436,39440,39441,39446,39454,39456,39458,39459,39460,39463,39469,39470,39475,39477,39478,39480,39495,39489,39492,39498,39499,39500,39502,39505,39508,39510,39517,39594,39596,39598,39599,39602,39604,39605,39606,39609,39611,39614,39615,39617,39619,39622,39624,39630,39632,39634,39637,39638,39639,39643,39644,39648,39652,39653,39655,39657,39660,39666,39667,39669,39673,39674,39677,39679,39680,39681,39682,39683,39684,39685,39688,39689,39691,39692,39693,39694,39696,39698,39702,39705,39707,39708,39712,39718,39723,39725,39731,39732,39733,39735,39737,39738,39741,39752,39755,39756,39765,39766,39767,39771,39774,39777,39779,39781,39782,39784,39786,39787,39788,39789,39790,39795,39797,39799,39800,39801,39807,39808,39812,39813,39814,39815,39817,39818,39819,39821,39823,39824,39828,39834,39837,39838,39846,39847,39849,39852,39856,39857,39858,39863,39864,39867,39868,39870,39871,39873,39879,39880,39886,39888,39895,39896,39901,39903,39909,39911,39914,39915,39919,39923,39927,39928,39929,39930,39933,39935,39936,39938,39947,39951,39953,39958,39960,39961,39962,39964,39966,39970,39971,39974,39975,39976,39977,39978,39985,39989,39990,39991,39997,40001,40003,40004,40005,40009,40010,40014,40015,40016,40019,40020,40022,40024,40027,40029,40030,40031,40035,40041,40042,40028,40043,40040,40046,40048,40050,40053,40055,40059,40166,40178,40183,40185,40203,40194,40209,40215,40216,40220,40221,40222,40239,40240,40242,40243,40244,40250,40252,40261,40253,40258,40259,40263,40266,40275,40276,40287,40291,40290,40293,40297,40298,40299,40304,40310,40311,40315,40316,40318,40323,40324,40326,40330,40333,40334,40338,40339,40341,40342,40343,40344,40353,40362,40364,40366,40369,40373,40377,40380,40383,40387,40391,40393,40394,40404,40405,40406,40407,40410,40414,40415,40416,40421,40423,40425,40427,40430,40432,40435,40436,40446,40458,40450,40455,40462,40464,40465,40466,40469,40470,40473,40476,40477,40570,40571,40572,40576,40578,40579,40580,40581,40583,40590,40591,40598,40600,40603,40606,40612,40616,40620,40622,40623,40624,40627,40628,40629,40646,40648,40651,40661,40671,40676,40679,40684,40685,40686,40688,40689,40690,40693,40696,40703,40706,40707,40713,40719,40720,40721,40722,40724,40726,40727,40729,40730,40731,40735,40738,40742,40746,40747,40751,40753,40754,40756,40759,40761,40762,40764,40765,40767,40769,40771,40772,40773,40774,40775,40787,40789,40790,40791,40792,40794,40797,40798,40808,40809,40813,40814,40815,40816,40817,40819,40821,40826,40829,40847,40848,40849,40850,40852,40854,40855,40862,40865,40866,40867,40869,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null],ibm866:[1040,1041,1042,1043,1044,1045,1046,1047,1048,1049,1050,1051,1052,1053,1054,1055,1056,1057,1058,1059,1060,1061,1062,1063,1064,1065,1066,1067,1068,1069,1070,1071,1072,1073,1074,1075,1076,1077,1078,1079,1080,1081,1082,1083,1084,1085,1086,1087,9617,9618,9619,9474,9508,9569,9570,9558,9557,9571,9553,9559,9565,9564,9563,9488,9492,9524,9516,9500,9472,9532,9566,9567,9562,9556,9577,9574,9568,9552,9580,9575,9576,9572,9573,9561,9560,9554,9555,9579,9578,9496,9484,9608,9604,9612,9616,9600,1088,1089,1090,1091,1092,1093,1094,1095,1096,1097,1098,1099,1100,1101,1102,1103,1025,1105,1028,1108,1031,1111,1038,1118,176,8729,183,8730,8470,164,9632,160],"iso-8859-2":[128,129,130,131,132,133,134,135,136,137,138,139,140,141,142,143,144,145,146,147,148,149,150,151,152,153,154,155,156,157,158,159,160,260,728,321,164,317,346,167,168,352,350,356,377,173,381,379,176,261,731,322,180,318,347,711,184,353,351,357,378,733,382,380,340,193,194,258,196,313,262,199,268,201,280,203,282,205,206,270,272,323,327,211,212,336,214,215,344,366,218,368,220,221,354,223,341,225,226,259,228,314,263,231,269,233,281,235,283,237,238,271,273,324,328,243,244,337,246,247,345,367,250,369,252,253,355,729],"iso-8859-3":[128,129,130,131,132,133,134,135,136,137,138,139,140,141,142,143,144,145,146,147,148,149,150,151,152,153,154,155,156,157,158,159,160,294,728,163,164,null,292,167,168,304,350,286,308,173,null,379,176,295,178,179,180,181,293,183,184,305,351,287,309,189,null,380,192,193,194,null,196,266,264,199,200,201,202,203,204,205,206,207,null,209,210,211,212,288,214,215,284,217,218,219,220,364,348,223,224,225,226,null,228,267,265,231,232,233,234,235,236,237,238,239,null,241,242,243,244,289,246,247,285,249,250,251,252,365,349,729],"iso-8859-4":[128,129,130,131,132,133,134,135,136,137,138,139,140,141,142,143,144,145,146,147,148,149,150,151,152,153,154,155,156,157,158,159,160,260,312,342,164,296,315,167,168,352,274,290,358,173,381,175,176,261,731,343,180,297,316,711,184,353,275,291,359,330,382,331,256,193,194,195,196,197,198,302,268,201,280,203,278,205,206,298,272,325,332,310,212,213,214,215,216,370,218,219,220,360,362,223,257,225,226,227,228,229,230,303,269,233,281,235,279,237,238,299,273,326,333,311,244,245,246,247,248,371,250,251,252,361,363,729],"iso-8859-5":[128,129,130,131,132,133,134,135,136,137,138,139,140,141,142,143,144,145,146,147,148,149,150,151,152,153,154,155,156,157,158,159,160,1025,1026,1027,1028,1029,1030,1031,1032,1033,1034,1035,1036,173,1038,1039,1040,1041,1042,1043,1044,1045,1046,1047,1048,1049,1050,1051,1052,1053,1054,1055,1056,1057,1058,1059,1060,1061,1062,1063,1064,1065,1066,1067,1068,1069,1070,1071,1072,1073,1074,1075,1076,1077,1078,1079,1080,1081,1082,1083,1084,1085,1086,1087,1088,1089,1090,1091,1092,1093,1094,1095,1096,1097,1098,1099,1100,1101,1102,1103,8470,1105,1106,1107,1108,1109,1110,1111,1112,1113,1114,1115,1116,167,1118,1119],"iso-8859-6":[128,129,130,131,132,133,134,135,136,137,138,139,140,141,142,143,144,145,146,147,148,149,150,151,152,153,154,155,156,157,158,159,160,null,null,null,164,null,null,null,null,null,null,null,1548,173,null,null,null,null,null,null,null,null,null,null,null,null,null,1563,null,null,null,1567,null,1569,1570,1571,1572,1573,1574,1575,1576,1577,1578,1579,1580,1581,1582,1583,1584,1585,1586,1587,1588,1589,1590,1591,1592,1593,1594,null,null,null,null,null,1600,1601,1602,1603,1604,1605,1606,1607,1608,1609,1610,1611,1612,1613,1614,1615,1616,1617,1618,null,null,null,null,null,null,null,null,null,null,null,null,null],"iso-8859-7":[128,129,130,131,132,133,134,135,136,137,138,139,140,141,142,143,144,145,146,147,148,149,150,151,152,153,154,155,156,157,158,159,160,8216,8217,163,8364,8367,166,167,168,169,890,171,172,173,null,8213,176,177,178,179,900,901,902,183,904,905,906,187,908,189,910,911,912,913,914,915,916,917,918,919,920,921,922,923,924,925,926,927,928,929,null,931,932,933,934,935,936,937,938,939,940,941,942,943,944,945,946,947,948,949,950,951,952,953,954,955,956,957,958,959,960,961,962,963,964,965,966,967,968,969,970,971,972,973,974,null],"iso-8859-8":[128,129,130,131,132,133,134,135,136,137,138,139,140,141,142,143,144,145,146,147,148,149,150,151,152,153,154,155,156,157,158,159,160,null,162,163,164,165,166,167,168,169,215,171,172,173,174,175,176,177,178,179,180,181,182,183,184,185,247,187,188,189,190,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,8215,1488,1489,1490,1491,1492,1493,1494,1495,1496,1497,1498,1499,1500,1501,1502,1503,1504,1505,1506,1507,1508,1509,1510,1511,1512,1513,1514,null,null,8206,8207,null],"iso-8859-10":[128,129,130,131,132,133,134,135,136,137,138,139,140,141,142,143,144,145,146,147,148,149,150,151,152,153,154,155,156,157,158,159,160,260,274,290,298,296,310,167,315,272,352,358,381,173,362,330,176,261,275,291,299,297,311,183,316,273,353,359,382,8213,363,331,256,193,194,195,196,197,198,302,268,201,280,203,278,205,206,207,208,325,332,211,212,213,214,360,216,370,218,219,220,221,222,223,257,225,226,227,228,229,230,303,269,233,281,235,279,237,238,239,240,326,333,243,244,245,246,361,248,371,250,251,252,253,254,312],"iso-8859-13":[128,129,130,131,132,133,134,135,136,137,138,139,140,141,142,143,144,145,146,147,148,149,150,151,152,153,154,155,156,157,158,159,160,8221,162,163,164,8222,166,167,216,169,342,171,172,173,174,198,176,177,178,179,8220,181,182,183,248,185,343,187,188,189,190,230,260,302,256,262,196,197,280,274,268,201,377,278,290,310,298,315,352,323,325,211,332,213,214,215,370,321,346,362,220,379,381,223,261,303,257,263,228,229,281,275,269,233,378,279,291,311,299,316,353,324,326,243,333,245,246,247,371,322,347,363,252,380,382,8217],"iso-8859-14":[128,129,130,131,132,133,134,135,136,137,138,139,140,141,142,143,144,145,146,147,148,149,150,151,152,153,154,155,156,157,158,159,160,7682,7683,163,266,267,7690,167,7808,169,7810,7691,7922,173,174,376,7710,7711,288,289,7744,7745,182,7766,7809,7767,7811,7776,7923,7812,7813,7777,192,193,194,195,196,197,198,199,200,201,202,203,204,205,206,207,372,209,210,211,212,213,214,7786,216,217,218,219,220,221,374,223,224,225,226,227,228,229,230,231,232,233,234,235,236,237,238,239,373,241,242,243,244,245,246,7787,248,249,250,251,252,253,375,255],"iso-8859-15":[128,129,130,131,132,133,134,135,136,137,138,139,140,141,142,143,144,145,146,147,148,149,150,151,152,153,154,155,156,157,158,159,160,161,162,163,8364,165,352,167,353,169,170,171,172,173,174,175,176,177,178,179,381,181,182,183,382,185,186,187,338,339,376,191,192,193,194,195,196,197,198,199,200,201,202,203,204,205,206,207,208,209,210,211,212,213,214,215,216,217,218,219,220,221,222,223,224,225,226,227,228,229,230,231,232,233,234,235,236,237,238,239,240,241,242,243,244,245,246,247,248,249,250,251,252,253,254,255],"iso-8859-16":[128,129,130,131,132,133,134,135,136,137,138,139,140,141,142,143,144,145,146,147,148,149,150,151,152,153,154,155,156,157,158,159,160,260,261,321,8364,8222,352,167,353,169,536,171,377,173,378,379,176,177,268,322,381,8221,182,183,382,269,537,187,338,339,376,380,192,193,194,258,196,262,198,199,200,201,202,203,204,205,206,207,272,323,210,211,212,336,214,346,368,217,218,219,220,280,538,223,224,225,226,259,228,263,230,231,232,233,234,235,236,237,238,239,273,324,242,243,244,337,246,347,369,249,250,251,252,281,539,255],"koi8-r":[9472,9474,9484,9488,9492,9496,9500,9508,9516,9524,9532,9600,9604,9608,9612,9616,9617,9618,9619,8992,9632,8729,8730,8776,8804,8805,160,8993,176,178,183,247,9552,9553,9554,1105,9555,9556,9557,9558,9559,9560,9561,9562,9563,9564,9565,9566,9567,9568,9569,1025,9570,9571,9572,9573,9574,9575,9576,9577,9578,9579,9580,169,1102,1072,1073,1094,1076,1077,1092,1075,1093,1080,1081,1082,1083,1084,1085,1086,1087,1103,1088,1089,1090,1091,1078,1074,1100,1099,1079,1096,1101,1097,1095,1098,1070,1040,1041,1062,1044,1045,1060,1043,1061,1048,1049,1050,1051,1052,1053,1054,1055,1071,1056,1057,1058,1059,1046,1042,1068,1067,1047,1064,1069,1065,1063,1066],"koi8-u":[9472,9474,9484,9488,9492,9496,9500,9508,9516,9524,9532,9600,9604,9608,9612,9616,9617,9618,9619,8992,9632,8729,8730,8776,8804,8805,160,8993,176,178,183,247,9552,9553,9554,1105,1108,9556,1110,1111,9559,9560,9561,9562,9563,1169,1118,9566,9567,9568,9569,1025,1028,9571,1030,1031,9574,9575,9576,9577,9578,1168,1038,169,1102,1072,1073,1094,1076,1077,1092,1075,1093,1080,1081,1082,1083,1084,1085,1086,1087,1103,1088,1089,1090,1091,1078,1074,1100,1099,1079,1096,1101,1097,1095,1098,1070,1040,1041,1062,1044,1045,1060,1043,1061,1048,1049,1050,1051,1052,1053,1054,1055,1071,1056,1057,1058,1059,1046,1042,1068,1067,1047,1064,1069,1065,1063,1066],macintosh:[196,197,199,201,209,214,220,225,224,226,228,227,229,231,233,232,234,235,237,236,238,239,241,243,242,244,246,245,250,249,251,252,8224,176,162,163,167,8226,182,223,174,169,8482,180,168,8800,198,216,8734,177,8804,8805,165,181,8706,8721,8719,960,8747,170,186,937,230,248,191,161,172,8730,402,8776,8710,171,187,8230,160,192,195,213,338,339,8211,8212,8220,8221,8216,8217,247,9674,255,376,8260,8364,8249,8250,64257,64258,8225,183,8218,8222,8240,194,202,193,203,200,205,206,207,204,211,212,63743,210,218,219,217,305,710,732,175,728,729,730,184,733,731,711],"windows-874":[8364,129,130,131,132,8230,134,135,136,137,138,139,140,141,142,143,144,8216,8217,8220,8221,8226,8211,8212,152,153,154,155,156,157,158,159,160,3585,3586,3587,3588,3589,3590,3591,3592,3593,3594,3595,3596,3597,3598,3599,3600,3601,3602,3603,3604,3605,3606,3607,3608,3609,3610,3611,3612,3613,3614,3615,3616,3617,3618,3619,3620,3621,3622,3623,3624,3625,3626,3627,3628,3629,3630,3631,3632,3633,3634,3635,3636,3637,3638,3639,3640,3641,3642,null,null,null,null,3647,3648,3649,3650,3651,3652,3653,3654,3655,3656,3657,3658,3659,3660,3661,3662,3663,3664,3665,3666,3667,3668,3669,3670,3671,3672,3673,3674,3675,null,null,null,null],"windows-1250":[8364,129,8218,131,8222,8230,8224,8225,136,8240,352,8249,346,356,381,377,144,8216,8217,8220,8221,8226,8211,8212,152,8482,353,8250,347,357,382,378,160,711,728,321,164,260,166,167,168,169,350,171,172,173,174,379,176,177,731,322,180,181,182,183,184,261,351,187,317,733,318,380,340,193,194,258,196,313,262,199,268,201,280,203,282,205,206,270,272,323,327,211,212,336,214,215,344,366,218,368,220,221,354,223,341,225,226,259,228,314,263,231,269,233,281,235,283,237,238,271,273,324,328,243,244,337,246,247,345,367,250,369,252,253,355,729],"windows-1251":[1026,1027,8218,1107,8222,8230,8224,8225,8364,8240,1033,8249,1034,1036,1035,1039,1106,8216,8217,8220,8221,8226,8211,8212,152,8482,1113,8250,1114,1116,1115,1119,160,1038,1118,1032,164,1168,166,167,1025,169,1028,171,172,173,174,1031,176,177,1030,1110,1169,181,182,183,1105,8470,1108,187,1112,1029,1109,1111,1040,1041,1042,1043,1044,1045,1046,1047,1048,1049,1050,1051,1052,1053,1054,1055,1056,1057,1058,1059,1060,1061,1062,1063,1064,1065,1066,1067,1068,1069,1070,1071,1072,1073,1074,1075,1076,1077,1078,1079,1080,1081,1082,1083,1084,1085,1086,1087,1088,1089,1090,1091,1092,1093,1094,1095,1096,1097,1098,1099,1100,1101,1102,1103],"windows-1252":[8364,129,8218,402,8222,8230,8224,8225,710,8240,352,8249,338,141,381,143,144,8216,8217,8220,8221,8226,8211,8212,732,8482,353,8250,339,157,382,376,160,161,162,163,164,165,166,167,168,169,170,171,172,173,174,175,176,177,178,179,180,181,182,183,184,185,186,187,188,189,190,191,192,193,194,195,196,197,198,199,200,201,202,203,204,205,206,207,208,209,210,211,212,213,214,215,216,217,218,219,220,221,222,223,224,225,226,227,228,229,230,231,232,233,234,235,236,237,238,239,240,241,242,243,244,245,246,247,248,249,250,251,252,253,254,255],"windows-1253":[8364,129,8218,402,8222,8230,8224,8225,136,8240,138,8249,140,141,142,143,144,8216,8217,8220,8221,8226,8211,8212,152,8482,154,8250,156,157,158,159,160,901,902,163,164,165,166,167,168,169,null,171,172,173,174,8213,176,177,178,179,900,181,182,183,904,905,906,187,908,189,910,911,912,913,914,915,916,917,918,919,920,921,922,923,924,925,926,927,928,929,null,931,932,933,934,935,936,937,938,939,940,941,942,943,944,945,946,947,948,949,950,951,952,953,954,955,956,957,958,959,960,961,962,963,964,965,966,967,968,969,970,971,972,973,974,null],"windows-1254":[8364,129,8218,402,8222,8230,8224,8225,710,8240,352,8249,338,141,142,143,144,8216,8217,8220,8221,8226,8211,8212,732,8482,353,8250,339,157,158,376,160,161,162,163,164,165,166,167,168,169,170,171,172,173,174,175,176,177,178,179,180,181,182,183,184,185,186,187,188,189,190,191,192,193,194,195,196,197,198,199,200,201,202,203,204,205,206,207,286,209,210,211,212,213,214,215,216,217,218,219,220,304,350,223,224,225,226,227,228,229,230,231,232,233,234,235,236,237,238,239,287,241,242,243,244,245,246,247,248,249,250,251,252,305,351,255],"windows-1255":[8364,129,8218,402,8222,8230,8224,8225,710,8240,138,8249,140,141,142,143,144,8216,8217,8220,8221,8226,8211,8212,732,8482,154,8250,156,157,158,159,160,161,162,163,8362,165,166,167,168,169,215,171,172,173,174,175,176,177,178,179,180,181,182,183,184,185,247,187,188,189,190,191,1456,1457,1458,1459,1460,1461,1462,1463,1464,1465,1466,1467,1468,1469,1470,1471,1472,1473,1474,1475,1520,1521,1522,1523,1524,null,null,null,null,null,null,null,1488,1489,1490,1491,1492,1493,1494,1495,1496,1497,1498,1499,1500,1501,1502,1503,1504,1505,1506,1507,1508,1509,1510,1511,1512,1513,1514,null,null,8206,8207,null],"windows-1256":[8364,1662,8218,402,8222,8230,8224,8225,710,8240,1657,8249,338,1670,1688,1672,1711,8216,8217,8220,8221,8226,8211,8212,1705,8482,1681,8250,339,8204,8205,1722,160,1548,162,163,164,165,166,167,168,169,1726,171,172,173,174,175,176,177,178,179,180,181,182,183,184,185,1563,187,188,189,190,1567,1729,1569,1570,1571,1572,1573,1574,1575,1576,1577,1578,1579,1580,1581,1582,1583,1584,1585,1586,1587,1588,1589,1590,215,1591,1592,1593,1594,1600,1601,1602,1603,224,1604,226,1605,1606,1607,1608,231,232,233,234,235,1609,1610,238,239,1611,1612,1613,1614,244,1615,1616,247,1617,249,1618,251,252,8206,8207,1746],"windows-1257":[8364,129,8218,131,8222,8230,8224,8225,136,8240,138,8249,140,168,711,184,144,8216,8217,8220,8221,8226,8211,8212,152,8482,154,8250,156,175,731,159,160,null,162,163,164,null,166,167,216,169,342,171,172,173,174,198,176,177,178,179,180,181,182,183,248,185,343,187,188,189,190,230,260,302,256,262,196,197,280,274,268,201,377,278,290,310,298,315,352,323,325,211,332,213,214,215,370,321,346,362,220,379,381,223,261,303,257,263,228,229,281,275,269,233,378,279,291,311,299,316,353,324,326,243,333,245,246,247,371,322,347,363,252,380,382,729],"windows-1258":[8364,129,8218,402,8222,8230,8224,8225,710,8240,138,8249,338,141,142,143,144,8216,8217,8220,8221,8226,8211,8212,732,8482,154,8250,339,157,158,376,160,161,162,163,164,165,166,167,168,169,170,171,172,173,174,175,176,177,178,179,180,181,182,183,184,185,186,187,188,189,190,191,192,193,194,258,196,197,198,199,200,201,202,203,768,205,206,207,272,209,777,211,212,416,214,215,216,217,218,219,220,431,771,223,224,225,226,259,228,229,230,231,232,233,234,235,769,237,238,239,273,241,803,243,244,417,246,247,248,249,250,251,252,432,8363,255],"x-mac-cyrillic":[1040,1041,1042,1043,1044,1045,1046,1047,1048,1049,1050,1051,1052,1053,1054,1055,1056,1057,1058,1059,1060,1061,1062,1063,1064,1065,1066,1067,1068,1069,1070,1071,8224,176,1168,163,167,8226,182,1030,174,169,8482,1026,1106,8800,1027,1107,8734,177,8804,8805,1110,181,1169,1032,1028,1108,1031,1111,1033,1113,1034,1114,1112,1029,172,8730,402,8776,8710,171,187,8230,160,1035,1115,1036,1116,1109,8211,8212,8220,8221,8216,8217,247,8222,1038,1118,1039,1119,8470,1025,1105,1103,1072,1073,1074,1075,1076,1077,1078,1079,1080,1081,1082,1083,1084,1085,1086,1087,1088,1089,1090,1091,1092,1093,1094,1095,1096,1097,1098,1099,1100,1101,1102,8364]}}(this||{})},function(l,n,u){"use strict";(function(n){const e=u(2);let t=u(16);const r=u(17);l.exports=class{constructor(l){this.params=l}sign(l,u){let i=this.params;return u=(new r).encode(u),t.subtle.sign(i,l,u).then(l=>e(n.from(l)))}verify(l,n,u){let i=this.params;return"string"==typeof n&&(n=Uint8Array.from(e.toBuffer(n))),"string"==typeof u&&(u=(new r).encode(u)),t.subtle.verify(i,l,n,u)}async importKey(l){let n=Object.assign({},l),u=this.params,e=l.key_ops||[];return"sig"===l.use&&e.push("verify"),"enc"===l.use?Promise.resolve(l):(l.key_ops&&(e=l.key_ops),t.subtle.importKey("jwk",n,u,!0,e).then(l=>(Object.defineProperty(n,"cryptoKey",{enumerable:!1,value:l}),n)))}}}).call(this,u(1).Buffer)},function(l,n,u){const e=u(18),t=["sign","verify","encrypt","decrypt","importKey"];l.exports=class{constructor(){t.forEach(l=>{this[l]={}})}static get operations(){return t}define(l,n,u){this[n][l]=u}normalize(l,n){let u=this[l];if(!u)return new SyntaxError;let t=u[n];return t||new e(n)}}},function(l,n,u){"use strict";const e=u(21);class t{constructor({keys:l}={}){this.keys=l}static async importKeys(l){if(!l.keys)return Promise.reject(new Error("Cannot import JWKSet: keys property is empty"));let n,u;try{n=new t(l),u=l.keys.map(l=>e.importKey(l))}catch(l){return Promise.reject(l)}return Promise.all(u).then(l=>(n.keys=l,n))}}l.exports=t},function(l,n,u){const e=u(2),t=u(22),r=u(20),i=u(23);class o{constructor(l={}){this.type=l.type,this.segments=l.segments,this.header=new i(l.header),this.protected=l.protected,this.unprotected=l.unprotected,this.iv=l.iv,this.aad=l.aad,this.ciphertext=l.ciphertext,this.tag=l.tag,this.recipients=l.recipients,this.payload=l.payload,this.signatures=l.signatures,this.signature=l.signature,this.key=l.key,this.serialization=l.serialization||"compact"}static decode(l){let n,u=this;if("string"!=typeof l)throw new r("JWT must be a string");if(l.startsWith("{")){try{l=JSON.parse(l,()=>{})}catch(l){throw new r("Invalid JWT serialization")}l.signatures||l.recipients?l.serialization="json":l.serialization="flattened",n=new u(l,{filter:!1})}else try{let t="compact",r=l.split("."),i=r.length;if(3!==i&&5!==i)throw new Error("Malformed JWT");let o=JSON.parse(e.decode(r[0]));if(3===i){n=new u({type:"JWS",segments:r,header:o,payload:JSON.parse(e.decode(r[1])),signature:r[2],serialization:t},{filter:!1})}}catch(l){throw new r("Invalid JWT compact serialization")}return n}static encode(l,n,u){return new o(l,n).encode(u)}static async verify(l,n){let u=o.decode(n);return u.key=l,u.verify().then(l=>u)}isJWE(){return!!this.header.enc}resolveKeys(l){let n,u,e=this.header.kid;if(Array.isArray(l)&&(n=l),l.keys&&(n=l.keys),l.keys||"object"!=typeof l||(n=[l]),!n)throw new r("Invalid JWK argument");return u=e?n.find(l=>l.kid===e):n.find(l=>"sig"===l.use),!!u&&(this.key=u.cryptoKey,!0)}async encode(){let l=this;return this.isJWE()?JWE.encrypt(l):t.sign(l)}async verify(){return t.verify(this)}}l.exports=o},function(l,n,u){(function(n){const e=u(8),t=u(2),{crypto:r,JWT:i}=u(4),o=u(10),{URL:s}=u(6);class a{static create(l,u,i){const{provider:c,defaults:f,registration:p}=l;let h,d,y,g;return Promise.resolve().then(()=>(e(c.configuration,"RelyingParty provider OpenID Configuration is missing"),e(f.authenticate,"RelyingParty default authentication parameters are missing"),e(p,"RelyingParty client registration is missing"),h=c.configuration.issuer,d=c.configuration.authorization_endpoint,y={client_id:p.client_id},g=Object.assign(f.authenticate,y,u),e(h,"Missing issuer in provider OpenID Configuration"),e(d,"Missing authorization_endpoint in provider OpenID Configuration"),e(g.scope,"Missing scope parameter in authentication request"),e(g.response_type,"Missing response_type parameter in authentication request"),e(g.client_id,"Missing client_id parameter in authentication request"),e(g.redirect_uri,"Missing redirect_uri parameter in authentication request"),g.state=Array.from(r.getRandomValues(new Uint8Array(16))),g.nonce=Array.from(r.getRandomValues(new Uint8Array(16))),Promise.all([r.subtle.digest({name:"SHA-256"},new Uint8Array(g.state)),r.subtle.digest({name:"SHA-256"},new Uint8Array(g.nonce))]))).then(l=>{let u=t(n.from(l[0])),e=t(n.from(l[1]));i[`${h}/requestHistory/${u}`]=JSON.stringify(g),g.state=u,g.nonce=e}).then(()=>a.generateSessionKeys()).then(l=>{a.storeSessionKeys(l,g,i)}).then(()=>{if(c.configuration.request_parameter_supported)return a.encodeRequestParams(g).then(l=>{g=l})}).then(()=>{let l=new s(d);return l.search=o.encode(g),l.href})}static generateSessionKeys(){return r.subtle.generateKey({name:"RSASSA-PKCS1-v1_5",modulusLength:2048,publicExponent:new Uint8Array([1,0,1]),hash:{name:"SHA-256"}},!0,["sign","verify"]).then(l=>Promise.all([r.subtle.exportKey("jwk",l.publicKey),r.subtle.exportKey("jwk",l.privateKey)])).then(l=>{let[n,u]=l;return{public:n,private:u}})}static storeSessionKeys(l,n,u){u["oidc.session.privateKey"]=JSON.stringify(l.private),n.key=l.public}static encodeRequestParams(l){const n=["scope","client_id","response_type","state"],u=Object.keys(l).filter(l=>!n.includes(l));let e={};return u.forEach(n=>{e[n]=l[n]}),new i({header:{alg:"none"},payload:e},{filter:!1}).encode().then(n=>({scope:l.scope,client_id:l.client_id,response_type:l.response_type,request:n,state:l.state}))}}l.exports=a}).call(this,u(1).Buffer)},function(l,n,u){(function(n,e){const{URL:t}=u(6),r=u(8),{crypto:i}=u(4),o=u(2),s=u(5),a=s.Headers?s.Headers:n.Headers,c=u(10),f=u(55),p=u(56),h=u(11),d=u(57);class y{constructor({rp:l,redirect:n,body:u,session:e,mode:t,params:r={}}){this.rp=l,this.redirect=n,this.body=u,this.session=e,this.mode=t,this.params=r}static validateResponse(l){return Promise.resolve(l).then(this.parseResponse).then(this.errorResponse).then(this.matchRequest).then(this.validateStateParam).then(this.validateResponseMode).then(this.validateResponseParams).then(this.exchangeAuthorizationCode).then(this.validateIDToken).then(p.fromAuthResponse)}static parseResponse(l){let{redirect:n,body:u}=l;if(n&&u||!n&&!u)throw new d(400,"Invalid response mode");if(n){let u=new t(n),{search:e,hash:r}=u;if(e&&r||!e&&!r)throw new d(400,"Invalid response mode");e&&(l.params=c.decode(e.substring(1)),l.mode="query"),r&&(l.params=c.decode(r.substring(1)),l.mode="fragment")}return u&&(l.params=c.decode(u),l.mode="form_post"),l}static errorResponse(l){const n=l.params.error;if(n){const u={};u.error=n,u.error_description=l.params.error_description,u.error_uri=l.params.error_uri,u.state=l.params.state;const e=new Error("AuthenticationResponse error: "+n);throw e.info=u,e}return l}static matchRequest(l){let{rp:n,params:u,session:e}=l,t=u.state,r=n.provider.configuration.issuer;if(!t)throw new Error("Missing state parameter in authentication response");let i=e[`${r}/requestHistory/${t}`];if(!i)throw new Error("Mismatching state parameter in authentication response");return l.request=JSON.parse(i),l}static validateStateParam(l){let n=new Uint8Array(l.request.state),u=l.params.state;return i.subtle.digest({name:"SHA-256"},n).then(n=>{if(u!==o(e.from(n)))throw new Error("Mismatching state parameter in authentication response");return l})}static validateResponseMode(l){if("code"!==l.request.response_type&&"query"===l.mode)throw new Error("Invalid response mode");return l}static validateResponseParams(l){let{request:n,params:u}=l,e=n.response_type.split(" ");return e.includes("code")&&r(u.code,"Missing authorization code in authentication response"),e.includes("id_token")&&r(u.id_token,"Missing id_token in authentication response"),e.includes("token")&&(r(u.access_token,"Missing access_token in authentication response"),r(u.token_type,"Missing token_type in authentication response")),l}static exchangeAuthorizationCode(l){let{rp:n,params:u,request:t}=l,i=u.code;if(!i||"code"!==t.response_type)return Promise.resolve(l);let{provider:o,registration:f}=n,p=f.client_id,d=f.client_secret;if(!d)return Promise.reject(new Error("Client cannot exchange authorization code because it is not a confidential client"));let y=o.configuration.token_endpoint,g=new a({"Content-Type":"application/x-www-form-urlencoded"}),m={grant_type:"authorization_code",code:i,redirect_uri:t.redirect_uri},_=f.token_endpoint_auth_method||"client_secret_basic";if("client_secret_basic"===_){let l=new e(`${p}:${d}`).toString("base64");g.set("Authorization","Basic "+l)}"client_secret_post"===_&&(m.client_id=p,m.client_secret=d);let v=c.encode(m);return s(y,{method:"POST",headers:g,body:v}).then(h("Error exchanging authorization code")).then(l=>l.json()).then(n=>(r(n.access_token,"Missing access_token in token response"),r(n.token_type,"Missing token_type in token response"),r(n.id_token,"Missing id_token in token response"),l.params=Object.assign(l.params,n),l))}static validateIDToken(l){return l.params.id_token?Promise.resolve(l).then(y.decryptIDToken).then(y.decodeIDToken).then(y.validateIssuer).then(y.validateAudience).then(y.resolveKeys).then(y.verifySignature).then(y.validateExpires).then(y.verifyNonce).then(y.validateAcr).then(y.validateAuthTime).then(y.validateAccessTokenHash).then(y.validateAuthorizationCodeHash):Promise.resolve(l)}static decryptIDToken(l){return Promise.resolve(l)}static decodeIDToken(l){let n=l.params.id_token;try{l.decoded=f.decode(n)}catch(l){const u=new d(400,"Error decoding ID Token");throw u.cause=l,u.info={id_token:n},u}return l}static validateIssuer(l){let n=l.rp.provider.configuration;if(l.decoded.payload.iss!==n.issuer)throw new Error("Mismatching issuer in ID Token");return l}static validateAudience(l){let n=l.rp.registration,{aud:u,azp:e}=l.decoded.payload;if("string"==typeof u&&u!==n.client_id)throw new Error("Mismatching audience in id_token");if(Array.isArray(u)&&!u.includes(n.client_id))throw new Error("Mismatching audience in id_token");if(Array.isArray(u)&&!e)throw new Error("Missing azp claim in id_token");if(e&&e!==n.client_id)throw new Error("Mismatching azp claim in id_token");return l}static resolveKeys(l){let n=l.rp,u=n.provider,e=l.decoded,t=!1;return Promise.resolve(u.jwks).then(l=>l||(t=!0,n.jwks())).then(u=>{if(e.resolveKeys(u))return Promise.resolve(l);if(!t)return n.jwks().then(n=>{if(e.resolveKeys(n))return Promise.resolve(l);throw new Error("Cannot resolve signing key for ID Token")});throw new Error("Cannot resolve signing key for ID Token")})}static verifySignature(l){let n=l.decoded.header.alg,u=l.rp.registration.id_token_signed_response_alg||"RS256";if(n!==u)throw new Error("Expected ID Token to be signed with "+u);return l.decoded.verify().then(n=>{if(!n)throw new Error("Invalid ID Token signature");return l})}static validateExpires(l){if(l.decoded.payload.exp<=Math.floor(Date.now()/1e3))throw new Error("Expired ID Token");return l}static verifyNonce(l){let n=new Uint8Array(l.request.nonce),u=l.decoded.payload.nonce;if(!u)throw new Error("Missing nonce in ID Token");return i.subtle.digest({name:"SHA-256"},n).then(n=>{if(u!==o(e.from(n)))throw new Error("Mismatching nonce in ID Token");return l})}static validateAcr(l){return l}static validateAuthTime(l){return l}static validateAccessTokenHash(l){return l}static validateAuthorizationCodeHash(l){return l}}l.exports=y}).call(this,u(3),u(1).Buffer)},function(l,n,u){const{JWT:e}=u(4),t=["iss","sub","aud","exp","iat"];class r{constructor({iss:l,sub:n,aud:u,exp:e,iat:t,nbf:r,jti:i,auth_time:o,nonce:s,acr:a,amr:c}={}){this.iss=l,this.sub=n,this.aud=u,this.exp=e,this.iat=t,this.nbf=r,this.jti=i,this.auth_time=o,this.nonce=s,this.acr=a,this.amr=c}validate(){let l,n=!0;try{for(const l of t)if(!this[l])throw n=!1,new Error(`Required claim ${l} is missing.`)}catch(n){l=n}return{valid:n,error:l}}}l.exports=class extends e{constructor(l={}){super(l),this.payload=new r(l.payload)}validate(){const l=this.payload.validate();if(!l.valid)return l;return{valid:!0,error:void 0}}},l.exports.TokenClaimsSet=r},function(l,n,u){"use strict";const e=u(5),t=u(11),r=u(12);class i{constructor(l){this.credentialType=l.credentialType||"access_token",this.issuer=l.issuer,this.authorization=l.authorization||{},this.sessionKey=l.sessionKey,this.idClaims=l.idClaims,this.accessClaims=l.accessClaims}static from(l){return new i(l)}static fromAuthResponse(l){const n=u(15);let e=l.decoded&&l.decoded.payload||{},{rp:t}=l,r=t.registration,o={credentialType:(t.defaults.authenticate||{}).credential_type||t.defaults.popToken?"pop_token":"access_token",sessionKey:l.session[n.SESSION_PRIVATE_KEY],issuer:e.iss,idClaims:e,authorization:{client_id:r.client_id,access_token:l.params.access_token,id_token:l.params.id_token,refresh_token:l.params.refresh_token}};return i.from(o)}get fetch(){return(l,n)=>Promise.resolve().then(()=>this.hasCredentials()?this.fetchWithCredentials(l,n):e(l,n)).then(t("Error while fetching resource"))}bearerTokenFor(l){switch(this.credentialType){case"pop_token":return r.issueFor(l,this);default:return Promise.resolve(this.authorization[this.credentialType])}}hasCredentials(){switch(this.credentialType){case"pop_token":return!!this.authorization.id_token;default:return!!this.authorization[this.credentialType]}}fetchWithCredentials(l,n={}){return n.headers=n.headers||{},this.bearerTokenFor(l).then(u=>(n.headers.authorization="Bearer "+u,e(l,n)))}}l.exports=i},function(l,n,u){n=l.exports=i;var e=u(58),t=u(59),r=n;function i(l,n,u){if("string"==typeof l&&(l=r[l]),"number"!=typeof l)throw new TypeError("Non-numeric HTTP code");"object"==typeof n&&null!=n&&(u=n,n=null),e.call(this,n||t[l],u),this.code=l}for(var o in i.prototype=Object.create(e.prototype,{constructor:{value:i,configurable:!0,writable:!0}}),i.prototype.name="HttpError",Object.defineProperties(i.prototype,{statusCode:s("code"),statusMessage:s("message"),status:{configurable:!0,get:function(){return this.code},set:function(l){Object.defineProperty(this,"status",{value:l,configurable:!0,enumerable:!0,writable:!0})}}}),i.prototype.toString=function(){return this.name+": "+this.code+" "+this.message},t){n[t[o].replace("'","").replace(/[- ]/g,"_").toUpperCase()]=+o}function s(l){return{configurable:!0,get:function(){return this[l]},set:function(n){return this[l]=n}}}},function(l,n){var u=Object.hasOwnProperty,e=Object.getPrototypeOf,t=Error.captureStackTrace;function r(l,n){if(l&&"object"==typeof l?(n=l,l=void 0):this.message=l,n)for(var r in n)this[r]=n[r];u.call(this,"name")||(this.name=u.call(e(this),"name")?this.name:this.constructor.name),t&&!("stack"in this)&&t(this,this.constructor)}l.exports=r,r.prototype=Object.create(Error.prototype,{constructor:{value:r,configurable:!0,writable:!0}}),r.prototype.name="StandardError"},function(l){l.exports=JSON.parse('{"100":"Continue","101":"Switching Protocols","102":"Processing","200":"OK","201":"Created","202":"Accepted","203":"Non-Authoritative Information","204":"No Content","205":"Reset Content","206":"Partial Content","207":"Multi-Status","208":"Already Reported","226":"IM Used","300":"Multiple Choices","301":"Moved Permanently","302":"Found","303":"See Other","304":"Not Modified","305":"Use Proxy","307":"Temporary Redirect","308":"Permanent Redirect","400":"Bad Request","401":"Unauthorized","402":"Payment Required","403":"Forbidden","404":"Not Found","405":"Method Not Allowed","406":"Not Acceptable","407":"Proxy Authentication Required","408":"Request Timeout","409":"Conflict","410":"Gone","411":"Length Required","412":"Precondition Failed","413":"Payload Too Large","414":"URI Too Long","415":"Unsupported Media Type","416":"Range Not Satisfiable","417":"Expectation Failed","418":"I\'m a teapot","421":"Misdirected Request","422":"Unprocessable Entity","423":"Locked","424":"Failed Dependency","425":"Unordered Collection","426":"Upgrade Required","428":"Precondition Required","429":"Too Many Requests","431":"Request Header Fields Too Large","500":"Internal Server Error","501":"Not Implemented","502":"Bad Gateway","503":"Service Unavailable","504":"Gateway Timeout","505":"HTTP Version Not Supported","506":"Variant Also Negotiates","507":"Insufficient Storage","508":"Loop Detected","509":"Bandwidth Limit Exceeded","510":"Not Extended","511":"Network Authentication Required"}')},function(l,n,u){var e=u(24),t=u(61);"string"==typeof(t=t.__esModule?t.default:t)&&(t=[[l.i,t,""]]);var r={insert:"head",singleton:!1};e(t,r);l.exports=t.locals||{}},function(l,n,u){"use strict";u.r(n);var e=u(7),t=u.n(e)()(!0);t.push([l.i,".custom-idp {\n display: flex;\n flex-wrap: nowrap;\n justify-content: space-between;\n margin: 0 0 2em;\n}\n.custom-idp input {\n flex-grow: 2;\n margin-right: .5em;\n}\n\n.idp-list {\n display: flex;\n flex-wrap: wrap;\n justify-content: space-between;\n margin: -.25em -.5em;\n}\n.idp {\n flex: 1 100%;\n margin: .25em;\n padding: .75em .5em;\n border-radius: 10px;\n}\n\n@media all and (min-width: 500px) {\n .idp {\n flex: 1 200px;\n }\n}\n","",{version:3,sources:["IdpSelect.css"],names:[],mappings:"AAAA;EACE,aAAa;EACb,iBAAiB;EACjB,8BAA8B;EAC9B,eAAe;AACjB;AACA;EACE,YAAY;EACZ,kBAAkB;AACpB;;AAEA;EACE,aAAa;EACb,eAAe;EACf,8BAA8B;EAC9B,oBAAoB;AACtB;AACA;EACE,YAAY;EACZ,aAAa;EACb,mBAAmB;EACnB,mBAAmB;AACrB;;AAEA;EACE;IACE,aAAa;EACf;AACF",file:"IdpSelect.css",sourcesContent:[".custom-idp {\n display: flex;\n flex-wrap: nowrap;\n justify-content: space-between;\n margin: 0 0 2em;\n}\n.custom-idp input {\n flex-grow: 2;\n margin-right: .5em;\n}\n\n.idp-list {\n display: flex;\n flex-wrap: wrap;\n justify-content: space-between;\n margin: -.25em -.5em;\n}\n.idp {\n flex: 1 100%;\n margin: .25em;\n padding: .75em .5em;\n border-radius: 10px;\n}\n\n@media all and (min-width: 500px) {\n .idp {\n flex: 1 200px;\n }\n}\n"]}]),n.default=t},function(l,n,u){var e=u(24),t=u(63);"string"==typeof(t=t.__esModule?t.default:t)&&(t=[[l.i,t,""]]);var r={insert:"head",singleton:!1};e(t,r);l.exports=t.locals||{}},function(l,n,u){"use strict";u.r(n);var e=u(7),t=u.n(e)()(!0);t.push([l.i,"body {\n margin: 20px;\n}\n\nbody, button, input {\n font-family: 'Helvetica Neue', Helvetica, Arial, sans-serif;\n font-size: 11pt;\n}\n\nh1 {\n font-weight: normal;\n padding-bottom: 10px;\n}\n\np {\n margin: .75em 0;\n}\n\nbutton {\n font-weight: bold;\n border: none;\n border-radius: 7px;\n background-color: rgb(61, 109, 211);\n color: #fff;\n transition: background-color 0.4s;\n cursor: pointer;\n}\nbutton:hover,\nbutton:focus {\n background-color: rgb(55, 97, 188);\n}\n\n:focus {\n outline: none;\n}\n\n#app-container {\n max-width: 600px;\n margin: auto;\n}\n\n.error {\n background-color: #ff8e8e;\n color: #323232;\n padding: 8px;\n border-radius: 2px;\n}\n\n.app-name {\n font-weight: bold;\n}\n","",{version:3,sources:["index.css"],names:[],mappings:"AAAA;EACE,YAAY;AACd;;AAEA;EACE,2DAA2D;EAC3D,eAAe;AACjB;;AAEA;EACE,mBAAmB;EACnB,oBAAoB;AACtB;;AAEA;EACE,eAAe;AACjB;;AAEA;EACE,iBAAiB;EACjB,YAAY;EACZ,kBAAkB;EAClB,mCAAmC;EACnC,WAAW;EACX,iCAAiC;EACjC,eAAe;AACjB;AACA;;EAEE,kCAAkC;AACpC;;AAEA;EACE,aAAa;AACf;;AAEA;EACE,gBAAgB;EAChB,YAAY;AACd;;AAEA;EACE,yBAAyB;EACzB,cAAc;EACd,YAAY;EACZ,kBAAkB;AACpB;;AAEA;EACE,iBAAiB;AACnB",file:"index.css",sourcesContent:["body {\n margin: 20px;\n}\n\nbody, button, input {\n font-family: 'Helvetica Neue', Helvetica, Arial, sans-serif;\n font-size: 11pt;\n}\n\nh1 {\n font-weight: normal;\n padding-bottom: 10px;\n}\n\np {\n margin: .75em 0;\n}\n\nbutton {\n font-weight: bold;\n border: none;\n border-radius: 7px;\n background-color: rgb(61, 109, 211);\n color: #fff;\n transition: background-color 0.4s;\n cursor: pointer;\n}\nbutton:hover,\nbutton:focus {\n background-color: rgb(55, 97, 188);\n}\n\n:focus {\n outline: none;\n}\n\n#app-container {\n max-width: 600px;\n margin: auto;\n}\n\n.error {\n background-color: #ff8e8e;\n color: #323232;\n padding: 8px;\n border-radius: 2px;\n}\n\n.app-name {\n font-weight: bold;\n}\n"]}]),n.default=t},function(l,n,u){"use strict";u.r(n);var e,t,r,i,o,s,a=u(0),c=u.n(a),f={},p=[],h=/acit|ex(?:s|g|n|p|$)|rph|grid|ows|mnc|ntw|ine[ch]|zoo|^ord|itera/i;function d(l,n){for(var u in n)l[u]=n[u];return l}function y(l){var n=l.parentNode;n&&n.removeChild(l)}function g(l,n,u){var e,t=arguments,r={};for(e in n)"key"!==e&&"ref"!==e&&(r[e]=n[e]);if(arguments.length>3)for(u=[u],e=3;e1&&j(t,n,u),n=O(u,t,t,l.__k,null,t.__e,n),"function"==typeof l.type&&(l.__d=n)))}function T(l,n,u,t,r,i,o,s,a){var c,f,p,h,y,g,m,w,b,A,E,k=n.type;if(void 0!==n.constructor)return null;(c=e.__b)&&c(n);try{l:if("function"==typeof k){if(w=n.props,b=(c=k.contextType)&&t[c.__c],A=c?b?b.props.value:c.__:t,u.__c?m=(f=n.__c=u.__c).__=f.__E:("prototype"in k&&k.prototype.render?n.__c=f=new k(w,A):(n.__c=f=new v(w,A),f.constructor=k,f.render=L),b&&b.sub(f),f.props=w,f.state||(f.state={}),f.context=A,f.__n=t,p=f.__d=!0,f.__h=[]),null==f.__s&&(f.__s=f.state),null!=k.getDerivedStateFromProps&&(f.__s==f.state&&(f.__s=d({},f.__s)),d(f.__s,k.getDerivedStateFromProps(w,f.__s))),h=f.props,y=f.state,p)null==k.getDerivedStateFromProps&&null!=f.componentWillMount&&f.componentWillMount(),null!=f.componentDidMount&&f.__h.push(f.componentDidMount);else{if(null==k.getDerivedStateFromProps&&w!==h&&null!=f.componentWillReceiveProps&&f.componentWillReceiveProps(w,A),!f.__e&&null!=f.shouldComponentUpdate&&!1===f.shouldComponentUpdate(w,f.__s,A)||n.__v===u.__v){f.props=w,f.state=f.__s,n.__v!==u.__v&&(f.__d=!1),f.__v=n,n.__e=u.__e,n.__k=u.__k,f.__h.length&&o.push(f),j(n,s,l);break l}null!=f.componentWillUpdate&&f.componentWillUpdate(w,f.__s,A),null!=f.componentDidUpdate&&f.__h.push((function(){f.componentDidUpdate(h,y,g)}))}f.context=A,f.props=w,f.state=f.__s,(c=e.__r)&&c(n),f.__d=!1,f.__v=n,f.__P=l,c=f.render(f.props,f.state,f.context),f.state=f.__s,null!=f.getChildContext&&(t=d(d({},t),f.getChildContext())),p||null==f.getSnapshotBeforeUpdate||(g=f.getSnapshotBeforeUpdate(h,y)),E=null!=c&&c.type==_&&null==c.key?c.props.children:c,S(l,Array.isArray(E)?E:[E],n,u,t,r,i,o,s,a),f.base=n.__e,f.__h.length&&o.push(f),m&&(f.__E=f.__=null),f.__e=!1}else null==i&&n.__v===u.__v?(n.__k=u.__k,n.__e=u.__e):n.__e=U(u.__e,n,u,t,r,i,o,a);(c=e.diffed)&&c(n)}catch(l){n.__v=null,e.__e(l,n,u)}return n.__e}function R(l,n){e.__c&&e.__c(n,l),l.some((function(n){try{l=n.__h,n.__h=[],l.some((function(l){l.call(n)}))}catch(l){e.__e(l,n.__v)}}))}function U(l,n,u,e,t,r,i,o){var s,a,c,h,d,y=u.props,g=n.props;if(t="svg"===n.type||t,null!=r)for(s=0;s2&&(n.children=p.slice.call(arguments,2)),u={},n)"key"!==e&&"ref"!==e&&(u[e]=n[e]);return m(l.type,u,n.key||l.key,n.ref||l.ref,null)}e={__e:function(l,n){for(var u,e;n=n.__;)if((u=n.__c)&&!u.__)try{if(u.constructor&&null!=u.constructor.getDerivedStateFromError&&(e=!0,u.setState(u.constructor.getDerivedStateFromError(l))),null!=u.componentDidCatch&&(e=!0,u.componentDidCatch(l)),e)return A(u.__E=u)}catch(n){l=n}throw l}},v.prototype.setState=function(l,n){var u;u=this.__s!==this.state?this.__s:this.__s=d({},this.state),"function"==typeof l&&(l=l(u,this.props)),l&&d(u,l),null!=l&&this.__v&&(n&&this.__h.push(n),A(this))},v.prototype.forceUpdate=function(l){this.__v&&(this.__e=!0,l&&this.__h.push(l),A(this))},v.prototype.render=_,t=[],r="function"==typeof Promise?Promise.prototype.then.bind(Promise.resolve()):setTimeout,E.__r=0,o=f,s=0;var K,H,q,z=0,F=[],W=e.__r,Y=e.diffed,J=e.__c,$=e.unmount;function V(l,n){e.__h&&e.__h(H,l,z||n),z=0;var u=H.__H||(H.__H={__:[],__h:[]});return l>=u.__.length&&u.__.push({}),u.__[l]}function G(l){return z=1,Z(rl,l)}function Z(l,n,u){var e=V(K++,2);return e.t=l,e.__c||(e.__c=H,e.__=[u?u(n):rl(void 0,n),function(l){var n=e.t(e.__[0],l);e.__[0]!==n&&(e.__=[n,e.__[1]],e.__c.setState({}))}]),e.__}function X(l,n){var u=V(K++,4);!e.__s&&tl(u.__H,n)&&(u.__=l,u.__H=n,H.__h.push(u))}function Q(l,n){var u=V(K++,7);return tl(u.__H,n)?(u.__H=n,u.__h=l,u.__=l()):u.__}function ll(){F.some((function(l){if(l.__P)try{l.__H.__h.forEach(ul),l.__H.__h.forEach(el),l.__H.__h=[]}catch(n){return l.__H.__h=[],e.__e(n,l.__v),!0}})),F=[]}e.__r=function(l){W&&W(l),K=0;var n=(H=l.__c).__H;n&&(n.__h.forEach(ul),n.__h.forEach(el),n.__h=[])},e.diffed=function(l){Y&&Y(l);var n=l.__c;n&&n.__H&&n.__H.__h.length&&(1!==F.push(n)&&q===e.requestAnimationFrame||((q=e.requestAnimationFrame)||function(l){var n,u=function(){clearTimeout(e),nl&&cancelAnimationFrame(n),setTimeout(l)},e=setTimeout(u,100);nl&&(n=requestAnimationFrame(u))})(ll))},e.__c=function(l,n){n.some((function(l){try{l.__h.forEach(ul),l.__h=l.__h.filter((function(l){return!l.__||el(l)}))}catch(u){n.some((function(l){l.__h&&(l.__h=[])})),n=[],e.__e(u,l.__v)}})),J&&J(l,n)},e.unmount=function(l){$&&$(l);var n=l.__c;if(n&&n.__H)try{n.__H.__.forEach(ul)}catch(l){e.__e(l,n.__v)}};var nl="function"==typeof requestAnimationFrame;function ul(l){"function"==typeof l.u&&l.u()}function el(l){l.u=l.__()}function tl(l,n){return!l||n.some((function(n,u){return n!==l[u]}))}function rl(l,n){return"function"==typeof n?n(l):n}function il(l,n){for(var u in n)l[u]=n[u];return l}function ol(l,n){for(var u in l)if("__source"!==u&&!(u in n))return!0;for(var e in n)if("__source"!==e&&l[e]!==n[e])return!0;return!1}var sl=function(l){var n,u;function e(n){var u;return(u=l.call(this,n)||this).isPureReactComponent=!0,u}return u=l,(n=e).prototype=Object.create(u.prototype),n.prototype.constructor=n,n.__proto__=u,e.prototype.shouldComponentUpdate=function(l,n){return ol(this.props,l)||ol(this.state,n)},e}(v);var al=e.__b;e.__b=function(l){l.type&&l.type.t&&l.ref&&(l.props.ref=l.ref,l.ref=null),al&&al(l)};var cl="undefined"!=typeof Symbol&&Symbol.for&&Symbol.for("react.forward_ref")||3911;var fl=function(l,n){return l?k(l).reduce((function(l,u,e){return l.concat(n(u,e))}),[]):null},pl={map:fl,forEach:fl,count:function(l){return l?k(l).length:0},only:function(l){if(1!==(l=k(l)).length)throw new Error("Children.only() expects only one child.");return l[0]},toArray:k},hl=e.__e;function dl(l){return l&&((l=il({},l)).__c=null,l.__k=l.__k&&l.__k.map(dl)),l}function yl(){this.__u=0,this.o=null,this.__b=null}function gl(l){var n=l.__.__c;return n&&n.u&&n.u(l)}function ml(){this.i=null,this.l=null}e.__e=function(l,n,u){if(l.then)for(var e,t=n;t=t.__;)if((e=t.__c)&&e.__c)return e.__c(l,n.__c);hl(l,n,u)},(yl.prototype=new v).__c=function(l,n){var u=this;null==u.o&&(u.o=[]),u.o.push(n);var e=gl(u.__v),t=!1,r=function(){t||(t=!0,e?e(i):i())};n.__c=n.componentWillUnmount,n.componentWillUnmount=function(){r(),n.__c&&n.__c()};var i=function(){var l;if(!--u.__u)for(u.__v.__k[0]=u.state.u,u.setState({u:u.__b=null});l=u.o.pop();)l.forceUpdate()};u.__u++||u.setState({u:u.__b=u.__v.__k[0]}),l.then(r,r)},yl.prototype.render=function(l,n){return this.__b&&(this.__v.__k&&(this.__v.__k[0]=dl(this.__b)),this.__b=null),[g(_,null,n.u?null:l.children),n.u&&l.fallback]};var _l=function(l,n,u){if(++u[1]===u[0]&&l.l.delete(n),l.props.revealOrder&&("t"!==l.props.revealOrder[0]||!l.l.size))for(u=l.i;u;){for(;u.length>3;)u.pop()();if(u[1]this._handleMessage(l)}async _handleMessage({data:l,origin:n}){if(n!==this._clientOrigin)return void console.warn("solid-auth-client is listening to ".concat(this._clientOrigin," ")+"so ignored a message received from ".concat(n,"."));const u=l&&l[Pl];if(u&&u.method){const{id:l,method:n,args:e}=u,t=await this._handler(n,...e);this._clientWindow.postMessage({[Pl]:{id:l,ret:t}},this._clientOrigin)}}start(){window.addEventListener("message",this._messageListener)}stop(){window.removeEventListener("message",this._messageListener)}}class Tl{constructor(l,n){c()(this,"_serverWindow",void 0),c()(this,"_serverOrigin",void 0),this._serverWindow=l,this._serverOrigin=n}request(l,...n){const u=Math.random();return this._serverWindow.postMessage({[Pl]:{id:u,method:l,args:n}},this._serverOrigin),new Promise((l,n)=>{window.addEventListener("message",t);const e=setTimeout(()=>{n(new Error("Could not connect to main window.")),window.removeEventListener("message",t)},2e3);function t({data:n}){const r=n&&n[Pl];r&&r.id===u&&r.hasOwnProperty("ret")&&(l(r.ret),clearTimeout(e),window.removeEventListener("message",t))}})}}const Rl=()=>{const l="undefined"!=typeof window&&"localStorage"in window;return n=l?window.localStorage:Bl(),{getItem:l=>Promise.resolve(n.getItem(l)),setItem:(l,u)=>Promise.resolve(n.setItem(l,u)),removeItem:l=>Promise.resolve(n.removeItem(l))};var n};async function Ul(l){let n,u;try{n=await l.getItem("solid-auth-client"),u=JSON.parse(n||"{}")}catch(l){console.warn("Could not deserialize data:",n),console.error(l),u={}}return u}async function Il(l,n){const u=n(await Ul(l));return await l.setItem("solid-auth-client",JSON.stringify(u)),u}const Bl=()=>{const l={};return{getItem:n=>void 0===l[n]?null:l[n],setItem:(n,u)=>{l[n]=u},removeItem:n=>{delete l[n]}}};function Ll(l){return{getItem:n=>l.request("storage/getItem",n),setItem:(n,u)=>l.request("storage/setItem",n,u),removeItem:n=>l.request("storage/removeItem",n)}}var Dl=u(26),Ml=u.n(Dl);u(5);function Nl(){return"undefined"!=typeof window?window.location:{href:"https://example.org/",pathname:"/",origin:"example.org"}}const Kl=()=>Nl().href,Hl=l=>("string"!=typeof l&&(l="url"in l?l.url:l.toString()),new URL(l,Kl()).toString());function ql(l,n){var u=Object.keys(l);if(Object.getOwnPropertySymbols){var e=Object.getOwnPropertySymbols(l);n&&(e=e.filter((function(n){return Object.getOwnPropertyDescriptor(l,n).enumerable}))),u.push.apply(u,e)}return u}function zl(l){for(var n=1;nl.startsWith("clientName#")).forEach(([l,n])=>t[l.replace("clientName#","client_name#")]=n);const r={logo_uri:n.logoUri,contacts:n.contacts,client_name:n.clientName},i=Ql(Ql({issuer:l,grant_types:["implicit"],redirect_uris:[e],response_types:["id_token token"],scope:"openid profile"},t),r),o={defaults:{authenticate:{redirect_uri:e,response_type:"id_token token",display:"page",scope:["openid"]}},store:u};return Vl.a.register(l,i,o)}(l,n),await async function(l,n,u){return await Il(l,l=>Ql(Ql({},l),{},{rpConfig:u})),u}(n.storage,0,u));return u}(l,n);return await async function(l){await Il(l,l=>Ql(Ql({},l),{},{appHashFragment:window.location.hash}))}(n.storage),async function(l,{callbackUri:n,storage:u}){const e=await Ul(u),t=await l.createRequest({redirect_uri:n},e);return await Il(u,()=>e),(l=>{Nl().href=l})(t)}(u,n)}catch(l){return console.warn("Error logging in with WebID-OIDC"),console.error(l),null}}async function nn(l=Rl()){try{const n=await un(l);if(!n)return null;const u=Kl();if(!/#(.*&)?access_token=/.test(u))return null;window.location.hash="",await async function(l){await Il(l,l=>{let{appHashFragment:n=""}=l,u=Yl()(l,["appHashFragment"]);return window.location.hash=n,u})}(l);const e=await Ul(l),t=await n.validateResponse(u,e);return t?Ql(Ql({},t),{},{webId:t.idClaims.sub,idp:t.issuer}):null}catch(l){return console.warn("Error finding a WebID-OIDC session"),console.error(l),null}}async function un(l){const n=await Ul(l),{rpConfig:u}=n;return u?(u.store=l,Vl.a.from(u)):null}async function en(l,n,u,e){const t=(e?e.headers:u.headers)||{},r=await Zl.a.issueFor(Hl(u),l);return t.authorization="Bearer ".concat(r),n(u,Ql(Ql({},e),{},{credentials:"include",headers:t}))}function tn(l,n){var u=Object.keys(l);if(Object.getOwnPropertySymbols){var e=Object.getOwnPropertySymbols(l);n&&(e=e.filter((function(n){return Object.getOwnPropertyDescriptor(l,n).enumerable}))),u.push.apply(u,e)}return u}function rn(l){for(var n=1;n{if(function(l){if(401!==l.status)return!1;const n=l.headers.get("www-authenticate");if(!n)return!1;const u=Jl.parse(n);return"Bearer"===u.scheme&&u.params&&"openid webid"===u.params.scope}(n)){const{host:u}=new URL(n.url);await function(l){return async({url:n,requiresAuth:u})=>{await Il(l,l=>rn(rn({},l),{},{hosts:rn(rn({},l.hosts),{},{[n]:{requiresAuth:u}})}))}}(l)({url:u,requiresAuth:!0})}}}function sn(l,n){var u=Object.keys(l);if(Object.getOwnPropertySymbols){var e=Object.getOwnPropertySymbols(l);n&&(e=e.filter((function(n){return Object.getOwnPropertyDescriptor(l,n).enumerable}))),u.push.apply(u,e)}return u}function an(l){for(var n=1;n{const{host:u}=new URL(n),e=await Fl(l);if(e&&u===new URL(e.idp).host)return{url:u,requiresAuth:!0};const{hosts:t}=await Ul(l);return t&&t[u]}}(l)(Hl(n));return null!=u&&u.requiresAuth}function fn(l,n,u){return new Promise((e,t)=>{const r=new jl(n,(i=u.popupUri||"",new URL(i).origin),function(l,{popupUri:n,callbackUri:u},e){return async(t,...r)=>{switch(t){case"getAppOrigin":return window.location.origin;case"storage/getItem":return l.getItem(...r);case"storage/setItem":return l.setItem(...r);case"storage/removeItem":return l.removeItem(...r);case"getLoginOptions":return{popupUri:n,callbackUri:u};case"foundSession":e(...r)}}}(l,u,l=>{r.stop(),e(l)}));var i;r.start()})}function pn(l,n){var u=Object.keys(l);if(Object.getOwnPropertySymbols){var e=Object.getOwnPropertySymbols(l);n&&(e=e.filter((function(n){return Object.getOwnPropertyDescriptor(l,n).enumerable}))),u.push.apply(u,e)}return u}function hn(l){for(var n=1;n{n[u]=l});else for(const u in l)n[u]=l[u];return n}(e.headers);e=an(an({},e),{},{headers:l})}const t=await Fl(l);if(!t)return n(u,e);if(await cn(l,u))return en(t,n,u,e);let r=await n(u,e);return 401===r.status&&(await on(l)(r),await cn(l,u)&&(r=en(t,n,u,e))),r}(Rl(),dn,l,n)}login(l,n){return ln(l,n=hn(hn({},gn(Nl().origin+Nl().pathname)),n))}async popupLogin(l){l=hn(hn({},gn()),l),/https?:/.test(l.popupUri)||(l.popupUri=new URL(l.popupUri||"/.well-known/solid/login",window.location).toString()),l.callbackUri||(l.callbackUri=l.popupUri);const n=function(l){const n=window.screenX+(window.innerWidth-650)/2,u=window.screenY+(window.innerHeight-400)/2,e="width=".concat(650,",height=").concat(400,",left=").concat(n,",top=").concat(u);return window.open(l,"solid-auth-client",e)}(l.popupUri),u=await fn(l.storage,n,l);return this.emit("login",u),this.emit("session",u),u}async currentSession(l=Rl()){let n=this._pendingSession||await Fl(l);if(!n){try{this._pendingSession=nn(l),n=await this._pendingSession}catch(l){console.error(l)}n&&(await function(l){return async n=>(await Il(l,l=>zl(zl({},l),{},{session:n}))).session}(l)(n),this.emit("login",n),this.emit("session",n)),delete this._pendingSession}return n}async trackSession(l){l(await this.currentSession()),this.on("session",l)}stopTrackSession(l){this.removeListener("session",l)}async logout(l=Rl()){if(await Fl(l)){try{await async function(l,n){const u=await un(l);if(u)try{await u.logout();try{await n("/.well-known/solid/logout",{credentials:"include"})}catch(l){console.info("Couldn't find /.well-known/solid/logout, this is harmless.")}}catch(l){console.warn("Error logging out of the WebID-OIDC session"),console.error(l)}}(l,dn),this.emit("logout"),this.emit("session",null)}catch(l){console.warn("Error logging out:"),console.error(l)}await async function(l){await Il(l,l=>zl(zl({},l),{},{session:null}))}(l)}}}function gn(l){return{callbackUri:l?l.split("#")[0]:"",popupUri:"",storage:Rl()}}const mn=new yn;var _n=mn;if(Object.getOwnPropertyNames(yn.prototype).forEach(l=>{const n=mn[l];"function"==typeof n&&(mn[l]=n.bind(mn))}),"undefined"!=typeof window)if("SolidAuthClient"in window)console.warn("Caution: multiple versions of solid-auth-client active.");else{let l=!1;Object.defineProperty(window,"SolidAuthClient",{enumerable:!0,get:()=>(l||(l=!0,console.warn("window.SolidAuthClient has been deprecated."),console.warn("Please use window.solid.auth instead.")),mn)})}class vn extends v{constructor(...l){super(...l),c()(this,"state",{loggedIn:!1}),c()(this,"client",new Tl(window.opener,this.props.appOrigin))}async componentDidMount(){const l=Ll(this.client),n=await _n.currentSession(l);await this.client.request("foundSession",n),this.setState({loggedIn:!0})}componentDidUpdate(){const{afterLoggedIn:l}=this.props;this.state.loggedIn&&l()}render(){const l=this.state.loggedIn?"Logged in!":"Logging in…";return Cl.createElement("h1",{class:"center"},l)}}u(60);function wn(l,n){var u=Object.keys(l);if(Object.getOwnPropertySymbols){var e=Object.getOwnPropertySymbols(l);n&&(e=e.filter((function(n){return Object.getOwnPropertyDescriptor(l,n).enumerable}))),u.push.apply(u,e)}return u}function bn(l){for(var n=1;n{let n=l.target.value;/^($|h$|ht)/.test(n)||(n="https://".concat(n)),this.setState({idp:n})}),c()(this,"handleBlurIdp",l=>{let n=l.target.value;/^(https?:\/\/|$)/.test(n)||(n=n.replace(/^([a-z]*:\/*)?/,"https://")),this.setState({idp:n})}),c()(this,"handleSelectIdp",l=>async n=>{if(n.preventDefault(),this.setState({idp:l}),!window.opener)return console.warn("No parent window"),void this.setState({error:"Couldn't find the application window. Try closing this popup window and logging in again."});const u=bn(bn({},await this.getClient().request("getLoginOptions")),{},{storage:this.getStorage()});await _n.login(l,u)})}getClient(){return new Tl(window.opener,this.props.appOrigin)}getStorage(){return Ll(this.getClient())}async componentDidMount(){const{rpConfig:l}=await Ul(this.getStorage());l&&this.setState({idp:l.provider.url}),this.idpInput.focus()}render(){const{appName:l,idps:n}=this.props,{idp:u,error:e}=this.state;return Cl.createElement("div",null,Cl.createElement("h1",null,"Log in to ",Cl.createElement("span",{className:"app-name"},l)),e&&Cl.createElement("p",{className:"error"},e),Cl.createElement("p",null,"Please enter your WebID or the URL of your identity provider:"),Cl.createElement("form",{className:"custom-idp",onSubmit:this.handleSelectIdp(u)},Cl.createElement("input",{ref:l=>this.idpInput=l,type:"url",placeholder:"https://my-identity.provider",value:u,onChange:this.handleChangeIdp,onBlur:this.handleBlurIdp}),Cl.createElement("button",{type:"submit",disabled:!u},"Go")),Cl.createElement("p",null,"Or pick an identity provider from the list below:"),Cl.createElement("div",{className:"idp-list"},n.map(l=>Cl.createElement("button",{className:"idp",onClick:this.handleSelectIdp(l.url),key:l.url},l.displayName))))}}var En=({appName:l})=>Cl.createElement("div",null,Cl.createElement("p",null,"This window was opened to log you in to"," ",Cl.createElement("span",{className:"app-name"},l),", but that app is no longer open."),Cl.createElement("p",null,"If you're trying to log in to ",Cl.createElement("span",{className:"app-name"},l),", close this window, then go back to the app and log in again."),Cl.createElement("p",null,"If you opened this window by accident, close it.")),Sn=u(29);u(62);function kn(l,n){var u=Object.keys(l);if(Object.getOwnPropertySymbols){var e=Object.getOwnPropertySymbols(l);n&&(e=e.filter((function(n){return Object.getOwnPropertyDescriptor(l,n).enumerable}))),u.push.apply(u,e)}return u}function On(l){for(var n=1;nOn(On({},n),{},{appOrigin:l}))}(l),l})().then(l=>{const n=window.location.href.replace(/(\/\/[^/]*\/).*/,"$1"),u=n.replace(/^[^:]+:|\//g,""),e="".trim()||u;let t;if(l)if(window.location.hash)t=Cl.createElement(vn,{appOrigin:l,afterLoggedIn:()=>setTimeout(window.close,750)});else{const r=[...Sn];r.some(l=>l.url===n)||r.unshift({displayName:u,url:n}),t=Cl.createElement(An,{idps:r,appOrigin:l,appName:e})}else t=Cl.createElement(En,{appName:e});Cl.render(t,document.getElementById("app-container"))}).catch(l=>{window.alert(l),window.close()})}]); +//# sourceMappingURL=popup.bundle.js.map \ No newline at end of file diff --git a/build/service-worker.js b/build/service-worker.js index dac778f..2e246c3 100644 --- a/build/service-worker.js +++ b/build/service-worker.js @@ -14,7 +14,7 @@ importScripts("https://storage.googleapis.com/workbox-cdn/releases/3.6.3/workbox-sw.js"); importScripts( - "/precache-manifest.abe81fe3c6e1a7f73cf4775b56f0ac3e.js" + "/precache-manifest.b900339059ef0bfb81e3ac7b186dd1d9.js" ); workbox.clientsClaim(); diff --git a/build/solid-auth-client.bundle.js b/build/solid-auth-client.bundle.js index b245990..8fe225c 100644 --- a/build/solid-auth-client.bundle.js +++ b/build/solid-auth-client.bundle.js @@ -1,20 +1,26 @@ -!function(e,t){"object"==typeof exports&&"object"==typeof module?module.exports=t(require("window"),require("fetch"),require("crypto"),require("TextEncoder")):"function"==typeof define&&define.amd?define(["window","fetch","crypto","TextEncoder"],t):"object"==typeof exports?exports.auth=t(require("window"),require("fetch"),require("crypto"),require("TextEncoder")):(e.solid=e.solid||{},e.solid.auth=t(e.window,e.fetch,e.crypto,e.TextEncoder))}(window,function(e,t,n,r){return function(e){var t={};function n(r){if(t[r])return t[r].exports;var i=t[r]={i:r,l:!1,exports:{}};return e[r].call(i.exports,i,i.exports,n),i.l=!0,i.exports}return n.m=e,n.c=t,n.d=function(e,t,r){n.o(e,t)||Object.defineProperty(e,t,{enumerable:!0,get:r})},n.r=function(e){"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(e,"__esModule",{value:!0})},n.t=function(e,t){if(1&t&&(e=n(e)),8&t)return e;if(4&t&&"object"==typeof e&&e&&e.__esModule)return e;var r=Object.create(null);if(n.r(r),Object.defineProperty(r,"default",{enumerable:!0,value:e}),2&t&&"string"!=typeof e)for(var i in e)n.d(r,i,function(t){return e[t]}.bind(null,i));return r},n.n=function(e){var t=e&&e.__esModule?function(){return e.default}:function(){return e};return n.d(t,"a",t),t},n.o=function(e,t){return Object.prototype.hasOwnProperty.call(e,t)},n.p="",n(n.s=72)}([function(e,t){e.exports=function(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}},function(e,t,n){"use strict";e.exports={Formats:n(18),Initializer:n(19),JSONDocument:n(45),JSONMapping:n(46),JSONPatch:n(20),JSONPointer:n(11),JSONSchema:n(47),Validator:n(21)}},function(e,t,n){e.exports=n(48).default,e.exports.default=e.exports},function(e,t,n){"use strict";var r=n(12),i=n(26),o=n(60),s=n(61),a=n(32),u=n(29),c=n(31),f=n(9),l=n(27),p=n(30),h=n(28);e.exports={JWA:r,JWK:i,JWKSet:o,JWT:s,JWS:a,Base64URLSchema:u,JOSEHeaderSchema:c,JWKSchema:f,JWKSetSchema:l,JWTClaimsSetSchema:p,JWTSchema:h}},function(e,t,n){"use strict";(function(e){ +!function(l,n){"object"==typeof exports&&"object"==typeof module?module.exports=n(require("fetch"),require("window")):"function"==typeof define&&define.amd?define(["fetch","window"],n):"object"==typeof exports?exports.auth=n(require("fetch"),require("window")):(l.solid=l.solid||{},l.solid.auth=n(l.fetch,l.window))}(window,(function(l,n){return function(l){var n={};function u(e){if(n[e])return n[e].exports;var t=n[e]={i:e,l:!1,exports:{}};return l[e].call(t.exports,t,t.exports,u),t.l=!0,t.exports}return u.m=l,u.c=n,u.d=function(l,n,e){u.o(l,n)||Object.defineProperty(l,n,{enumerable:!0,get:e})},u.r=function(l){"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(l,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(l,"__esModule",{value:!0})},u.t=function(l,n){if(1&n&&(l=u(l)),8&n)return l;if(4&n&&"object"==typeof l&&l&&l.__esModule)return l;var e=Object.create(null);if(u.r(e),Object.defineProperty(e,"default",{enumerable:!0,value:l}),2&n&&"string"!=typeof l)for(var t in l)u.d(e,t,function(n){return l[n]}.bind(null,t));return e},u.n=function(l){var n=l&&l.__esModule?function(){return l.default}:function(){return l};return u.d(n,"a",n),n},u.o=function(l,n){return Object.prototype.hasOwnProperty.call(l,n)},u.p="",u(u.s=57)}([function(l,n){l.exports=function(l,n,u){return n in l?Object.defineProperty(l,n,{value:u,enumerable:!0,configurable:!0,writable:!0}):l[n]=u,l}},function(l,n,u){"use strict";(function(l){ /*! * The buffer module from node.js, for the browser. * - * @author Feross Aboukhadijeh + * @author Feross Aboukhadijeh * @license MIT */ -var r=n(49),i=n(50),o=n(51);function s(){return u.TYPED_ARRAY_SUPPORT?2147483647:1073741823}function a(e,t){if(s()=s())throw new RangeError("Attempt to allocate Buffer larger than maximum size: 0x"+s().toString(16)+" bytes");return 0|e}function d(e,t){if(u.isBuffer(e))return e.length;if("undefined"!=typeof ArrayBuffer&&"function"==typeof ArrayBuffer.isView&&(ArrayBuffer.isView(e)||e instanceof ArrayBuffer))return e.byteLength;"string"!=typeof e&&(e=""+e);var n=e.length;if(0===n)return 0;for(var r=!1;;)switch(t){case"ascii":case"latin1":case"binary":return n;case"utf8":case"utf-8":case void 0:return q(e).length;case"ucs2":case"ucs-2":case"utf16le":case"utf-16le":return 2*n;case"hex":return n>>>1;case"base64":return B(e).length;default:if(r)return q(e).length;t=(""+t).toLowerCase(),r=!0}}function y(e,t,n){var r=!1;if((void 0===t||t<0)&&(t=0),t>this.length)return"";if((void 0===n||n>this.length)&&(n=this.length),n<=0)return"";if((n>>>=0)<=(t>>>=0))return"";for(e||(e="utf8");;)switch(e){case"hex":return x(this,t,n);case"utf8":case"utf-8":return P(this,t,n);case"ascii":return A(this,t,n);case"latin1":case"binary":return T(this,t,n);case"base64":return _(this,t,n);case"ucs2":case"ucs-2":case"utf16le":case"utf-16le":return R(this,t,n);default:if(r)throw new TypeError("Unknown encoding: "+e);e=(e+"").toLowerCase(),r=!0}}function g(e,t,n){var r=e[t];e[t]=e[n],e[n]=r}function v(e,t,n,r,i){if(0===e.length)return-1;if("string"==typeof n?(r=n,n=0):n>2147483647?n=2147483647:n<-2147483648&&(n=-2147483648),n=+n,isNaN(n)&&(n=i?0:e.length-1),n<0&&(n=e.length+n),n>=e.length){if(i)return-1;n=e.length-1}else if(n<0){if(!i)return-1;n=0}if("string"==typeof t&&(t=u.from(t,r)),u.isBuffer(t))return 0===t.length?-1:m(e,t,n,r,i);if("number"==typeof t)return t&=255,u.TYPED_ARRAY_SUPPORT&&"function"==typeof Uint8Array.prototype.indexOf?i?Uint8Array.prototype.indexOf.call(e,t,n):Uint8Array.prototype.lastIndexOf.call(e,t,n):m(e,[t],n,r,i);throw new TypeError("val must be string, number or Buffer")}function m(e,t,n,r,i){var o,s=1,a=e.length,u=t.length;if(void 0!==r&&("ucs2"===(r=String(r).toLowerCase())||"ucs-2"===r||"utf16le"===r||"utf-16le"===r)){if(e.length<2||t.length<2)return-1;s=2,a/=2,u/=2,n/=2}function c(e,t){return 1===s?e[t]:e.readUInt16BE(t*s)}if(i){var f=-1;for(o=n;oa&&(n=a-u),o=n;o>=0;o--){for(var l=!0,p=0;pi&&(r=i):r=i;var o=t.length;if(o%2!=0)throw new TypeError("Invalid hex string");r>o/2&&(r=o/2);for(var s=0;s>8,i=n%256,o.push(i),o.push(r);return o}(t,e.length-n),e,n,r)}function _(e,t,n){return 0===t&&n===e.length?r.fromByteArray(e):r.fromByteArray(e.slice(t,n))}function P(e,t,n){n=Math.min(e.length,n);for(var r=[],i=t;i239?4:c>223?3:c>191?2:1;if(i+l<=n)switch(l){case 1:c<128&&(f=c);break;case 2:128==(192&(o=e[i+1]))&&(u=(31&c)<<6|63&o)>127&&(f=u);break;case 3:o=e[i+1],s=e[i+2],128==(192&o)&&128==(192&s)&&(u=(15&c)<<12|(63&o)<<6|63&s)>2047&&(u<55296||u>57343)&&(f=u);break;case 4:o=e[i+1],s=e[i+2],a=e[i+3],128==(192&o)&&128==(192&s)&&128==(192&a)&&(u=(15&c)<<18|(63&o)<<12|(63&s)<<6|63&a)>65535&&u<1114112&&(f=u)}null===f?(f=65533,l=1):f>65535&&(f-=65536,r.push(f>>>10&1023|55296),f=56320|1023&f),r.push(f),i+=l}return function(e){var t=e.length;if(t<=j)return String.fromCharCode.apply(String,e);var n="",r=0;for(;r0&&(e=this.toString("hex",0,n).match(/.{2}/g).join(" "),this.length>n&&(e+=" ... ")),""},u.prototype.compare=function(e,t,n,r,i){if(!u.isBuffer(e))throw new TypeError("Argument must be a Buffer");if(void 0===t&&(t=0),void 0===n&&(n=e?e.length:0),void 0===r&&(r=0),void 0===i&&(i=this.length),t<0||n>e.length||r<0||i>this.length)throw new RangeError("out of range index");if(r>=i&&t>=n)return 0;if(r>=i)return-1;if(t>=n)return 1;if(this===e)return 0;for(var o=(i>>>=0)-(r>>>=0),s=(n>>>=0)-(t>>>=0),a=Math.min(o,s),c=this.slice(r,i),f=e.slice(t,n),l=0;li)&&(n=i),e.length>0&&(n<0||t<0)||t>this.length)throw new RangeError("Attempt to write outside buffer bounds");r||(r="utf8");for(var o=!1;;)switch(r){case"hex":return w(this,e,t,n);case"utf8":case"utf-8":return b(this,e,t,n);case"ascii":return O(this,e,t,n);case"latin1":case"binary":return E(this,e,t,n);case"base64":return S(this,e,t,n);case"ucs2":case"ucs-2":case"utf16le":case"utf-16le":return k(this,e,t,n);default:if(o)throw new TypeError("Unknown encoding: "+r);r=(""+r).toLowerCase(),o=!0}},u.prototype.toJSON=function(){return{type:"Buffer",data:Array.prototype.slice.call(this._arr||this,0)}};var j=4096;function A(e,t,n){var r="";n=Math.min(e.length,n);for(var i=t;ir)&&(n=r);for(var i="",o=t;on)throw new RangeError("Trying to access beyond buffer length")}function C(e,t,n,r,i,o){if(!u.isBuffer(e))throw new TypeError('"buffer" argument must be a Buffer instance');if(t>i||te.length)throw new RangeError("Index out of range")}function N(e,t,n,r){t<0&&(t=65535+t+1);for(var i=0,o=Math.min(e.length-n,2);i>>8*(r?i:1-i)}function U(e,t,n,r){t<0&&(t=4294967295+t+1);for(var i=0,o=Math.min(e.length-n,4);i>>8*(r?i:3-i)&255}function D(e,t,n,r,i,o){if(n+r>e.length)throw new RangeError("Index out of range");if(n<0)throw new RangeError("Index out of range")}function L(e,t,n,r,o){return o||D(e,0,n,4),i.write(e,t,n,r,23,4),n+4}function M(e,t,n,r,o){return o||D(e,0,n,8),i.write(e,t,n,r,52,8),n+8}u.prototype.slice=function(e,t){var n,r=this.length;if((e=~~e)<0?(e+=r)<0&&(e=0):e>r&&(e=r),(t=void 0===t?r:~~t)<0?(t+=r)<0&&(t=0):t>r&&(t=r),t0&&(i*=256);)r+=this[e+--t]*i;return r},u.prototype.readUInt8=function(e,t){return t||I(e,1,this.length),this[e]},u.prototype.readUInt16LE=function(e,t){return t||I(e,2,this.length),this[e]|this[e+1]<<8},u.prototype.readUInt16BE=function(e,t){return t||I(e,2,this.length),this[e]<<8|this[e+1]},u.prototype.readUInt32LE=function(e,t){return t||I(e,4,this.length),(this[e]|this[e+1]<<8|this[e+2]<<16)+16777216*this[e+3]},u.prototype.readUInt32BE=function(e,t){return t||I(e,4,this.length),16777216*this[e]+(this[e+1]<<16|this[e+2]<<8|this[e+3])},u.prototype.readIntLE=function(e,t,n){e|=0,t|=0,n||I(e,t,this.length);for(var r=this[e],i=1,o=0;++o=(i*=128)&&(r-=Math.pow(2,8*t)),r},u.prototype.readIntBE=function(e,t,n){e|=0,t|=0,n||I(e,t,this.length);for(var r=t,i=1,o=this[e+--r];r>0&&(i*=256);)o+=this[e+--r]*i;return o>=(i*=128)&&(o-=Math.pow(2,8*t)),o},u.prototype.readInt8=function(e,t){return t||I(e,1,this.length),128&this[e]?-1*(255-this[e]+1):this[e]},u.prototype.readInt16LE=function(e,t){t||I(e,2,this.length);var n=this[e]|this[e+1]<<8;return 32768&n?4294901760|n:n},u.prototype.readInt16BE=function(e,t){t||I(e,2,this.length);var n=this[e+1]|this[e]<<8;return 32768&n?4294901760|n:n},u.prototype.readInt32LE=function(e,t){return t||I(e,4,this.length),this[e]|this[e+1]<<8|this[e+2]<<16|this[e+3]<<24},u.prototype.readInt32BE=function(e,t){return t||I(e,4,this.length),this[e]<<24|this[e+1]<<16|this[e+2]<<8|this[e+3]},u.prototype.readFloatLE=function(e,t){return t||I(e,4,this.length),i.read(this,e,!0,23,4)},u.prototype.readFloatBE=function(e,t){return t||I(e,4,this.length),i.read(this,e,!1,23,4)},u.prototype.readDoubleLE=function(e,t){return t||I(e,8,this.length),i.read(this,e,!0,52,8)},u.prototype.readDoubleBE=function(e,t){return t||I(e,8,this.length),i.read(this,e,!1,52,8)},u.prototype.writeUIntLE=function(e,t,n,r){(e=+e,t|=0,n|=0,r)||C(this,e,t,n,Math.pow(2,8*n)-1,0);var i=1,o=0;for(this[t]=255&e;++o=0&&(o*=256);)this[t+i]=e/o&255;return t+n},u.prototype.writeUInt8=function(e,t,n){return e=+e,t|=0,n||C(this,e,t,1,255,0),u.TYPED_ARRAY_SUPPORT||(e=Math.floor(e)),this[t]=255&e,t+1},u.prototype.writeUInt16LE=function(e,t,n){return e=+e,t|=0,n||C(this,e,t,2,65535,0),u.TYPED_ARRAY_SUPPORT?(this[t]=255&e,this[t+1]=e>>>8):N(this,e,t,!0),t+2},u.prototype.writeUInt16BE=function(e,t,n){return e=+e,t|=0,n||C(this,e,t,2,65535,0),u.TYPED_ARRAY_SUPPORT?(this[t]=e>>>8,this[t+1]=255&e):N(this,e,t,!1),t+2},u.prototype.writeUInt32LE=function(e,t,n){return e=+e,t|=0,n||C(this,e,t,4,4294967295,0),u.TYPED_ARRAY_SUPPORT?(this[t+3]=e>>>24,this[t+2]=e>>>16,this[t+1]=e>>>8,this[t]=255&e):U(this,e,t,!0),t+4},u.prototype.writeUInt32BE=function(e,t,n){return e=+e,t|=0,n||C(this,e,t,4,4294967295,0),u.TYPED_ARRAY_SUPPORT?(this[t]=e>>>24,this[t+1]=e>>>16,this[t+2]=e>>>8,this[t+3]=255&e):U(this,e,t,!1),t+4},u.prototype.writeIntLE=function(e,t,n,r){if(e=+e,t|=0,!r){var i=Math.pow(2,8*n-1);C(this,e,t,n,i-1,-i)}var o=0,s=1,a=0;for(this[t]=255&e;++o>0)-a&255;return t+n},u.prototype.writeIntBE=function(e,t,n,r){if(e=+e,t|=0,!r){var i=Math.pow(2,8*n-1);C(this,e,t,n,i-1,-i)}var o=n-1,s=1,a=0;for(this[t+o]=255&e;--o>=0&&(s*=256);)e<0&&0===a&&0!==this[t+o+1]&&(a=1),this[t+o]=(e/s>>0)-a&255;return t+n},u.prototype.writeInt8=function(e,t,n){return e=+e,t|=0,n||C(this,e,t,1,127,-128),u.TYPED_ARRAY_SUPPORT||(e=Math.floor(e)),e<0&&(e=255+e+1),this[t]=255&e,t+1},u.prototype.writeInt16LE=function(e,t,n){return e=+e,t|=0,n||C(this,e,t,2,32767,-32768),u.TYPED_ARRAY_SUPPORT?(this[t]=255&e,this[t+1]=e>>>8):N(this,e,t,!0),t+2},u.prototype.writeInt16BE=function(e,t,n){return e=+e,t|=0,n||C(this,e,t,2,32767,-32768),u.TYPED_ARRAY_SUPPORT?(this[t]=e>>>8,this[t+1]=255&e):N(this,e,t,!1),t+2},u.prototype.writeInt32LE=function(e,t,n){return e=+e,t|=0,n||C(this,e,t,4,2147483647,-2147483648),u.TYPED_ARRAY_SUPPORT?(this[t]=255&e,this[t+1]=e>>>8,this[t+2]=e>>>16,this[t+3]=e>>>24):U(this,e,t,!0),t+4},u.prototype.writeInt32BE=function(e,t,n){return e=+e,t|=0,n||C(this,e,t,4,2147483647,-2147483648),e<0&&(e=4294967295+e+1),u.TYPED_ARRAY_SUPPORT?(this[t]=e>>>24,this[t+1]=e>>>16,this[t+2]=e>>>8,this[t+3]=255&e):U(this,e,t,!1),t+4},u.prototype.writeFloatLE=function(e,t,n){return L(this,e,t,!0,n)},u.prototype.writeFloatBE=function(e,t,n){return L(this,e,t,!1,n)},u.prototype.writeDoubleLE=function(e,t,n){return M(this,e,t,!0,n)},u.prototype.writeDoubleBE=function(e,t,n){return M(this,e,t,!1,n)},u.prototype.copy=function(e,t,n,r){if(n||(n=0),r||0===r||(r=this.length),t>=e.length&&(t=e.length),t||(t=0),r>0&&r=this.length)throw new RangeError("sourceStart out of bounds");if(r<0)throw new RangeError("sourceEnd out of bounds");r>this.length&&(r=this.length),e.length-t=0;--i)e[i+t]=this[i+n];else if(o<1e3||!u.TYPED_ARRAY_SUPPORT)for(i=0;i>>=0,n=void 0===n?this.length:n>>>0,e||(e=0),"number"==typeof e)for(o=t;o55295&&n<57344){if(!i){if(n>56319){(t-=3)>-1&&o.push(239,191,189);continue}if(s+1===r){(t-=3)>-1&&o.push(239,191,189);continue}i=n;continue}if(n<56320){(t-=3)>-1&&o.push(239,191,189),i=n;continue}n=65536+(i-55296<<10|n-56320)}else i&&(t-=3)>-1&&o.push(239,191,189);if(i=null,n<128){if((t-=1)<0)break;o.push(n)}else if(n<2048){if((t-=2)<0)break;o.push(n>>6|192,63&n|128)}else if(n<65536){if((t-=3)<0)break;o.push(n>>12|224,n>>6&63|128,63&n|128)}else{if(!(n<1114112))throw new Error("Invalid code point");if((t-=4)<0)break;o.push(n>>18|240,n>>12&63|128,n>>6&63|128,63&n|128)}}return o}function B(e){return r.toByteArray(function(e){if((e=function(e){return e.trim?e.trim():e.replace(/^\s+|\s+$/g,"")}(e).replace(z,"")).length<2)return"";for(;e.length%4!=0;)e+="=";return e}(e))}function H(e,t,n,r){for(var i=0;i=t.length||i>=e.length);++i)t[i+n]=e[i];return i}}).call(this,n(5))},function(e,t){var n;n=function(){return this}();try{n=n||new Function("return this")()}catch(e){"object"==typeof window&&(n=window)}e.exports=n},function(t,n){t.exports=e},function(e,n){e.exports=t},function(e,t){e.exports=n},function(e,t,n){"use strict";var r=n(1).JSONSchema,i=(n(59).BASE64_REGEXP,new r({type:"object",properties:{kty:{type:"string",enum:["RSA","EC","oct"]},use:{type:"string",enum:["sig","enc"]},key_ops:{type:"array",items:{enum:["sign","verify","encrypt","decrypt","wrapKey","unwrapKey","deriveKey","deriveBits"]}},alg:{type:"string",enum:["HS256","HS384","HS512","RS256","RS384","RS512","ES256","ES384","ES512","PS256","PS384","PS512","none"]},kid:{type:"string"},x5u:{type:"string"},x5c:{type:"array"},x5t:{type:"string"}}}));e.exports=i},function(e,t,n){"use strict";(function(t){var r=n(40); +var e=u(38),t=u(39),r=u(40);function i(){return s.TYPED_ARRAY_SUPPORT?2147483647:1073741823}function o(l,n){if(i()=i())throw new RangeError("Attempt to allocate Buffer larger than maximum size: 0x"+i().toString(16)+" bytes");return 0|l}function d(l,n){if(s.isBuffer(l))return l.length;if("undefined"!=typeof ArrayBuffer&&"function"==typeof ArrayBuffer.isView&&(ArrayBuffer.isView(l)||l instanceof ArrayBuffer))return l.byteLength;"string"!=typeof l&&(l=""+l);var u=l.length;if(0===u)return 0;for(var e=!1;;)switch(n){case"ascii":case"latin1":case"binary":return u;case"utf8":case"utf-8":case void 0:return q(l).length;case"ucs2":case"ucs-2":case"utf16le":case"utf-16le":return 2*u;case"hex":return u>>>1;case"base64":return H(l).length;default:if(e)return q(l).length;n=(""+n).toLowerCase(),e=!0}}function y(l,n,u){var e=!1;if((void 0===n||n<0)&&(n=0),n>this.length)return"";if((void 0===u||u>this.length)&&(u=this.length),u<=0)return"";if((u>>>=0)<=(n>>>=0))return"";for(l||(l="utf8");;)switch(l){case"hex":return x(this,n,u);case"utf8":case"utf-8":return k(this,n,u);case"ascii":return j(this,n,u);case"latin1":case"binary":return P(this,n,u);case"base64":return O(this,n,u);case"ucs2":case"ucs-2":case"utf16le":case"utf-16le":return R(this,n,u);default:if(e)throw new TypeError("Unknown encoding: "+l);l=(l+"").toLowerCase(),e=!0}}function g(l,n,u){var e=l[n];l[n]=l[u],l[u]=e}function w(l,n,u,e,t){if(0===l.length)return-1;if("string"==typeof u?(e=u,u=0):u>2147483647?u=2147483647:u<-2147483648&&(u=-2147483648),u=+u,isNaN(u)&&(u=t?0:l.length-1),u<0&&(u=l.length+u),u>=l.length){if(t)return-1;u=l.length-1}else if(u<0){if(!t)return-1;u=0}if("string"==typeof n&&(n=s.from(n,e)),s.isBuffer(n))return 0===n.length?-1:m(l,n,u,e,t);if("number"==typeof n)return n&=255,s.TYPED_ARRAY_SUPPORT&&"function"==typeof Uint8Array.prototype.indexOf?t?Uint8Array.prototype.indexOf.call(l,n,u):Uint8Array.prototype.lastIndexOf.call(l,n,u):m(l,[n],u,e,t);throw new TypeError("val must be string, number or Buffer")}function m(l,n,u,e,t){var r,i=1,o=l.length,s=n.length;if(void 0!==e&&("ucs2"===(e=String(e).toLowerCase())||"ucs-2"===e||"utf16le"===e||"utf-16le"===e)){if(l.length<2||n.length<2)return-1;i=2,o/=2,s/=2,u/=2}function a(l,n){return 1===i?l[n]:l.readUInt16BE(n*i)}if(t){var c=-1;for(r=u;ro&&(u=o-s),r=u;r>=0;r--){for(var f=!0,h=0;ht&&(e=t):e=t;var r=n.length;if(r%2!=0)throw new TypeError("Invalid hex string");e>r/2&&(e=r/2);for(var i=0;i>8,t=u%256,r.push(t),r.push(e);return r}(n,l.length-u),l,u,e)}function O(l,n,u){return 0===n&&u===l.length?e.fromByteArray(l):e.fromByteArray(l.slice(n,u))}function k(l,n,u){u=Math.min(l.length,u);for(var e=[],t=n;t239?4:a>223?3:a>191?2:1;if(t+f<=u)switch(f){case 1:a<128&&(c=a);break;case 2:128==(192&(r=l[t+1]))&&(s=(31&a)<<6|63&r)>127&&(c=s);break;case 3:r=l[t+1],i=l[t+2],128==(192&r)&&128==(192&i)&&(s=(15&a)<<12|(63&r)<<6|63&i)>2047&&(s<55296||s>57343)&&(c=s);break;case 4:r=l[t+1],i=l[t+2],o=l[t+3],128==(192&r)&&128==(192&i)&&128==(192&o)&&(s=(15&a)<<18|(63&r)<<12|(63&i)<<6|63&o)>65535&&s<1114112&&(c=s)}null===c?(c=65533,f=1):c>65535&&(c-=65536,e.push(c>>>10&1023|55296),c=56320|1023&c),e.push(c),t+=f}return function(l){var n=l.length;if(n<=4096)return String.fromCharCode.apply(String,l);var u="",e=0;for(;e0&&(l=this.toString("hex",0,u).match(/.{2}/g).join(" "),this.length>u&&(l+=" ... ")),""},s.prototype.compare=function(l,n,u,e,t){if(!s.isBuffer(l))throw new TypeError("Argument must be a Buffer");if(void 0===n&&(n=0),void 0===u&&(u=l?l.length:0),void 0===e&&(e=0),void 0===t&&(t=this.length),n<0||u>l.length||e<0||t>this.length)throw new RangeError("out of range index");if(e>=t&&n>=u)return 0;if(e>=t)return-1;if(n>=u)return 1;if(this===l)return 0;for(var r=(t>>>=0)-(e>>>=0),i=(u>>>=0)-(n>>>=0),o=Math.min(r,i),a=this.slice(e,t),c=l.slice(n,u),f=0;ft)&&(u=t),l.length>0&&(u<0||n<0)||n>this.length)throw new RangeError("Attempt to write outside buffer bounds");e||(e="utf8");for(var r=!1;;)switch(e){case"hex":return v(this,l,n,u);case"utf8":case"utf-8":return b(this,l,n,u);case"ascii":return _(this,l,n,u);case"latin1":case"binary":return S(this,l,n,u);case"base64":return E(this,l,n,u);case"ucs2":case"ucs-2":case"utf16le":case"utf-16le":return A(this,l,n,u);default:if(r)throw new TypeError("Unknown encoding: "+e);e=(""+e).toLowerCase(),r=!0}},s.prototype.toJSON=function(){return{type:"Buffer",data:Array.prototype.slice.call(this._arr||this,0)}};function j(l,n,u){var e="";u=Math.min(l.length,u);for(var t=n;te)&&(u=e);for(var t="",r=n;ru)throw new RangeError("Trying to access beyond buffer length")}function C(l,n,u,e,t,r){if(!s.isBuffer(l))throw new TypeError('"buffer" argument must be a Buffer instance');if(n>t||nl.length)throw new RangeError("Index out of range")}function U(l,n,u,e){n<0&&(n=65535+n+1);for(var t=0,r=Math.min(l.length-u,2);t>>8*(e?t:1-t)}function I(l,n,u,e){n<0&&(n=4294967295+n+1);for(var t=0,r=Math.min(l.length-u,4);t>>8*(e?t:3-t)&255}function B(l,n,u,e,t,r){if(u+e>l.length)throw new RangeError("Index out of range");if(u<0)throw new RangeError("Index out of range")}function L(l,n,u,e,r){return r||B(l,0,u,4),t.write(l,n,u,e,23,4),u+4}function M(l,n,u,e,r){return r||B(l,0,u,8),t.write(l,n,u,e,52,8),u+8}s.prototype.slice=function(l,n){var u,e=this.length;if((l=~~l)<0?(l+=e)<0&&(l=0):l>e&&(l=e),(n=void 0===n?e:~~n)<0?(n+=e)<0&&(n=0):n>e&&(n=e),n0&&(t*=256);)e+=this[l+--n]*t;return e},s.prototype.readUInt8=function(l,n){return n||T(l,1,this.length),this[l]},s.prototype.readUInt16LE=function(l,n){return n||T(l,2,this.length),this[l]|this[l+1]<<8},s.prototype.readUInt16BE=function(l,n){return n||T(l,2,this.length),this[l]<<8|this[l+1]},s.prototype.readUInt32LE=function(l,n){return n||T(l,4,this.length),(this[l]|this[l+1]<<8|this[l+2]<<16)+16777216*this[l+3]},s.prototype.readUInt32BE=function(l,n){return n||T(l,4,this.length),16777216*this[l]+(this[l+1]<<16|this[l+2]<<8|this[l+3])},s.prototype.readIntLE=function(l,n,u){l|=0,n|=0,u||T(l,n,this.length);for(var e=this[l],t=1,r=0;++r=(t*=128)&&(e-=Math.pow(2,8*n)),e},s.prototype.readIntBE=function(l,n,u){l|=0,n|=0,u||T(l,n,this.length);for(var e=n,t=1,r=this[l+--e];e>0&&(t*=256);)r+=this[l+--e]*t;return r>=(t*=128)&&(r-=Math.pow(2,8*n)),r},s.prototype.readInt8=function(l,n){return n||T(l,1,this.length),128&this[l]?-1*(255-this[l]+1):this[l]},s.prototype.readInt16LE=function(l,n){n||T(l,2,this.length);var u=this[l]|this[l+1]<<8;return 32768&u?4294901760|u:u},s.prototype.readInt16BE=function(l,n){n||T(l,2,this.length);var u=this[l+1]|this[l]<<8;return 32768&u?4294901760|u:u},s.prototype.readInt32LE=function(l,n){return n||T(l,4,this.length),this[l]|this[l+1]<<8|this[l+2]<<16|this[l+3]<<24},s.prototype.readInt32BE=function(l,n){return n||T(l,4,this.length),this[l]<<24|this[l+1]<<16|this[l+2]<<8|this[l+3]},s.prototype.readFloatLE=function(l,n){return n||T(l,4,this.length),t.read(this,l,!0,23,4)},s.prototype.readFloatBE=function(l,n){return n||T(l,4,this.length),t.read(this,l,!1,23,4)},s.prototype.readDoubleLE=function(l,n){return n||T(l,8,this.length),t.read(this,l,!0,52,8)},s.prototype.readDoubleBE=function(l,n){return n||T(l,8,this.length),t.read(this,l,!1,52,8)},s.prototype.writeUIntLE=function(l,n,u,e){(l=+l,n|=0,u|=0,e)||C(this,l,n,u,Math.pow(2,8*u)-1,0);var t=1,r=0;for(this[n]=255&l;++r=0&&(r*=256);)this[n+t]=l/r&255;return n+u},s.prototype.writeUInt8=function(l,n,u){return l=+l,n|=0,u||C(this,l,n,1,255,0),s.TYPED_ARRAY_SUPPORT||(l=Math.floor(l)),this[n]=255&l,n+1},s.prototype.writeUInt16LE=function(l,n,u){return l=+l,n|=0,u||C(this,l,n,2,65535,0),s.TYPED_ARRAY_SUPPORT?(this[n]=255&l,this[n+1]=l>>>8):U(this,l,n,!0),n+2},s.prototype.writeUInt16BE=function(l,n,u){return l=+l,n|=0,u||C(this,l,n,2,65535,0),s.TYPED_ARRAY_SUPPORT?(this[n]=l>>>8,this[n+1]=255&l):U(this,l,n,!1),n+2},s.prototype.writeUInt32LE=function(l,n,u){return l=+l,n|=0,u||C(this,l,n,4,4294967295,0),s.TYPED_ARRAY_SUPPORT?(this[n+3]=l>>>24,this[n+2]=l>>>16,this[n+1]=l>>>8,this[n]=255&l):I(this,l,n,!0),n+4},s.prototype.writeUInt32BE=function(l,n,u){return l=+l,n|=0,u||C(this,l,n,4,4294967295,0),s.TYPED_ARRAY_SUPPORT?(this[n]=l>>>24,this[n+1]=l>>>16,this[n+2]=l>>>8,this[n+3]=255&l):I(this,l,n,!1),n+4},s.prototype.writeIntLE=function(l,n,u,e){if(l=+l,n|=0,!e){var t=Math.pow(2,8*u-1);C(this,l,n,u,t-1,-t)}var r=0,i=1,o=0;for(this[n]=255&l;++r>0)-o&255;return n+u},s.prototype.writeIntBE=function(l,n,u,e){if(l=+l,n|=0,!e){var t=Math.pow(2,8*u-1);C(this,l,n,u,t-1,-t)}var r=u-1,i=1,o=0;for(this[n+r]=255&l;--r>=0&&(i*=256);)l<0&&0===o&&0!==this[n+r+1]&&(o=1),this[n+r]=(l/i>>0)-o&255;return n+u},s.prototype.writeInt8=function(l,n,u){return l=+l,n|=0,u||C(this,l,n,1,127,-128),s.TYPED_ARRAY_SUPPORT||(l=Math.floor(l)),l<0&&(l=255+l+1),this[n]=255&l,n+1},s.prototype.writeInt16LE=function(l,n,u){return l=+l,n|=0,u||C(this,l,n,2,32767,-32768),s.TYPED_ARRAY_SUPPORT?(this[n]=255&l,this[n+1]=l>>>8):U(this,l,n,!0),n+2},s.prototype.writeInt16BE=function(l,n,u){return l=+l,n|=0,u||C(this,l,n,2,32767,-32768),s.TYPED_ARRAY_SUPPORT?(this[n]=l>>>8,this[n+1]=255&l):U(this,l,n,!1),n+2},s.prototype.writeInt32LE=function(l,n,u){return l=+l,n|=0,u||C(this,l,n,4,2147483647,-2147483648),s.TYPED_ARRAY_SUPPORT?(this[n]=255&l,this[n+1]=l>>>8,this[n+2]=l>>>16,this[n+3]=l>>>24):I(this,l,n,!0),n+4},s.prototype.writeInt32BE=function(l,n,u){return l=+l,n|=0,u||C(this,l,n,4,2147483647,-2147483648),l<0&&(l=4294967295+l+1),s.TYPED_ARRAY_SUPPORT?(this[n]=l>>>24,this[n+1]=l>>>16,this[n+2]=l>>>8,this[n+3]=255&l):I(this,l,n,!1),n+4},s.prototype.writeFloatLE=function(l,n,u){return L(this,l,n,!0,u)},s.prototype.writeFloatBE=function(l,n,u){return L(this,l,n,!1,u)},s.prototype.writeDoubleLE=function(l,n,u){return M(this,l,n,!0,u)},s.prototype.writeDoubleBE=function(l,n,u){return M(this,l,n,!1,u)},s.prototype.copy=function(l,n,u,e){if(u||(u=0),e||0===e||(e=this.length),n>=l.length&&(n=l.length),n||(n=0),e>0&&e=this.length)throw new RangeError("sourceStart out of bounds");if(e<0)throw new RangeError("sourceEnd out of bounds");e>this.length&&(e=this.length),l.length-n=0;--t)l[t+n]=this[t+u];else if(r<1e3||!s.TYPED_ARRAY_SUPPORT)for(t=0;t>>=0,u=void 0===u?this.length:u>>>0,l||(l=0),"number"==typeof l)for(r=n;r55295&&u<57344){if(!t){if(u>56319){(n-=3)>-1&&r.push(239,191,189);continue}if(i+1===e){(n-=3)>-1&&r.push(239,191,189);continue}t=u;continue}if(u<56320){(n-=3)>-1&&r.push(239,191,189),t=u;continue}u=65536+(t-55296<<10|u-56320)}else t&&(n-=3)>-1&&r.push(239,191,189);if(t=null,u<128){if((n-=1)<0)break;r.push(u)}else if(u<2048){if((n-=2)<0)break;r.push(u>>6|192,63&u|128)}else if(u<65536){if((n-=3)<0)break;r.push(u>>12|224,u>>6&63|128,63&u|128)}else{if(!(u<1114112))throw new Error("Invalid code point");if((n-=4)<0)break;r.push(u>>18|240,u>>12&63|128,u>>6&63|128,63&u|128)}}return r}function H(l){return e.toByteArray(function(l){if((l=function(l){return l.trim?l.trim():l.replace(/^\s+|\s+$/g,"")}(l).replace(D,"")).length<2)return"";for(;l.length%4!=0;)l+="=";return l}(l))}function z(l,n,u,e){for(var t=0;t=n.length||t>=l.length);++t)n[t+u]=l[t];return t}}).call(this,u(3))},function(l,n,u){l.exports=u(41).default,l.exports.default=l.exports},function(l,n){var u;u=function(){return this}();try{u=u||new Function("return this")()}catch(l){"object"==typeof window&&(u=window)}l.exports=u},function(l,n,u){const e=u(15),t=u(8),r=u(20),i=u(48),o=u(49),s=u(21);l.exports={crypto:e,JWA:t,JWK:r,JWKSet:i,JWT:o,JWS:s}},function(n,u){n.exports=l},function(l,u){l.exports=n},function(l,n,u){"use strict";(function(n){var e=u(30); /*! * The buffer module from node.js, for the browser. * * @author Feross Aboukhadijeh * @license MIT - */function i(e,t){if(e===t)return 0;for(var n=e.length,r=t.length,i=0,o=Math.min(n,r);i=0;c--)if(f[c]!==l[c])return!1;for(c=f.length-1;c>=0;c--)if(a=f[c],!w(e[a],t[a],n,r))return!1;return!0}(e,t,n,r))}return n?e===t:e==t}function b(e){return"[object Arguments]"==Object.prototype.toString.call(e)}function O(e,t){if(!e||!t)return!1;if("[object RegExp]"==Object.prototype.toString.call(t))return t.test(e);try{if(e instanceof t)return!0}catch(e){}return!Error.isPrototypeOf(t)&&!0===t.call({},e)}function E(e,t,n,r){var i;if("function"!=typeof t)throw new TypeError('"block" argument must be a function');"string"==typeof n&&(r=n,n=null),i=function(e){var t;try{e()}catch(e){t=e}return t}(t),r=(n&&n.name?" ("+n.name+").":".")+(r?" "+r:"."),e&&!i&&v(i,n,"Missing expected exception"+r);var o="string"==typeof r,a=!e&&i&&!n;if((!e&&s.isError(i)&&o&&O(i,n)||a)&&v(i,n,"Got unwanted exception"+r),e&&i&&n&&!O(i,n)||!e&&i)throw i}p.AssertionError=function(e){var t;this.name="AssertionError",this.actual=e.actual,this.expected=e.expected,this.operator=e.operator,e.message?(this.message=e.message,this.generatedMessage=!1):(this.message=y(g((t=this).actual),128)+" "+t.operator+" "+y(g(t.expected),128),this.generatedMessage=!0);var n=e.stackStartFunction||v;if(Error.captureStackTrace)Error.captureStackTrace(this,n);else{var r=new Error;if(r.stack){var i=r.stack,o=d(n),s=i.indexOf("\n"+o);if(s>=0){var a=i.indexOf("\n",s+1);i=i.substring(a+1)}this.stack=i}}},s.inherits(p.AssertionError,Error),p.fail=v,p.ok=m,p.equal=function(e,t,n){e!=t&&v(e,t,n,"==",p.equal)},p.notEqual=function(e,t,n){e==t&&v(e,t,n,"!=",p.notEqual)},p.deepEqual=function(e,t,n){w(e,t,!1)||v(e,t,n,"deepEqual",p.deepEqual)},p.deepStrictEqual=function(e,t,n){w(e,t,!0)||v(e,t,n,"deepStrictEqual",p.deepStrictEqual)},p.notDeepEqual=function(e,t,n){w(e,t,!1)&&v(e,t,n,"notDeepEqual",p.notDeepEqual)},p.notDeepStrictEqual=function e(t,n,r){w(t,n,!0)&&v(t,n,r,"notDeepStrictEqual",e)},p.strictEqual=function(e,t,n){e!==t&&v(e,t,n,"===",p.strictEqual)},p.notStrictEqual=function(e,t,n){e===t&&v(e,t,n,"!==",p.notStrictEqual)},p.throws=function(e,t,n){E(!0,e,t,n)},p.doesNotThrow=function(e,t,n){E(!1,e,t,n)},p.ifError=function(e){if(e)throw e},p.strict=r(function e(t,n){t||v(t,!0,n,"==",e)},p,{equal:p.strictEqual,deepEqual:p.deepStrictEqual,notEqual:p.notStrictEqual,notDeepEqual:p.notDeepStrictEqual}),p.strict.strict=p.strict;var S=Object.keys||function(e){var t=[];for(var n in e)a.call(e,n)&&t.push(n);return t}}).call(this,n(5))},function(e,t,n){"use strict";var r=function(){function e(e,t){for(var n=0;n{if(t.status>=200&&t.status<300)return t;let n=`${e}: ${t.status} ${t.statusText}`,r=new Error(n);throw r.response=t,r.statusCode=t.status,r}}},function(e,t,n){"use strict";e.exports=n(17)},function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.unquote=t.quote=t.isScheme=t.isToken=void 0;var r=/^[^\u0000-\u001F\u007F()<>@,;:\\"\/?={}\[\]\u0020\u0009]+$/,i=function(e){return"string"==typeof e&&r.test(e)};t.isToken=i;var o=i;t.isScheme=o;t.quote=function(e){return`"${e.replace(/"/g,'\\"')}"`};t.unquote=function(e){return e.substr(1,e.length-2).replace(/\\"/g,'"')}},function(e,t,n){(function(t){const r=n(10),i=n(7),{URL:o}=n(6),s=i.Headers?i.Headers:t.Headers,{JSONDocument:a}=n(1),{JWKSet:u}=n(3),c=n(62),f=n(63),l=n(71),p=n(14),h=n(13);class d extends a{static get schema(){return l}static from(e){let t=new d(e),n=t.validate();if(!n.valid)return Promise.reject(new Error(JSON.stringify(n)));let r=t.provider.jwks;return r?u.importKeys(r).then(e=>(t.provider.jwks=e,t)):t.jwks().then(()=>t)}static register(e,t,n){let r=new d({provider:{url:e},defaults:Object.assign({},n.defaults),store:n.store});return Promise.resolve().then(()=>r.discover()).then(()=>r.jwks()).then(()=>r.register(t)).then(()=>r)}discover(){try{let e=this.provider.url;r(e,'RelyingParty provider must define "url"');let t=new o(e);return t.pathname=".well-known/openid-configuration",i(t.toString()).then(p("Error fetching openid configuration")).then(e=>e.json().then(e=>this.provider.configuration=e))}catch(e){return Promise.reject(e)}}register(e){try{let t=this.provider.configuration;r(t,"OpenID Configuration is not initialized."),r(t.registration_endpoint,"OpenID Configuration is missing registration_endpoint.");let n=t.registration_endpoint,o="post",a=new s({"Content-Type":"application/json"}),u=this.defaults.register,c=JSON.stringify(Object.assign({},u,e));return i(n,{method:o,headers:a,body:c}).then(p("Error registering client")).then(e=>e.json().then(e=>this.registration=e))}catch(e){return Promise.reject(e)}}serialize(){return JSON.stringify(this)}jwks(){try{let e=this.provider.configuration;r(e,"OpenID Configuration is not initialized."),r(e.jwks_uri,"OpenID Configuration is missing jwks_uri.");let t=e.jwks_uri;return i(t).then(p("Error resolving provider keys")).then(e=>e.json().then(e=>u.importKeys(e)).then(e=>this.provider.jwks=e))}catch(e){return Promise.reject(e)}}createRequest(e,t){return c.create(this,e,t||this.store)}validateResponse(e,t=this.store){let n;n=e.match(/^http(s?):\/\//)?{rp:this,redirect:e,session:t}:{rp:this,body:e,session:t};const r=new f(n);return f.validateResponse(r)}userinfo(){try{let e=this.provider.configuration;r(e,"OpenID Configuration is not initialized."),r(e.userinfo_endpoint,"OpenID Configuration is missing userinfo_endpoint.");let t=e.userinfo_endpoint,n=this.store.access_token;r(n,"Missing access token.");let o=new s({"Content-Type":"application/json",Authorization:`Bearer ${n}`});return i(t,{headers:o}).then(p("Error fetching userinfo")).then(e=>e.json())}catch(e){return Promise.reject(e)}}logoutRequest(e={}){const{id_token_hint:t,post_logout_redirect_uri:n,state:i}=e;let s;if(r(this.provider,"OpenID Configuration is not initialized"),s=this.provider.configuration,r(s,"OpenID Configuration is not initialized"),!s.end_session_endpoint)return console.log("OpenId Configuration for "+`${s.issuer} is missing end_session_endpoint`),null;if(n&&!t)throw new Error("id_token_hint is required when using post_logout_redirect_uri");const a={};t&&(a.id_token_hint=t),n&&(a.post_logout_redirect_uri=n),i&&(a.state=i);const u=new o(s.end_session_endpoint);return u.search=h.encode(a),u.href}logout(){let e;try{r(this.provider,"OpenID Configuration is not initialized."),e=this.provider.configuration,r(e,"OpenID Configuration is not initialized."),r(e.end_session_endpoint,"OpenID Configuration is missing end_session_endpoint.")}catch(e){return Promise.reject(e)}if(!e.end_session_endpoint)return this.clearSession(),Promise.resolve(void 0);let t=e.end_session_endpoint;return i(t,{method:"get",credentials:"include"}).then(p("Error logging out")).then(()=>this.clearSession())}clearSession(){let e=this.store;e&&delete e[y]}popTokenFor(e,t){return PoPToken.issueFor(e,t)}}const y="oidc.session.privateKey";d.SESSION_PRIVATE_KEY=y,e.exports=d}).call(this,n(5))},function(e,t,n){"use strict";var r=function(){function e(e,t){for(var n=0;nthis.root.depth&&(this.root.depth=this.level),this.level=this.level||0,this.schema=t}return i(e,[{key:"compile",value:function(){var e=this.root,t=(this.depth,this.level,""),n="";if(n+=this.default(),n+=this.properties(),n+=this.items(),n+=this.member(),n+=this.item(),e===this){for(var r=1;r<=this.root.depth;r++)t+=this.declaration(r);return"\n options = options || {}\n\n if (options.filter === false) {\n Object.assign(target, JSON.parse(JSON.stringify(source)))\n }\n\n "+t+"\n "+n+"\n "}return n}},{key:"declaration",value:function(e){return"\n var target"+e+"\n var source"+e+"\n var count"+e+"\n "}},{key:"default",value:function(){var e=this.schema,t=this.level,n=this.key,r=this.index,i=e.default,o="";return e.hasOwnProperty("default")&&(n&&(o+="\n target"+t+"['"+n+"'] = "+JSON.stringify(i)+"\n "),r&&(o+="\n target"+t+"["+r+"] = "+JSON.stringify(i)+"\n "),t>1&&(o+="\n count"+t+"++\n "),o="\n if (options.defaults !== false) {\n "+o+"\n }\n "),o}},{key:"member",value:function(){var e=this.schema,t=(this.root,this.level),n=this.key,r=e.properties,i=e.additionalProperties,o=e.items,s=e.additionalItems,a="";return!n||r||i||o||s||(a+="\n target"+t+"['"+n+"'] = source"+t+"['"+n+"']\n ",t>1&&(a+="\n count"+t+"++\n "),a="\n if (source"+t+".hasOwnProperty('"+n+"')) {\n "+a+"\n }\n "),a}},{key:"item",value:function(){var e=this.schema,t=(this.root,this.level),n=this.index,r=e.properties,i=e.additionalProperties,o=e.items,s=e.additionalItems,a="";return!n||r||i||o||s||(a+="\n target"+t+"["+n+"] = source"+t+"["+n+"]\n ",t>1&&(a+="\n count"+t+"++\n "),a="\n if ("+n+" < len) {\n "+a+"\n }\n "),a}},{key:"properties",value:function(){var t=this.schema,n=this.root,r=this.level,i=this.key,o=this.index,s=t.properties,a="";return s&&(Object.keys(s).forEach(function(t){var i=new e(s[t],{key:t,root:n,level:r+1});a+=i.compile()}),n===this?a="\n if (typeof source === 'object' && source !== null && !Array.isArray(source)) {\n if (typeof target !== 'object') {\n throw new Error('?')\n }\n\n source1 = source\n target1 = target\n count1 = 0\n\n "+a+"\n }\n ":(o&&(a="\n if ("+o+" < source"+r+".length || typeof source"+r+"["+o+"] === 'object') {\n\n source"+(r+1)+" = source"+r+"["+o+"] || {}\n count"+(r+1)+" = 0\n\n if ("+o+" < target"+r+".length || typeof target"+r+"["+o+"] !== 'object') {\n target"+(r+1)+" = {}\n if ("+o+" < source"+r+".length) {\n count"+(r+1)+"++\n }\n } else {\n target"+(r+1)+" = target"+r+"["+o+"]\n }\n\n "+a+"\n\n if (count"+(r+1)+" > 0) {\n target"+r+"["+o+"] = target"+(r+1)+"\n count"+r+"++\n }\n\n } else {\n target"+r+"["+o+"] = source"+r+"["+o+"]\n count"+r+"++\n }\n "),i&&(a="\n if ((typeof source"+r+"['"+i+"'] === 'object'\n && source"+r+"['"+i+"'] !== null\n && !Array.isArray(source"+r+"['"+i+"']))\n || !source"+r+".hasOwnProperty('"+i+"')) {\n\n source"+(r+1)+" = source"+r+"['"+i+"'] || {}\n count"+(r+1)+" = 0\n\n if (!target"+r+".hasOwnProperty('"+i+"')\n || typeof target"+r+"['"+i+"'] !== 'object'\n || target"+r+"['"+i+"'] === null\n || Array.isArray(target"+r+"['"+i+"'])) {\n target"+(r+1)+" = {}\n if (source"+r+".hasOwnProperty('"+i+"')) {\n count"+(r+1)+"++\n }\n } else {\n target"+(r+1)+" = target"+r+"['"+i+"']\n count"+(r+1)+"++\n }\n\n "+a+"\n\n if (count"+(r+1)+" > 0) {\n target"+r+"['"+i+"'] = target"+(r+1)+"\n count"+r+"++\n }\n\n } else {\n target"+r+"['"+i+"'] = source"+r+"['"+i+"']\n count"+r+"++\n }\n "))),a}},{key:"additionalProperties",value:function(){}},{key:"items",value:function(){var t=this.schema,n=this.root,i=this.level,o=this.key,s=(this.index,t.items),a="";if(s){if(Array.isArray(s));else if("object"===(void 0===s?"undefined":r(s))&&null!==s){var u="i"+(i+1);a+="\n var sLen = source"+(i+1)+".length || 0\n var tLen = target"+(i+1)+".length || 0\n var len = 0\n\n if (sLen > len) { len = sLen }\n // THIS IS WRONG, CAUSED SIMPLE ARRAY INIT TO FAIL (OVERWRITE\n // EXISTING TARGET VALUES WITH UNDEFINED WHEN SOURCE IS SHORTER THAN\n // TARGET). LEAVING HERE UNTIL WE FINISH TESTING AND SEE WHY IT MIGHT\n // HAVE BEEN HERE IN THE FIRST PLACE.\n //\n // if (tLen > len) { len = tLen }\n\n for (var "+u+" = 0; "+u+" < len; "+u+"++) {\n "+new e(s,{index:u,root:n,level:i+1}).compile()+"\n }\n "}a=n===this?"\n if (Array.isArray(source)) {\n if (!Array.isArray(target)) {\n throw new Error('?')\n }\n\n source1 = source\n target1 = target\n\n "+a+"\n }\n ":"\n if (Array.isArray(source"+i+"['"+o+"']) || !source"+i+".hasOwnProperty('"+o+"')) {\n\n source"+(i+1)+" = source"+i+"['"+o+"'] || []\n count"+(i+1)+" = 0\n\n if (!target"+i+".hasOwnProperty('"+o+"') || !Array.isArray(target"+i+"['"+o+"'])) {\n target"+(i+1)+" = []\n if (source"+i+".hasOwnProperty('"+o+"')) {\n count"+(i+1)+"++\n }\n\n } else {\n target"+(i+1)+" = target"+i+"['"+o+"']\n count"+(i+1)+"++\n }\n\n "+a+"\n\n if (count"+(i+1)+" > 0) {\n target"+i+"['"+o+"'] = target"+(i+1)+"\n count"+i+"++\n }\n\n } else {\n target"+i+"['"+o+"'] = source"+i+"['"+o+"']\n count"+i+"++\n }\n "}return a}},{key:"additionalItems",value:function(){}}],[{key:"compile",value:function(t){var n=new e(t).compile();try{return new Function("target","source","options",n)}catch(e){console.log(e,e.stack)}}}]),e}();e.exports=o},function(e,t,n){"use strict";var r="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e},i=function(){function e(e,t){for(var n=0;n1&&void 0!==arguments[1]?arguments[1]:{};!function(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}(this,e),this.schema=t,Object.assign(this,n),this.address||(this.address=""),!0!==this.require&&(this.require=!1)}return i(e,null,[{key:"compile",value:function(t){var n='\n // "cursor"\n let value = data\n let container\n let stack = []\n let top = -1\n\n // error state\n let valid = true\n let errors = []\n\n // complex schema state\n let initialValidity\n let anyValid\n let notValid\n let countOfValid\n let initialErrorCount\n let accumulatedErrorCount\n\n // validation code\n '+new e(t).compile()+"\n\n // validation result\n return {\n valid,\n errors\n }\n ";return new Function("data",n)}},{key:"counter",get:function(){return s++}}]),i(e,[{key:"compile",value:function(){var e="";return this.require&&(e+=this.required()),e+=this.type(),e+=this.array(),e+=this.number(),e+=this.object(),e+=this.string(),e+=this.enum(),e+=this.anyOf(),e+=this.allOf(),e+=this.not(),e+=this.oneOf()}},{key:"push",value:function(){return"\n stack.push(value)\n container = value\n top++\n "}},{key:"pop",value:function(){return"\n if (stack.length > 1) {\n top--\n stack.pop()\n }\n\n value = container = stack[top]\n "}},{key:"type",value:function(){var e=this.schema.type,t=this.address,n="";e&&(n+="\n // "+t+" type checking\n if (value !== undefined && "+(Array.isArray(e)?e:[e]).map(function(e){return"array"===e?"!Array.isArray(value)":"boolean"===e?"typeof value !== 'boolean'":"integer"===e?"!Number.isInteger(value)":"null"===e?"value !== null":"number"===e?"typeof value !== 'number'":"object"===e?"(typeof value !== 'object' || Array.isArray(value) || value === null)":"string"===e?"typeof value !== 'string'":void 0}).join(" && ")+") {\n valid = false\n errors.push({\n keyword: 'type',\n message: 'invalid type'\n })\n }\n ");return n}},{key:"array",value:function(){var e=this.validations(["additionalItems","items","minItems","maxItems","uniqueItems"]),t="";return e.length>0&&(t+="\n /**\n * Array validations\n */\n if (Array.isArray(value)) {\n "+e+"\n }\n "),t}},{key:"number",value:function(){var e=this.validations(["minimum","maximum","multipleOf"]),t="";return e.length>0&&(t+="\n /**\n * Number validations\n */\n if (typeof value === 'number') {\n "+e+"\n }\n "),t}},{key:"object",value:function(){var e=this.validations(["maxProperties","minProperties","additionalProperties","properties","patternProperties","dependencies","schemaDependencies","propertyDependencies"]),t="";return e.length>0&&(t+="\n /**\n * Object validations\n */\n if (typeof value === 'object' && value !== null && !Array.isArray(value)) {\n "+e+"\n }\n "),t}},{key:"string",value:function(){var e=this.validations(["maxLength","minLength","pattern","format"]),t="";return e.length>0&&(t+="\n /**\n * String validations\n */\n if (typeof value === 'string') {\n "+e+"\n }\n "),t}},{key:"validations",value:function(e){var t=this,n=this.schema,r="";return Object.keys(n).filter(function(t){return-1!==e.indexOf(t)}).forEach(function(e){r+=t[e]()}),r}},{key:"enum",value:function(){var e=this.schema.enum,t=this.address,n=["value !== undefined"],i="";return e&&(e.forEach(function(e){switch(void 0===e?"undefined":r(e)){case"boolean":case"number":n.push("value !== "+e);break;case"string":n.push('value !== "'+e+'"');break;case"object":null===e?n.push("value !== null"):n.push("'"+JSON.stringify(e)+"' !== JSON.stringify(value)");break;default:throw new Error("Things are not well in the land of enum")}}),i+='\n /**\n * Validate "'+t+'" enum\n */\n if ('+n.join(" && ")+") {\n valid = false\n errors.push({\n keyword: 'enum',\n message: JSON.stringify(value) + ' is not an enumerated value'\n })\n }\n "),i}},{key:"anyOf",value:function(){var t=this.schema.anyOf,n=this.address,r="";return Array.isArray(t)&&(r+="\n initialValidity = valid\n initialErrorCount = errors.length\n anyValid = false\n ",t.forEach(function(t){var i=new e(t,{address:n});r+="\n accumulatedErrorCount = errors.length\n "+i.compile()+"\n if (accumulatedErrorCount === errors.length) {\n anyValid = true\n }\n "}),r+="\n if (anyValid === true) {\n valid = initialValidity\n errors = errors.slice(0, initialErrorCount)\n }\n "),r}},{key:"allOf",value:function(){var t=this.schema.allOf,n=this.address,r="";return Array.isArray(t)&&t.forEach(function(t){var i=new e(t,{address:n});r+="\n "+i.compile()+"\n "}),r}},{key:"oneOf",value:function(){var t=this.schema.oneOf,n=this.address,r="";return Array.isArray(t)&&(r+="\n /**\n * Validate "+n+" oneOf\n */\n initialValidity = valid\n initialErrorCount = errors.length\n countOfValid = 0\n ",t.forEach(function(t){var i=new e(t,{address:n});r+="\n accumulatedErrorCount = errors.length\n "+i.compile()+"\n if (accumulatedErrorCount === errors.length) {\n countOfValid += 1\n }\n "}),r+="\n if (countOfValid === 1) {\n valid = initialValidity\n errors = errors.slice(0, initialErrorCount)\n } else {\n valid = false\n errors.push({\n keyword: 'oneOf',\n message: 'what is a reasonable error message for this case?'\n })\n }\n "),r}},{key:"not",value:function(){var t=this.schema.not,n=this.address,i="";"object"!==(void 0===t?"undefined":r(t))||null===t||Array.isArray(t)||(i+="\n /**\n * NOT\n */\n if (value !== undefined) {\n initialValidity = valid\n initialErrorCount = errors.length\n notValid = true\n\n accumulatedErrorCount = errors.length\n\n "+new e(t,{address:n}).compile()+"\n\n if (accumulatedErrorCount === errors.length) {\n notValid = false\n }\n\n if (notValid === true) {\n valid = initialValidity\n errors = errors.slice(0, initialErrorCount)\n } else {\n valid = false\n errors = errors.slice(0, initialErrorCount)\n errors.push({\n keyword: 'not',\n message: 'hmm...'\n })\n }\n }\n ");return i}},{key:"properties",value:function(){var t=this.schema,n=this.address,i=t.properties,o=t.required,s=this.push();return o=Array.isArray(o)?o:[],"object"===(void 0===i?"undefined":r(i))&&Object.keys(i).forEach(function(t){var r=i[t],a=-1!==o.indexOf(t),u=new e(r,{address:[n,t].filter(function(e){return!!e}).join("."),require:a});s+="\n value = container['"+t+"']\n ",s+=u.compile()}),s+=this.pop()}},{key:"otherProperties",value:function(){return"\n /**\n * Validate Other Properties\n */\n "+this.push()+"\n\n for (let key in container) {\n value = container[key]\n matched = false\n\n "+this.patternValidations()+"\n "+this.additionalValidations()+"\n }\n\n "+this.pop()+"\n "}},{key:"patternValidations",value:function(){var t=this.schema.patternProperties,n="";return"object"===(void 0===t?"undefined":r(t))&&Object.keys(t).forEach(function(r){var i=new e(t[r]);n+="\n if (key.match('"+r+"')) {\n matched = true\n "+i.compile()+"\n }\n "}),n}},{key:"additionalValidations",value:function(){var t=this.schema,n=t.properties,i=t.additionalProperties,o=this.address,s="",a=["matched !== true"];if(Object.keys(n||{}).forEach(function(e){a.push("key !== '"+e+"'")}),"object"===(void 0===i?"undefined":r(i))){var u=new e(i,{address:o+"[APKey]"});s+="\n // validate additional properties\n if ("+a.join(" && ")+") {\n "+u.compile()+"\n }\n "}return!1===i&&(s+="\n // validate non-presence of additional properties\n if ("+a.join(" && ")+") {\n valid = false\n errors.push({\n keyword: 'additionalProperties',\n message: key + ' is not a defined property'\n })\n }\n "),s}},{key:"patternProperties",value:function(){var e="";return this.otherPropertiesCalled||(this.otherPropertiesCalled=!0,e+=this.otherProperties()),e}},{key:"additionalProperties",value:function(){var e="";return this.otherPropertiesCalled||(this.otherPropertiesCalled=!0,e+=this.otherProperties()),e}},{key:"minProperties",value:function(){var e=this.schema.minProperties;return"\n // "+this.address+" min properties\n if (Object.keys(value).length < "+e+") {\n valid = false\n errors.push({\n keyword: 'minProperties',\n message: 'too few properties'\n })\n }\n "}},{key:"maxProperties",value:function(){var e=this.schema.maxProperties;return"\n // "+this.address+" max properties\n if (Object.keys(value).length > "+e+") {\n valid = false\n errors.push({\n keyword: 'maxProperties',\n message: 'too many properties'\n })\n }\n "}},{key:"dependencies",value:function(){var t=this.schema.dependencies,n=this.address,i=this.push();return"object"===(void 0===t?"undefined":r(t))&&Object.keys(t).forEach(function(o){var s=t[o],a=[];if(Array.isArray(s))s.forEach(function(e){a.push("container['"+e+"'] === undefined")}),i+="\n if (container['"+o+"'] !== undefined && ("+a.join(" || ")+")) {\n valid = false\n errors.push({\n keyword: 'dependencies',\n message: 'unmet dependencies'\n })\n }\n ";else if("object"===(void 0===s?"undefined":r(s))){var u=new e(s,{address:n});i+="\n if (container['"+o+"'] !== undefined) {\n "+u.compile()+"\n }\n "}}),i+=this.pop()}},{key:"required",value:function(){this.schema.properties;var e="";return e+="\n // validate "+this.address+" presence\n if (value === undefined) {\n valid = false\n errors.push({\n keyword: 'required',\n message: 'is required'\n })\n }\n "}},{key:"additionalItems",value:function(){var t=this.schema,n=t.items,i=t.additionalItems,o=(this.address,"");if(!1===i&&Array.isArray(n)&&(o+="\n // don't allow additional items\n if (value.length > "+n.length+") {\n valid = false\n errors.push({\n keyword: 'additionalItems',\n message: 'additional items not allowed'\n })\n }\n "),"object"===(void 0===i?"undefined":r(i))&&null!==i&&Array.isArray(n)){var s=new e(i),a=e.counter;o+="\n // additional items\n "+this.push()+"\n\n for (var i"+a+" = "+n.length+"; i"+a+" <= container.length; i"+a+"++) {\n value = container[i"+a+"]\n "+s.compile()+"\n }\n\n "+this.pop()+"\n "}return o}},{key:"items",value:function(){var t=this.schema.items,n=this.address,i="";if(Array.isArray(t))i+=this.push(),t.forEach(function(t,r){var o=new e(t,{address:n+"["+r+"]"});i+="\n // item #"+r+"\n value = container["+r+"]\n "+o.compile()+"\n "}),i+=this.pop();else if("object"===(void 0===t?"undefined":r(t))&&null!==t){var o=new e(t),s=e.counter;i+="\n // items\n "+this.push()+"\n\n for (var i"+s+" = 0; i"+s+" < container.length; i"+s+"++) {\n // read array element\n value = container[i"+s+"]\n "+o.compile()+"\n }\n\n "+this.pop()+"\n "}return i}},{key:"minItems",value:function(){var e=this.schema.minItems;return"\n // "+this.address+" min items\n if (value.length < "+e+") {\n valid = false\n errors.push({\n keyword: 'minItems',\n message: 'too few properties'\n })\n }\n "}},{key:"maxItems",value:function(){var e=this.schema.maxItems;return"\n // "+this.address+" max items\n if (value.length > "+e+") {\n valid = false\n errors.push({\n keyword: 'maxItems',\n message: 'too many properties'\n })\n }\n "}},{key:"uniqueItems",value:function(){var e=this.schema.uniqueItems,t=this.address,n="";return!0===e&&(n+="\n // validate "+t+" unique items\n let values = value.map(v => JSON.stringify(v)) // TODO: optimize\n let set = new Set(values)\n if (values.length !== set.size) {\n valid = false\n errors.push({\n keyword: 'uniqueItems',\n message: 'items must be unique'\n })\n }\n "),n}},{key:"minLength",value:function(){var e=this.schema.minLength;return"\n // "+this.address+" validate minLength\n if (Array.from(value).length < "+e+") {\n valid = false\n errors.push({\n keyword: 'minLength',\n message: 'too short'\n })\n }\n "}},{key:"maxLength",value:function(){var e=this.schema.maxLength;return"\n // "+this.address+" validate maxLength\n if (Array.from(value).length > "+e+") {\n valid = false\n errors.push({\n keyword: 'maxLength',\n message: 'too long'\n })\n }\n "}},{key:"pattern",value:function(){var e=this.schema.pattern,t=this.address;if(e)return"\n // "+t+" validate pattern\n if (!value.match(new RegExp('"+e+"'))) {\n valid = false\n errors.push({\n keyword: 'pattern',\n message: 'does not match the required pattern'\n })\n }\n "}},{key:"format",value:function(){var e=this.schema.format,t=this.address,n=o.resolve(e);if(n)return"\n // "+t+" validate format\n if (!value.match("+n+")) {\n valid = false\n errors.push({\n keyword: 'format',\n message: 'is not \""+e+"\" format'\n })\n }\n "}},{key:"minimum",value:function(){var e=this.schema,t=e.minimum,n=e.exclusiveMinimum;return"\n // "+this.address+" validate minimum\n if (value "+(!0===n?"<=":"<")+" "+t+") {\n valid = false\n errors.push({\n keyword: 'minimum',\n message: 'too small'\n })\n }\n "}},{key:"maximum",value:function(){var e=this.schema,t=e.maximum,n=e.exclusiveMaximum;return"\n // "+this.address+" validate maximum\n if (value "+(!0===n?">=":">")+" "+t+") {\n valid = false\n errors.push({\n keyword: 'maximum',\n message: 'too large'\n })\n }\n "}},{key:"multipleOf",value:function(){var e=this.schema.multipleOf,t="";if("number"==typeof e){var n=e.toString().length-e.toFixed(0).length-1,r=n>0?Math.pow(10,n):1;t+="\n if ("+(n>0?"(value * "+r+") % "+e*r+" !== 0":"value % "+e+" !== 0")+") {\n valid = false\n errors.push({\n keyword: 'multipleOf',\n message: 'must be a multiple of "+e+"'\n })\n }\n "}return t}}]),e}();e.exports=a},function(e,t,n){"use strict";(function(t){var r=t.TextEncoder?t.TextEncoder:n(56).TextEncoder;e.exports=r}).call(this,n(5))},function(e,t,n){"use strict";var r=function(e){function t(e){!function(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}(this,t);var n=function(e,t){if(!e)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return!t||"object"!=typeof t&&"function"!=typeof t?e:t}(this,(t.__proto__||Object.getPrototypeOf(t)).call(this));return n.message=e+" is not a supported algorithm",n}return function(e,t){if("function"!=typeof t&&null!==t)throw new TypeError("Super expression must either be null or a function, not "+typeof t);e.prototype=Object.create(t&&t.prototype,{constructor:{value:e,enumerable:!1,writable:!0,configurable:!0}}),t&&(Object.setPrototypeOf?Object.setPrototypeOf(e,t):e.__proto__=t)}(t,Error),t}();e.exports=r},function(e,t,n){"use strict";e.exports={DataError:n(25),NotSupportedError:n(23)}},function(e,t,n){"use strict";var r=function(e){function t(e){return function(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}(this,t),function(e,t){if(!e)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return!t||"object"!=typeof t&&"function"!=typeof t?e:t}(this,(t.__proto__||Object.getPrototypeOf(t)).call(this,e))}return function(e,t){if("function"!=typeof t&&null!==t)throw new TypeError("Super expression must either be null or a function, not "+typeof t);e.prototype=Object.create(t&&t.prototype,{constructor:{value:e,enumerable:!1,writable:!0,configurable:!0}}),t&&(Object.setPrototypeOf?Object.setPrototypeOf(e,t):e.__proto__=t)}(t,Error),t}();e.exports=r},function(e,t,n){"use strict";var r=function(){function e(e,t){for(var n=0;n0&&s.length>i&&!s.warned){s.warned=!0;var u=new Error("Possible EventEmitter memory leak detected. "+s.length+" "+String(t)+" listeners added. Use emitter.setMaxListeners() to increase limit");u.name="MaxListenersExceededWarning",u.emitter=e,u.type=t,u.count=s.length,a=u,console&&console.warn&&console.warn(a)}return e}function l(e,t,n){var r={fired:!1,wrapFn:void 0,target:e,type:t,listener:n},i=function(){for(var e=[],t=0;t0&&(s=t[0]),s instanceof Error)throw s;var a=new Error("Unhandled error."+(s?" ("+s.message+")":""));throw a.context=s,a}var u=i[e];if(void 0===u)return!1;if("function"==typeof u)o(u,this,t);else{var c=u.length,f=d(u,c);for(n=0;n=0;o--)if(n[o]===t||n[o].listener===t){s=n[o].listener,i=o;break}if(i<0)return this;0===i?n.shift():function(e,t){for(;t+1=0;r--)this.removeListener(e,t[r]);return this},a.prototype.listeners=function(e){return p(this,e,!0)},a.prototype.rawListeners=function(e){return p(this,e,!1)},a.listenerCount=function(e,t){return"function"==typeof e.listenerCount?e.listenerCount(t):h.call(e,t)},a.prototype.listenerCount=h,a.prototype.eventNames=function(){return this._eventsCount>0?r(this._events):[]}},function(e,t,n){var r=n(37);e.exports=function(e,t){if(null==e)return{};var n,i,o=r(e,t);if(Object.getOwnPropertySymbols){var s=Object.getOwnPropertySymbols(e);for(i=0;i=0||Object.prototype.propertyIsEnumerable.call(e,n)&&(o[n]=e[n])}return o}},function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),Object.defineProperty(t,"format",{enumerable:!0,get:function(){return r.default}}),Object.defineProperty(t,"parse",{enumerable:!0,get:function(){return i.default}});var r=o(n(38)),i=o(n(39));function o(e){return e&&e.__esModule?e:{default:e}}},function(e,t,n){"use strict";var r=function(){function e(e,t){for(var n=0;n=0||(i[n]=e[n]);return i}},function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.default=void 0;var r=n(16);function i(e){return function(e){if(Array.isArray(e)){for(var t=0,n=new Array(e.length);t@,;:\\"\/?={}\[\]\u0020\u0009]+)(?:=([^\\"=\s,]+|"(?:[^"\\]|\\.)*"))?/g,o=function(e,t){var n='"'===t.charAt(0)?(0,r.unquote)(t):t.trim();return Array.isArray(e)?e.concat(n):"string"==typeof e?[e,n]:n};t.default=function(e){if("string"!=typeof e)throw new TypeError("Header value must be a string.");var t=e.indexOf(" "),n=e.substr(0,t);if(!(0,r.isScheme)(n))throw new TypeError(`Invalid scheme ${n}`);return function(e,t){for(var n=null,r={};;){var s=i.exec(t);if(null===s)break;s[2]?r[s[1]]=o(r[s[1]],s[2]):n=o(n,s[1])}return{scheme:e,params:r,token:n}}(n,e.substr(t))}},function(e,t,n){"use strict"; + */function t(l,n){if(l===n)return 0;for(var u=l.length,e=n.length,t=0,r=Math.min(u,e);t=0;a--)if(c[a]!==f[a])return!1;for(a=c.length-1;a>=0;a--)if(o=c[a],!v(l[o],n[o],u,e))return!1;return!0}(l,n,u,e))}return u?l===n:l==n}function b(l){return"[object Arguments]"==Object.prototype.toString.call(l)}function _(l,n){if(!l||!n)return!1;if("[object RegExp]"==Object.prototype.toString.call(n))return n.test(l);try{if(l instanceof n)return!0}catch(l){}return!Error.isPrototypeOf(n)&&!0===n.call({},l)}function S(l,n,u,e){var t;if("function"!=typeof n)throw new TypeError('"block" argument must be a function');"string"==typeof u&&(e=u,u=null),t=function(l){var n;try{l()}catch(l){n=l}return n}(n),e=(u&&u.name?" ("+u.name+").":".")+(e?" "+e:"."),l&&!t&&w(t,u,"Missing expected exception"+e);var r="string"==typeof e,o=!l&&t&&!u;if((!l&&i.isError(t)&&r&&_(t,u)||o)&&w(t,u,"Got unwanted exception"+e),l&&t&&u&&!_(t,u)||!l&&t)throw t}h.AssertionError=function(l){this.name="AssertionError",this.actual=l.actual,this.expected=l.expected,this.operator=l.operator,l.message?(this.message=l.message,this.generatedMessage=!1):(this.message=function(l){return y(g(l.actual),128)+" "+l.operator+" "+y(g(l.expected),128)}(this),this.generatedMessage=!0);var n=l.stackStartFunction||w;if(Error.captureStackTrace)Error.captureStackTrace(this,n);else{var u=new Error;if(u.stack){var e=u.stack,t=d(n),r=e.indexOf("\n"+t);if(r>=0){var i=e.indexOf("\n",r+1);e=e.substring(i+1)}this.stack=e}}},i.inherits(h.AssertionError,Error),h.fail=w,h.ok=m,h.equal=function(l,n,u){l!=n&&w(l,n,u,"==",h.equal)},h.notEqual=function(l,n,u){l==n&&w(l,n,u,"!=",h.notEqual)},h.deepEqual=function(l,n,u){v(l,n,!1)||w(l,n,u,"deepEqual",h.deepEqual)},h.deepStrictEqual=function(l,n,u){v(l,n,!0)||w(l,n,u,"deepStrictEqual",h.deepStrictEqual)},h.notDeepEqual=function(l,n,u){v(l,n,!1)&&w(l,n,u,"notDeepEqual",h.notDeepEqual)},h.notDeepStrictEqual=function l(n,u,e){v(n,u,!0)&&w(n,u,e,"notDeepStrictEqual",l)},h.strictEqual=function(l,n,u){l!==n&&w(l,n,u,"===",h.strictEqual)},h.notStrictEqual=function(l,n,u){l===n&&w(l,n,u,"!==",h.notStrictEqual)},h.throws=function(l,n,u){S(!0,l,n,u)},h.doesNotThrow=function(l,n,u){S(!1,l,n,u)},h.ifError=function(l){if(l)throw l},h.strict=e((function l(n,u){n||w(n,!0,u,"==",l)}),h,{equal:h.strictEqual,deepEqual:h.deepStrictEqual,notEqual:h.notStrictEqual,notDeepEqual:h.notDeepStrictEqual}),h.strict.strict=h.strict;var E=Object.keys||function(l){var n=[];for(var u in l)o.call(l,u)&&n.push(u);return n}}).call(this,u(3))},function(l,n,u){const e=u(35),{NotSupportedError:t}=u(18);l.exports=class{static async sign(l,n,u){let r=e.normalize("sign",l);return r instanceof Error?Promise.reject(new t(l)):r.sign(n,u)}static async verify(l,n,u,r){let i=e.normalize("verify",l);return i instanceof Error?Promise.reject(new t(l)):i.verify(n,u,r)}static async importKey(l){return e.normalize("importKey",l.alg).importKey(l)}}},function(l,n){l.exports=class{static encode(l){let n=[];return Object.keys(l).forEach((function(u){n.push(encodeURIComponent(u)+"="+encodeURIComponent(l[u]))})),n.join("&")}static decode(l){let n={};return l.split("&").forEach((function(l){let u=l.split("="),e=decodeURIComponent(u[0]),t=decodeURIComponent(u[1]);n[e]=t})),n}}},function(l,n,u){"use strict";l.exports=function(l="fetch error"){return n=>{if(n.status>=200&&n.status<300)return n;let u=`${l}: ${n.status} ${n.statusText}`,e=new Error(u);throw e.response=n,e.statusCode=n.status,e}}},function(l,n,u){"use strict";const{URL:e}=u(6),{JWT:t,JWK:r}=u(4);class i extends t{static issueFor(l,n){if(!l)throw new Error("Cannot issue PoPToken - missing resource server URI");if(!n.sessionKey)throw new Error("Cannot issue PoPToken - missing session key");if(!n.authorization.id_token)throw new Error("Cannot issue PoPToken - missing id token");let u=JSON.parse(n.sessionKey);return r.importKey(u).then(u=>{let t={aud:new e(l).origin,key:u,iss:n.authorization.client_id,id_token:n.authorization.id_token};return i.issue(t)}).then(l=>l.encode())}static issue(l){let{aud:n,iss:u,key:e}=l,t=e.alg,r=l.iat||Math.floor(Date.now()/1e3),o={alg:t},s={iss:u,aud:n,exp:r+(l.max||3600),iat:r,id_token:l.id_token,token_type:"pop"};return new i({header:o,payload:s,key:e.cryptoKey},{filter:!1})}}l.exports=i},function(l,n,u){"use strict";l.exports=u(14)},function(l,n,u){"use strict";Object.defineProperty(n,"__esModule",{value:!0}),n.unquote=n.quote=n.isScheme=n.isToken=void 0;var e=/^[^\u0000-\u001F\u007F()<>@,;:\\"/?={}\[\]\u0020\u0009]+$/,t=function(l){return"string"==typeof l&&e.test(l)};n.isToken=t;var r=t;n.isScheme=r;n.quote=function(l){return`"${l.replace(/"/g,'\\"')}"`};n.unquote=function(l){return l.substr(1,l.length-2).replace(/\\"/g,'"')}},function(l,n,u){(function(n){const e=u(7),t=u(5),{URL:r}=u(6),i=t.Headers?t.Headers:n.Headers,{JWKSet:o}=u(4),s=u(50),a=u(51),c=u(10),f=u(9);class h{constructor({provider:l={},defaults:n,registration:u={},store:e={}}={}){this.provider=l,this.defaults=n||{popToken:!1,authenticate:{response_type:"id_token token",display:"page",scope:["openid"]}},this.registration=u,this.store=e}static async from(l){const n=new h(l),u=n.validate();if(!u.valid)throw u.error;const e=n.provider.jwks;return e?o.importKeys(e).then(l=>(n.provider.jwks=l,n)):n.jwks().then(()=>n)}static register(l,n,u,t,r){const i=new h({provider:{url:l},defaults:Object.assign({},u.defaults),store:u.store});return Promise.resolve().then(()=>i.discover()).then(()=>i.jwks()).then(()=>(e(i.provider.configuration,"OpenID Configuration is not initialized."),i.provider.configuration.registration_endpoint?i.register(n):i.getRegistration(n,t,r))).then(()=>i)}validate(){return this.provider&&this.provider.url?{valid:!0}:{valid:!1,error:new Error("Provider url is required.")}}discover(){try{let l=this.provider.url;e(l,'RelyingParty provider must define "url"');let n=new r(l);return n.pathname=".well-known/openid-configuration",t(n.toString()).then(c("Error fetching openid configuration")).then(l=>l.json().then(l=>this.provider.configuration=l))}catch(l){return Promise.reject(l)}}register(l){try{let n=this.provider.configuration;e(n,"OpenID Configuration is not initialized."),e(n.registration_endpoint,"OpenID Configuration is missing registration_endpoint.");let u=n.registration_endpoint,r="post",o=new i({"Content-Type":"application/json"}),s=this.defaults.register,a=JSON.stringify(Object.assign({},s,l));return t(u,{method:r,headers:o,body:a}).then(c("Error registering client")).then(l=>l.json().then(l=>this.registration=l))}catch(l){return Promise.reject(l)}}serialize(){return JSON.stringify(this)}getRegistration(l,n,u){return Promise.resolve().then(()=>this.registration=u.getRegistration(n)).catch(l=>{throw l})}jwks(){try{let l=this.provider.configuration;e(l,"OpenID Configuration is not initialized."),e(l.jwks_uri,"OpenID Configuration is missing jwks_uri.");let n=l.jwks_uri;return t(n).then(c("Error resolving provider keys")).then(l=>l.json().then(l=>o.importKeys(l)).then(l=>this.provider.jwks=l))}catch(l){return Promise.reject(l)}}createRequest(l,n){return s.create(this,l,n||this.store)}validateResponse(l,n=this.store){let u;u=l.match(/^http(s?):\/\//)?{rp:this,redirect:l,session:n}:{rp:this,body:l,session:n};const e=new a(u);return a.validateResponse(e)}userinfo(l){try{let n=this.provider.configuration;e(n,"OpenID Configuration is not initialized."),e(n.userinfo_endpoint,"OpenID Configuration is missing userinfo_endpoint."),l=l||this.store.access_token,e(l,"Missing access token.");let u=n.userinfo_endpoint,r=new i({"Content-Type":"application/json",Authorization:"Bearer "+l});return t(u,{headers:r}).then(c("Error fetching userinfo")).then(l=>l.json())}catch(l){return Promise.reject(l)}}logoutRequest(l={}){const{id_token_hint:n,post_logout_redirect_uri:u,state:t}=l;let i;if(e(this.provider,"OpenID Configuration is not initialized"),i=this.provider.configuration,e(i,"OpenID Configuration is not initialized"),!i.end_session_endpoint)return console.log("OpenId Configuration for "+i.issuer+" is missing end_session_endpoint"),null;if(u&&!n)throw new Error("id_token_hint is required when using post_logout_redirect_uri");const o={};n&&(o.id_token_hint=n),u&&(o.post_logout_redirect_uri=u),t&&(o.state=t);const s=new r(i.end_session_endpoint);return s.search=f.encode(o),s.href}logout(){let l;try{e(this.provider,"OpenID Configuration is not initialized."),l=this.provider.configuration,e(l,"OpenID Configuration is not initialized.")}catch(l){return Promise.reject(l)}if(!l.end_session_endpoint)return this.clearSession(),Promise.resolve(void 0);let n=l.end_session_endpoint;return t(n,{method:"get",credentials:"include"}).then(c("Error logging out")).then(()=>this.clearSession())}clearSession(){let l=this.store;l&&delete l[p]}popTokenFor(l,n){return PoPToken.issueFor(l,n)}}const p="oidc.session.privateKey";h.SESSION_PRIVATE_KEY=p,l.exports=h}).call(this,u(3))},function(l,n,u){const e=u(23);l.exports=e.default?e.default:e},function(l,n,u){(function(n){const e=n.TextEncoder?n.TextEncoder:u(43).TextEncoder;l.exports=e}).call(this,u(3))},function(l,n){class u extends Error{constructor(l){super(),this.message=l+" is not a supported algorithm"}}l.exports=u},function(l,n,u){l.exports={DataError:u(19),NotSupportedError:u(17)}},function(l,n){class u extends Error{constructor(l){super(l)}}l.exports=u},function(l,n,u){"use strict";const e=u(8);l.exports=class{constructor({kty:l,use:n,key_ops:u,alg:e,kid:t,x5u:r,x5c:i,x5t:o}={}){this.kty=l,this.use=n,this.key_ops=u,this.alg=e,this.kid=t,this.x5u=r,this.x5c=i,this.x5t=o}static async importKey(l){return e.importKey(l)}}},function(l,n,u){const e=u(2),t=u(8),{DataError:r}=u(18),i=u(22);l.exports=class{constructor(l={}){this.header=new i(l.header),this.payload=l.payload||{},this.signature=l.signature,this.protected=l.protected,this.signatures=l.signatures,this.verified=!1}static async sign(l){let n=e(JSON.stringify(l.payload));if("compact"===l.serialization){let{key:u,header:{alg:r}}=l,i=`${e(JSON.stringify(l.header))}.${n}`;return t.sign(r,u,i).then(l=>`${i}.${l}`)}return l.serialization,l.serialization,Promise.reject(new r("Unsupported serialization"))}static async verify(l){l.signatures;let{key:n,signature:u,header:{alg:e}}=l;if(l.signature){let[i,o]=l.segments,s=`${i}.${o}`;return"none"===e?Promise.reject(new r("Signature provided to verify with alg: none")):t.verify(e,n,u,s).then(n=>(l.verified=n,n))}if("none"===e){if(!n&&!u)return l.verified=!0,Promise.resolve(!0);if(n)return Promise.reject(new r("Key provided to verify signature with alg: none"))}return Promise.reject(new r("Missing signature(s)"))}}},function(l,n){l.exports=class{constructor({typ:l,cty:n,alg:u,jku:e,kid:t,x5u:r,x5c:i,x5t:o,crit:s,enc:a,zip:c}={}){this.typ=l,this.cty=n,this.alg=u,this.jku=e,this.kid=t,this.x5u=r,this.x5c=i,this.x5t=o,this.crit=s,this.enc=a,this.zip=c}isJWS(){}isJWE(){}}},function(l,n,u){"use strict";u.r(n), +/** + * @file Web Cryptography API shim + * @author Artem S Vybornov + * @license MIT + */ +function(l,n){"function"==typeof define&&define.amd?define([],(function(){return n(l)})):"object"==typeof module&&module.exports?module.exports=n(l):n(l)}("undefined"!=typeof self?self:void 0,(function(l){if("function"!=typeof Promise)throw"Promise support required";var n=l.crypto||l.msCrypto;if(n){var u=n.subtle||n.webkitSubtle;if(u){var e=l.Crypto||n.constructor||Object,t=l.SubtleCrypto||u.constructor||Object,r=(l.CryptoKey||l.Key,l.navigator.userAgent.indexOf("Edge/")>-1),i=!!l.msCrypto&&!r,o=!n.subtle&&!!n.webkitSubtle;if(i||o){var s={KoZIhvcNAQEB:"1.2.840.113549.1.1.1"},a={"1.2.840.113549.1.1.1":"KoZIhvcNAQEB"};if(["generateKey","importKey","unwrapKey"].forEach((function(l){var e=u[l];u[l]=function(t,r,s){var a,c,f,d,b=[].slice.call(arguments);switch(l){case"generateKey":a=y(t),c=r,f=s;break;case"importKey":a=y(s),c=b[3],f=b[4],"jwk"===t&&((r=w(r)).alg||(r.alg=g(a)),r.key_ops||(r.key_ops="oct"!==r.kty?"d"in r?f.filter(O):f.filter(A):f.slice()),b[1]=m(r));break;case"unwrapKey":a=b[4],c=b[5],f=b[6],b[2]=s._key}if("generateKey"===l&&"HMAC"===a.name&&a.hash)return a.length=a.length||{"SHA-1":512,"SHA-256":512,"SHA-384":1024,"SHA-512":1024}[a.hash.name],u.importKey("raw",n.getRandomValues(new Uint8Array(a.length+7>>3)),a,c,f);if(o&&"generateKey"===l&&"RSASSA-PKCS1-v1_5"===a.name&&(!a.modulusLength||a.modulusLength>=2048))return(t=y(t)).name="RSAES-PKCS1-v1_5",delete t.hash,u.generateKey(t,!0,["encrypt","decrypt"]).then((function(l){return Promise.all([u.exportKey("jwk",l.publicKey),u.exportKey("jwk",l.privateKey)])})).then((function(l){return l[0].alg=l[1].alg=g(a),l[0].key_ops=f.filter(A),l[1].key_ops=f.filter(O),Promise.all([u.importKey("jwk",l[0],a,!0,l[0].key_ops),u.importKey("jwk",l[1],a,c,l[1].key_ops)])})).then((function(l){return{publicKey:l[0],privateKey:l[1]}}));if((o||i&&"SHA-1"===(a.hash||{}).name)&&"importKey"===l&&"jwk"===t&&"HMAC"===a.name&&"oct"===r.kty)return u.importKey("raw",p(h(r.k)),s,b[3],b[4]);if(o&&"importKey"===l&&("spki"===t||"pkcs8"===t))return u.importKey("jwk",v(r),s,b[3],b[4]);if(i&&"unwrapKey"===l)return u.decrypt(b[3],s,r).then((function(l){return u.importKey(t,l,b[4],b[5],b[6])}));try{d=e.apply(u,b)}catch(l){return Promise.reject(l)}return i&&(d=new Promise((function(l,n){d.onabort=d.onerror=function(l){n(l)},d.oncomplete=function(n){l(n.target.result)}}))),d=d.then((function(l){return"HMAC"===a.name&&(a.length||(a.length=8*l.algorithm.length)),0==a.name.search("RSA")&&(a.modulusLength||(a.modulusLength=(l.publicKey||l).algorithm.modulusLength),a.publicExponent||(a.publicExponent=(l.publicKey||l).algorithm.publicExponent)),l=l.publicKey&&l.privateKey?{publicKey:new E(l.publicKey,a,c,f.filter(A)),privateKey:new E(l.privateKey,a,c,f.filter(O))}:new E(l,a,c,f)}))}})),["exportKey","wrapKey"].forEach((function(l){var n=u[l];u[l]=function(e,t,r){var s,a=[].slice.call(arguments);switch(l){case"exportKey":a[1]=t._key;break;case"wrapKey":a[1]=t._key,a[2]=r._key}if((o||i&&"SHA-1"===(t.algorithm.hash||{}).name)&&"exportKey"===l&&"jwk"===e&&"HMAC"===t.algorithm.name&&(a[0]="raw"),!o||"exportKey"!==l||"spki"!==e&&"pkcs8"!==e||(a[0]="jwk"),i&&"wrapKey"===l)return u.exportKey(e,t).then((function(l){return"jwk"===e&&(l=p(unescape(encodeURIComponent(JSON.stringify(w(l)))))),u.encrypt(a[3],r,l)}));try{s=n.apply(u,a)}catch(l){return Promise.reject(l)}return i&&(s=new Promise((function(l,n){s.onabort=s.onerror=function(l){n(l)},s.oncomplete=function(n){l(n.target.result)}}))),"exportKey"===l&&"jwk"===e&&(s=s.then((function(l){return(o||i&&"SHA-1"===(t.algorithm.hash||{}).name)&&"HMAC"===t.algorithm.name?{kty:"oct",alg:g(t.algorithm),key_ops:t.usages.slice(),ext:!0,k:f(d(l))}:((l=w(l)).alg||(l.alg=g(t.algorithm)),l.key_ops||(l.key_ops="public"===t.type?t.usages.filter(A):"private"===t.type?t.usages.filter(O):t.usages.slice()),l)}))),!o||"exportKey"!==l||"spki"!==e&&"pkcs8"!==e||(s=s.then((function(l){return l=b(w(l))}))),s}})),["encrypt","decrypt","sign","verify"].forEach((function(l){var n=u[l];u[l]=function(e,t,r,o){if(i&&(!r.byteLength||o&&!o.byteLength))throw new Error("Empy input is not allowed");var s,a=[].slice.call(arguments),c=y(e);if(i&&"decrypt"===l&&"AES-GCM"===c.name){var f=e.tagLength>>3;a[2]=(r.buffer||r).slice(0,r.byteLength-f),e.tag=(r.buffer||r).slice(r.byteLength-f)}a[1]=t._key;try{s=n.apply(u,a)}catch(l){return Promise.reject(l)}return i&&(s=new Promise((function(n,u){s.onabort=s.onerror=function(l){u(l)},s.oncomplete=function(u){u=u.target.result;if("encrypt"===l&&u instanceof AesGcmEncryptResult){var e=u.ciphertext,t=u.tag;(u=new Uint8Array(e.byteLength+t.byteLength)).set(new Uint8Array(e),0),u.set(new Uint8Array(t),e.byteLength),u=u.buffer}n(u)}}))),s}})),i){var c=u.digest;u.digest=function(l,n){if(!n.byteLength)throw new Error("Empy input is not allowed");var e;try{e=c.call(u,l,n)}catch(l){return Promise.reject(l)}return e=new Promise((function(l,n){e.onabort=e.onerror=function(l){n(l)},e.oncomplete=function(n){l(n.target.result)}}))},l.crypto=Object.create(n,{getRandomValues:{value:function(l){return n.getRandomValues(l)}},subtle:{value:u}}),l.CryptoKey=E}o&&(n.subtle=u,l.Crypto=e,l.SubtleCrypto=t,l.CryptoKey=E)}}}function f(l){return btoa(l).replace(/\=+$/,"").replace(/\+/g,"-").replace(/\//g,"_")}function h(l){return l=(l+="===").slice(0,-l.length%4),atob(l.replace(/-/g,"+").replace(/_/g,"/"))}function p(l){for(var n=new Uint8Array(l.length),u=0;u2&&(u=!0,n.shift());var e={ext:!0};switch(n[0][0]){case"1.2.840.113549.1.1.1":var t=["n","e","d","p","q","dp","dq","qi"],r=_(n[1]);u&&r.shift();for(var i=0;i2&&(e=!0,r.unshift(new Uint8Array([0]))),u[0][0]="1.2.840.113549.1.1.1",n=r;break;default:throw new TypeError("Unsupported key type")}return u.push(new Uint8Array(S(n)).buffer),e?u.unshift(new Uint8Array([0])):u[1]={tag:3,value:u[1]},new Uint8Array(S(u)).buffer}function _(l,n){if(l instanceof ArrayBuffer&&(l=new Uint8Array(l)),n||(n={pos:0,end:l.length}),n.end-n.pos<2||n.end>l.length)throw new RangeError("Malformed DER");var u,e=l[n.pos++],t=l[n.pos++];if(t>=128){if(t&=127,n.end-n.pos=128){var o=e;e=4;for(n.splice(t,0,o>>24&255,o>>16&255,o>>8&255,255&o);e>1&&!(o>>24);)o<<=8,e--;e<4&&n.splice(t,4-e),e|=128}return n.splice(t-2,2,u,e),n}function E(l,n,u,e){Object.defineProperties(this,{_key:{value:l},type:{value:l.type,enumerable:!0},extractable:{value:void 0===u?l.extractable:u,enumerable:!0},algorithm:{value:void 0===n?l.algorithm:n,enumerable:!0},usages:{value:void 0===e?l.usages:e,enumerable:!0}})}function A(l){return"verify"===l||"encrypt"===l||"wrapKey"===l}function O(l){return"sign"===l||"decrypt"===l||"unwrapKey"===l}}));n.default=window.crypto},function(l,n,u){"use strict";var e,t="object"==typeof Reflect?Reflect:null,r=t&&"function"==typeof t.apply?t.apply:function(l,n,u){return Function.prototype.apply.call(l,n,u)};e=t&&"function"==typeof t.ownKeys?t.ownKeys:Object.getOwnPropertySymbols?function(l){return Object.getOwnPropertyNames(l).concat(Object.getOwnPropertySymbols(l))}:function(l){return Object.getOwnPropertyNames(l)};var i=Number.isNaN||function(l){return l!=l};function o(){o.init.call(this)}l.exports=o,l.exports.once=function(l,n){return new Promise((function(u,e){function t(){void 0!==r&&l.removeListener("error",r),u([].slice.call(arguments))}var r;"error"!==n&&(r=function(u){l.removeListener(n,t),e(u)},l.once("error",r)),l.once(n,t)}))},o.EventEmitter=o,o.prototype._events=void 0,o.prototype._eventsCount=0,o.prototype._maxListeners=void 0;var s=10;function a(l){if("function"!=typeof l)throw new TypeError('The "listener" argument must be of type Function. Received type '+typeof l)}function c(l){return void 0===l._maxListeners?o.defaultMaxListeners:l._maxListeners}function f(l,n,u,e){var t,r,i,o;if(a(u),void 0===(r=l._events)?(r=l._events=Object.create(null),l._eventsCount=0):(void 0!==r.newListener&&(l.emit("newListener",n,u.listener?u.listener:u),r=l._events),i=r[n]),void 0===i)i=r[n]=u,++l._eventsCount;else if("function"==typeof i?i=r[n]=e?[u,i]:[i,u]:e?i.unshift(u):i.push(u),(t=c(l))>0&&i.length>t&&!i.warned){i.warned=!0;var s=new Error("Possible EventEmitter memory leak detected. "+i.length+" "+String(n)+" listeners added. Use emitter.setMaxListeners() to increase limit");s.name="MaxListenersExceededWarning",s.emitter=l,s.type=n,s.count=i.length,o=s,console&&console.warn&&console.warn(o)}return l}function h(){if(!this.fired)return this.target.removeListener(this.type,this.wrapFn),this.fired=!0,0===arguments.length?this.listener.call(this.target):this.listener.apply(this.target,arguments)}function p(l,n,u){var e={fired:!1,wrapFn:void 0,target:l,type:n,listener:u},t=h.bind(e);return t.listener=u,e.wrapFn=t,t}function d(l,n,u){var e=l._events;if(void 0===e)return[];var t=e[n];return void 0===t?[]:"function"==typeof t?u?[t.listener||t]:[t]:u?function(l){for(var n=new Array(l.length),u=0;u0&&(i=n[0]),i instanceof Error)throw i;var o=new Error("Unhandled error."+(i?" ("+i.message+")":""));throw o.context=i,o}var s=t[l];if(void 0===s)return!1;if("function"==typeof s)r(s,this,n);else{var a=s.length,c=g(s,a);for(u=0;u=0;r--)if(u[r]===n||u[r].listener===n){i=u[r].listener,t=r;break}if(t<0)return this;0===t?u.shift():function(l,n){for(;n+1=0;e--)this.removeListener(l,n[e]);return this},o.prototype.listeners=function(l){return d(this,l,!0)},o.prototype.rawListeners=function(l){return d(this,l,!1)},o.listenerCount=function(l,n){return"function"==typeof l.listenerCount?l.listenerCount(n):y.call(l,n)},o.prototype.listenerCount=y,o.prototype.eventNames=function(){return this._eventsCount>0?e(this._events):[]}},function(l,n,u){var e=u(27);l.exports=function(l,n){if(null==l)return{};var u,t,r=e(l,n);if(Object.getOwnPropertySymbols){var i=Object.getOwnPropertySymbols(l);for(t=0;t=0||Object.prototype.propertyIsEnumerable.call(l,u)&&(r[u]=l[u])}return r}},function(l,n,u){"use strict";Object.defineProperty(n,"__esModule",{value:!0}),Object.defineProperty(n,"format",{enumerable:!0,get:function(){return e.default}}),Object.defineProperty(n,"parse",{enumerable:!0,get:function(){return t.default}});var e=r(u(28)),t=r(u(29));function r(l){return l&&l.__esModule?l:{default:l}}},function(l,n){l.exports=function(l,n){if(null==l)return{};var u,e,t={},r=Object.keys(l);for(e=0;e=0||(t[u]=l[u]);return t}},function(l,n,u){"use strict";Object.defineProperty(n,"__esModule",{value:!0}),n.default=void 0;var e=u(13);function t(l){return function(l){if(Array.isArray(l)){for(var n=0,u=new Array(l.length);n@,;:\\"/?={}\[\]\u0020\u0009]+)(?:=([^\\"=\s,]+|"(?:[^"\\]|\\.)*"))?/g,r=function(l,n){var u='"'===n.charAt(0)?(0,e.unquote)(n):n.trim();return Array.isArray(l)?l.concat(u):"string"==typeof l?[l,u]:u};n.default=function(l){if("string"!=typeof l)throw new TypeError("Header value must be a string.");var n=l.indexOf(" "),u=l.substr(0,n);if(!(0,e.isScheme)(u))throw new TypeError("Invalid scheme "+u);return function(l,n){for(var u=null,e={};;){var i=t.exec(n);if(null===i)break;i[2]?e[i[1]]=r(e[i[1]],i[2]):u=r(u,i[1])}return{scheme:l,params:e,token:u}}(u,l.substr(n))}},function(l,n,u){"use strict"; /* object-assign (c) Sindre Sorhus @license MIT -*/var r=Object.getOwnPropertySymbols,i=Object.prototype.hasOwnProperty,o=Object.prototype.propertyIsEnumerable;function s(e){if(null==e)throw new TypeError("Object.assign cannot be called with null or undefined");return Object(e)}e.exports=function(){try{if(!Object.assign)return!1;var e=new String("abc");if(e[5]="de","5"===Object.getOwnPropertyNames(e)[0])return!1;for(var t={},n=0;n<10;n++)t["_"+String.fromCharCode(n)]=n;if("0123456789"!==Object.getOwnPropertyNames(t).map(function(e){return t[e]}).join(""))return!1;var r={};return"abcdefghijklmnopqrst".split("").forEach(function(e){r[e]=e}),"abcdefghijklmnopqrst"===Object.keys(Object.assign({},r)).join("")}catch(e){return!1}}()?Object.assign:function(e,t){for(var n,a,u=s(e),c=1;c=o)return e;switch(e){case"%s":return String(r[n++]);case"%d":return Number(r[n++]);case"%j":try{return JSON.stringify(r[n++])}catch(e){return"[Circular]"}default:return e}}),u=r[n];n=3&&(r.depth=arguments[2]),arguments.length>=4&&(r.colors=arguments[3]),d(n)?r.showHidden=n:n&&t._extend(r,n),m(r.showHidden)&&(r.showHidden=!1),m(r.depth)&&(r.depth=2),m(r.colors)&&(r.colors=!1),m(r.customInspect)&&(r.customInspect=!0),r.colors&&(r.stylize=u),f(r,e,r.depth)}function u(e,t){var n=a.styles[t];return n?"["+a.colors[n][0]+"m"+e+"["+a.colors[n][1]+"m":e}function c(e,t){return e}function f(e,n,r){if(e.customInspect&&n&&S(n.inspect)&&n.inspect!==t.inspect&&(!n.constructor||n.constructor.prototype!==n)){var i=n.inspect(r,e);return v(i)||(i=f(e,i,r)),i}var o=function(e,t){if(m(t))return e.stylize("undefined","undefined");if(v(t)){var n="'"+JSON.stringify(t).replace(/^"|"$/g,"").replace(/'/g,"\\'").replace(/\\"/g,'"')+"'";return e.stylize(n,"string")}if(g(t))return e.stylize(""+t,"number");if(d(t))return e.stylize(""+t,"boolean");if(y(t))return e.stylize("null","null")}(e,n);if(o)return o;var s=Object.keys(n),a=function(e){var t={};return e.forEach(function(e,n){t[e]=!0}),t}(s);if(e.showHidden&&(s=Object.getOwnPropertyNames(n)),E(n)&&(s.indexOf("message")>=0||s.indexOf("description")>=0))return l(n);if(0===s.length){if(S(n)){var u=n.name?": "+n.name:"";return e.stylize("[Function"+u+"]","special")}if(w(n))return e.stylize(RegExp.prototype.toString.call(n),"regexp");if(O(n))return e.stylize(Date.prototype.toString.call(n),"date");if(E(n))return l(n)}var c,b="",k=!1,_=["{","}"];(h(n)&&(k=!0,_=["[","]"]),S(n))&&(b=" [Function"+(n.name?": "+n.name:"")+"]");return w(n)&&(b=" "+RegExp.prototype.toString.call(n)),O(n)&&(b=" "+Date.prototype.toUTCString.call(n)),E(n)&&(b=" "+l(n)),0!==s.length||k&&0!=n.length?r<0?w(n)?e.stylize(RegExp.prototype.toString.call(n),"regexp"):e.stylize("[Object]","special"):(e.seen.push(n),c=k?function(e,t,n,r,i){for(var o=[],s=0,a=t.length;s=0&&0,e+t.replace(/\u001b\[\d\d?m/g,"").length+1},0)>60)return n[0]+(""===t?"":t+"\n ")+" "+e.join(",\n ")+" "+n[1];return n[0]+t+" "+e.join(", ")+" "+n[1]}(c,b,_)):_[0]+b+_[1]}function l(e){return"["+Error.prototype.toString.call(e)+"]"}function p(e,t,n,r,i,o){var s,a,u;if((u=Object.getOwnPropertyDescriptor(t,i)||{value:t[i]}).get?a=u.set?e.stylize("[Getter/Setter]","special"):e.stylize("[Getter]","special"):u.set&&(a=e.stylize("[Setter]","special")),A(r,i)||(s="["+i+"]"),a||(e.seen.indexOf(u.value)<0?(a=y(n)?f(e,u.value,null):f(e,u.value,n-1)).indexOf("\n")>-1&&(a=o?a.split("\n").map(function(e){return" "+e}).join("\n").substr(2):"\n"+a.split("\n").map(function(e){return" "+e}).join("\n")):a=e.stylize("[Circular]","special")),m(s)){if(o&&i.match(/^\d+$/))return a;(s=JSON.stringify(""+i)).match(/^"([a-zA-Z_][a-zA-Z_0-9]*)"$/)?(s=s.substr(1,s.length-2),s=e.stylize(s,"name")):(s=s.replace(/'/g,"\\'").replace(/\\"/g,'"').replace(/(^"|"$)/g,"'"),s=e.stylize(s,"string"))}return s+": "+a}function h(e){return Array.isArray(e)}function d(e){return"boolean"==typeof e}function y(e){return null===e}function g(e){return"number"==typeof e}function v(e){return"string"==typeof e}function m(e){return void 0===e}function w(e){return b(e)&&"[object RegExp]"===k(e)}function b(e){return"object"==typeof e&&null!==e}function O(e){return b(e)&&"[object Date]"===k(e)}function E(e){return b(e)&&("[object Error]"===k(e)||e instanceof Error)}function S(e){return"function"==typeof e}function k(e){return Object.prototype.toString.call(e)}function _(e){return e<10?"0"+e.toString(10):e.toString(10)}t.debuglog=function(n){if(m(o)&&(o=e.env.NODE_DEBUG||""),n=n.toUpperCase(),!s[n])if(new RegExp("\\b"+n+"\\b","i").test(o)){var r=e.pid;s[n]=function(){var e=t.format.apply(t,arguments);console.error("%s %d: %s",n,r,e)}}else s[n]=function(){};return s[n]},t.inspect=a,a.colors={bold:[1,22],italic:[3,23],underline:[4,24],inverse:[7,27],white:[37,39],grey:[90,39],black:[30,39],blue:[34,39],cyan:[36,39],green:[32,39],magenta:[35,39],red:[31,39],yellow:[33,39]},a.styles={special:"cyan",number:"yellow",boolean:"yellow",undefined:"grey",null:"bold",string:"green",date:"magenta",regexp:"red"},t.isArray=h,t.isBoolean=d,t.isNull=y,t.isNullOrUndefined=function(e){return null==e},t.isNumber=g,t.isString=v,t.isSymbol=function(e){return"symbol"==typeof e},t.isUndefined=m,t.isRegExp=w,t.isObject=b,t.isDate=O,t.isError=E,t.isFunction=S,t.isPrimitive=function(e){return null===e||"boolean"==typeof e||"number"==typeof e||"string"==typeof e||"symbol"==typeof e||void 0===e},t.isBuffer=n(43);var P=["Jan","Feb","Mar","Apr","May","Jun","Jul","Aug","Sep","Oct","Nov","Dec"];function j(){var e=new Date,t=[_(e.getHours()),_(e.getMinutes()),_(e.getSeconds())].join(":");return[e.getDate(),P[e.getMonth()],t].join(" ")}function A(e,t){return Object.prototype.hasOwnProperty.call(e,t)}t.log=function(){console.log("%s - %s",j(),t.format.apply(t,arguments))},t.inherits=n(44),t._extend=function(e,t){if(!t||!b(t))return e;for(var n=Object.keys(t),r=n.length;r--;)e[n[r]]=t[n[r]];return e};var T="undefined"!=typeof Symbol?Symbol("util.promisify.custom"):void 0;function x(e,t){if(!e){var n=new Error("Promise was rejected with a falsy value");n.reason=e,e=n}return t(e)}t.promisify=function(e){if("function"!=typeof e)throw new TypeError('The "original" argument must be of type Function');if(T&&e[T]){var t;if("function"!=typeof(t=e[T]))throw new TypeError('The "util.promisify.custom" argument must be of type Function');return Object.defineProperty(t,T,{value:t,enumerable:!1,writable:!1,configurable:!0}),t}function t(){for(var t,n,r=new Promise(function(e,r){t=e,n=r}),i=[],o=0;o1)for(var n=1;n0&&void 0!==arguments[0]?arguments[0]:{},n=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};!function(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}(this,e),this.initialize(t,n)}return r(e,null,[{key:"schema",get:function(){throw new Error("Schema must be defined by classes extending JSONDocument")}}]),r(e,[{key:"initialize",value:function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},n=this.constructor.schema;n.initialize(this,e,t)}},{key:"validate",value:function(e){var t=this.constructor.schema;return(e||t).validate(this)}},{key:"patch",value:function(e){var t=new i(e);t.apply(this)}},{key:"select",value:function(){}},{key:"project",value:function(e){return e.project(this)}}],[{key:"serialize",value:function(e){return JSON.stringify(e)}},{key:"deserialize",value:function(e){try{return JSON.parse(e)}catch(e){throw new Error("Failed to parse JSON")}}}]),e}();e.exports=o},function(e,t,n){"use strict";var r=function(){function e(e,t){for(var n=0;n0?s-4:s;for(n=0;n>16&255,u[f++]=t>>8&255,u[f++]=255&t;2===a&&(t=i[e.charCodeAt(n)]<<2|i[e.charCodeAt(n+1)]>>4,u[f++]=255&t);1===a&&(t=i[e.charCodeAt(n)]<<10|i[e.charCodeAt(n+1)]<<4|i[e.charCodeAt(n+2)]>>2,u[f++]=t>>8&255,u[f++]=255&t);return u},t.fromByteArray=function(e){for(var t,n=e.length,i=n%3,o=[],s=0,a=n-i;sa?a:s+16383));1===i?(t=e[n-1],o.push(r[t>>2]+r[t<<4&63]+"==")):2===i&&(t=(e[n-2]<<8)+e[n-1],o.push(r[t>>10]+r[t>>4&63]+r[t<<2&63]+"="));return o.join("")};for(var r=[],i=[],o="undefined"!=typeof Uint8Array?Uint8Array:Array,s="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/",a=0,u=s.length;a0)throw new Error("Invalid string. Length must be a multiple of 4");var n=e.indexOf("=");return-1===n&&(n=t),[n,n===t?0:4-n%4]}function f(e,t,n){for(var i,o,s=[],a=t;a>18&63]+r[o>>12&63]+r[o>>6&63]+r[63&o]);return s.join("")}i["-".charCodeAt(0)]=62,i["_".charCodeAt(0)]=63},function(e,t){t.read=function(e,t,n,r,i){var o,s,a=8*i-r-1,u=(1<>1,f=-7,l=n?i-1:0,p=n?-1:1,h=e[t+l];for(l+=p,o=h&(1<<-f)-1,h>>=-f,f+=a;f>0;o=256*o+e[t+l],l+=p,f-=8);for(s=o&(1<<-f)-1,o>>=-f,f+=r;f>0;s=256*s+e[t+l],l+=p,f-=8);if(0===o)o=1-c;else{if(o===u)return s?NaN:1/0*(h?-1:1);s+=Math.pow(2,r),o-=c}return(h?-1:1)*s*Math.pow(2,o-r)},t.write=function(e,t,n,r,i,o){var s,a,u,c=8*o-i-1,f=(1<>1,p=23===i?Math.pow(2,-24)-Math.pow(2,-77):0,h=r?0:o-1,d=r?1:-1,y=t<0||0===t&&1/t<0?1:0;for(t=Math.abs(t),isNaN(t)||t===1/0?(a=isNaN(t)?1:0,s=f):(s=Math.floor(Math.log(t)/Math.LN2),t*(u=Math.pow(2,-s))<1&&(s--,u*=2),(t+=s+l>=1?p/u:p*Math.pow(2,1-l))*u>=2&&(s++,u/=2),s+l>=f?(a=0,s=f):s+l>=1?(a=(t*u-1)*Math.pow(2,i),s+=l):(a=t*Math.pow(2,l-1)*Math.pow(2,i),s=0));i>=8;e[n+h]=255&a,h+=d,a/=256,i-=8);for(s=s<0;e[n+h]=255&s,h+=d,s/=256,c-=8);e[n+h-d]|=128*y}},function(e,t){var n={}.toString;e.exports=Array.isArray||function(e){return"[object Array]"==n.call(e)}},function(e,t,n){"use strict";(function(e){Object.defineProperty(t,"__esModule",{value:!0}),t.default=function(t){var n=t.length,r=n%4;if(!r)return t;var i=n,o=4-r,s=n+o,a=e.alloc(s);for(a.write(t);o--;)a.write("=",i++);return a.toString()}}).call(this,n(4).Buffer)},function(e,t,n){"use strict";var r=n(54),i=n(55),o=n(57),s=new(n(58));s.define("HS256","sign",new i({name:"HMAC",hash:{name:"SHA-256"}})),s.define("HS384","sign",new i({name:"HMAC",hash:{name:"SHA-384"}})),s.define("HS512","sign",new i({name:"HMAC",hash:{name:"SHA-512"}})),s.define("RS256","sign",new o({name:"RSASSA-PKCS1-v1_5",hash:{name:"SHA-256"}})),s.define("RS384","sign",new o({name:"RSASSA-PKCS1-v1_5",hash:{name:"SHA-384"}})),s.define("RS512","sign",new o({name:"RSASSA-PKCS1-v1_5",hash:{name:"SHA-512"}})),s.define("none","sign",new r({})),s.define("HS256","verify",new i({name:"HMAC",hash:{name:"SHA-256"}})),s.define("HS384","verify",new i({name:"HMAC",hash:{name:"SHA-384"}})),s.define("HS512","verify",new i({name:"HMAC",hash:{name:"SHA-512"}})),s.define("RS256","verify",new o({name:"RSASSA-PKCS1-v1_5",hash:{name:"SHA-256"}})),s.define("RS384","verify",new o({name:"RSASSA-PKCS1-v1_5",hash:{name:"SHA-384"}})),s.define("RS512","verify",new o({name:"RSASSA-PKCS1-v1_5",hash:{name:"SHA-512"}})),s.define("none","verify",new r({})),s.define("RS256","importKey",new o({name:"RSASSA-PKCS1-v1_5",hash:{name:"SHA-256"}})),s.define("RS384","importKey",new o({name:"RSASSA-PKCS1-v1_5",hash:{name:"SHA-384"}})),s.define("RS512","importKey",new o({name:"RSASSA-PKCS1-v1_5",hash:{name:"SHA-512"}})),e.exports=s},function(e,t,n){"use strict";var r=function(){function e(e,t){for(var n=0;n(r(f.configuration,"RelyingParty provider OpenID Configuration is missing"),r(l.authenticate,"RelyingParty default authentication parameters are missing"),r(p,"RelyingParty client registration is missing"),h=f.configuration.issuer,d=f.configuration.authorization_endpoint,y={client_id:p.client_id},g=Object.assign(l.authenticate,y,n),r(h,"Missing issuer in provider OpenID Configuration"),r(d,"Missing authorization_endpoint in provider OpenID Configuration"),r(g.scope,"Missing scope parameter in authentication request"),r(g.response_type,"Missing response_type parameter in authentication request"),r(g.client_id,"Missing client_id parameter in authentication request"),r(g.redirect_uri,"Missing redirect_uri parameter in authentication request"),g.state=Array.from(o.getRandomValues(new Uint8Array(16))),g.nonce=Array.from(o.getRandomValues(new Uint8Array(16))),Promise.all([o.subtle.digest({name:"SHA-256"},new Uint8Array(g.state)),o.subtle.digest({name:"SHA-256"},new Uint8Array(g.nonce))]))).then(e=>{let n=i(t.from(e[0])),r=i(t.from(e[1]));s[`${h}/requestHistory/${n}`]=JSON.stringify(g),g.state=n,g.nonce=r}).then(()=>c.generateSessionKeys()).then(e=>{c.storeSessionKeys(e,g,s)}).then(()=>{if(f.configuration.request_parameter_supported)return c.encodeRequestParams(g).then(e=>{g=e})}).then(()=>{let e=new u(d);return e.search=a.encode(g),e.href})}static generateSessionKeys(){return o.subtle.generateKey({name:"RSASSA-PKCS1-v1_5",modulusLength:2048,publicExponent:new Uint8Array([1,0,1]),hash:{name:"SHA-256"}},!0,["sign","verify"]).then(e=>Promise.all([o.subtle.exportKey("jwk",e.publicKey),o.subtle.exportKey("jwk",e.privateKey)])).then(e=>{let[t,n]=e;return{public:t,private:n}})}static storeSessionKeys(e,t,n){n["oidc.session.privateKey"]=JSON.stringify(e.private),t.key=e.public}static encodeRequestParams(e){const t=["scope","client_id","response_type","state"],n=Object.keys(e).filter(e=>!t.includes(e));let r={};return n.forEach(t=>{r[t]=e[t]}),new s({header:{alg:"none"},payload:r},{filter:!1}).encode().then(t=>{return{scope:e.scope,client_id:e.client_id,response_type:e.response_type,request:t,state:e.state}})}}e.exports=c}).call(this,n(4).Buffer)},function(e,t,n){(function(t,r){const{URL:i}=n(6),o=n(10),s=n(8),a=n(2),u=n(7),c=u.Headers?u.Headers:t.Headers,f=n(13),l=n(64),p=n(66),h=n(14),d=n(68);class y{constructor({rp:e,redirect:t,body:n,session:r,mode:i,params:o={}}){this.rp=e,this.redirect=t,this.body=n,this.session=r,this.mode=i,this.params=o}static validateResponse(e){return Promise.resolve(e).then(this.parseResponse).then(this.errorResponse).then(this.matchRequest).then(this.validateStateParam).then(this.validateResponseMode).then(this.validateResponseParams).then(this.exchangeAuthorizationCode).then(this.validateIDToken).then(p.fromAuthResponse)}static parseResponse(e){let{redirect:t,body:n}=e;if(t&&n||!t&&!n)throw new d(400,"Invalid response mode");if(t){let n=new i(t),{search:r,hash:o}=n;if(r&&o||!r&&!o)throw new d(400,"Invalid response mode");r&&(e.params=f.decode(r.substring(1)),e.mode="query"),o&&(e.params=f.decode(o.substring(1)),e.mode="fragment")}return n&&(e.params=f.decode(n),e.mode="form_post"),e}static errorResponse(e){const t=e.params.error;if(t){const n={};n.error=t,n.error_description=e.params.error_description,n.error_uri=e.params.error_uri,n.state=e.params.state;const r=new Error(`AuthenticationResponse error: ${t}`);throw r.info=n,r}return e}static matchRequest(e){let{rp:t,params:n,session:r}=e,i=n.state,o=t.provider.configuration.issuer;if(!i)throw new Error("Missing state parameter in authentication response");let s=r[`${o}/requestHistory/${i}`];if(!s)throw new Error("Mismatching state parameter in authentication response");return e.request=JSON.parse(s),e}static validateStateParam(e){let t=new Uint8Array(e.request.state),n=e.params.state;return s.subtle.digest({name:"SHA-256"},t).then(t=>{if(n!==a(r.from(t)))throw new Error("Mismatching state parameter in authentication response");return e})}static validateResponseMode(e){if("code"!==e.request.response_type&&"query"===e.mode)throw new Error("Invalid response mode");return e}static validateResponseParams(e){let{request:t,params:n}=e,r=t.response_type.split(" ");return r.includes("code")&&o(n.code,"Missing authorization code in authentication response"),r.includes("id_token")&&o(n.id_token,"Missing id_token in authentication response"),r.includes("token")&&(o(n.access_token,"Missing access_token in authentication response"),o(n.token_type,"Missing token_type in authentication response")),e}static exchangeAuthorizationCode(e){let{rp:t,params:n,request:i}=e,s=n.code;if(!s||"code"!==i.response_type)return Promise.resolve(e);let{provider:a,registration:l}=t,p=l.client_id,d=l.client_secret;if(!d)return Promise.reject(new Error("Client cannot exchange authorization code because it is not a confidential client"));let y=a.configuration.token_endpoint,g=new c({"Content-Type":"application/x-www-form-urlencoded"}),v={grant_type:"authorization_code",code:s,redirect_uri:i.redirect_uri},m=l.token_endpoint_auth_method||"client_secret_basic";if("client_secret_basic"===m){let e=new r(`${p}:${d}`).toString("base64");g.set("Authorization",`Basic ${e}`)}"client_secret_post"===m&&(v.client_id=p,v.client_secret=d);let w=f.encode(v);return u(y,{method:"POST",headers:g,body:w}).then(h("Error exchanging authorization code")).then(e=>e.json()).then(t=>(o(t.access_token,"Missing access_token in token response"),o(t.token_type,"Missing token_type in token response"),o(t.id_token,"Missing id_token in token response"),e.params=Object.assign(e.params,t),e))}static validateIDToken(e){return e.params.id_token?Promise.resolve(e).then(y.decryptIDToken).then(y.decodeIDToken).then(y.validateIssuer).then(y.validateAudience).then(y.resolveKeys).then(y.verifySignature).then(y.validateExpires).then(y.verifyNonce).then(y.validateAcr).then(y.validateAuthTime).then(y.validateAccessTokenHash).then(y.validateAuthorizationCodeHash):Promise.resolve(e)}static decryptIDToken(e){return Promise.resolve(e)}static decodeIDToken(e){let t=e.params.id_token;try{e.decoded=l.decode(t)}catch(e){const n=new d(400,"Error decoding ID Token");throw n.cause=e,n.info={id_token:t},n}return e}static validateIssuer(e){let t=e.rp.provider.configuration;if(e.decoded.payload.iss!==t.issuer)throw new Error("Mismatching issuer in ID Token");return e}static validateAudience(e){let t=e.rp.registration,{aud:n,azp:r}=e.decoded.payload;if("string"==typeof n&&n!==t.client_id)throw new Error("Mismatching audience in id_token");if(Array.isArray(n)&&!n.includes(t.client_id))throw new Error("Mismatching audience in id_token");if(Array.isArray(n)&&!r)throw new Error("Missing azp claim in id_token");if(r&&r!==t.client_id)throw new Error("Mismatching azp claim in id_token");return e}static resolveKeys(e){let t=e.rp,n=t.provider,r=e.decoded;return Promise.resolve(n.jwks).then(e=>e||t.jwks()).then(t=>{if(r.resolveKeys(t))return Promise.resolve(e);throw new Error("Cannot resolve signing key for ID Token")})}static verifySignature(e){let t=e.decoded.header.alg,n=e.rp.registration.id_token_signed_response_alg||"RS256";if(t!==n)throw new Error(`Expected ID Token to be signed with ${n}`);return e.decoded.verify().then(t=>{if(!t)throw new Error("Invalid ID Token signature");return e})}static validateExpires(e){if(e.decoded.payload.exp<=Math.floor(Date.now()/1e3))throw new Error("Expired ID Token");return e}static verifyNonce(e){let t=new Uint8Array(e.request.nonce),n=e.decoded.payload.nonce;if(!n)throw new Error("Missing nonce in ID Token");return s.subtle.digest({name:"SHA-256"},t).then(t=>{if(n!==a(r.from(t)))throw new Error("Mismatching nonce in ID Token");return e})}static validateAcr(e){return e}static validateAuthTime(e){return e}static validateAccessTokenHash(e){return e}static validateAuthorizationCodeHash(e){return e}}e.exports=y}).call(this,n(5),n(4).Buffer)},function(e,t,n){const{JWT:r}=n(3),i=n(65);e.exports=class extends r{static get schema(){return i}}},function(e,t,n){const{JWTSchema:r}=n(3),i=r.extend({properties:{header:{},payload:{properties:{iss:{type:"string",format:"url"},sub:{type:"string",maxLength:255},auth_time:{type:"integer",format:"NumericDate"},nonce:{type:"string"},acr:{type:"string"},amr:{type:"array",items:{type:"string"}},azp:{type:"string",format:"StringOrURI"}},required:["iss","sub","aud","exp","iat"]}}});e.exports=i},function(e,t,n){"use strict";const r=n(7),i=n(14),o=n(67);class s{constructor(e){this.credentialType=e.credentialType||"access_token",this.issuer=e.issuer,this.authorization=e.authorization||{},this.sessionKey=e.sessionKey,this.idClaims=e.idClaims,this.accessClaims=e.accessClaims}static from(e){return new s(e)}static fromAuthResponse(e){const t=n(17);let r=e.decoded&&e.decoded.payload||{},{rp:i}=e,o=i.registration,a={credentialType:(i.defaults.authenticate||{}).credential_type||i.defaults.popToken?"pop_token":"access_token",sessionKey:e.session[t.SESSION_PRIVATE_KEY],issuer:r.iss,idClaims:r,authorization:{client_id:o.client_id,access_token:e.params.access_token,id_token:e.params.id_token,refresh_token:e.params.refresh_token}};return s.from(a)}get fetch(){return(e,t)=>Promise.resolve().then(()=>this.hasCredentials()?this.fetchWithCredentials(e,t):r(e,t)).then(i("Error while fetching resource"))}bearerTokenFor(e){switch(this.credentialType){case"pop_token":return o.issueFor(e,this);default:return Promise.resolve(this.authorization[this.credentialType])}}hasCredentials(){switch(this.credentialType){case"pop_token":return!!this.authorization.id_token;default:return!!this.authorization[this.credentialType]}}fetchWithCredentials(e,t={}){return t.headers=t.headers||{},this.bearerTokenFor(e).then(n=>(t.headers.authorization=`Bearer ${n}`,r(e,t)))}}e.exports=s},function(e,t,n){"use strict";const{URL:r}=n(6),{JWT:i,JWK:o}=n(3),s=3600;class a extends i{static issueFor(e,t){if(!e)throw new Error("Cannot issue PoPToken - missing resource server URI");if(!t.sessionKey)throw new Error("Cannot issue PoPToken - missing session key");if(!t.authorization.id_token)throw new Error("Cannot issue PoPToken - missing id token");let n=JSON.parse(t.sessionKey);return o.importKey(n).then(n=>{let i={aud:new r(e).origin,key:n,iss:t.authorization.client_id,id_token:t.authorization.id_token};return a.issue(i)}).then(e=>e.encode())}static issue(e){let{aud:t,iss:n,key:r}=e,i=r.alg,o=e.iat||Math.floor(Date.now()/1e3),u={alg:i},c={iss:n,aud:t,exp:o+(e.max||s),iat:o,id_token:e.id_token,token_type:"pop"};return new a({header:u,payload:c,key:r.cryptoKey},{filter:!1})}}e.exports=a},function(e,t,n){t=e.exports=s;var r=n(69),i=n(70),o=t;function s(e,t,n){if("string"==typeof e&&(e=o[e]),"number"!=typeof e)throw new TypeError("Non-numeric HTTP code");"object"==typeof t&&null!=t&&(n=t,t=null),r.call(this,t||i[e],n),this.code=e}for(var a in s.prototype=Object.create(r.prototype,{constructor:{value:s,configurable:!0,writable:!0}}),s.prototype.name="HttpError",Object.defineProperties(s.prototype,{statusCode:u("code"),statusMessage:u("message"),status:{configurable:!0,get:function(){return this.code},set:function(e){Object.defineProperty(this,"status",{value:e,configurable:!0,enumerable:!0,writable:!0})}}}),s.prototype.toString=function(){return this.name+": "+this.code+" "+this.message},i){t[i[a].replace("'","").replace(/[- ]/g,"_").toUpperCase()]=+a}function u(e){return{configurable:!0,get:function(){return this[e]},set:function(t){return this[e]=t}}}},function(e,t){var n=Object.hasOwnProperty,r=Object.getPrototypeOf,i=Error.captureStackTrace;function o(e,t){if(e&&"object"==typeof e?(t=e,e=void 0):this.message=e,t)for(var o in t)this[o]=t[o];n.call(this,"name")||(this.name=n.call(r(this),"name")?this.name:this.constructor.name),!i||"stack"in this||i(this,this.constructor)}e.exports=o,o.prototype=Object.create(Error.prototype,{constructor:{value:o,configurable:!0,writable:!0}}),o.prototype.name="StandardError"},function(e){e.exports=JSON.parse('{"100":"Continue","101":"Switching Protocols","102":"Processing","200":"OK","201":"Created","202":"Accepted","203":"Non-Authoritative Information","204":"No Content","205":"Reset Content","206":"Partial Content","207":"Multi-Status","208":"Already Reported","226":"IM Used","300":"Multiple Choices","301":"Moved Permanently","302":"Found","303":"See Other","304":"Not Modified","305":"Use Proxy","307":"Temporary Redirect","308":"Permanent Redirect","400":"Bad Request","401":"Unauthorized","402":"Payment Required","403":"Forbidden","404":"Not Found","405":"Method Not Allowed","406":"Not Acceptable","407":"Proxy Authentication Required","408":"Request Timeout","409":"Conflict","410":"Gone","411":"Length Required","412":"Precondition Failed","413":"Payload Too Large","414":"URI Too Long","415":"Unsupported Media Type","416":"Range Not Satisfiable","417":"Expectation Failed","418":"I\'m a teapot","421":"Misdirected Request","422":"Unprocessable Entity","423":"Locked","424":"Failed Dependency","425":"Unordered Collection","426":"Upgrade Required","428":"Precondition Required","429":"Too Many Requests","431":"Request Header Fields Too Large","500":"Internal Server Error","501":"Not Implemented","502":"Bad Gateway","503":"Service Unavailable","504":"Gateway Timeout","505":"HTTP Version Not Supported","506":"Variant Also Negotiates","507":"Insufficient Storage","508":"Loop Detected","509":"Bandwidth Limit Exceeded","510":"Not Extended","511":"Network Authentication Required"}')},function(e,t,n){const{JSONSchema:r}=n(1),i=new r({type:"object",properties:{provider:{type:"object",properties:{name:{type:"string"},url:{type:"string",format:"uri"},configuration:{},jwks:{}},required:["url"]},defaults:{type:"object",properties:{popToken:{type:"boolean",default:!1},authenticate:{type:"object",properties:{redirect_uri:{type:"string",format:"uri"},response_type:{type:"string",default:"id_token token",enum:["code","token","id_token token","id_token token code"]},display:{type:"string",default:"page",enum:["page","popup"]},scope:{type:["string","array"],default:["openid"]}}},register:{}}},registration:{},store:{type:"object",default:{}}}});e.exports=i},function(e,t,n){"use strict";n.r(t);var r=n(0),i=n.n(r),o=n(33),s=n.n(o);n(7);function a(){return"undefined"!=typeof window?window.location:{href:"https://example.org/",pathname:"/",origin:"example.org"}}const u=()=>a().href,c=()=>a().origin+a().pathname,f=e=>{a().href=e},l=e=>new URL(e).origin,p=e=>("string"!=typeof e&&(e="url"in e?e.url:e.toString()),new URL(e,u()).toString()),h="solid-auth-client";class d{constructor(e,t,n){i()(this,"_clientWindow",void 0),i()(this,"_clientOrigin",void 0),i()(this,"_handler",void 0),i()(this,"_messageListener",void 0),this._clientWindow=e,this._clientOrigin=t,this._handler=n,this._messageListener=e=>this._handleMessage(e)}async _handleMessage(e){let{data:t,origin:n}=e;if(n!==this._clientOrigin)return void console.warn("solid-auth-client is listening to ".concat(this._clientOrigin," ")+"so ignored a message received from ".concat(n,"."));const r=t&&t[h];if(r&&r.method){const{id:e,method:t,args:n}=r,i=await this._handler(t,...n);this._clientWindow.postMessage({[h]:{id:e,ret:i}},this._clientOrigin)}}start(){window.addEventListener("message",this._messageListener)}stop(){window.removeEventListener("message",this._messageListener)}}const y="solid-auth-client",g=()=>{return function(e){return{getItem:t=>Promise.resolve(e.getItem(t)),setItem:(t,n)=>Promise.resolve(e.setItem(t,n)),removeItem:t=>Promise.resolve(e.removeItem(t))}}("undefined"!=typeof window&&"localStorage"in window?window.localStorage:w())};async function v(e){let t,n;try{t=await e.getItem(y),n=JSON.parse(t||"{}")}catch(e){console.warn("Could not deserialize data:",t),console.error(e),n={}}return n}async function m(e,t){const n=t(await v(e));return await e.setItem(y,JSON.stringify(n)),n}const w=()=>{const e={};return{getItem:t=>void 0===e[t]?null:e[t],setItem:(t,n)=>{e[t]=n},removeItem:t=>{delete e[t]}}};function b(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter(function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable})),n.push.apply(n,r)}return n}function O(e){for(var t=1;t{let[t,n]=e;return t.startsWith("clientName#")}).forEach(e=>{let[t,n]=e;return i[t.replace("clientName#","client_name#")]=n});const o={logo_uri:t.logoUri,contacts:t.contacts,client_name:t.clientName},s=R({issuer:e,grant_types:["implicit"],redirect_uris:[r],response_types:["id_token token"],scope:"openid profile"},i,{},o),a={defaults:{authenticate:{redirect_uri:r,response_type:"id_token token"}},store:n};return j.a.register(e,s,a)}(e,t),await async function(e,t,n){return await m(e,e=>R({},e,{rpConfig:n})),n}(t.storage,0,n));return n}(e,t);return await async function(e){await m(e,e=>R({},e,{appHashFragment:window.location.hash}))}(t.storage),async function(e,t){let{callbackUri:n,storage:r}=t;const i=await v(r),o=await e.createRequest({redirect_uri:n},i);return await m(r,()=>i),f(o)}(n,t)}catch(e){return console.warn("Error logging in with WebID-OIDC"),console.error(e),null}}async function C(){let e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:g();try{const t=await N(e);if(!t)return null;const n=u();if(!/#(.*&)?access_token=/.test(n))return null;window.location.hash="",await async function(e){await m(e,e=>{let{appHashFragment:t=""}=e,n=k()(e,["appHashFragment"]);return window.location.hash=t,n})}(e);const r=await v(e),i=await t.validateResponse(n,r);return i?R({},i,{webId:i.idClaims.sub,idp:i.issuer}):null}catch(e){return console.warn("Error finding a WebID-OIDC session"),console.error(e),null}}async function N(e){const t=await v(e),{rpConfig:n}=t;return n?(n.store=e,j.a.from(n)):null}async function U(e,t,n,r){const i={},o=r?r.headers:n.headers;if(o){const e="function"==typeof o.entries?o.entries():Object.entries(o);for(const[t,n]of e)i[t]=n}const s=await T.a.issueFor(p(n),e);return i.authorization="Bearer ".concat(s),t(n,R({},r,{credentials:"include",headers:i}))}function D(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter(function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable})),n.push.apply(n,r)}return n}function L(e){for(var t=1;t{if(function(e){if(401!==e.status)return!1;const t=e.headers.get("www-authenticate");if(!t)return!1;const n=_.parse(t);return"Bearer"===n.scheme&&n.params&&"openid webid"===n.params.scope}(t)){const{host:n}=new URL(t.url);await function(e){return async t=>{let{url:n,requiresAuth:r}=t;await m(e,e=>L({},e,{hosts:L({},e.hosts,{[n]:{requiresAuth:r}})}))}}(e)({url:n,requiresAuth:!0})}}}async function z(e,t){const n=await function(e){return async t=>{const{host:n}=new URL(t),r=await E(e);if(r&&n===new URL(r.idp).host)return{url:n,requiresAuth:!0};const{hosts:i}=await v(e);return i&&i[n]}}(e)(p(t));return null!=n&&n.requiresAuth}function J(e,t,n){return new Promise((r,i)=>{const o=new d(t,l(n.popupUri||""),function(e,t,n){let{popupUri:r,callbackUri:i}=t;return async function(t){for(var o=arguments.length,s=new Array(o>1?o-1:0),a=1;a{o.stop(),r(e)}));o.start()})}function q(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter(function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable})),n.push.apply(n,r)}return n}function B(e){for(var t=1;t0&&void 0!==arguments[0]?arguments[0]:g(),t=this._pendingSession||await E(e);if(!t){try{this._pendingSession=C(e),t=await this._pendingSession}catch(e){console.error(e)}t&&(await function(e){return async t=>{return(await m(e,e=>O({},e,{session:t}))).session}}(e)(t),this.emit("login",t),this.emit("session",t)),delete this._pendingSession}return t}async trackSession(e){e(await this.currentSession()),this.on("session",e)}stopTrackSession(e){this.removeListener("session",e)}async logout(){let e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:g();if(await E(e)){try{await async function(e,t){const n=await N(e);if(n)try{await n.logout();try{await t("/.well-known/solid/logout",{credentials:"include"})}catch(e){}}catch(e){console.warn("Error logging out of the WebID-OIDC session"),console.error(e)}}(e,H),this.emit("logout"),this.emit("session",null)}catch(e){console.warn("Error logging out:"),console.error(e)}await async function(e){await m(e,e=>O({},e,{session:null}))}(e)}}}function F(e){return{callbackUri:e?e.split("#")[0]:"",popupUri:"",storage:g()}}const Y=new K;t.default=Y;if(Object.getOwnPropertyNames(K.prototype).forEach(e=>{const t=Y[e];"function"==typeof t&&(Y[e]=t.bind(Y))}),"undefined"!=typeof window)if("SolidAuthClient"in window)console.warn("Caution: multiple versions of solid-auth-client active.");else{let e=!1;Object.defineProperty(window,"SolidAuthClient",{enumerable:!0,get:()=>(e||(e=!0,console.warn("window.SolidAuthClient has been deprecated."),console.warn("Please use window.solid.auth instead.")),Y)})}}]).default}); +*/var e=Object.getOwnPropertySymbols,t=Object.prototype.hasOwnProperty,r=Object.prototype.propertyIsEnumerable;function i(l){if(null==l)throw new TypeError("Object.assign cannot be called with null or undefined");return Object(l)}l.exports=function(){try{if(!Object.assign)return!1;var l=new String("abc");if(l[5]="de","5"===Object.getOwnPropertyNames(l)[0])return!1;for(var n={},u=0;u<10;u++)n["_"+String.fromCharCode(u)]=u;if("0123456789"!==Object.getOwnPropertyNames(n).map((function(l){return n[l]})).join(""))return!1;var e={};return"abcdefghijklmnopqrst".split("").forEach((function(l){e[l]=l})),"abcdefghijklmnopqrst"===Object.keys(Object.assign({},e)).join("")}catch(l){return!1}}()?Object.assign:function(l,n){for(var u,o,s=i(l),a=1;a=r)return l;switch(l){case"%s":return String(e[u++]);case"%d":return Number(e[u++]);case"%j":try{return JSON.stringify(e[u++])}catch(l){return"[Circular]"}default:return l}})),s=e[u];u=3&&(e.depth=arguments[2]),arguments.length>=4&&(e.colors=arguments[3]),d(u)?e.showHidden=u:u&&n._extend(e,u),m(e.showHidden)&&(e.showHidden=!1),m(e.depth)&&(e.depth=2),m(e.colors)&&(e.colors=!1),m(e.customInspect)&&(e.customInspect=!0),e.colors&&(e.stylize=s),c(e,l,e.depth)}function s(l,n){var u=o.styles[n];return u?"["+o.colors[u][0]+"m"+l+"["+o.colors[u][1]+"m":l}function a(l,n){return l}function c(l,u,e){if(l.customInspect&&u&&E(u.inspect)&&u.inspect!==n.inspect&&(!u.constructor||u.constructor.prototype!==u)){var t=u.inspect(e,l);return w(t)||(t=c(l,t,e)),t}var r=function(l,n){if(m(n))return l.stylize("undefined","undefined");if(w(n)){var u="'"+JSON.stringify(n).replace(/^"|"$/g,"").replace(/'/g,"\\'").replace(/\\"/g,'"')+"'";return l.stylize(u,"string")}if(g(n))return l.stylize(""+n,"number");if(d(n))return l.stylize(""+n,"boolean");if(y(n))return l.stylize("null","null")}(l,u);if(r)return r;var i=Object.keys(u),o=function(l){var n={};return l.forEach((function(l,u){n[l]=!0})),n}(i);if(l.showHidden&&(i=Object.getOwnPropertyNames(u)),S(u)&&(i.indexOf("message")>=0||i.indexOf("description")>=0))return f(u);if(0===i.length){if(E(u)){var s=u.name?": "+u.name:"";return l.stylize("[Function"+s+"]","special")}if(v(u))return l.stylize(RegExp.prototype.toString.call(u),"regexp");if(_(u))return l.stylize(Date.prototype.toString.call(u),"date");if(S(u))return f(u)}var a,b="",A=!1,O=["{","}"];(p(u)&&(A=!0,O=["[","]"]),E(u))&&(b=" [Function"+(u.name?": "+u.name:"")+"]");return v(u)&&(b=" "+RegExp.prototype.toString.call(u)),_(u)&&(b=" "+Date.prototype.toUTCString.call(u)),S(u)&&(b=" "+f(u)),0!==i.length||A&&0!=u.length?e<0?v(u)?l.stylize(RegExp.prototype.toString.call(u),"regexp"):l.stylize("[Object]","special"):(l.seen.push(u),a=A?function(l,n,u,e,t){for(var r=[],i=0,o=n.length;i=0&&0,l+n.replace(/\u001b\[\d\d?m/g,"").length+1}),0)>60)return u[0]+(""===n?"":n+"\n ")+" "+l.join(",\n ")+" "+u[1];return u[0]+n+" "+l.join(", ")+" "+u[1]}(a,b,O)):O[0]+b+O[1]}function f(l){return"["+Error.prototype.toString.call(l)+"]"}function h(l,n,u,e,t,r){var i,o,s;if((s=Object.getOwnPropertyDescriptor(n,t)||{value:n[t]}).get?o=s.set?l.stylize("[Getter/Setter]","special"):l.stylize("[Getter]","special"):s.set&&(o=l.stylize("[Setter]","special")),P(e,t)||(i="["+t+"]"),o||(l.seen.indexOf(s.value)<0?(o=y(u)?c(l,s.value,null):c(l,s.value,u-1)).indexOf("\n")>-1&&(o=r?o.split("\n").map((function(l){return" "+l})).join("\n").substr(2):"\n"+o.split("\n").map((function(l){return" "+l})).join("\n")):o=l.stylize("[Circular]","special")),m(i)){if(r&&t.match(/^\d+$/))return o;(i=JSON.stringify(""+t)).match(/^"([a-zA-Z_][a-zA-Z_0-9]*)"$/)?(i=i.substr(1,i.length-2),i=l.stylize(i,"name")):(i=i.replace(/'/g,"\\'").replace(/\\"/g,'"').replace(/(^"|"$)/g,"'"),i=l.stylize(i,"string"))}return i+": "+o}function p(l){return Array.isArray(l)}function d(l){return"boolean"==typeof l}function y(l){return null===l}function g(l){return"number"==typeof l}function w(l){return"string"==typeof l}function m(l){return void 0===l}function v(l){return b(l)&&"[object RegExp]"===A(l)}function b(l){return"object"==typeof l&&null!==l}function _(l){return b(l)&&"[object Date]"===A(l)}function S(l){return b(l)&&("[object Error]"===A(l)||l instanceof Error)}function E(l){return"function"==typeof l}function A(l){return Object.prototype.toString.call(l)}function O(l){return l<10?"0"+l.toString(10):l.toString(10)}n.debuglog=function(u){if(m(r)&&(r=l.env.NODE_DEBUG||""),u=u.toUpperCase(),!i[u])if(new RegExp("\\b"+u+"\\b","i").test(r)){var e=l.pid;i[u]=function(){var l=n.format.apply(n,arguments);console.error("%s %d: %s",u,e,l)}}else i[u]=function(){};return i[u]},n.inspect=o,o.colors={bold:[1,22],italic:[3,23],underline:[4,24],inverse:[7,27],white:[37,39],grey:[90,39],black:[30,39],blue:[34,39],cyan:[36,39],green:[32,39],magenta:[35,39],red:[31,39],yellow:[33,39]},o.styles={special:"cyan",number:"yellow",boolean:"yellow",undefined:"grey",null:"bold",string:"green",date:"magenta",regexp:"red"},n.isArray=p,n.isBoolean=d,n.isNull=y,n.isNullOrUndefined=function(l){return null==l},n.isNumber=g,n.isString=w,n.isSymbol=function(l){return"symbol"==typeof l},n.isUndefined=m,n.isRegExp=v,n.isObject=b,n.isDate=_,n.isError=S,n.isFunction=E,n.isPrimitive=function(l){return null===l||"boolean"==typeof l||"number"==typeof l||"string"==typeof l||"symbol"==typeof l||void 0===l},n.isBuffer=u(33);var k=["Jan","Feb","Mar","Apr","May","Jun","Jul","Aug","Sep","Oct","Nov","Dec"];function j(){var l=new Date,n=[O(l.getHours()),O(l.getMinutes()),O(l.getSeconds())].join(":");return[l.getDate(),k[l.getMonth()],n].join(" ")}function P(l,n){return Object.prototype.hasOwnProperty.call(l,n)}n.log=function(){console.log("%s - %s",j(),n.format.apply(n,arguments))},n.inherits=u(34),n._extend=function(l,n){if(!n||!b(n))return l;for(var u=Object.keys(n),e=u.length;e--;)l[u[e]]=n[u[e]];return l};var x="undefined"!=typeof Symbol?Symbol("util.promisify.custom"):void 0;function R(l,n){if(!l){var u=new Error("Promise was rejected with a falsy value");u.reason=l,l=u}return n(l)}n.promisify=function(l){if("function"!=typeof l)throw new TypeError('The "original" argument must be of type Function');if(x&&l[x]){var n;if("function"!=typeof(n=l[x]))throw new TypeError('The "util.promisify.custom" argument must be of type Function');return Object.defineProperty(n,x,{value:n,enumerable:!1,writable:!1,configurable:!0}),n}function n(){for(var n,u,e=new Promise((function(l,e){n=l,u=e})),t=[],r=0;r1)for(var u=1;ue(n.from(l)))}verify(l,n,u){let i=this.params;return"string"==typeof n&&(n=Uint8Array.from(e.toBuffer(n))),"string"==typeof u&&(u=(new r).encode(u)),t.subtle.verify(i,l,n,u)}assertSufficientKeyLength(l){if(l.length0?i-4:i;for(u=0;u>16&255,s[c++]=n>>8&255,s[c++]=255&n;2===o&&(n=t[l.charCodeAt(u)]<<2|t[l.charCodeAt(u+1)]>>4,s[c++]=255&n);1===o&&(n=t[l.charCodeAt(u)]<<10|t[l.charCodeAt(u+1)]<<4|t[l.charCodeAt(u+2)]>>2,s[c++]=n>>8&255,s[c++]=255&n);return s},n.fromByteArray=function(l){for(var n,u=l.length,t=u%3,r=[],i=0,o=u-t;io?o:i+16383));1===t?(n=l[u-1],r.push(e[n>>2]+e[n<<4&63]+"==")):2===t&&(n=(l[u-2]<<8)+l[u-1],r.push(e[n>>10]+e[n>>4&63]+e[n<<2&63]+"="));return r.join("")};for(var e=[],t=[],r="undefined"!=typeof Uint8Array?Uint8Array:Array,i="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/",o=0,s=i.length;o0)throw new Error("Invalid string. Length must be a multiple of 4");var u=l.indexOf("=");return-1===u&&(u=n),[u,u===n?0:4-u%4]}function c(l,n,u){for(var t,r,i=[],o=n;o>18&63]+e[r>>12&63]+e[r>>6&63]+e[63&r]);return i.join("")}t["-".charCodeAt(0)]=62,t["_".charCodeAt(0)]=63},function(l,n){n.read=function(l,n,u,e,t){var r,i,o=8*t-e-1,s=(1<>1,c=-7,f=u?t-1:0,h=u?-1:1,p=l[n+f];for(f+=h,r=p&(1<<-c)-1,p>>=-c,c+=o;c>0;r=256*r+l[n+f],f+=h,c-=8);for(i=r&(1<<-c)-1,r>>=-c,c+=e;c>0;i=256*i+l[n+f],f+=h,c-=8);if(0===r)r=1-a;else{if(r===s)return i?NaN:1/0*(p?-1:1);i+=Math.pow(2,e),r-=a}return(p?-1:1)*i*Math.pow(2,r-e)},n.write=function(l,n,u,e,t,r){var i,o,s,a=8*r-t-1,c=(1<>1,h=23===t?Math.pow(2,-24)-Math.pow(2,-77):0,p=e?0:r-1,d=e?1:-1,y=n<0||0===n&&1/n<0?1:0;for(n=Math.abs(n),isNaN(n)||n===1/0?(o=isNaN(n)?1:0,i=c):(i=Math.floor(Math.log(n)/Math.LN2),n*(s=Math.pow(2,-i))<1&&(i--,s*=2),(n+=i+f>=1?h/s:h*Math.pow(2,1-f))*s>=2&&(i++,s/=2),i+f>=c?(o=0,i=c):i+f>=1?(o=(n*s-1)*Math.pow(2,t),i+=f):(o=n*Math.pow(2,f-1)*Math.pow(2,t),i=0));t>=8;l[u+p]=255&o,p+=d,o/=256,t-=8);for(i=i<0;l[u+p]=255&i,p+=d,i/=256,a-=8);l[u+p-d]|=128*y}},function(l,n){var u={}.toString;l.exports=Array.isArray||function(l){return"[object Array]"==u.call(l)}},function(l,n,u){"use strict";(function(l){Object.defineProperty(n,"__esModule",{value:!0});var e=u(42);function t(n,u){return void 0===u&&(u="utf8"),l.isBuffer(n)?i(n.toString("base64")):i(l.from(n,u).toString("base64"))}function r(l){return l=l.toString(),e.default(l).replace(/\-/g,"+").replace(/_/g,"/")}function i(l){return l.replace(/=/g,"").replace(/\+/g,"-").replace(/\//g,"_")}var o=t;o.encode=t,o.decode=function(n,u){return void 0===u&&(u="utf8"),l.from(r(n),"base64").toString(u)},o.toBase64=r,o.fromBase64=i,o.toBuffer=function(n){return l.from(r(n),"base64")},n.default=o}).call(this,u(1).Buffer)},function(l,n,u){"use strict";(function(l){Object.defineProperty(n,"__esModule",{value:!0}),n.default=function(n){var u=n.length,e=u%4;if(!e)return n;var t=u,r=4-e,i=u+r,o=l.alloc(i);for(o.write(n);r--;)o.write("=",t++);return o.toString()}}).call(this,u(1).Buffer)},function(l,n,u){var e=u(44);l.exports={TextEncoder:e.TextEncoder,TextDecoder:e.TextDecoder}},function(l,n,u){!function(n){"use strict";function e(l,n,u){return n<=l&&l<=u}l.exports&&!n["encoding-indexes"]&&(n["encoding-indexes"]=u(45)["encoding-indexes"]);var t=Math.floor;function r(l){if(void 0===l)return{};if(l===Object(l))return l;throw TypeError("Could not convert argument to dictionary")}function i(l){return 0<=l&&l<=127}var o=i;function s(l){this.tokens=[].slice.call(l),this.tokens.reverse()}s.prototype={endOfStream:function(){return!this.tokens.length},read:function(){return this.tokens.length?this.tokens.pop():-1},prepend:function(l){if(Array.isArray(l))for(var n=l;n.length;)this.tokens.push(n.pop());else this.tokens.push(l)},push:function(l){if(Array.isArray(l))for(var n=l;n.length;)this.tokens.unshift(n.shift());else this.tokens.unshift(l)}};function a(l,n){if(l)throw TypeError("Decoder error");return n||65533}function c(l){throw TypeError("The code point "+l+" could not be encoded.")}function f(l){return l=String(l).trim().toLowerCase(),Object.prototype.hasOwnProperty.call(p,l)?p[l]:null}var h=[{encodings:[{labels:["unicode-1-1-utf-8","utf-8","utf8"],name:"UTF-8"}],heading:"The Encoding"},{encodings:[{labels:["866","cp866","csibm866","ibm866"],name:"IBM866"},{labels:["csisolatin2","iso-8859-2","iso-ir-101","iso8859-2","iso88592","iso_8859-2","iso_8859-2:1987","l2","latin2"],name:"ISO-8859-2"},{labels:["csisolatin3","iso-8859-3","iso-ir-109","iso8859-3","iso88593","iso_8859-3","iso_8859-3:1988","l3","latin3"],name:"ISO-8859-3"},{labels:["csisolatin4","iso-8859-4","iso-ir-110","iso8859-4","iso88594","iso_8859-4","iso_8859-4:1988","l4","latin4"],name:"ISO-8859-4"},{labels:["csisolatincyrillic","cyrillic","iso-8859-5","iso-ir-144","iso8859-5","iso88595","iso_8859-5","iso_8859-5:1988"],name:"ISO-8859-5"},{labels:["arabic","asmo-708","csiso88596e","csiso88596i","csisolatinarabic","ecma-114","iso-8859-6","iso-8859-6-e","iso-8859-6-i","iso-ir-127","iso8859-6","iso88596","iso_8859-6","iso_8859-6:1987"],name:"ISO-8859-6"},{labels:["csisolatingreek","ecma-118","elot_928","greek","greek8","iso-8859-7","iso-ir-126","iso8859-7","iso88597","iso_8859-7","iso_8859-7:1987","sun_eu_greek"],name:"ISO-8859-7"},{labels:["csiso88598e","csisolatinhebrew","hebrew","iso-8859-8","iso-8859-8-e","iso-ir-138","iso8859-8","iso88598","iso_8859-8","iso_8859-8:1988","visual"],name:"ISO-8859-8"},{labels:["csiso88598i","iso-8859-8-i","logical"],name:"ISO-8859-8-I"},{labels:["csisolatin6","iso-8859-10","iso-ir-157","iso8859-10","iso885910","l6","latin6"],name:"ISO-8859-10"},{labels:["iso-8859-13","iso8859-13","iso885913"],name:"ISO-8859-13"},{labels:["iso-8859-14","iso8859-14","iso885914"],name:"ISO-8859-14"},{labels:["csisolatin9","iso-8859-15","iso8859-15","iso885915","iso_8859-15","l9"],name:"ISO-8859-15"},{labels:["iso-8859-16"],name:"ISO-8859-16"},{labels:["cskoi8r","koi","koi8","koi8-r","koi8_r"],name:"KOI8-R"},{labels:["koi8-ru","koi8-u"],name:"KOI8-U"},{labels:["csmacintosh","mac","macintosh","x-mac-roman"],name:"macintosh"},{labels:["dos-874","iso-8859-11","iso8859-11","iso885911","tis-620","windows-874"],name:"windows-874"},{labels:["cp1250","windows-1250","x-cp1250"],name:"windows-1250"},{labels:["cp1251","windows-1251","x-cp1251"],name:"windows-1251"},{labels:["ansi_x3.4-1968","ascii","cp1252","cp819","csisolatin1","ibm819","iso-8859-1","iso-ir-100","iso8859-1","iso88591","iso_8859-1","iso_8859-1:1987","l1","latin1","us-ascii","windows-1252","x-cp1252"],name:"windows-1252"},{labels:["cp1253","windows-1253","x-cp1253"],name:"windows-1253"},{labels:["cp1254","csisolatin5","iso-8859-9","iso-ir-148","iso8859-9","iso88599","iso_8859-9","iso_8859-9:1989","l5","latin5","windows-1254","x-cp1254"],name:"windows-1254"},{labels:["cp1255","windows-1255","x-cp1255"],name:"windows-1255"},{labels:["cp1256","windows-1256","x-cp1256"],name:"windows-1256"},{labels:["cp1257","windows-1257","x-cp1257"],name:"windows-1257"},{labels:["cp1258","windows-1258","x-cp1258"],name:"windows-1258"},{labels:["x-mac-cyrillic","x-mac-ukrainian"],name:"x-mac-cyrillic"}],heading:"Legacy single-byte encodings"},{encodings:[{labels:["chinese","csgb2312","csiso58gb231280","gb2312","gb_2312","gb_2312-80","gbk","iso-ir-58","x-gbk"],name:"GBK"},{labels:["gb18030"],name:"gb18030"}],heading:"Legacy multi-byte Chinese (simplified) encodings"},{encodings:[{labels:["big5","big5-hkscs","cn-big5","csbig5","x-x-big5"],name:"Big5"}],heading:"Legacy multi-byte Chinese (traditional) encodings"},{encodings:[{labels:["cseucpkdfmtjapanese","euc-jp","x-euc-jp"],name:"EUC-JP"},{labels:["csiso2022jp","iso-2022-jp"],name:"ISO-2022-JP"},{labels:["csshiftjis","ms932","ms_kanji","shift-jis","shift_jis","sjis","windows-31j","x-sjis"],name:"Shift_JIS"}],heading:"Legacy multi-byte Japanese encodings"},{encodings:[{labels:["cseuckr","csksc56011987","euc-kr","iso-ir-149","korean","ks_c_5601-1987","ks_c_5601-1989","ksc5601","ksc_5601","windows-949"],name:"EUC-KR"}],heading:"Legacy multi-byte Korean encodings"},{encodings:[{labels:["csiso2022kr","hz-gb-2312","iso-2022-cn","iso-2022-cn-ext","iso-2022-kr"],name:"replacement"},{labels:["utf-16be"],name:"UTF-16BE"},{labels:["utf-16","utf-16le"],name:"UTF-16LE"},{labels:["x-user-defined"],name:"x-user-defined"}],heading:"Legacy miscellaneous encodings"}],p={};h.forEach((function(l){l.encodings.forEach((function(l){l.labels.forEach((function(n){p[n]=l}))}))}));var d,y,g={},w={};function m(l,n){return n&&n[l]||null}function v(l,n){var u=n.indexOf(l);return-1===u?null:u}function b(l){if(!("encoding-indexes"in n))throw Error("Indexes missing. Did you forget to include encoding-indexes.js first?");return n["encoding-indexes"][l]}function _(l,n){if(!(this instanceof _))throw TypeError("Called as a function. Did you forget 'new'?");l=void 0!==l?String(l):"utf-8",n=r(n),this._encoding=null,this._decoder=null,this._ignoreBOM=!1,this._BOMseen=!1,this._error_mode="replacement",this._do_not_flush=!1;var u=f(l);if(null===u||"replacement"===u.name)throw RangeError("Unknown encoding: "+l);if(!w[u.name])throw Error("Decoder not present. Did you forget to include encoding-indexes.js first?");return this._encoding=u,Boolean(n.fatal)&&(this._error_mode="fatal"),Boolean(n.ignoreBOM)&&(this._ignoreBOM=!0),Object.defineProperty||(this.encoding=this._encoding.name.toLowerCase(),this.fatal="fatal"===this._error_mode,this.ignoreBOM=this._ignoreBOM),this}function S(l,u){if(!(this instanceof S))throw TypeError("Called as a function. Did you forget 'new'?");u=r(u),this._encoding=null,this._encoder=null,this._do_not_flush=!1,this._fatal=Boolean(u.fatal)?"fatal":"replacement";if(Boolean(u.NONSTANDARD_allowLegacyEncoding)){var e=f(l=void 0!==l?String(l):"utf-8");if(null===e||"replacement"===e.name)throw RangeError("Unknown encoding: "+l);if(!g[e.name])throw Error("Encoder not present. Did you forget to include encoding-indexes.js first?");this._encoding=e}else this._encoding=f("utf-8"),void 0!==l&&"console"in n&&console.warn("TextEncoder constructor called with encoding label, which is ignored.");return Object.defineProperty||(this.encoding=this._encoding.name.toLowerCase()),this}function E(l){var n=l.fatal,u=0,t=0,r=0,i=128,o=191;this.handler=function(l,s){if(-1===s&&0!==r)return r=0,a(n);if(-1===s)return-1;if(0===r){if(e(s,0,127))return s;if(e(s,194,223))r=1,u=31&s;else if(e(s,224,239))224===s&&(i=160),237===s&&(o=159),r=2,u=15&s;else{if(!e(s,240,244))return a(n);240===s&&(i=144),244===s&&(o=143),r=3,u=7&s}return null}if(!e(s,i,o))return u=r=t=0,i=128,o=191,l.prepend(s),a(n);if(i=128,o=191,u=u<<6|63&s,(t+=1)!==r)return null;var c=u;return u=r=t=0,c}}function A(l){l.fatal;this.handler=function(l,n){if(-1===n)return-1;if(o(n))return n;var u,t;e(n,128,2047)?(u=1,t=192):e(n,2048,65535)?(u=2,t=224):e(n,65536,1114111)&&(u=3,t=240);for(var r=[(n>>6*u)+t];u>0;){var i=n>>6*(u-1);r.push(128|63&i),u-=1}return r}}function O(l,n){var u=n.fatal;this.handler=function(n,e){if(-1===e)return-1;if(i(e))return e;var t=l[e-128];return null===t?a(u):t}}function k(l,n){n.fatal;this.handler=function(n,u){if(-1===u)return-1;if(o(u))return u;var e=v(u,l);return null===e&&c(u),e+128}}function j(l){var n=l.fatal,u=0,t=0,r=0;this.handler=function(l,o){if(-1===o&&0===u&&0===t&&0===r)return-1;var s;if(-1!==o||0===u&&0===t&&0===r||(u=0,t=0,r=0,a(n)),0!==r){s=null,e(o,48,57)&&(s=function(l){if(l>39419&&l<189e3||l>1237575)return null;if(7457===l)return 59335;var n,u=0,e=0,t=b("gb18030-ranges");for(n=0;n>8,e=255&l;return n?[u,e]:[e,u]}function q(l,n){var u=n.fatal,t=null,r=null;this.handler=function(n,i){if(-1===i&&(null!==t||null!==r))return a(u);if(-1===i&&null===t&&null===r)return-1;if(null===t)return t=i,null;var o;if(o=l?(t<<8)+i:(i<<8)+t,t=null,null!==r){var s=r;return r=null,e(o,56320,57343)?65536+1024*(s-55296)+(o-56320):(n.prepend(K(o,l)),a(u))}return e(o,55296,56319)?(r=o,null):e(o,56320,57343)?a(u):o}}function H(l,n){n.fatal;this.handler=function(n,u){if(-1===u)return-1;if(e(u,0,65535))return K(u,l);var t=K(55296+(u-65536>>10),l),r=K(56320+(u-65536&1023),l);return t.concat(r)}}function z(l){l.fatal;this.handler=function(l,n){return-1===n?-1:i(n)?n:63360+n-128}}function N(l){l.fatal;this.handler=function(l,n){return-1===n?-1:o(n)?n:e(n,63360,63487)?n-63360+128:c(n)}}Object.defineProperty&&(Object.defineProperty(_.prototype,"encoding",{get:function(){return this._encoding.name.toLowerCase()}}),Object.defineProperty(_.prototype,"fatal",{get:function(){return"fatal"===this._error_mode}}),Object.defineProperty(_.prototype,"ignoreBOM",{get:function(){return this._ignoreBOM}})),_.prototype.decode=function(l,n){var u;u="object"==typeof l&&l instanceof ArrayBuffer?new Uint8Array(l):"object"==typeof l&&"buffer"in l&&l.buffer instanceof ArrayBuffer?new Uint8Array(l.buffer,l.byteOffset,l.byteLength):new Uint8Array(0),n=r(n),this._do_not_flush||(this._decoder=w[this._encoding.name]({fatal:"fatal"===this._error_mode}),this._BOMseen=!1),this._do_not_flush=Boolean(n.stream);for(var e,t=new s(u),i=[];;){var o=t.read();if(-1===o)break;if(-1===(e=this._decoder.handler(t,o)))break;null!==e&&(Array.isArray(e)?i.push.apply(i,e):i.push(e))}if(!this._do_not_flush){do{if(-1===(e=this._decoder.handler(t,t.read())))break;null!==e&&(Array.isArray(e)?i.push.apply(i,e):i.push(e))}while(!t.endOfStream());this._decoder=null}return function(l){var n,u;return n=["UTF-8","UTF-16LE","UTF-16BE"],u=this._encoding.name,-1===n.indexOf(u)||this._ignoreBOM||this._BOMseen||(l.length>0&&65279===l[0]?(this._BOMseen=!0,l.shift()):l.length>0&&(this._BOMseen=!0)),function(l){for(var n="",u=0;u>10),56320+(1023&e)))}return n}(l)}.call(this,i)},Object.defineProperty&&Object.defineProperty(S.prototype,"encoding",{get:function(){return this._encoding.name.toLowerCase()}}),S.prototype.encode=function(l,n){l=void 0===l?"":String(l),n=r(n),this._do_not_flush||(this._encoder=g[this._encoding.name]({fatal:"fatal"===this._fatal})),this._do_not_flush=Boolean(n.stream);for(var u,e=new s(function(l){for(var n=String(l),u=n.length,e=0,t=[];e57343)t.push(r);else if(56320<=r&&r<=57343)t.push(65533);else if(55296<=r&&r<=56319)if(e===u-1)t.push(65533);else{var i=n.charCodeAt(e+1);if(56320<=i&&i<=57343){var o=1023&r,s=1023&i;t.push(65536+(o<<10)+s),e+=1}else t.push(65533)}e+=1}return t}(l)),t=[];;){var i=e.read();if(-1===i)break;if(-1===(u=this._encoder.handler(e,i)))break;Array.isArray(u)?t.push.apply(t,u):t.push(u)}if(!this._do_not_flush){for(;-1!==(u=this._encoder.handler(e,e.read()));)Array.isArray(u)?t.push.apply(t,u):t.push(u);this._encoder=null}return new Uint8Array(t)},g["UTF-8"]=function(l){return new A(l)},w["UTF-8"]=function(l){return new E(l)},"encoding-indexes"in n&&h.forEach((function(l){"Legacy single-byte encodings"===l.heading&&l.encodings.forEach((function(l){var n=l.name,u=b(n.toLowerCase());w[n]=function(l){return new O(u,l)},g[n]=function(l){return new k(u,l)}}))})),w.GBK=function(l){return new j(l)},g.GBK=function(l){return new P(l,!0)},g.gb18030=function(l){return new P(l)},w.gb18030=function(l){return new j(l)},g.Big5=function(l){return new R(l)},w.Big5=function(l){return new x(l)},g["EUC-JP"]=function(l){return new C(l)},w["EUC-JP"]=function(l){return new T(l)},g["ISO-2022-JP"]=function(l){return new I(l)},w["ISO-2022-JP"]=function(l){return new U(l)},g.Shift_JIS=function(l){return new L(l)},w.Shift_JIS=function(l){return new B(l)},g["EUC-KR"]=function(l){return new D(l)},w["EUC-KR"]=function(l){return new M(l)},g["UTF-16BE"]=function(l){return new H(!0,l)},w["UTF-16BE"]=function(l){return new q(!0,l)},g["UTF-16LE"]=function(l){return new H(!1,l)},w["UTF-16LE"]=function(l){return new q(!1,l)},g["x-user-defined"]=function(l){return new N(l)},w["x-user-defined"]=function(l){return new z(l)},n.TextEncoder||(n.TextEncoder=S),n.TextDecoder||(n.TextDecoder=_),l.exports&&(l.exports={TextEncoder:n.TextEncoder,TextDecoder:n.TextDecoder,EncodingIndexes:n["encoding-indexes"]})}(this||{})},function(l,n,u){!function(n){"use strict";l.exports&&(l.exports=n),n["encoding-indexes"]={big5:[null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,17392,19506,17923,17830,17784,160359,19831,17843,162993,19682,163013,15253,18230,18244,19527,19520,148159,144919,160594,159371,159954,19543,172881,18255,17882,19589,162924,19719,19108,18081,158499,29221,154196,137827,146950,147297,26189,22267,null,32149,22813,166841,15860,38708,162799,23515,138590,23204,13861,171696,23249,23479,23804,26478,34195,170309,29793,29853,14453,138579,145054,155681,16108,153822,15093,31484,40855,147809,166157,143850,133770,143966,17162,33924,40854,37935,18736,34323,22678,38730,37400,31184,31282,26208,27177,34973,29772,31685,26498,31276,21071,36934,13542,29636,155065,29894,40903,22451,18735,21580,16689,145038,22552,31346,162661,35727,18094,159368,16769,155033,31662,140476,40904,140481,140489,140492,40905,34052,144827,16564,40906,17633,175615,25281,28782,40907,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,12736,12737,12738,12739,12740,131340,12741,131281,131277,12742,12743,131275,139240,12744,131274,12745,12746,12747,12748,131342,12749,12750,256,193,461,192,274,201,282,200,332,211,465,210,null,7870,null,7872,202,257,225,462,224,593,275,233,283,232,299,237,464,236,333,243,466,242,363,250,468,249,470,472,474,476,252,null,7871,null,7873,234,609,9178,9179,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,172969,135493,null,25866,null,null,20029,28381,40270,37343,null,null,161589,25745,20250,20264,20392,20822,20852,20892,20964,21153,21160,21307,21326,21457,21464,22242,22768,22788,22791,22834,22836,23398,23454,23455,23706,24198,24635,25993,26622,26628,26725,27982,28860,30005,32420,32428,32442,32455,32463,32479,32518,32567,33402,33487,33647,35270,35774,35810,36710,36711,36718,29713,31996,32205,26950,31433,21031,null,null,null,null,37260,30904,37214,32956,null,36107,33014,133607,null,null,32927,40647,19661,40393,40460,19518,171510,159758,40458,172339,13761,null,28314,33342,29977,null,18705,39532,39567,40857,31111,164972,138698,132560,142054,20004,20097,20096,20103,20159,20203,20279,13388,20413,15944,20483,20616,13437,13459,13477,20870,22789,20955,20988,20997,20105,21113,21136,21287,13767,21417,13649,21424,13651,21442,21539,13677,13682,13953,21651,21667,21684,21689,21712,21743,21784,21795,21800,13720,21823,13733,13759,21975,13765,163204,21797,null,134210,134421,151851,21904,142534,14828,131905,36422,150968,169189,16467,164030,30586,142392,14900,18389,164189,158194,151018,25821,134524,135092,134357,135412,25741,36478,134806,134155,135012,142505,164438,148691,null,134470,170573,164073,18420,151207,142530,39602,14951,169460,16365,13574,152263,169940,161992,142660,40302,38933,null,17369,155813,25780,21731,142668,142282,135287,14843,135279,157402,157462,162208,25834,151634,134211,36456,139681,166732,132913,null,18443,131497,16378,22643,142733,null,148936,132348,155799,134988,134550,21881,16571,17338,null,19124,141926,135325,33194,39157,134556,25465,14846,141173,36288,22177,25724,15939,null,173569,134665,142031,142537,null,135368,145858,14738,14854,164507,13688,155209,139463,22098,134961,142514,169760,13500,27709,151099,null,null,161140,142987,139784,173659,167117,134778,134196,157724,32659,135375,141315,141625,13819,152035,134796,135053,134826,16275,134960,134471,135503,134732,null,134827,134057,134472,135360,135485,16377,140950,25650,135085,144372,161337,142286,134526,134527,142417,142421,14872,134808,135367,134958,173618,158544,167122,167321,167114,38314,21708,33476,21945,null,171715,39974,39606,161630,142830,28992,33133,33004,23580,157042,33076,14231,21343,164029,37302,134906,134671,134775,134907,13789,151019,13833,134358,22191,141237,135369,134672,134776,135288,135496,164359,136277,134777,151120,142756,23124,135197,135198,135413,135414,22428,134673,161428,164557,135093,134779,151934,14083,135094,135552,152280,172733,149978,137274,147831,164476,22681,21096,13850,153405,31666,23400,18432,19244,40743,18919,39967,39821,154484,143677,22011,13810,22153,20008,22786,138177,194680,38737,131206,20059,20155,13630,23587,24401,24516,14586,25164,25909,27514,27701,27706,28780,29227,20012,29357,149737,32594,31035,31993,32595,156266,13505,null,156491,32770,32896,157202,158033,21341,34916,35265,161970,35744,36125,38021,38264,38271,38376,167439,38886,39029,39118,39134,39267,17e4,40060,40479,40644,27503,63751,20023,131207,38429,25143,38050,null,20539,28158,171123,40870,15817,34959,147790,28791,23797,19232,152013,13657,154928,24866,166450,36775,37366,29073,26393,29626,144001,172295,15499,137600,19216,30948,29698,20910,165647,16393,27235,172730,16931,34319,133743,31274,170311,166634,38741,28749,21284,139390,37876,30425,166371,40871,30685,20131,20464,20668,20015,20247,40872,21556,32139,22674,22736,138678,24210,24217,24514,141074,25995,144377,26905,27203,146531,27903,null,29184,148741,29580,16091,150035,23317,29881,35715,154788,153237,31379,31724,31939,32364,33528,34199,40873,34960,40874,36537,40875,36815,34143,39392,37409,40876,167353,136255,16497,17058,23066,null,null,null,39016,26475,17014,22333,null,34262,149883,33471,160013,19585,159092,23931,158485,159678,40877,40878,23446,40879,26343,32347,28247,31178,15752,17603,143958,141206,17306,17718,null,23765,146202,35577,23672,15634,144721,23928,40882,29015,17752,147692,138787,19575,14712,13386,131492,158785,35532,20404,131641,22975,33132,38998,170234,24379,134047,null,139713,166253,16642,18107,168057,16135,40883,172469,16632,14294,18167,158790,16764,165554,160767,17773,14548,152730,17761,17691,19849,19579,19830,17898,16328,150287,13921,17630,17597,16877,23870,23880,23894,15868,14351,23972,23993,14368,14392,24130,24253,24357,24451,14600,14612,14655,14669,24791,24893,23781,14729,25015,25017,25039,14776,25132,25232,25317,25368,14840,22193,14851,25570,25595,25607,25690,14923,25792,23829,22049,40863,14999,25990,15037,26111,26195,15090,26258,15138,26390,15170,26532,26624,15192,26698,26756,15218,15217,15227,26889,26947,29276,26980,27039,27013,15292,27094,15325,27237,27252,27249,27266,15340,27289,15346,27307,27317,27348,27382,27521,27585,27626,27765,27818,15563,27906,27910,27942,28033,15599,28068,28081,28181,28184,28201,28294,166336,28347,28386,28378,40831,28392,28393,28452,28468,15686,147265,28545,28606,15722,15733,29111,23705,15754,28716,15761,28752,28756,28783,28799,28809,131877,17345,13809,134872,147159,22462,159443,28990,153568,13902,27042,166889,23412,31305,153825,169177,31333,31357,154028,31419,31408,31426,31427,29137,156813,16842,31450,31453,31466,16879,21682,154625,31499,31573,31529,152334,154878,31650,31599,33692,154548,158847,31696,33825,31634,31672,154912,15789,154725,33938,31738,31750,31797,154817,31812,31875,149634,31910,26237,148856,31945,31943,31974,31860,31987,31989,31950,32359,17693,159300,32093,159446,29837,32137,32171,28981,32179,32210,147543,155689,32228,15635,32245,137209,32229,164717,32285,155937,155994,32366,32402,17195,37996,32295,32576,32577,32583,31030,156368,39393,32663,156497,32675,136801,131176,17756,145254,17667,164666,32762,156809,32773,32776,32797,32808,32815,172167,158915,32827,32828,32865,141076,18825,157222,146915,157416,26405,32935,166472,33031,33050,22704,141046,27775,156824,151480,25831,136330,33304,137310,27219,150117,150165,17530,33321,133901,158290,146814,20473,136445,34018,33634,158474,149927,144688,137075,146936,33450,26907,194964,16859,34123,33488,33562,134678,137140,14017,143741,144730,33403,33506,33560,147083,159139,158469,158615,144846,15807,33565,21996,33669,17675,159141,33708,33729,33747,13438,159444,27223,34138,13462,159298,143087,33880,154596,33905,15827,17636,27303,33866,146613,31064,33960,158614,159351,159299,34014,33807,33681,17568,33939,34020,154769,16960,154816,17731,34100,23282,159385,17703,34163,17686,26559,34326,165413,165435,34241,159880,34306,136578,159949,194994,17770,34344,13896,137378,21495,160666,34430,34673,172280,34798,142375,34737,34778,34831,22113,34412,26710,17935,34885,34886,161248,146873,161252,34910,34972,18011,34996,34997,25537,35013,30583,161551,35207,35210,35238,35241,35239,35260,166437,35303,162084,162493,35484,30611,37374,35472,162393,31465,162618,147343,18195,162616,29052,35596,35615,152624,152933,35647,35660,35661,35497,150138,35728,35739,35503,136927,17941,34895,35995,163156,163215,195028,14117,163155,36054,163224,163261,36114,36099,137488,36059,28764,36113,150729,16080,36215,36265,163842,135188,149898,15228,164284,160012,31463,36525,36534,36547,37588,36633,36653,164709,164882,36773,37635,172703,133712,36787,18730,166366,165181,146875,24312,143970,36857,172052,165564,165121,140069,14720,159447,36919,165180,162494,36961,165228,165387,37032,165651,37060,165606,37038,37117,37223,15088,37289,37316,31916,166195,138889,37390,27807,37441,37474,153017,37561,166598,146587,166668,153051,134449,37676,37739,166625,166891,28815,23235,166626,166629,18789,37444,166892,166969,166911,37747,37979,36540,38277,38310,37926,38304,28662,17081,140922,165592,135804,146990,18911,27676,38523,38550,16748,38563,159445,25050,38582,30965,166624,38589,21452,18849,158904,131700,156688,168111,168165,150225,137493,144138,38705,34370,38710,18959,17725,17797,150249,28789,23361,38683,38748,168405,38743,23370,168427,38751,37925,20688,143543,143548,38793,38815,38833,38846,38848,38866,38880,152684,38894,29724,169011,38911,38901,168989,162170,19153,38964,38963,38987,39014,15118,160117,15697,132656,147804,153350,39114,39095,39112,39111,19199,159015,136915,21936,39137,39142,39148,37752,39225,150057,19314,170071,170245,39413,39436,39483,39440,39512,153381,14020,168113,170965,39648,39650,170757,39668,19470,39700,39725,165376,20532,39732,158120,14531,143485,39760,39744,171326,23109,137315,39822,148043,39938,39935,39948,171624,40404,171959,172434,172459,172257,172323,172511,40318,40323,172340,40462,26760,40388,139611,172435,172576,137531,172595,40249,172217,172724,40592,40597,40606,40610,19764,40618,40623,148324,40641,15200,14821,15645,20274,14270,166955,40706,40712,19350,37924,159138,40727,40726,40761,22175,22154,40773,39352,168075,38898,33919,40802,40809,31452,40846,29206,19390,149877,149947,29047,150008,148296,150097,29598,166874,137466,31135,166270,167478,37737,37875,166468,37612,37761,37835,166252,148665,29207,16107,30578,31299,28880,148595,148472,29054,137199,28835,137406,144793,16071,137349,152623,137208,14114,136955,137273,14049,137076,137425,155467,14115,136896,22363,150053,136190,135848,136134,136374,34051,145062,34051,33877,149908,160101,146993,152924,147195,159826,17652,145134,170397,159526,26617,14131,15381,15847,22636,137506,26640,16471,145215,147681,147595,147727,158753,21707,22174,157361,22162,135135,134056,134669,37830,166675,37788,20216,20779,14361,148534,20156,132197,131967,20299,20362,153169,23144,131499,132043,14745,131850,132116,13365,20265,131776,167603,131701,35546,131596,20120,20685,20749,20386,20227,150030,147082,20290,20526,20588,20609,20428,20453,20568,20732,20825,20827,20829,20830,28278,144789,147001,147135,28018,137348,147081,20904,20931,132576,17629,132259,132242,132241,36218,166556,132878,21081,21156,133235,21217,37742,18042,29068,148364,134176,149932,135396,27089,134685,29817,16094,29849,29716,29782,29592,19342,150204,147597,21456,13700,29199,147657,21940,131909,21709,134086,22301,37469,38644,37734,22493,22413,22399,13886,22731,23193,166470,136954,137071,136976,23084,22968,37519,23166,23247,23058,153926,137715,137313,148117,14069,27909,29763,23073,155267,23169,166871,132115,37856,29836,135939,28933,18802,37896,166395,37821,14240,23582,23710,24158,24136,137622,137596,146158,24269,23375,137475,137476,14081,137376,14045,136958,14035,33066,166471,138682,144498,166312,24332,24334,137511,137131,23147,137019,23364,34324,161277,34912,24702,141408,140843,24539,16056,140719,140734,168072,159603,25024,131134,131142,140827,24985,24984,24693,142491,142599,149204,168269,25713,149093,142186,14889,142114,144464,170218,142968,25399,173147,25782,25393,25553,149987,142695,25252,142497,25659,25963,26994,15348,143502,144045,149897,144043,21773,144096,137433,169023,26318,144009,143795,15072,16784,152964,166690,152975,136956,152923,152613,30958,143619,137258,143924,13412,143887,143746,148169,26254,159012,26219,19347,26160,161904,138731,26211,144082,144097,26142,153714,14545,145466,145340,15257,145314,144382,29904,15254,26511,149034,26806,26654,15300,27326,14435,145365,148615,27187,27218,27337,27397,137490,25873,26776,27212,15319,27258,27479,147392,146586,37792,37618,166890,166603,37513,163870,166364,37991,28069,28427,149996,28007,147327,15759,28164,147516,23101,28170,22599,27940,30786,28987,148250,148086,28913,29264,29319,29332,149391,149285,20857,150180,132587,29818,147192,144991,150090,149783,155617,16134,16049,150239,166947,147253,24743,16115,29900,29756,37767,29751,17567,159210,17745,30083,16227,150745,150790,16216,30037,30323,173510,15129,29800,166604,149931,149902,15099,15821,150094,16127,149957,149747,37370,22322,37698,166627,137316,20703,152097,152039,30584,143922,30478,30479,30587,149143,145281,14942,149744,29752,29851,16063,150202,150215,16584,150166,156078,37639,152961,30750,30861,30856,30930,29648,31065,161601,153315,16654,31131,33942,31141,27181,147194,31290,31220,16750,136934,16690,37429,31217,134476,149900,131737,146874,137070,13719,21867,13680,13994,131540,134157,31458,23129,141045,154287,154268,23053,131675,30960,23082,154566,31486,16889,31837,31853,16913,154547,155324,155302,31949,150009,137136,31886,31868,31918,27314,32220,32263,32211,32590,156257,155996,162632,32151,155266,17002,158581,133398,26582,131150,144847,22468,156690,156664,149858,32733,31527,133164,154345,154947,31500,155150,39398,34373,39523,27164,144447,14818,150007,157101,39455,157088,33920,160039,158929,17642,33079,17410,32966,33033,33090,157620,39107,158274,33378,33381,158289,33875,159143,34320,160283,23174,16767,137280,23339,137377,23268,137432,34464,195004,146831,34861,160802,23042,34926,20293,34951,35007,35046,35173,35149,153219,35156,161669,161668,166901,166873,166812,166393,16045,33955,18165,18127,14322,35389,35356,169032,24397,37419,148100,26068,28969,28868,137285,40301,35999,36073,163292,22938,30659,23024,17262,14036,36394,36519,150537,36656,36682,17140,27736,28603,140065,18587,28537,28299,137178,39913,14005,149807,37051,37015,21873,18694,37307,37892,166475,16482,166652,37927,166941,166971,34021,35371,38297,38311,38295,38294,167220,29765,16066,149759,150082,148458,16103,143909,38543,167655,167526,167525,16076,149997,150136,147438,29714,29803,16124,38721,168112,26695,18973,168083,153567,38749,37736,166281,166950,166703,156606,37562,23313,35689,18748,29689,147995,38811,38769,39224,134950,24001,166853,150194,38943,169178,37622,169431,37349,17600,166736,150119,166756,39132,166469,16128,37418,18725,33812,39227,39245,162566,15869,39323,19311,39338,39516,166757,153800,27279,39457,23294,39471,170225,19344,170312,39356,19389,19351,37757,22642,135938,22562,149944,136424,30788,141087,146872,26821,15741,37976,14631,24912,141185,141675,24839,40015,40019,40059,39989,39952,39807,39887,171565,39839,172533,172286,40225,19630,147716,40472,19632,40204,172468,172269,172275,170287,40357,33981,159250,159711,158594,34300,17715,159140,159364,159216,33824,34286,159232,145367,155748,31202,144796,144960,18733,149982,15714,37851,37566,37704,131775,30905,37495,37965,20452,13376,36964,152925,30781,30804,30902,30795,137047,143817,149825,13978,20338,28634,28633,28702,28702,21524,147893,22459,22771,22410,40214,22487,28980,13487,147884,29163,158784,151447,23336,137141,166473,24844,23246,23051,17084,148616,14124,19323,166396,37819,37816,137430,134941,33906,158912,136211,148218,142374,148417,22932,146871,157505,32168,155995,155812,149945,149899,166394,37605,29666,16105,29876,166755,137375,16097,150195,27352,29683,29691,16086,150078,150164,137177,150118,132007,136228,149989,29768,149782,28837,149878,37508,29670,37727,132350,37681,166606,166422,37766,166887,153045,18741,166530,29035,149827,134399,22180,132634,134123,134328,21762,31172,137210,32254,136898,150096,137298,17710,37889,14090,166592,149933,22960,137407,137347,160900,23201,14050,146779,14e3,37471,23161,166529,137314,37748,15565,133812,19094,14730,20724,15721,15692,136092,29045,17147,164376,28175,168164,17643,27991,163407,28775,27823,15574,147437,146989,28162,28428,15727,132085,30033,14012,13512,18048,16090,18545,22980,37486,18750,36673,166940,158656,22546,22472,14038,136274,28926,148322,150129,143331,135856,140221,26809,26983,136088,144613,162804,145119,166531,145366,144378,150687,27162,145069,158903,33854,17631,17614,159014,159057,158850,159710,28439,160009,33597,137018,33773,158848,159827,137179,22921,23170,137139,23137,23153,137477,147964,14125,23023,137020,14023,29070,37776,26266,148133,23150,23083,148115,27179,147193,161590,148571,148170,28957,148057,166369,20400,159016,23746,148686,163405,148413,27148,148054,135940,28838,28979,148457,15781,27871,194597,150095,32357,23019,23855,15859,24412,150109,137183,32164,33830,21637,146170,144128,131604,22398,133333,132633,16357,139166,172726,28675,168283,23920,29583,31955,166489,168992,20424,32743,29389,29456,162548,29496,29497,153334,29505,29512,16041,162584,36972,29173,149746,29665,33270,16074,30476,16081,27810,22269,29721,29726,29727,16098,16112,16116,16122,29907,16142,16211,30018,30061,30066,30093,16252,30152,30172,16320,30285,16343,30324,16348,30330,151388,29064,22051,35200,22633,16413,30531,16441,26465,16453,13787,30616,16490,16495,23646,30654,30667,22770,30744,28857,30748,16552,30777,30791,30801,30822,33864,152885,31027,26627,31026,16643,16649,31121,31129,36795,31238,36796,16743,31377,16818,31420,33401,16836,31439,31451,16847,20001,31586,31596,31611,31762,31771,16992,17018,31867,31900,17036,31928,17044,31981,36755,28864,134351,32207,32212,32208,32253,32686,32692,29343,17303,32800,32805,31545,32814,32817,32852,15820,22452,28832,32951,33001,17389,33036,29482,33038,33042,30048,33044,17409,15161,33110,33113,33114,17427,22586,33148,33156,17445,33171,17453,33189,22511,33217,33252,33364,17551,33446,33398,33482,33496,33535,17584,33623,38505,27018,33797,28917,33892,24803,33928,17668,33982,34017,34040,34064,34104,34130,17723,34159,34160,34272,17783,34418,34450,34482,34543,38469,34699,17926,17943,34990,35071,35108,35143,35217,162151,35369,35384,35476,35508,35921,36052,36082,36124,18328,22623,36291,18413,20206,36410,21976,22356,36465,22005,36528,18487,36558,36578,36580,36589,36594,36791,36801,36810,36812,36915,39364,18605,39136,37395,18718,37416,37464,37483,37553,37550,37567,37603,37611,37619,37620,37629,37699,37764,37805,18757,18769,40639,37911,21249,37917,37933,37950,18794,37972,38009,38189,38306,18855,38388,38451,18917,26528,18980,38720,18997,38834,38850,22100,19172,24808,39097,19225,39153,22596,39182,39193,20916,39196,39223,39234,39261,39266,19312,39365,19357,39484,39695,31363,39785,39809,39901,39921,39924,19565,39968,14191,138178,40265,39994,40702,22096,40339,40381,40384,40444,38134,36790,40571,40620,40625,40637,40646,38108,40674,40689,40696,31432,40772,131220,131767,132e3,26906,38083,22956,132311,22592,38081,14265,132565,132629,132726,136890,22359,29043,133826,133837,134079,21610,194619,134091,21662,134139,134203,134227,134245,134268,24807,134285,22138,134325,134365,134381,134511,134578,134600,26965,39983,34725,134660,134670,134871,135056,134957,134771,23584,135100,24075,135260,135247,135286,26398,135291,135304,135318,13895,135359,135379,135471,135483,21348,33965,135907,136053,135990,35713,136567,136729,137155,137159,20088,28859,137261,137578,137773,137797,138282,138352,138412,138952,25283,138965,139029,29080,26709,139333,27113,14024,139900,140247,140282,141098,141425,141647,33533,141671,141715,142037,35237,142056,36768,142094,38840,142143,38983,39613,142412,null,142472,142519,154600,142600,142610,142775,142741,142914,143220,143308,143411,143462,144159,144350,24497,26184,26303,162425,144743,144883,29185,149946,30679,144922,145174,32391,131910,22709,26382,26904,146087,161367,155618,146961,147129,161278,139418,18640,19128,147737,166554,148206,148237,147515,148276,148374,150085,132554,20946,132625,22943,138920,15294,146687,148484,148694,22408,149108,14747,149295,165352,170441,14178,139715,35678,166734,39382,149522,149755,150037,29193,150208,134264,22885,151205,151430,132985,36570,151596,21135,22335,29041,152217,152601,147274,150183,21948,152646,152686,158546,37332,13427,152895,161330,152926,18200,152930,152934,153543,149823,153693,20582,13563,144332,24798,153859,18300,166216,154286,154505,154630,138640,22433,29009,28598,155906,162834,36950,156082,151450,35682,156674,156746,23899,158711,36662,156804,137500,35562,150006,156808,147439,156946,19392,157119,157365,141083,37989,153569,24981,23079,194765,20411,22201,148769,157436,20074,149812,38486,28047,158909,13848,35191,157593,157806,156689,157790,29151,157895,31554,168128,133649,157990,37124,158009,31301,40432,158202,39462,158253,13919,156777,131105,31107,158260,158555,23852,144665,33743,158621,18128,158884,30011,34917,159150,22710,14108,140685,159819,160205,15444,160384,160389,37505,139642,160395,37680,160486,149968,27705,38047,160848,134904,34855,35061,141606,164979,137137,28344,150058,137248,14756,14009,23568,31203,17727,26294,171181,170148,35139,161740,161880,22230,16607,136714,14753,145199,164072,136133,29101,33638,162269,168360,23143,19639,159919,166315,162301,162314,162571,163174,147834,31555,31102,163849,28597,172767,27139,164632,21410,159239,37823,26678,38749,164207,163875,158133,136173,143919,163912,23941,166960,163971,22293,38947,166217,23979,149896,26046,27093,21458,150181,147329,15377,26422,163984,164084,164142,139169,164175,164233,164271,164378,164614,164655,164746,13770,164968,165546,18682,25574,166230,30728,37461,166328,17394,166375,17375,166376,166726,166868,23032,166921,36619,167877,168172,31569,168208,168252,15863,168286,150218,36816,29327,22155,169191,169449,169392,169400,169778,170193,170313,170346,170435,170536,170766,171354,171419,32415,171768,171811,19620,38215,172691,29090,172799,19857,36882,173515,19868,134300,36798,21953,36794,140464,36793,150163,17673,32383,28502,27313,20202,13540,166700,161949,14138,36480,137205,163876,166764,166809,162366,157359,15851,161365,146615,153141,153942,20122,155265,156248,22207,134765,36366,23405,147080,150686,25566,25296,137206,137339,25904,22061,154698,21530,152337,15814,171416,19581,22050,22046,32585,155352,22901,146752,34672,19996,135146,134473,145082,33047,40286,36120,30267,40005,30286,30649,37701,21554,33096,33527,22053,33074,33816,32957,21994,31074,22083,21526,134813,13774,22021,22001,26353,164578,13869,30004,22e3,21946,21655,21874,134209,134294,24272,151880,134774,142434,134818,40619,32090,21982,135285,25245,38765,21652,36045,29174,37238,25596,25529,25598,21865,142147,40050,143027,20890,13535,134567,20903,21581,21790,21779,30310,36397,157834,30129,32950,34820,34694,35015,33206,33820,135361,17644,29444,149254,23440,33547,157843,22139,141044,163119,147875,163187,159440,160438,37232,135641,37384,146684,173737,134828,134905,29286,138402,18254,151490,163833,135147,16634,40029,25887,142752,18675,149472,171388,135148,134666,24674,161187,135149,null,155720,135559,29091,32398,40272,19994,19972,13687,23309,27826,21351,13996,14812,21373,13989,149016,22682,150382,33325,21579,22442,154261,133497,null,14930,140389,29556,171692,19721,39917,146686,171824,19547,151465,169374,171998,33884,146870,160434,157619,145184,25390,32037,147191,146988,14890,36872,21196,15988,13946,17897,132238,30272,23280,134838,30842,163630,22695,16575,22140,39819,23924,30292,173108,40581,19681,30201,14331,24857,143578,148466,null,22109,135849,22439,149859,171526,21044,159918,13741,27722,40316,31830,39737,22494,137068,23635,25811,169168,156469,160100,34477,134440,159010,150242,134513,null,20990,139023,23950,38659,138705,40577,36940,31519,39682,23761,31651,25192,25397,39679,31695,39722,31870,39726,31810,31878,39957,31740,39689,40727,39963,149822,40794,21875,23491,20477,40600,20466,21088,15878,21201,22375,20566,22967,24082,38856,40363,36700,21609,38836,39232,38842,21292,24880,26924,21466,39946,40194,19515,38465,27008,20646,30022,137069,39386,21107,null,37209,38529,37212,null,37201,167575,25471,159011,27338,22033,37262,30074,25221,132092,29519,31856,154657,146685,null,149785,30422,39837,20010,134356,33726,34882,null,23626,27072,20717,22394,21023,24053,20174,27697,131570,20281,21660,21722,21146,36226,13822,24332,13811,null,27474,37244,40869,39831,38958,39092,39610,40616,40580,29050,31508,null,27642,34840,32632,null,22048,173642,36471,40787,null,36308,36431,40476,36353,25218,164733,36392,36469,31443,150135,31294,30936,27882,35431,30215,166490,40742,27854,34774,30147,172722,30803,194624,36108,29410,29553,35629,29442,29937,36075,150203,34351,24506,34976,17591,null,137275,159237,null,35454,140571,null,24829,30311,39639,40260,37742,39823,34805,null,34831,36087,29484,38689,39856,13782,29362,19463,31825,39242,155993,24921,19460,40598,24957,null,22367,24943,25254,25145,25294,14940,25058,21418,144373,25444,26626,13778,23895,166850,36826,167481,null,20697,138566,30982,21298,38456,134971,16485,null,30718,null,31938,155418,31962,31277,32870,32867,32077,29957,29938,35220,33306,26380,32866,160902,32859,29936,33027,30500,35209,157644,30035,159441,34729,34766,33224,34700,35401,36013,35651,30507,29944,34010,13877,27058,36262,null,35241,29800,28089,34753,147473,29927,15835,29046,24740,24988,15569,29026,24695,null,32625,166701,29264,24809,19326,21024,15384,146631,155351,161366,152881,137540,135934,170243,159196,159917,23745,156077,166415,145015,131310,157766,151310,17762,23327,156492,40784,40614,156267,12288,65292,12289,12290,65294,8231,65307,65306,65311,65281,65072,8230,8229,65104,65105,65106,183,65108,65109,65110,65111,65372,8211,65073,8212,65075,9588,65076,65103,65288,65289,65077,65078,65371,65373,65079,65080,12308,12309,65081,65082,12304,12305,65083,65084,12298,12299,65085,65086,12296,12297,65087,65088,12300,12301,65089,65090,12302,12303,65091,65092,65113,65114,65115,65116,65117,65118,8216,8217,8220,8221,12317,12318,8245,8242,65283,65286,65290,8251,167,12291,9675,9679,9651,9650,9678,9734,9733,9671,9670,9633,9632,9661,9660,12963,8453,175,65507,65343,717,65097,65098,65101,65102,65099,65100,65119,65120,65121,65291,65293,215,247,177,8730,65308,65310,65309,8806,8807,8800,8734,8786,8801,65122,65123,65124,65125,65126,65374,8745,8746,8869,8736,8735,8895,13266,13265,8747,8750,8757,8756,9792,9794,8853,8857,8593,8595,8592,8594,8598,8599,8601,8600,8741,8739,65295,65340,8725,65128,65284,65509,12306,65504,65505,65285,65312,8451,8457,65129,65130,65131,13269,13212,13213,13214,13262,13217,13198,13199,13252,176,20825,20827,20830,20829,20833,20835,21991,29929,31950,9601,9602,9603,9604,9605,9606,9607,9608,9615,9614,9613,9612,9611,9610,9609,9532,9524,9516,9508,9500,9620,9472,9474,9621,9484,9488,9492,9496,9581,9582,9584,9583,9552,9566,9578,9569,9698,9699,9701,9700,9585,9586,9587,65296,65297,65298,65299,65300,65301,65302,65303,65304,65305,8544,8545,8546,8547,8548,8549,8550,8551,8552,8553,12321,12322,12323,12324,12325,12326,12327,12328,12329,21313,21316,21317,65313,65314,65315,65316,65317,65318,65319,65320,65321,65322,65323,65324,65325,65326,65327,65328,65329,65330,65331,65332,65333,65334,65335,65336,65337,65338,65345,65346,65347,65348,65349,65350,65351,65352,65353,65354,65355,65356,65357,65358,65359,65360,65361,65362,65363,65364,65365,65366,65367,65368,65369,65370,913,914,915,916,917,918,919,920,921,922,923,924,925,926,927,928,929,931,932,933,934,935,936,937,945,946,947,948,949,950,951,952,953,954,955,956,957,958,959,960,961,963,964,965,966,967,968,969,12549,12550,12551,12552,12553,12554,12555,12556,12557,12558,12559,12560,12561,12562,12563,12564,12565,12566,12567,12568,12569,12570,12571,12572,12573,12574,12575,12576,12577,12578,12579,12580,12581,12582,12583,12584,12585,729,713,714,711,715,9216,9217,9218,9219,9220,9221,9222,9223,9224,9225,9226,9227,9228,9229,9230,9231,9232,9233,9234,9235,9236,9237,9238,9239,9240,9241,9242,9243,9244,9245,9246,9247,9249,8364,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,19968,20057,19969,19971,20035,20061,20102,20108,20154,20799,20837,20843,20960,20992,20993,21147,21269,21313,21340,21448,19977,19979,19976,19978,20011,20024,20961,20037,20040,20063,20062,20110,20129,20800,20995,21242,21315,21449,21475,22303,22763,22805,22823,22899,23376,23377,23379,23544,23567,23586,23608,23665,24029,24037,24049,24050,24051,24062,24178,24318,24331,24339,25165,19985,19984,19981,20013,20016,20025,20043,23609,20104,20113,20117,20114,20116,20130,20161,20160,20163,20166,20167,20173,20170,20171,20164,20803,20801,20839,20845,20846,20844,20887,20982,20998,20999,21e3,21243,21246,21247,21270,21305,21320,21319,21317,21342,21380,21451,21450,21453,22764,22825,22827,22826,22829,23380,23569,23588,23610,23663,24052,24187,24319,24340,24341,24515,25096,25142,25163,25166,25903,25991,26007,26020,26041,26085,26352,26376,26408,27424,27490,27513,27595,27604,27611,27663,27700,28779,29226,29238,29243,29255,29273,29275,29356,29579,19993,19990,19989,19988,19992,20027,20045,20047,20046,20197,20184,20180,20181,20182,20183,20195,20196,20185,20190,20805,20804,20873,20874,20908,20985,20986,20984,21002,21152,21151,21253,21254,21271,21277,20191,21322,21321,21345,21344,21359,21358,21435,21487,21476,21491,21484,21486,21481,21480,21500,21496,21493,21483,21478,21482,21490,21489,21488,21477,21485,21499,22235,22234,22806,22830,22833,22900,22902,23381,23427,23612,24040,24039,24038,24066,24067,24179,24188,24321,24344,24343,24517,25098,25171,25172,25170,25169,26021,26086,26414,26412,26410,26411,26413,27491,27597,27665,27664,27704,27713,27712,27710,29359,29572,29577,29916,29926,29976,29983,29992,29993,3e4,30001,30002,30003,30091,30333,30382,30399,30446,30683,30690,30707,31034,31166,31348,31435,19998,19999,20050,20051,20073,20121,20132,20134,20133,20223,20233,20249,20234,20245,20237,20240,20241,20239,20210,20214,20219,20208,20211,20221,20225,20235,20809,20807,20806,20808,20840,20849,20877,20912,21015,21009,21010,21006,21014,21155,21256,21281,21280,21360,21361,21513,21519,21516,21514,21520,21505,21515,21508,21521,21517,21512,21507,21518,21510,21522,22240,22238,22237,22323,22320,22312,22317,22316,22319,22313,22809,22810,22839,22840,22916,22904,22915,22909,22905,22914,22913,23383,23384,23431,23432,23429,23433,23546,23574,23673,24030,24070,24182,24180,24335,24347,24537,24534,25102,25100,25101,25104,25187,25179,25176,25910,26089,26088,26092,26093,26354,26355,26377,26429,26420,26417,26421,27425,27492,27515,27670,27741,27735,27737,27743,27744,27728,27733,27745,27739,27725,27726,28784,29279,29277,30334,31481,31859,31992,32566,32650,32701,32769,32771,32780,32786,32819,32895,32905,32907,32908,33251,33258,33267,33276,33292,33307,33311,33390,33394,33406,34411,34880,34892,34915,35199,38433,20018,20136,20301,20303,20295,20311,20318,20276,20315,20309,20272,20304,20305,20285,20282,20280,20291,20308,20284,20294,20323,20316,20320,20271,20302,20278,20313,20317,20296,20314,20812,20811,20813,20853,20918,20919,21029,21028,21033,21034,21032,21163,21161,21162,21164,21283,21363,21365,21533,21549,21534,21566,21542,21582,21543,21574,21571,21555,21576,21570,21531,21545,21578,21561,21563,21560,21550,21557,21558,21536,21564,21568,21553,21547,21535,21548,22250,22256,22244,22251,22346,22353,22336,22349,22343,22350,22334,22352,22351,22331,22767,22846,22941,22930,22952,22942,22947,22937,22934,22925,22948,22931,22922,22949,23389,23388,23386,23387,23436,23435,23439,23596,23616,23617,23615,23614,23696,23697,23700,23692,24043,24076,24207,24199,24202,24311,24324,24351,24420,24418,24439,24441,24536,24524,24535,24525,24561,24555,24568,24554,25106,25105,25220,25239,25238,25216,25206,25225,25197,25226,25212,25214,25209,25203,25234,25199,25240,25198,25237,25235,25233,25222,25913,25915,25912,26097,26356,26463,26446,26447,26448,26449,26460,26454,26462,26441,26438,26464,26451,26455,27493,27599,27714,27742,27801,27777,27784,27785,27781,27803,27754,27770,27792,27760,27788,27752,27798,27794,27773,27779,27762,27774,27764,27782,27766,27789,27796,27800,27778,28790,28796,28797,28792,29282,29281,29280,29380,29378,29590,29996,29995,30007,30008,30338,30447,30691,31169,31168,31167,31350,31995,32597,32918,32915,32925,32920,32923,32922,32946,33391,33426,33419,33421,35211,35282,35328,35895,35910,35925,35997,36196,36208,36275,36523,36554,36763,36784,36802,36806,36805,36804,24033,37009,37026,37034,37030,37027,37193,37318,37324,38450,38446,38449,38442,38444,20006,20054,20083,20107,20123,20126,20139,20140,20335,20381,20365,20339,20351,20332,20379,20363,20358,20355,20336,20341,20360,20329,20347,20374,20350,20367,20369,20346,20820,20818,20821,20841,20855,20854,20856,20925,20989,21051,21048,21047,21050,21040,21038,21046,21057,21182,21179,21330,21332,21331,21329,21350,21367,21368,21369,21462,21460,21463,21619,21621,21654,21624,21653,21632,21627,21623,21636,21650,21638,21628,21648,21617,21622,21644,21658,21602,21608,21643,21629,21646,22266,22403,22391,22378,22377,22369,22374,22372,22396,22812,22857,22855,22856,22852,22868,22974,22971,22996,22969,22958,22993,22982,22992,22989,22987,22995,22986,22959,22963,22994,22981,23391,23396,23395,23447,23450,23448,23452,23449,23451,23578,23624,23621,23622,23735,23713,23736,23721,23723,23729,23731,24088,24090,24086,24085,24091,24081,24184,24218,24215,24220,24213,24214,24310,24358,24359,24361,24448,24449,24447,24444,24541,24544,24573,24565,24575,24591,24596,24623,24629,24598,24618,24597,24609,24615,24617,24619,24603,25110,25109,25151,25150,25152,25215,25289,25292,25284,25279,25282,25273,25298,25307,25259,25299,25300,25291,25288,25256,25277,25276,25296,25305,25287,25293,25269,25306,25265,25304,25302,25303,25286,25260,25294,25918,26023,26044,26106,26132,26131,26124,26118,26114,26126,26112,26127,26133,26122,26119,26381,26379,26477,26507,26517,26481,26524,26483,26487,26503,26525,26519,26479,26480,26495,26505,26494,26512,26485,26522,26515,26492,26474,26482,27427,27494,27495,27519,27667,27675,27875,27880,27891,27825,27852,27877,27827,27837,27838,27836,27874,27819,27861,27859,27832,27844,27833,27841,27822,27863,27845,27889,27839,27835,27873,27867,27850,27820,27887,27868,27862,27872,28821,28814,28818,28810,28825,29228,29229,29240,29256,29287,29289,29376,29390,29401,29399,29392,29609,29608,29599,29611,29605,30013,30109,30105,30106,30340,30402,30450,30452,30693,30717,31038,31040,31041,31177,31176,31354,31353,31482,31998,32596,32652,32651,32773,32954,32933,32930,32945,32929,32939,32937,32948,32938,32943,33253,33278,33293,33459,33437,33433,33453,33469,33439,33465,33457,33452,33445,33455,33464,33443,33456,33470,33463,34382,34417,21021,34920,36555,36814,36820,36817,37045,37048,37041,37046,37319,37329,38263,38272,38428,38464,38463,38459,38468,38466,38585,38632,38738,38750,20127,20141,20142,20449,20405,20399,20415,20448,20433,20431,20445,20419,20406,20440,20447,20426,20439,20398,20432,20420,20418,20442,20430,20446,20407,20823,20882,20881,20896,21070,21059,21066,21069,21068,21067,21063,21191,21193,21187,21185,21261,21335,21371,21402,21467,21676,21696,21672,21710,21705,21688,21670,21683,21703,21698,21693,21674,21697,21700,21704,21679,21675,21681,21691,21673,21671,21695,22271,22402,22411,22432,22435,22434,22478,22446,22419,22869,22865,22863,22862,22864,23004,23e3,23039,23011,23016,23043,23013,23018,23002,23014,23041,23035,23401,23459,23462,23460,23458,23461,23553,23630,23631,23629,23627,23769,23762,24055,24093,24101,24095,24189,24224,24230,24314,24328,24365,24421,24456,24453,24458,24459,24455,24460,24457,24594,24605,24608,24613,24590,24616,24653,24688,24680,24674,24646,24643,24684,24683,24682,24676,25153,25308,25366,25353,25340,25325,25345,25326,25341,25351,25329,25335,25327,25324,25342,25332,25361,25346,25919,25925,26027,26045,26082,26149,26157,26144,26151,26159,26143,26152,26161,26148,26359,26623,26579,26609,26580,26576,26604,26550,26543,26613,26601,26607,26564,26577,26548,26586,26597,26552,26575,26590,26611,26544,26585,26594,26589,26578,27498,27523,27526,27573,27602,27607,27679,27849,27915,27954,27946,27969,27941,27916,27953,27934,27927,27963,27965,27966,27958,27931,27893,27961,27943,27960,27945,27950,27957,27918,27947,28843,28858,28851,28844,28847,28845,28856,28846,28836,29232,29298,29295,29300,29417,29408,29409,29623,29642,29627,29618,29645,29632,29619,29978,29997,30031,30028,30030,30027,30123,30116,30117,30114,30115,30328,30342,30343,30344,30408,30406,30403,30405,30465,30457,30456,30473,30475,30462,30460,30471,30684,30722,30740,30732,30733,31046,31049,31048,31047,31161,31162,31185,31186,31179,31359,31361,31487,31485,31869,32002,32005,32e3,32009,32007,32004,32006,32568,32654,32703,32772,32784,32781,32785,32822,32982,32997,32986,32963,32964,32972,32993,32987,32974,32990,32996,32989,33268,33314,33511,33539,33541,33507,33499,33510,33540,33509,33538,33545,33490,33495,33521,33537,33500,33492,33489,33502,33491,33503,33519,33542,34384,34425,34427,34426,34893,34923,35201,35284,35336,35330,35331,35998,36e3,36212,36211,36276,36557,36556,36848,36838,36834,36842,36837,36845,36843,36836,36840,37066,37070,37057,37059,37195,37194,37325,38274,38480,38475,38476,38477,38754,38761,38859,38893,38899,38913,39080,39131,39135,39318,39321,20056,20147,20492,20493,20515,20463,20518,20517,20472,20521,20502,20486,20540,20511,20506,20498,20497,20474,20480,20500,20520,20465,20513,20491,20505,20504,20467,20462,20525,20522,20478,20523,20489,20860,20900,20901,20898,20941,20940,20934,20939,21078,21084,21076,21083,21085,21290,21375,21407,21405,21471,21736,21776,21761,21815,21756,21733,21746,21766,21754,21780,21737,21741,21729,21769,21742,21738,21734,21799,21767,21757,21775,22275,22276,22466,22484,22475,22467,22537,22799,22871,22872,22874,23057,23064,23068,23071,23067,23059,23020,23072,23075,23081,23077,23052,23049,23403,23640,23472,23475,23478,23476,23470,23477,23481,23480,23556,23633,23637,23632,23789,23805,23803,23786,23784,23792,23798,23809,23796,24046,24109,24107,24235,24237,24231,24369,24466,24465,24464,24665,24675,24677,24656,24661,24685,24681,24687,24708,24735,24730,24717,24724,24716,24709,24726,25159,25331,25352,25343,25422,25406,25391,25429,25410,25414,25423,25417,25402,25424,25405,25386,25387,25384,25421,25420,25928,25929,26009,26049,26053,26178,26185,26191,26179,26194,26188,26181,26177,26360,26388,26389,26391,26657,26680,26696,26694,26707,26681,26690,26708,26665,26803,26647,26700,26705,26685,26612,26704,26688,26684,26691,26666,26693,26643,26648,26689,27530,27529,27575,27683,27687,27688,27686,27684,27888,28010,28053,28040,28039,28006,28024,28023,27993,28051,28012,28041,28014,27994,28020,28009,28044,28042,28025,28037,28005,28052,28874,28888,28900,28889,28872,28879,29241,29305,29436,29433,29437,29432,29431,29574,29677,29705,29678,29664,29674,29662,30036,30045,30044,30042,30041,30142,30149,30151,30130,30131,30141,30140,30137,30146,30136,30347,30384,30410,30413,30414,30505,30495,30496,30504,30697,30768,30759,30776,30749,30772,30775,30757,30765,30752,30751,30770,31061,31056,31072,31071,31062,31070,31069,31063,31066,31204,31203,31207,31199,31206,31209,31192,31364,31368,31449,31494,31505,31881,32033,32023,32011,32010,32032,32034,32020,32016,32021,32026,32028,32013,32025,32027,32570,32607,32660,32709,32705,32774,32792,32789,32793,32791,32829,32831,33009,33026,33008,33029,33005,33012,33030,33016,33011,33032,33021,33034,33020,33007,33261,33260,33280,33296,33322,33323,33320,33324,33467,33579,33618,33620,33610,33592,33616,33609,33589,33588,33615,33586,33593,33590,33559,33600,33585,33576,33603,34388,34442,34474,34451,34468,34473,34444,34467,34460,34928,34935,34945,34946,34941,34937,35352,35344,35342,35340,35349,35338,35351,35347,35350,35343,35345,35912,35962,35961,36001,36002,36215,36524,36562,36564,36559,36785,36865,36870,36855,36864,36858,36852,36867,36861,36869,36856,37013,37089,37085,37090,37202,37197,37196,37336,37341,37335,37340,37337,38275,38498,38499,38497,38491,38493,38500,38488,38494,38587,39138,39340,39592,39640,39717,39730,39740,20094,20602,20605,20572,20551,20547,20556,20570,20553,20581,20598,20558,20565,20597,20596,20599,20559,20495,20591,20589,20828,20885,20976,21098,21103,21202,21209,21208,21205,21264,21263,21273,21311,21312,21310,21443,26364,21830,21866,21862,21828,21854,21857,21827,21834,21809,21846,21839,21845,21807,21860,21816,21806,21852,21804,21859,21811,21825,21847,22280,22283,22281,22495,22533,22538,22534,22496,22500,22522,22530,22581,22519,22521,22816,22882,23094,23105,23113,23142,23146,23104,23100,23138,23130,23110,23114,23408,23495,23493,23492,23490,23487,23494,23561,23560,23559,23648,23644,23645,23815,23814,23822,23835,23830,23842,23825,23849,23828,23833,23844,23847,23831,24034,24120,24118,24115,24119,24247,24248,24246,24245,24254,24373,24375,24407,24428,24425,24427,24471,24473,24478,24472,24481,24480,24476,24703,24739,24713,24736,24744,24779,24756,24806,24765,24773,24763,24757,24796,24764,24792,24789,24774,24799,24760,24794,24775,25114,25115,25160,25504,25511,25458,25494,25506,25509,25463,25447,25496,25514,25457,25513,25481,25475,25499,25451,25512,25476,25480,25497,25505,25516,25490,25487,25472,25467,25449,25448,25466,25949,25942,25937,25945,25943,21855,25935,25944,25941,25940,26012,26011,26028,26063,26059,26060,26062,26205,26202,26212,26216,26214,26206,26361,21207,26395,26753,26799,26786,26771,26805,26751,26742,26801,26791,26775,26800,26755,26820,26797,26758,26757,26772,26781,26792,26783,26785,26754,27442,27578,27627,27628,27691,28046,28092,28147,28121,28082,28129,28108,28132,28155,28154,28165,28103,28107,28079,28113,28078,28126,28153,28088,28151,28149,28101,28114,28186,28085,28122,28139,28120,28138,28145,28142,28136,28102,28100,28074,28140,28095,28134,28921,28937,28938,28925,28911,29245,29309,29313,29468,29467,29462,29459,29465,29575,29701,29706,29699,29702,29694,29709,29920,29942,29943,29980,29986,30053,30054,30050,30064,30095,30164,30165,30133,30154,30157,30350,30420,30418,30427,30519,30526,30524,30518,30520,30522,30827,30787,30798,31077,31080,31085,31227,31378,31381,31520,31528,31515,31532,31526,31513,31518,31534,31890,31895,31893,32070,32067,32113,32046,32057,32060,32064,32048,32051,32068,32047,32066,32050,32049,32573,32670,32666,32716,32718,32722,32796,32842,32838,33071,33046,33059,33067,33065,33072,33060,33282,33333,33335,33334,33337,33678,33694,33688,33656,33698,33686,33725,33707,33682,33674,33683,33673,33696,33655,33659,33660,33670,33703,34389,24426,34503,34496,34486,34500,34485,34502,34507,34481,34479,34505,34899,34974,34952,34987,34962,34966,34957,34955,35219,35215,35370,35357,35363,35365,35377,35373,35359,35355,35362,35913,35930,36009,36012,36011,36008,36010,36007,36199,36198,36286,36282,36571,36575,36889,36877,36890,36887,36899,36895,36893,36880,36885,36894,36896,36879,36898,36886,36891,36884,37096,37101,37117,37207,37326,37365,37350,37347,37351,37357,37353,38281,38506,38517,38515,38520,38512,38516,38518,38519,38508,38592,38634,38633,31456,31455,38914,38915,39770,40165,40565,40575,40613,40635,20642,20621,20613,20633,20625,20608,20630,20632,20634,26368,20977,21106,21108,21109,21097,21214,21213,21211,21338,21413,21883,21888,21927,21884,21898,21917,21912,21890,21916,21930,21908,21895,21899,21891,21939,21934,21919,21822,21938,21914,21947,21932,21937,21886,21897,21931,21913,22285,22575,22570,22580,22564,22576,22577,22561,22557,22560,22777,22778,22880,23159,23194,23167,23186,23195,23207,23411,23409,23506,23500,23507,23504,23562,23563,23601,23884,23888,23860,23879,24061,24133,24125,24128,24131,24190,24266,24257,24258,24260,24380,24429,24489,24490,24488,24785,24801,24754,24758,24800,24860,24867,24826,24853,24816,24827,24820,24936,24817,24846,24822,24841,24832,24850,25119,25161,25507,25484,25551,25536,25577,25545,25542,25549,25554,25571,25552,25569,25558,25581,25582,25462,25588,25578,25563,25682,25562,25593,25950,25958,25954,25955,26001,26e3,26031,26222,26224,26228,26230,26223,26257,26234,26238,26231,26366,26367,26399,26397,26874,26837,26848,26840,26839,26885,26847,26869,26862,26855,26873,26834,26866,26851,26827,26829,26893,26898,26894,26825,26842,26990,26875,27454,27450,27453,27544,27542,27580,27631,27694,27695,27692,28207,28216,28244,28193,28210,28263,28234,28192,28197,28195,28187,28251,28248,28196,28246,28270,28205,28198,28271,28212,28237,28218,28204,28227,28189,28222,28363,28297,28185,28238,28259,28228,28274,28265,28255,28953,28954,28966,28976,28961,28982,29038,28956,29260,29316,29312,29494,29477,29492,29481,29754,29738,29747,29730,29733,29749,29750,29748,29743,29723,29734,29736,29989,29990,30059,30058,30178,30171,30179,30169,30168,30174,30176,30331,30332,30358,30355,30388,30428,30543,30701,30813,30828,30831,31245,31240,31243,31237,31232,31384,31383,31382,31461,31459,31561,31574,31558,31568,31570,31572,31565,31563,31567,31569,31903,31909,32094,32080,32104,32085,32043,32110,32114,32097,32102,32098,32112,32115,21892,32724,32725,32779,32850,32901,33109,33108,33099,33105,33102,33081,33094,33086,33100,33107,33140,33298,33308,33769,33795,33784,33805,33760,33733,33803,33729,33775,33777,33780,33879,33802,33776,33804,33740,33789,33778,33738,33848,33806,33796,33756,33799,33748,33759,34395,34527,34521,34541,34516,34523,34532,34512,34526,34903,35009,35010,34993,35203,35222,35387,35424,35413,35422,35388,35393,35412,35419,35408,35398,35380,35386,35382,35414,35937,35970,36015,36028,36019,36029,36033,36027,36032,36020,36023,36022,36031,36024,36234,36229,36225,36302,36317,36299,36314,36305,36300,36315,36294,36603,36600,36604,36764,36910,36917,36913,36920,36914,36918,37122,37109,37129,37118,37219,37221,37327,37396,37397,37411,37385,37406,37389,37392,37383,37393,38292,38287,38283,38289,38291,38290,38286,38538,38542,38539,38525,38533,38534,38541,38514,38532,38593,38597,38596,38598,38599,38639,38642,38860,38917,38918,38920,39143,39146,39151,39145,39154,39149,39342,39341,40643,40653,40657,20098,20653,20661,20658,20659,20677,20670,20652,20663,20667,20655,20679,21119,21111,21117,21215,21222,21220,21218,21219,21295,21983,21992,21971,21990,21966,21980,21959,21969,21987,21988,21999,21978,21985,21957,21958,21989,21961,22290,22291,22622,22609,22616,22615,22618,22612,22635,22604,22637,22602,22626,22610,22603,22887,23233,23241,23244,23230,23229,23228,23219,23234,23218,23913,23919,24140,24185,24265,24264,24338,24409,24492,24494,24858,24847,24904,24863,24819,24859,24825,24833,24840,24910,24908,24900,24909,24894,24884,24871,24845,24838,24887,25121,25122,25619,25662,25630,25642,25645,25661,25644,25615,25628,25620,25613,25654,25622,25623,25606,25964,26015,26032,26263,26249,26247,26248,26262,26244,26264,26253,26371,27028,26989,26970,26999,26976,26964,26997,26928,27010,26954,26984,26987,26974,26963,27001,27014,26973,26979,26971,27463,27506,27584,27583,27603,27645,28322,28335,28371,28342,28354,28304,28317,28359,28357,28325,28312,28348,28346,28331,28369,28310,28316,28356,28372,28330,28327,28340,29006,29017,29033,29028,29001,29031,29020,29036,29030,29004,29029,29022,28998,29032,29014,29242,29266,29495,29509,29503,29502,29807,29786,29781,29791,29790,29761,29759,29785,29787,29788,30070,30072,30208,30192,30209,30194,30193,30202,30207,30196,30195,30430,30431,30555,30571,30566,30558,30563,30585,30570,30572,30556,30565,30568,30562,30702,30862,30896,30871,30872,30860,30857,30844,30865,30867,30847,31098,31103,31105,33836,31165,31260,31258,31264,31252,31263,31262,31391,31392,31607,31680,31584,31598,31591,31921,31923,31925,32147,32121,32145,32129,32143,32091,32622,32617,32618,32626,32681,32680,32676,32854,32856,32902,32900,33137,33136,33144,33125,33134,33139,33131,33145,33146,33126,33285,33351,33922,33911,33853,33841,33909,33894,33899,33865,33900,33883,33852,33845,33889,33891,33897,33901,33862,34398,34396,34399,34553,34579,34568,34567,34560,34558,34555,34562,34563,34566,34570,34905,35039,35028,35033,35036,35032,35037,35041,35018,35029,35026,35228,35299,35435,35442,35443,35430,35433,35440,35463,35452,35427,35488,35441,35461,35437,35426,35438,35436,35449,35451,35390,35432,35938,35978,35977,36042,36039,36040,36036,36018,36035,36034,36037,36321,36319,36328,36335,36339,36346,36330,36324,36326,36530,36611,36617,36606,36618,36767,36786,36939,36938,36947,36930,36948,36924,36949,36944,36935,36943,36942,36941,36945,36926,36929,37138,37143,37228,37226,37225,37321,37431,37463,37432,37437,37440,37438,37467,37451,37476,37457,37428,37449,37453,37445,37433,37439,37466,38296,38552,38548,38549,38605,38603,38601,38602,38647,38651,38649,38646,38742,38772,38774,38928,38929,38931,38922,38930,38924,39164,39156,39165,39166,39347,39345,39348,39649,40169,40578,40718,40723,40736,20711,20718,20709,20694,20717,20698,20693,20687,20689,20721,20686,20713,20834,20979,21123,21122,21297,21421,22014,22016,22043,22039,22013,22036,22022,22025,22029,22030,22007,22038,22047,22024,22032,22006,22296,22294,22645,22654,22659,22675,22666,22649,22661,22653,22781,22821,22818,22820,22890,22889,23265,23270,23273,23255,23254,23256,23267,23413,23518,23527,23521,23525,23526,23528,23522,23524,23519,23565,23650,23940,23943,24155,24163,24149,24151,24148,24275,24278,24330,24390,24432,24505,24903,24895,24907,24951,24930,24931,24927,24922,24920,24949,25130,25735,25688,25684,25764,25720,25695,25722,25681,25703,25652,25709,25723,25970,26017,26071,26070,26274,26280,26269,27036,27048,27029,27073,27054,27091,27083,27035,27063,27067,27051,27060,27088,27085,27053,27084,27046,27075,27043,27465,27468,27699,28467,28436,28414,28435,28404,28457,28478,28448,28460,28431,28418,28450,28415,28399,28422,28465,28472,28466,28451,28437,28459,28463,28552,28458,28396,28417,28402,28364,28407,29076,29081,29053,29066,29060,29074,29246,29330,29334,29508,29520,29796,29795,29802,29808,29805,29956,30097,30247,30221,30219,30217,30227,30433,30435,30596,30589,30591,30561,30913,30879,30887,30899,30889,30883,31118,31119,31117,31278,31281,31402,31401,31469,31471,31649,31637,31627,31605,31639,31645,31636,31631,31672,31623,31620,31929,31933,31934,32187,32176,32156,32189,32190,32160,32202,32180,32178,32177,32186,32162,32191,32181,32184,32173,32210,32199,32172,32624,32736,32737,32735,32862,32858,32903,33104,33152,33167,33160,33162,33151,33154,33255,33274,33287,33300,33310,33355,33993,33983,33990,33988,33945,33950,33970,33948,33995,33976,33984,34003,33936,33980,34001,33994,34623,34588,34619,34594,34597,34612,34584,34645,34615,34601,35059,35074,35060,35065,35064,35069,35048,35098,35055,35494,35468,35486,35491,35469,35489,35475,35492,35498,35493,35496,35480,35473,35482,35495,35946,35981,35980,36051,36049,36050,36203,36249,36245,36348,36628,36626,36629,36627,36771,36960,36952,36956,36963,36953,36958,36962,36957,36955,37145,37144,37150,37237,37240,37239,37236,37496,37504,37509,37528,37526,37499,37523,37532,37544,37500,37521,38305,38312,38313,38307,38309,38308,38553,38556,38555,38604,38610,38656,38780,38789,38902,38935,38936,39087,39089,39171,39173,39180,39177,39361,39599,39600,39654,39745,39746,40180,40182,40179,40636,40763,40778,20740,20736,20731,20725,20729,20738,20744,20745,20741,20956,21127,21128,21129,21133,21130,21232,21426,22062,22075,22073,22066,22079,22068,22057,22099,22094,22103,22132,22070,22063,22064,22656,22687,22686,22707,22684,22702,22697,22694,22893,23305,23291,23307,23285,23308,23304,23534,23532,23529,23531,23652,23653,23965,23956,24162,24159,24161,24290,24282,24287,24285,24291,24288,24392,24433,24503,24501,24950,24935,24942,24925,24917,24962,24956,24944,24939,24958,24999,24976,25003,24974,25004,24986,24996,24980,25006,25134,25705,25711,25721,25758,25778,25736,25744,25776,25765,25747,25749,25769,25746,25774,25773,25771,25754,25772,25753,25762,25779,25973,25975,25976,26286,26283,26292,26289,27171,27167,27112,27137,27166,27161,27133,27169,27155,27146,27123,27138,27141,27117,27153,27472,27470,27556,27589,27590,28479,28540,28548,28497,28518,28500,28550,28525,28507,28536,28526,28558,28538,28528,28516,28567,28504,28373,28527,28512,28511,29087,29100,29105,29096,29270,29339,29518,29527,29801,29835,29827,29822,29824,30079,30240,30249,30239,30244,30246,30241,30242,30362,30394,30436,30606,30599,30604,30609,30603,30923,30917,30906,30922,30910,30933,30908,30928,31295,31292,31296,31293,31287,31291,31407,31406,31661,31665,31684,31668,31686,31687,31681,31648,31692,31946,32224,32244,32239,32251,32216,32236,32221,32232,32227,32218,32222,32233,32158,32217,32242,32249,32629,32631,32687,32745,32806,33179,33180,33181,33184,33178,33176,34071,34109,34074,34030,34092,34093,34067,34065,34083,34081,34068,34028,34085,34047,34054,34690,34676,34678,34656,34662,34680,34664,34649,34647,34636,34643,34907,34909,35088,35079,35090,35091,35093,35082,35516,35538,35527,35524,35477,35531,35576,35506,35529,35522,35519,35504,35542,35533,35510,35513,35547,35916,35918,35948,36064,36062,36070,36068,36076,36077,36066,36067,36060,36074,36065,36205,36255,36259,36395,36368,36381,36386,36367,36393,36383,36385,36382,36538,36637,36635,36639,36649,36646,36650,36636,36638,36645,36969,36974,36968,36973,36983,37168,37165,37159,37169,37255,37257,37259,37251,37573,37563,37559,37610,37548,37604,37569,37555,37564,37586,37575,37616,37554,38317,38321,38660,38662,38663,38665,38752,38797,38795,38799,38945,38955,38940,39091,39178,39187,39186,39192,39389,39376,39391,39387,39377,39381,39378,39385,39607,39662,39663,39719,39749,39748,39799,39791,40198,40201,40195,40617,40638,40654,22696,40786,20754,20760,20756,20752,20757,20864,20906,20957,21137,21139,21235,22105,22123,22137,22121,22116,22136,22122,22120,22117,22129,22127,22124,22114,22134,22721,22718,22727,22725,22894,23325,23348,23416,23536,23566,24394,25010,24977,25001,24970,25037,25014,25022,25034,25032,25136,25797,25793,25803,25787,25788,25818,25796,25799,25794,25805,25791,25810,25812,25790,25972,26310,26313,26297,26308,26311,26296,27197,27192,27194,27225,27243,27224,27193,27204,27234,27233,27211,27207,27189,27231,27208,27481,27511,27653,28610,28593,28577,28611,28580,28609,28583,28595,28608,28601,28598,28582,28576,28596,29118,29129,29136,29138,29128,29141,29113,29134,29145,29148,29123,29124,29544,29852,29859,29848,29855,29854,29922,29964,29965,30260,30264,30266,30439,30437,30624,30622,30623,30629,30952,30938,30956,30951,31142,31309,31310,31302,31308,31307,31418,31705,31761,31689,31716,31707,31713,31721,31718,31957,31958,32266,32273,32264,32283,32291,32286,32285,32265,32272,32633,32690,32752,32753,32750,32808,33203,33193,33192,33275,33288,33368,33369,34122,34137,34120,34152,34153,34115,34121,34157,34154,34142,34691,34719,34718,34722,34701,34913,35114,35122,35109,35115,35105,35242,35238,35558,35578,35563,35569,35584,35548,35559,35566,35582,35585,35586,35575,35565,35571,35574,35580,35947,35949,35987,36084,36420,36401,36404,36418,36409,36405,36667,36655,36664,36659,36776,36774,36981,36980,36984,36978,36988,36986,37172,37266,37664,37686,37624,37683,37679,37666,37628,37675,37636,37658,37648,37670,37665,37653,37678,37657,38331,38567,38568,38570,38613,38670,38673,38678,38669,38675,38671,38747,38748,38758,38808,38960,38968,38971,38967,38957,38969,38948,39184,39208,39198,39195,39201,39194,39405,39394,39409,39608,39612,39675,39661,39720,39825,40213,40227,40230,40232,40210,40219,40664,40660,40845,40860,20778,20767,20769,20786,21237,22158,22144,22160,22149,22151,22159,22741,22739,22737,22734,23344,23338,23332,23418,23607,23656,23996,23994,23997,23992,24171,24396,24509,25033,25026,25031,25062,25035,25138,25140,25806,25802,25816,25824,25840,25830,25836,25841,25826,25837,25986,25987,26329,26326,27264,27284,27268,27298,27292,27355,27299,27262,27287,27280,27296,27484,27566,27610,27656,28632,28657,28639,28640,28635,28644,28651,28655,28544,28652,28641,28649,28629,28654,28656,29159,29151,29166,29158,29157,29165,29164,29172,29152,29237,29254,29552,29554,29865,29872,29862,29864,30278,30274,30284,30442,30643,30634,30640,30636,30631,30637,30703,30967,30970,30964,30959,30977,31143,31146,31319,31423,31751,31757,31742,31735,31756,31712,31968,31964,31966,31970,31967,31961,31965,32302,32318,32326,32311,32306,32323,32299,32317,32305,32325,32321,32308,32313,32328,32309,32319,32303,32580,32755,32764,32881,32882,32880,32879,32883,33222,33219,33210,33218,33216,33215,33213,33225,33214,33256,33289,33393,34218,34180,34174,34204,34193,34196,34223,34203,34183,34216,34186,34407,34752,34769,34739,34770,34758,34731,34747,34746,34760,34763,35131,35126,35140,35128,35133,35244,35598,35607,35609,35611,35594,35616,35613,35588,35600,35905,35903,35955,36090,36093,36092,36088,36091,36264,36425,36427,36424,36426,36676,36670,36674,36677,36671,36991,36989,36996,36993,36994,36992,37177,37283,37278,37276,37709,37762,37672,37749,37706,37733,37707,37656,37758,37740,37723,37744,37722,37716,38346,38347,38348,38344,38342,38577,38584,38614,38684,38686,38816,38867,38982,39094,39221,39425,39423,39854,39851,39850,39853,40251,40255,40587,40655,40670,40668,40669,40667,40766,40779,21474,22165,22190,22745,22744,23352,24413,25059,25139,25844,25842,25854,25862,25850,25851,25847,26039,26332,26406,27315,27308,27331,27323,27320,27330,27310,27311,27487,27512,27567,28681,28683,28670,28678,28666,28689,28687,29179,29180,29182,29176,29559,29557,29863,29887,29973,30294,30296,30290,30653,30655,30651,30652,30990,31150,31329,31330,31328,31428,31429,31787,31783,31786,31774,31779,31777,31975,32340,32341,32350,32346,32353,32338,32345,32584,32761,32763,32887,32886,33229,33231,33290,34255,34217,34253,34256,34249,34224,34234,34233,34214,34799,34796,34802,34784,35206,35250,35316,35624,35641,35628,35627,35920,36101,36441,36451,36454,36452,36447,36437,36544,36681,36685,36999,36995,37e3,37291,37292,37328,37780,37770,37782,37794,37811,37806,37804,37808,37784,37786,37783,38356,38358,38352,38357,38626,38620,38617,38619,38622,38692,38819,38822,38829,38905,38989,38991,38988,38990,38995,39098,39230,39231,39229,39214,39333,39438,39617,39683,39686,39759,39758,39757,39882,39881,39933,39880,39872,40273,40285,40288,40672,40725,40748,20787,22181,22750,22751,22754,23541,40848,24300,25074,25079,25078,25077,25856,25871,26336,26333,27365,27357,27354,27347,28699,28703,28712,28698,28701,28693,28696,29190,29197,29272,29346,29560,29562,29885,29898,29923,30087,30086,30303,30305,30663,31001,31153,31339,31337,31806,31807,31800,31805,31799,31808,32363,32365,32377,32361,32362,32645,32371,32694,32697,32696,33240,34281,34269,34282,34261,34276,34277,34295,34811,34821,34829,34809,34814,35168,35167,35158,35166,35649,35676,35672,35657,35674,35662,35663,35654,35673,36104,36106,36476,36466,36487,36470,36460,36474,36468,36692,36686,36781,37002,37003,37297,37294,37857,37841,37855,37827,37832,37852,37853,37846,37858,37837,37848,37860,37847,37864,38364,38580,38627,38698,38695,38753,38876,38907,39006,39e3,39003,39100,39237,39241,39446,39449,39693,39912,39911,39894,39899,40329,40289,40306,40298,40300,40594,40599,40595,40628,21240,22184,22199,22198,22196,22204,22756,23360,23363,23421,23542,24009,25080,25082,25880,25876,25881,26342,26407,27372,28734,28720,28722,29200,29563,29903,30306,30309,31014,31018,31020,31019,31431,31478,31820,31811,31821,31983,31984,36782,32381,32380,32386,32588,32768,33242,33382,34299,34297,34321,34298,34310,34315,34311,34314,34836,34837,35172,35258,35320,35696,35692,35686,35695,35679,35691,36111,36109,36489,36481,36485,36482,37300,37323,37912,37891,37885,38369,38704,39108,39250,39249,39336,39467,39472,39479,39477,39955,39949,40569,40629,40680,40751,40799,40803,40801,20791,20792,22209,22208,22210,22804,23660,24013,25084,25086,25885,25884,26005,26345,27387,27396,27386,27570,28748,29211,29351,29910,29908,30313,30675,31824,32399,32396,32700,34327,34349,34330,34851,34850,34849,34847,35178,35180,35261,35700,35703,35709,36115,36490,36493,36491,36703,36783,37306,37934,37939,37941,37946,37944,37938,37931,38370,38712,38713,38706,38911,39015,39013,39255,39493,39491,39488,39486,39631,39764,39761,39981,39973,40367,40372,40386,40376,40605,40687,40729,40796,40806,40807,20796,20795,22216,22218,22217,23423,24020,24018,24398,25087,25892,27402,27489,28753,28760,29568,29924,30090,30318,30316,31155,31840,31839,32894,32893,33247,35186,35183,35324,35712,36118,36119,36497,36499,36705,37192,37956,37969,37970,38717,38718,38851,38849,39019,39253,39509,39501,39634,39706,40009,39985,39998,39995,40403,40407,40756,40812,40810,40852,22220,24022,25088,25891,25899,25898,26348,27408,29914,31434,31844,31843,31845,32403,32406,32404,33250,34360,34367,34865,35722,37008,37007,37987,37984,37988,38760,39023,39260,39514,39515,39511,39635,39636,39633,40020,40023,40022,40421,40607,40692,22225,22761,25900,28766,30321,30322,30679,32592,32648,34870,34873,34914,35731,35730,35734,33399,36123,37312,37994,38722,38728,38724,38854,39024,39519,39714,39768,40031,40441,40442,40572,40573,40711,40823,40818,24307,27414,28771,31852,31854,34875,35264,36513,37313,38002,38e3,39025,39262,39638,39715,40652,28772,30682,35738,38007,38857,39522,39525,32412,35740,36522,37317,38013,38014,38012,40055,40056,40695,35924,38015,40474,29224,39530,39729,40475,40478,31858,9312,9313,9314,9315,9316,9317,9318,9319,9320,9321,9332,9333,9334,9335,9336,9337,9338,9339,9340,9341,8560,8561,8562,8563,8564,8565,8566,8567,8568,8569,20022,20031,20101,20128,20866,20886,20907,21241,21304,21353,21430,22794,23424,24027,12083,24191,24308,24400,24417,25908,26080,30098,30326,36789,38582,168,710,12541,12542,12445,12446,12291,20189,12293,12294,12295,12540,65339,65341,10045,12353,12354,12355,12356,12357,12358,12359,12360,12361,12362,12363,12364,12365,12366,12367,12368,12369,12370,12371,12372,12373,12374,12375,12376,12377,12378,12379,12380,12381,12382,12383,12384,12385,12386,12387,12388,12389,12390,12391,12392,12393,12394,12395,12396,12397,12398,12399,12400,12401,12402,12403,12404,12405,12406,12407,12408,12409,12410,12411,12412,12413,12414,12415,12416,12417,12418,12419,12420,12421,12422,12423,12424,12425,12426,12427,12428,12429,12430,12431,12432,12433,12434,12435,12449,12450,12451,12452,12453,12454,12455,12456,12457,12458,12459,12460,12461,12462,12463,12464,12465,12466,12467,12468,12469,12470,12471,12472,12473,12474,12475,12476,12477,12478,12479,12480,12481,12482,12483,12484,12485,12486,12487,12488,12489,12490,12491,12492,12493,12494,12495,12496,12497,12498,12499,12500,12501,12502,12503,12504,12505,12506,12507,12508,12509,12510,12511,12512,12513,12514,12515,12516,12517,12518,12519,12520,12521,12522,12523,12524,12525,12526,12527,12528,12529,12530,12531,12532,12533,12534,1040,1041,1042,1043,1044,1045,1025,1046,1047,1048,1049,1050,1051,1052,1053,1054,1055,1056,1057,1058,1059,1060,1061,1062,1063,1064,1065,1066,1067,1068,1069,1070,1071,1072,1073,1074,1075,1076,1077,1105,1078,1079,1080,1081,1082,1083,1084,1085,1086,1087,1088,1089,1090,1091,1092,1093,1094,1095,1096,1097,1098,1099,1100,1101,1102,1103,8679,8632,8633,12751,131276,20058,131210,20994,17553,40880,20872,40881,161287,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,65506,65508,65287,65282,12849,8470,8481,12443,12444,11904,11908,11910,11911,11912,11914,11916,11917,11925,11932,11933,11941,11943,11946,11948,11950,11958,11964,11966,11974,11978,11980,11981,11983,11990,11991,11998,12003,null,null,null,643,592,603,596,629,339,248,331,650,618,20034,20060,20981,21274,21378,19975,19980,20039,20109,22231,64012,23662,24435,19983,20871,19982,20014,20115,20162,20169,20168,20888,21244,21356,21433,22304,22787,22828,23568,24063,26081,27571,27596,27668,29247,20017,20028,20200,20188,20201,20193,20189,20186,21004,21276,21324,22306,22307,22807,22831,23425,23428,23570,23611,23668,23667,24068,24192,24194,24521,25097,25168,27669,27702,27715,27711,27707,29358,29360,29578,31160,32906,38430,20238,20248,20268,20213,20244,20209,20224,20215,20232,20253,20226,20229,20258,20243,20228,20212,20242,20913,21011,21001,21008,21158,21282,21279,21325,21386,21511,22241,22239,22318,22314,22324,22844,22912,22908,22917,22907,22910,22903,22911,23382,23573,23589,23676,23674,23675,23678,24031,24181,24196,24322,24346,24436,24533,24532,24527,25180,25182,25188,25185,25190,25186,25177,25184,25178,25189,26095,26094,26430,26425,26424,26427,26426,26431,26428,26419,27672,27718,27730,27740,27727,27722,27732,27723,27724,28785,29278,29364,29365,29582,29994,30335,31349,32593,33400,33404,33408,33405,33407,34381,35198,37017,37015,37016,37019,37012,38434,38436,38432,38435,20310,20283,20322,20297,20307,20324,20286,20327,20306,20319,20289,20312,20269,20275,20287,20321,20879,20921,21020,21022,21025,21165,21166,21257,21347,21362,21390,21391,21552,21559,21546,21588,21573,21529,21532,21541,21528,21565,21583,21569,21544,21540,21575,22254,22247,22245,22337,22341,22348,22345,22347,22354,22790,22848,22950,22936,22944,22935,22926,22946,22928,22927,22951,22945,23438,23442,23592,23594,23693,23695,23688,23691,23689,23698,23690,23686,23699,23701,24032,24074,24078,24203,24201,24204,24200,24205,24325,24349,24440,24438,24530,24529,24528,24557,24552,24558,24563,24545,24548,24547,24570,24559,24567,24571,24576,24564,25146,25219,25228,25230,25231,25236,25223,25201,25211,25210,25200,25217,25224,25207,25213,25202,25204,25911,26096,26100,26099,26098,26101,26437,26439,26457,26453,26444,26440,26461,26445,26458,26443,27600,27673,27674,27768,27751,27755,27780,27787,27791,27761,27759,27753,27802,27757,27783,27797,27804,27750,27763,27749,27771,27790,28788,28794,29283,29375,29373,29379,29382,29377,29370,29381,29589,29591,29587,29588,29586,30010,30009,30100,30101,30337,31037,32820,32917,32921,32912,32914,32924,33424,33423,33413,33422,33425,33427,33418,33411,33412,35960,36809,36799,37023,37025,37029,37022,37031,37024,38448,38440,38447,38445,20019,20376,20348,20357,20349,20352,20359,20342,20340,20361,20356,20343,20300,20375,20330,20378,20345,20353,20344,20368,20380,20372,20382,20370,20354,20373,20331,20334,20894,20924,20926,21045,21042,21043,21062,21041,21180,21258,21259,21308,21394,21396,21639,21631,21633,21649,21634,21640,21611,21626,21630,21605,21612,21620,21606,21645,21615,21601,21600,21656,21603,21607,21604,22263,22265,22383,22386,22381,22379,22385,22384,22390,22400,22389,22395,22387,22388,22370,22376,22397,22796,22853,22965,22970,22991,22990,22962,22988,22977,22966,22972,22979,22998,22961,22973,22976,22984,22964,22983,23394,23397,23443,23445,23620,23623,23726,23716,23712,23733,23727,23720,23724,23711,23715,23725,23714,23722,23719,23709,23717,23734,23728,23718,24087,24084,24089,24360,24354,24355,24356,24404,24450,24446,24445,24542,24549,24621,24614,24601,24626,24587,24628,24586,24599,24627,24602,24606,24620,24610,24589,24592,24622,24595,24593,24588,24585,24604,25108,25149,25261,25268,25297,25278,25258,25270,25290,25262,25267,25263,25275,25257,25264,25272,25917,26024,26043,26121,26108,26116,26130,26120,26107,26115,26123,26125,26117,26109,26129,26128,26358,26378,26501,26476,26510,26514,26486,26491,26520,26502,26500,26484,26509,26508,26490,26527,26513,26521,26499,26493,26497,26488,26489,26516,27429,27520,27518,27614,27677,27795,27884,27883,27886,27865,27830,27860,27821,27879,27831,27856,27842,27834,27843,27846,27885,27890,27858,27869,27828,27786,27805,27776,27870,27840,27952,27853,27847,27824,27897,27855,27881,27857,28820,28824,28805,28819,28806,28804,28817,28822,28802,28826,28803,29290,29398,29387,29400,29385,29404,29394,29396,29402,29388,29393,29604,29601,29613,29606,29602,29600,29612,29597,29917,29928,30015,30016,30014,30092,30104,30383,30451,30449,30448,30453,30712,30716,30713,30715,30714,30711,31042,31039,31173,31352,31355,31483,31861,31997,32821,32911,32942,32931,32952,32949,32941,33312,33440,33472,33451,33434,33432,33435,33461,33447,33454,33468,33438,33466,33460,33448,33441,33449,33474,33444,33475,33462,33442,34416,34415,34413,34414,35926,36818,36811,36819,36813,36822,36821,36823,37042,37044,37039,37043,37040,38457,38461,38460,38458,38467,20429,20421,20435,20402,20425,20427,20417,20436,20444,20441,20411,20403,20443,20423,20438,20410,20416,20409,20460,21060,21065,21184,21186,21309,21372,21399,21398,21401,21400,21690,21665,21677,21669,21711,21699,33549,21687,21678,21718,21686,21701,21702,21664,21616,21692,21666,21694,21618,21726,21680,22453,22430,22431,22436,22412,22423,22429,22427,22420,22424,22415,22425,22437,22426,22421,22772,22797,22867,23009,23006,23022,23040,23025,23005,23034,23037,23036,23030,23012,23026,23031,23003,23017,23027,23029,23008,23038,23028,23021,23464,23628,23760,23768,23756,23767,23755,23771,23774,23770,23753,23751,23754,23766,23763,23764,23759,23752,23750,23758,23775,23800,24057,24097,24098,24099,24096,24100,24240,24228,24226,24219,24227,24229,24327,24366,24406,24454,24631,24633,24660,24690,24670,24645,24659,24647,24649,24667,24652,24640,24642,24671,24612,24644,24664,24678,24686,25154,25155,25295,25357,25355,25333,25358,25347,25323,25337,25359,25356,25336,25334,25344,25363,25364,25338,25365,25339,25328,25921,25923,26026,26047,26166,26145,26162,26165,26140,26150,26146,26163,26155,26170,26141,26164,26169,26158,26383,26384,26561,26610,26568,26554,26588,26555,26616,26584,26560,26551,26565,26603,26596,26591,26549,26573,26547,26615,26614,26606,26595,26562,26553,26574,26599,26608,26546,26620,26566,26605,26572,26542,26598,26587,26618,26569,26570,26563,26602,26571,27432,27522,27524,27574,27606,27608,27616,27680,27681,27944,27956,27949,27935,27964,27967,27922,27914,27866,27955,27908,27929,27962,27930,27921,27904,27933,27970,27905,27928,27959,27907,27919,27968,27911,27936,27948,27912,27938,27913,27920,28855,28831,28862,28849,28848,28833,28852,28853,28841,29249,29257,29258,29292,29296,29299,29294,29386,29412,29416,29419,29407,29418,29414,29411,29573,29644,29634,29640,29637,29625,29622,29621,29620,29675,29631,29639,29630,29635,29638,29624,29643,29932,29934,29998,30023,30024,30119,30122,30329,30404,30472,30467,30468,30469,30474,30455,30459,30458,30695,30696,30726,30737,30738,30725,30736,30735,30734,30729,30723,30739,31050,31052,31051,31045,31044,31189,31181,31183,31190,31182,31360,31358,31441,31488,31489,31866,31864,31865,31871,31872,31873,32003,32008,32001,32600,32657,32653,32702,32775,32782,32783,32788,32823,32984,32967,32992,32977,32968,32962,32976,32965,32995,32985,32988,32970,32981,32969,32975,32983,32998,32973,33279,33313,33428,33497,33534,33529,33543,33512,33536,33493,33594,33515,33494,33524,33516,33505,33522,33525,33548,33531,33526,33520,33514,33508,33504,33530,33523,33517,34423,34420,34428,34419,34881,34894,34919,34922,34921,35283,35332,35335,36210,36835,36833,36846,36832,37105,37053,37055,37077,37061,37054,37063,37067,37064,37332,37331,38484,38479,38481,38483,38474,38478,20510,20485,20487,20499,20514,20528,20507,20469,20468,20531,20535,20524,20470,20471,20503,20508,20512,20519,20533,20527,20529,20494,20826,20884,20883,20938,20932,20933,20936,20942,21089,21082,21074,21086,21087,21077,21090,21197,21262,21406,21798,21730,21783,21778,21735,21747,21732,21786,21759,21764,21768,21739,21777,21765,21745,21770,21755,21751,21752,21728,21774,21763,21771,22273,22274,22476,22578,22485,22482,22458,22470,22461,22460,22456,22454,22463,22471,22480,22457,22465,22798,22858,23065,23062,23085,23086,23061,23055,23063,23050,23070,23091,23404,23463,23469,23468,23555,23638,23636,23788,23807,23790,23793,23799,23808,23801,24105,24104,24232,24238,24234,24236,24371,24368,24423,24669,24666,24679,24641,24738,24712,24704,24722,24705,24733,24707,24725,24731,24727,24711,24732,24718,25113,25158,25330,25360,25430,25388,25412,25413,25398,25411,25572,25401,25419,25418,25404,25385,25409,25396,25432,25428,25433,25389,25415,25395,25434,25425,25400,25431,25408,25416,25930,25926,26054,26051,26052,26050,26186,26207,26183,26193,26386,26387,26655,26650,26697,26674,26675,26683,26699,26703,26646,26673,26652,26677,26667,26669,26671,26702,26692,26676,26653,26642,26644,26662,26664,26670,26701,26682,26661,26656,27436,27439,27437,27441,27444,27501,32898,27528,27622,27620,27624,27619,27618,27623,27685,28026,28003,28004,28022,27917,28001,28050,27992,28002,28013,28015,28049,28045,28143,28031,28038,27998,28007,28e3,28055,28016,28028,27999,28034,28056,27951,28008,28043,28030,28032,28036,27926,28035,28027,28029,28021,28048,28892,28883,28881,28893,28875,32569,28898,28887,28882,28894,28896,28884,28877,28869,28870,28871,28890,28878,28897,29250,29304,29303,29302,29440,29434,29428,29438,29430,29427,29435,29441,29651,29657,29669,29654,29628,29671,29667,29673,29660,29650,29659,29652,29661,29658,29655,29656,29672,29918,29919,29940,29941,29985,30043,30047,30128,30145,30139,30148,30144,30143,30134,30138,30346,30409,30493,30491,30480,30483,30482,30499,30481,30485,30489,30490,30498,30503,30755,30764,30754,30773,30767,30760,30766,30763,30753,30761,30771,30762,30769,31060,31067,31055,31068,31059,31058,31057,31211,31212,31200,31214,31213,31210,31196,31198,31197,31366,31369,31365,31371,31372,31370,31367,31448,31504,31492,31507,31493,31503,31496,31498,31502,31497,31506,31876,31889,31882,31884,31880,31885,31877,32030,32029,32017,32014,32024,32022,32019,32031,32018,32015,32012,32604,32609,32606,32608,32605,32603,32662,32658,32707,32706,32704,32790,32830,32825,33018,33010,33017,33013,33025,33019,33024,33281,33327,33317,33587,33581,33604,33561,33617,33573,33622,33599,33601,33574,33564,33570,33602,33614,33563,33578,33544,33596,33613,33558,33572,33568,33591,33583,33577,33607,33605,33612,33619,33566,33580,33611,33575,33608,34387,34386,34466,34472,34454,34445,34449,34462,34439,34455,34438,34443,34458,34437,34469,34457,34465,34471,34453,34456,34446,34461,34448,34452,34883,34884,34925,34933,34934,34930,34944,34929,34943,34927,34947,34942,34932,34940,35346,35911,35927,35963,36004,36003,36214,36216,36277,36279,36278,36561,36563,36862,36853,36866,36863,36859,36868,36860,36854,37078,37088,37081,37082,37091,37087,37093,37080,37083,37079,37084,37092,37200,37198,37199,37333,37346,37338,38492,38495,38588,39139,39647,39727,20095,20592,20586,20577,20574,20576,20563,20555,20573,20594,20552,20557,20545,20571,20554,20578,20501,20549,20575,20585,20587,20579,20580,20550,20544,20590,20595,20567,20561,20944,21099,21101,21100,21102,21206,21203,21293,21404,21877,21878,21820,21837,21840,21812,21802,21841,21858,21814,21813,21808,21842,21829,21772,21810,21861,21838,21817,21832,21805,21819,21824,21835,22282,22279,22523,22548,22498,22518,22492,22516,22528,22509,22525,22536,22520,22539,22515,22479,22535,22510,22499,22514,22501,22508,22497,22542,22524,22544,22503,22529,22540,22513,22505,22512,22541,22532,22876,23136,23128,23125,23143,23134,23096,23093,23149,23120,23135,23141,23148,23123,23140,23127,23107,23133,23122,23108,23131,23112,23182,23102,23117,23097,23116,23152,23145,23111,23121,23126,23106,23132,23410,23406,23489,23488,23641,23838,23819,23837,23834,23840,23820,23848,23821,23846,23845,23823,23856,23826,23843,23839,23854,24126,24116,24241,24244,24249,24242,24243,24374,24376,24475,24470,24479,24714,24720,24710,24766,24752,24762,24787,24788,24783,24804,24793,24797,24776,24753,24795,24759,24778,24767,24771,24781,24768,25394,25445,25482,25474,25469,25533,25502,25517,25501,25495,25515,25486,25455,25479,25488,25454,25519,25461,25500,25453,25518,25468,25508,25403,25503,25464,25477,25473,25489,25485,25456,25939,26061,26213,26209,26203,26201,26204,26210,26392,26745,26759,26768,26780,26733,26734,26798,26795,26966,26735,26787,26796,26793,26741,26740,26802,26767,26743,26770,26748,26731,26738,26794,26752,26737,26750,26779,26774,26763,26784,26761,26788,26744,26747,26769,26764,26762,26749,27446,27443,27447,27448,27537,27535,27533,27534,27532,27690,28096,28075,28084,28083,28276,28076,28137,28130,28087,28150,28116,28160,28104,28128,28127,28118,28094,28133,28124,28125,28123,28148,28106,28093,28141,28144,28090,28117,28098,28111,28105,28112,28146,28115,28157,28119,28109,28131,28091,28922,28941,28919,28951,28916,28940,28912,28932,28915,28944,28924,28927,28934,28947,28928,28920,28918,28939,28930,28942,29310,29307,29308,29311,29469,29463,29447,29457,29464,29450,29448,29439,29455,29470,29576,29686,29688,29685,29700,29697,29693,29703,29696,29690,29692,29695,29708,29707,29684,29704,30052,30051,30158,30162,30159,30155,30156,30161,30160,30351,30345,30419,30521,30511,30509,30513,30514,30516,30515,30525,30501,30523,30517,30792,30802,30793,30797,30794,30796,30758,30789,30800,31076,31079,31081,31082,31075,31083,31073,31163,31226,31224,31222,31223,31375,31380,31376,31541,31559,31540,31525,31536,31522,31524,31539,31512,31530,31517,31537,31531,31533,31535,31538,31544,31514,31523,31892,31896,31894,31907,32053,32061,32056,32054,32058,32069,32044,32041,32065,32071,32062,32063,32074,32059,32040,32611,32661,32668,32669,32667,32714,32715,32717,32720,32721,32711,32719,32713,32799,32798,32795,32839,32835,32840,33048,33061,33049,33051,33069,33055,33068,33054,33057,33045,33063,33053,33058,33297,33336,33331,33338,33332,33330,33396,33680,33699,33704,33677,33658,33651,33700,33652,33679,33665,33685,33689,33653,33684,33705,33661,33667,33676,33693,33691,33706,33675,33662,33701,33711,33672,33687,33712,33663,33702,33671,33710,33654,33690,34393,34390,34495,34487,34498,34497,34501,34490,34480,34504,34489,34483,34488,34508,34484,34491,34492,34499,34493,34494,34898,34953,34965,34984,34978,34986,34970,34961,34977,34975,34968,34983,34969,34971,34967,34980,34988,34956,34963,34958,35202,35286,35289,35285,35376,35367,35372,35358,35897,35899,35932,35933,35965,36005,36221,36219,36217,36284,36290,36281,36287,36289,36568,36574,36573,36572,36567,36576,36577,36900,36875,36881,36892,36876,36897,37103,37098,37104,37108,37106,37107,37076,37099,37100,37097,37206,37208,37210,37203,37205,37356,37364,37361,37363,37368,37348,37369,37354,37355,37367,37352,37358,38266,38278,38280,38524,38509,38507,38513,38511,38591,38762,38916,39141,39319,20635,20629,20628,20638,20619,20643,20611,20620,20622,20637,20584,20636,20626,20610,20615,20831,20948,21266,21265,21412,21415,21905,21928,21925,21933,21879,22085,21922,21907,21896,21903,21941,21889,21923,21906,21924,21885,21900,21926,21887,21909,21921,21902,22284,22569,22583,22553,22558,22567,22563,22568,22517,22600,22565,22556,22555,22579,22591,22582,22574,22585,22584,22573,22572,22587,22881,23215,23188,23199,23162,23202,23198,23160,23206,23164,23205,23212,23189,23214,23095,23172,23178,23191,23171,23179,23209,23163,23165,23180,23196,23183,23187,23197,23530,23501,23499,23508,23505,23498,23502,23564,23600,23863,23875,23915,23873,23883,23871,23861,23889,23886,23893,23859,23866,23890,23869,23857,23897,23874,23865,23881,23864,23868,23858,23862,23872,23877,24132,24129,24408,24486,24485,24491,24777,24761,24780,24802,24782,24772,24852,24818,24842,24854,24837,24821,24851,24824,24828,24830,24769,24835,24856,24861,24848,24831,24836,24843,25162,25492,25521,25520,25550,25573,25576,25583,25539,25757,25587,25546,25568,25590,25557,25586,25589,25697,25567,25534,25565,25564,25540,25560,25555,25538,25543,25548,25547,25544,25584,25559,25561,25906,25959,25962,25956,25948,25960,25957,25996,26013,26014,26030,26064,26066,26236,26220,26235,26240,26225,26233,26218,26226,26369,26892,26835,26884,26844,26922,26860,26858,26865,26895,26838,26871,26859,26852,26870,26899,26896,26867,26849,26887,26828,26888,26992,26804,26897,26863,26822,26900,26872,26832,26877,26876,26856,26891,26890,26903,26830,26824,26845,26846,26854,26868,26833,26886,26836,26857,26901,26917,26823,27449,27451,27455,27452,27540,27543,27545,27541,27581,27632,27634,27635,27696,28156,28230,28231,28191,28233,28296,28220,28221,28229,28258,28203,28223,28225,28253,28275,28188,28211,28235,28224,28241,28219,28163,28206,28254,28264,28252,28257,28209,28200,28256,28273,28267,28217,28194,28208,28243,28261,28199,28280,28260,28279,28245,28281,28242,28262,28213,28214,28250,28960,28958,28975,28923,28974,28977,28963,28965,28962,28978,28959,28968,28986,28955,29259,29274,29320,29321,29318,29317,29323,29458,29451,29488,29474,29489,29491,29479,29490,29485,29478,29475,29493,29452,29742,29740,29744,29739,29718,29722,29729,29741,29745,29732,29731,29725,29737,29728,29746,29947,29999,30063,30060,30183,30170,30177,30182,30173,30175,30180,30167,30357,30354,30426,30534,30535,30532,30541,30533,30538,30542,30539,30540,30686,30700,30816,30820,30821,30812,30829,30833,30826,30830,30832,30825,30824,30814,30818,31092,31091,31090,31088,31234,31242,31235,31244,31236,31385,31462,31460,31562,31547,31556,31560,31564,31566,31552,31576,31557,31906,31902,31912,31905,32088,32111,32099,32083,32086,32103,32106,32079,32109,32092,32107,32082,32084,32105,32081,32095,32078,32574,32575,32613,32614,32674,32672,32673,32727,32849,32847,32848,33022,32980,33091,33098,33106,33103,33095,33085,33101,33082,33254,33262,33271,33272,33273,33284,33340,33341,33343,33397,33595,33743,33785,33827,33728,33768,33810,33767,33764,33788,33782,33808,33734,33736,33771,33763,33727,33793,33757,33765,33752,33791,33761,33739,33742,33750,33781,33737,33801,33807,33758,33809,33798,33730,33779,33749,33786,33735,33745,33770,33811,33731,33772,33774,33732,33787,33751,33762,33819,33755,33790,34520,34530,34534,34515,34531,34522,34538,34525,34539,34524,34540,34537,34519,34536,34513,34888,34902,34901,35002,35031,35001,35e3,35008,35006,34998,35004,34999,35005,34994,35073,35017,35221,35224,35223,35293,35290,35291,35406,35405,35385,35417,35392,35415,35416,35396,35397,35410,35400,35409,35402,35404,35407,35935,35969,35968,36026,36030,36016,36025,36021,36228,36224,36233,36312,36307,36301,36295,36310,36316,36303,36309,36313,36296,36311,36293,36591,36599,36602,36601,36582,36590,36581,36597,36583,36584,36598,36587,36593,36588,36596,36585,36909,36916,36911,37126,37164,37124,37119,37116,37128,37113,37115,37121,37120,37127,37125,37123,37217,37220,37215,37218,37216,37377,37386,37413,37379,37402,37414,37391,37388,37376,37394,37375,37373,37382,37380,37415,37378,37404,37412,37401,37399,37381,37398,38267,38285,38284,38288,38535,38526,38536,38537,38531,38528,38594,38600,38595,38641,38640,38764,38768,38766,38919,39081,39147,40166,40697,20099,20100,20150,20669,20671,20678,20654,20676,20682,20660,20680,20674,20656,20673,20666,20657,20683,20681,20662,20664,20951,21114,21112,21115,21116,21955,21979,21964,21968,21963,21962,21981,21952,21972,21956,21993,21951,21970,21901,21967,21973,21986,21974,21960,22002,21965,21977,21954,22292,22611,22632,22628,22607,22605,22601,22639,22613,22606,22621,22617,22629,22619,22589,22627,22641,22780,23239,23236,23243,23226,23224,23217,23221,23216,23231,23240,23227,23238,23223,23232,23242,23220,23222,23245,23225,23184,23510,23512,23513,23583,23603,23921,23907,23882,23909,23922,23916,23902,23912,23911,23906,24048,24143,24142,24138,24141,24139,24261,24268,24262,24267,24263,24384,24495,24493,24823,24905,24906,24875,24901,24886,24882,24878,24902,24879,24911,24873,24896,25120,37224,25123,25125,25124,25541,25585,25579,25616,25618,25609,25632,25636,25651,25667,25631,25621,25624,25657,25655,25634,25635,25612,25638,25648,25640,25665,25653,25647,25610,25626,25664,25637,25639,25611,25575,25627,25646,25633,25614,25967,26002,26067,26246,26252,26261,26256,26251,26250,26265,26260,26232,26400,26982,26975,26936,26958,26978,26993,26943,26949,26986,26937,26946,26967,26969,27002,26952,26953,26933,26988,26931,26941,26981,26864,27e3,26932,26985,26944,26991,26948,26998,26968,26945,26996,26956,26939,26955,26935,26972,26959,26961,26930,26962,26927,27003,26940,27462,27461,27459,27458,27464,27457,27547,64013,27643,27644,27641,27639,27640,28315,28374,28360,28303,28352,28319,28307,28308,28320,28337,28345,28358,28370,28349,28353,28318,28361,28343,28336,28365,28326,28367,28338,28350,28355,28380,28376,28313,28306,28302,28301,28324,28321,28351,28339,28368,28362,28311,28334,28323,28999,29012,29010,29027,29024,28993,29021,29026,29042,29048,29034,29025,28994,29016,28995,29003,29040,29023,29008,29011,28996,29005,29018,29263,29325,29324,29329,29328,29326,29500,29506,29499,29498,29504,29514,29513,29764,29770,29771,29778,29777,29783,29760,29775,29776,29774,29762,29766,29773,29780,29921,29951,29950,29949,29981,30073,30071,27011,30191,30223,30211,30199,30206,30204,30201,30200,30224,30203,30198,30189,30197,30205,30361,30389,30429,30549,30559,30560,30546,30550,30554,30569,30567,30548,30553,30573,30688,30855,30874,30868,30863,30852,30869,30853,30854,30881,30851,30841,30873,30848,30870,30843,31100,31106,31101,31097,31249,31256,31257,31250,31255,31253,31266,31251,31259,31248,31395,31394,31390,31467,31590,31588,31597,31604,31593,31602,31589,31603,31601,31600,31585,31608,31606,31587,31922,31924,31919,32136,32134,32128,32141,32127,32133,32122,32142,32123,32131,32124,32140,32148,32132,32125,32146,32621,32619,32615,32616,32620,32678,32677,32679,32731,32732,32801,33124,33120,33143,33116,33129,33115,33122,33138,26401,33118,33142,33127,33135,33092,33121,33309,33353,33348,33344,33346,33349,34033,33855,33878,33910,33913,33935,33933,33893,33873,33856,33926,33895,33840,33869,33917,33882,33881,33908,33907,33885,34055,33886,33847,33850,33844,33914,33859,33912,33842,33861,33833,33753,33867,33839,33858,33837,33887,33904,33849,33870,33868,33874,33903,33989,33934,33851,33863,33846,33843,33896,33918,33860,33835,33888,33876,33902,33872,34571,34564,34551,34572,34554,34518,34549,34637,34552,34574,34569,34561,34550,34573,34565,35030,35019,35021,35022,35038,35035,35034,35020,35024,35205,35227,35295,35301,35300,35297,35296,35298,35292,35302,35446,35462,35455,35425,35391,35447,35458,35460,35445,35459,35457,35444,35450,35900,35915,35914,35941,35940,35942,35974,35972,35973,36044,36200,36201,36241,36236,36238,36239,36237,36243,36244,36240,36242,36336,36320,36332,36337,36334,36304,36329,36323,36322,36327,36338,36331,36340,36614,36607,36609,36608,36613,36615,36616,36610,36619,36946,36927,36932,36937,36925,37136,37133,37135,37137,37142,37140,37131,37134,37230,37231,37448,37458,37424,37434,37478,37427,37477,37470,37507,37422,37450,37446,37485,37484,37455,37472,37479,37487,37430,37473,37488,37425,37460,37475,37456,37490,37454,37459,37452,37462,37426,38303,38300,38302,38299,38546,38547,38545,38551,38606,38650,38653,38648,38645,38771,38775,38776,38770,38927,38925,38926,39084,39158,39161,39343,39346,39344,39349,39597,39595,39771,40170,40173,40167,40576,40701,20710,20692,20695,20712,20723,20699,20714,20701,20708,20691,20716,20720,20719,20707,20704,20952,21120,21121,21225,21227,21296,21420,22055,22037,22028,22034,22012,22031,22044,22017,22035,22018,22010,22045,22020,22015,22009,22665,22652,22672,22680,22662,22657,22655,22644,22667,22650,22663,22673,22670,22646,22658,22664,22651,22676,22671,22782,22891,23260,23278,23269,23253,23274,23258,23277,23275,23283,23266,23264,23259,23276,23262,23261,23257,23272,23263,23415,23520,23523,23651,23938,23936,23933,23942,23930,23937,23927,23946,23945,23944,23934,23932,23949,23929,23935,24152,24153,24147,24280,24273,24279,24270,24284,24277,24281,24274,24276,24388,24387,24431,24502,24876,24872,24897,24926,24945,24947,24914,24915,24946,24940,24960,24948,24916,24954,24923,24933,24891,24938,24929,24918,25129,25127,25131,25643,25677,25691,25693,25716,25718,25714,25715,25725,25717,25702,25766,25678,25730,25694,25692,25675,25683,25696,25680,25727,25663,25708,25707,25689,25701,25719,25971,26016,26273,26272,26271,26373,26372,26402,27057,27062,27081,27040,27086,27030,27056,27052,27068,27025,27033,27022,27047,27021,27049,27070,27055,27071,27076,27069,27044,27092,27065,27082,27034,27087,27059,27027,27050,27041,27038,27097,27031,27024,27074,27061,27045,27078,27466,27469,27467,27550,27551,27552,27587,27588,27646,28366,28405,28401,28419,28453,28408,28471,28411,28462,28425,28494,28441,28442,28455,28440,28475,28434,28397,28426,28470,28531,28409,28398,28461,28480,28464,28476,28469,28395,28423,28430,28483,28421,28413,28406,28473,28444,28412,28474,28447,28429,28446,28424,28449,29063,29072,29065,29056,29061,29058,29071,29051,29062,29057,29079,29252,29267,29335,29333,29331,29507,29517,29521,29516,29794,29811,29809,29813,29810,29799,29806,29952,29954,29955,30077,30096,30230,30216,30220,30229,30225,30218,30228,30392,30593,30588,30597,30594,30574,30592,30575,30590,30595,30898,30890,30900,30893,30888,30846,30891,30878,30885,30880,30892,30882,30884,31128,31114,31115,31126,31125,31124,31123,31127,31112,31122,31120,31275,31306,31280,31279,31272,31270,31400,31403,31404,31470,31624,31644,31626,31633,31632,31638,31629,31628,31643,31630,31621,31640,21124,31641,31652,31618,31931,31935,31932,31930,32167,32183,32194,32163,32170,32193,32192,32197,32157,32206,32196,32198,32203,32204,32175,32185,32150,32188,32159,32166,32174,32169,32161,32201,32627,32738,32739,32741,32734,32804,32861,32860,33161,33158,33155,33159,33165,33164,33163,33301,33943,33956,33953,33951,33978,33998,33986,33964,33966,33963,33977,33972,33985,33997,33962,33946,33969,34e3,33949,33959,33979,33954,33940,33991,33996,33947,33961,33967,33960,34006,33944,33974,33999,33952,34007,34004,34002,34011,33968,33937,34401,34611,34595,34600,34667,34624,34606,34590,34593,34585,34587,34627,34604,34625,34622,34630,34592,34610,34602,34605,34620,34578,34618,34609,34613,34626,34598,34599,34616,34596,34586,34608,34577,35063,35047,35057,35058,35066,35070,35054,35068,35062,35067,35056,35052,35051,35229,35233,35231,35230,35305,35307,35304,35499,35481,35467,35474,35471,35478,35901,35944,35945,36053,36047,36055,36246,36361,36354,36351,36365,36349,36362,36355,36359,36358,36357,36350,36352,36356,36624,36625,36622,36621,37155,37148,37152,37154,37151,37149,37146,37156,37153,37147,37242,37234,37241,37235,37541,37540,37494,37531,37498,37536,37524,37546,37517,37542,37530,37547,37497,37527,37503,37539,37614,37518,37506,37525,37538,37501,37512,37537,37514,37510,37516,37529,37543,37502,37511,37545,37533,37515,37421,38558,38561,38655,38744,38781,38778,38782,38787,38784,38786,38779,38788,38785,38783,38862,38861,38934,39085,39086,39170,39168,39175,39325,39324,39363,39353,39355,39354,39362,39357,39367,39601,39651,39655,39742,39743,39776,39777,39775,40177,40178,40181,40615,20735,20739,20784,20728,20742,20743,20726,20734,20747,20748,20733,20746,21131,21132,21233,21231,22088,22082,22092,22069,22081,22090,22089,22086,22104,22106,22080,22067,22077,22060,22078,22072,22058,22074,22298,22699,22685,22705,22688,22691,22703,22700,22693,22689,22783,23295,23284,23293,23287,23286,23299,23288,23298,23289,23297,23303,23301,23311,23655,23961,23959,23967,23954,23970,23955,23957,23968,23964,23969,23962,23966,24169,24157,24160,24156,32243,24283,24286,24289,24393,24498,24971,24963,24953,25009,25008,24994,24969,24987,24979,25007,25005,24991,24978,25002,24993,24973,24934,25011,25133,25710,25712,25750,25760,25733,25751,25756,25743,25739,25738,25740,25763,25759,25704,25777,25752,25974,25978,25977,25979,26034,26035,26293,26288,26281,26290,26295,26282,26287,27136,27142,27159,27109,27128,27157,27121,27108,27168,27135,27116,27106,27163,27165,27134,27175,27122,27118,27156,27127,27111,27200,27144,27110,27131,27149,27132,27115,27145,27140,27160,27173,27151,27126,27174,27143,27124,27158,27473,27557,27555,27554,27558,27649,27648,27647,27650,28481,28454,28542,28551,28614,28562,28557,28553,28556,28514,28495,28549,28506,28566,28534,28524,28546,28501,28530,28498,28496,28503,28564,28563,28509,28416,28513,28523,28541,28519,28560,28499,28555,28521,28543,28565,28515,28535,28522,28539,29106,29103,29083,29104,29088,29082,29097,29109,29085,29093,29086,29092,29089,29098,29084,29095,29107,29336,29338,29528,29522,29534,29535,29536,29533,29531,29537,29530,29529,29538,29831,29833,29834,29830,29825,29821,29829,29832,29820,29817,29960,29959,30078,30245,30238,30233,30237,30236,30243,30234,30248,30235,30364,30365,30366,30363,30605,30607,30601,30600,30925,30907,30927,30924,30929,30926,30932,30920,30915,30916,30921,31130,31137,31136,31132,31138,31131,27510,31289,31410,31412,31411,31671,31691,31678,31660,31694,31663,31673,31690,31669,31941,31944,31948,31947,32247,32219,32234,32231,32215,32225,32259,32250,32230,32246,32241,32240,32238,32223,32630,32684,32688,32685,32749,32747,32746,32748,32742,32744,32868,32871,33187,33183,33182,33173,33186,33177,33175,33302,33359,33363,33362,33360,33358,33361,34084,34107,34063,34048,34089,34062,34057,34061,34079,34058,34087,34076,34043,34091,34042,34056,34060,34036,34090,34034,34069,34039,34027,34035,34044,34066,34026,34025,34070,34046,34088,34077,34094,34050,34045,34078,34038,34097,34086,34023,34024,34032,34031,34041,34072,34080,34096,34059,34073,34095,34402,34646,34659,34660,34679,34785,34675,34648,34644,34651,34642,34657,34650,34641,34654,34669,34666,34640,34638,34655,34653,34671,34668,34682,34670,34652,34661,34639,34683,34677,34658,34663,34665,34906,35077,35084,35092,35083,35095,35096,35097,35078,35094,35089,35086,35081,35234,35236,35235,35309,35312,35308,35535,35526,35512,35539,35537,35540,35541,35515,35543,35518,35520,35525,35544,35523,35514,35517,35545,35902,35917,35983,36069,36063,36057,36072,36058,36061,36071,36256,36252,36257,36251,36384,36387,36389,36388,36398,36373,36379,36374,36369,36377,36390,36391,36372,36370,36376,36371,36380,36375,36378,36652,36644,36632,36634,36640,36643,36630,36631,36979,36976,36975,36967,36971,37167,37163,37161,37162,37170,37158,37166,37253,37254,37258,37249,37250,37252,37248,37584,37571,37572,37568,37593,37558,37583,37617,37599,37592,37609,37591,37597,37580,37615,37570,37608,37578,37576,37582,37606,37581,37589,37577,37600,37598,37607,37585,37587,37557,37601,37574,37556,38268,38316,38315,38318,38320,38564,38562,38611,38661,38664,38658,38746,38794,38798,38792,38864,38863,38942,38941,38950,38953,38952,38944,38939,38951,39090,39176,39162,39185,39188,39190,39191,39189,39388,39373,39375,39379,39380,39374,39369,39382,39384,39371,39383,39372,39603,39660,39659,39667,39666,39665,39750,39747,39783,39796,39793,39782,39798,39797,39792,39784,39780,39788,40188,40186,40189,40191,40183,40199,40192,40185,40187,40200,40197,40196,40579,40659,40719,40720,20764,20755,20759,20762,20753,20958,21300,21473,22128,22112,22126,22131,22118,22115,22125,22130,22110,22135,22300,22299,22728,22717,22729,22719,22714,22722,22716,22726,23319,23321,23323,23329,23316,23315,23312,23318,23336,23322,23328,23326,23535,23980,23985,23977,23975,23989,23984,23982,23978,23976,23986,23981,23983,23988,24167,24168,24166,24175,24297,24295,24294,24296,24293,24395,24508,24989,25e3,24982,25029,25012,25030,25025,25036,25018,25023,25016,24972,25815,25814,25808,25807,25801,25789,25737,25795,25819,25843,25817,25907,25983,25980,26018,26312,26302,26304,26314,26315,26319,26301,26299,26298,26316,26403,27188,27238,27209,27239,27186,27240,27198,27229,27245,27254,27227,27217,27176,27226,27195,27199,27201,27242,27236,27216,27215,27220,27247,27241,27232,27196,27230,27222,27221,27213,27214,27206,27477,27476,27478,27559,27562,27563,27592,27591,27652,27651,27654,28589,28619,28579,28615,28604,28622,28616,28510,28612,28605,28574,28618,28584,28676,28581,28590,28602,28588,28586,28623,28607,28600,28578,28617,28587,28621,28591,28594,28592,29125,29122,29119,29112,29142,29120,29121,29131,29140,29130,29127,29135,29117,29144,29116,29126,29146,29147,29341,29342,29545,29542,29543,29548,29541,29547,29546,29823,29850,29856,29844,29842,29845,29857,29963,30080,30255,30253,30257,30269,30259,30268,30261,30258,30256,30395,30438,30618,30621,30625,30620,30619,30626,30627,30613,30617,30615,30941,30953,30949,30954,30942,30947,30939,30945,30946,30957,30943,30944,31140,31300,31304,31303,31414,31416,31413,31409,31415,31710,31715,31719,31709,31701,31717,31706,31720,31737,31700,31722,31714,31708,31723,31704,31711,31954,31956,31959,31952,31953,32274,32289,32279,32268,32287,32288,32275,32270,32284,32277,32282,32290,32267,32271,32278,32269,32276,32293,32292,32579,32635,32636,32634,32689,32751,32810,32809,32876,33201,33190,33198,33209,33205,33195,33200,33196,33204,33202,33207,33191,33266,33365,33366,33367,34134,34117,34155,34125,34131,34145,34136,34112,34118,34148,34113,34146,34116,34129,34119,34147,34110,34139,34161,34126,34158,34165,34133,34151,34144,34188,34150,34141,34132,34149,34156,34403,34405,34404,34715,34703,34711,34707,34706,34696,34689,34710,34712,34681,34695,34723,34693,34704,34705,34717,34692,34708,34716,34714,34697,35102,35110,35120,35117,35118,35111,35121,35106,35113,35107,35119,35116,35103,35313,35552,35554,35570,35572,35573,35549,35604,35556,35551,35568,35528,35550,35553,35560,35583,35567,35579,35985,35986,35984,36085,36078,36081,36080,36083,36204,36206,36261,36263,36403,36414,36408,36416,36421,36406,36412,36413,36417,36400,36415,36541,36662,36654,36661,36658,36665,36663,36660,36982,36985,36987,36998,37114,37171,37173,37174,37267,37264,37265,37261,37263,37671,37662,37640,37663,37638,37647,37754,37688,37692,37659,37667,37650,37633,37702,37677,37646,37645,37579,37661,37626,37669,37651,37625,37623,37684,37634,37668,37631,37673,37689,37685,37674,37652,37644,37643,37630,37641,37632,37627,37654,38332,38349,38334,38329,38330,38326,38335,38325,38333,38569,38612,38667,38674,38672,38809,38807,38804,38896,38904,38965,38959,38962,39204,39199,39207,39209,39326,39406,39404,39397,39396,39408,39395,39402,39401,39399,39609,39615,39604,39611,39670,39674,39673,39671,39731,39808,39813,39815,39804,39806,39803,39810,39827,39826,39824,39802,39829,39805,39816,40229,40215,40224,40222,40212,40233,40221,40216,40226,40208,40217,40223,40584,40582,40583,40622,40621,40661,40662,40698,40722,40765,20774,20773,20770,20772,20768,20777,21236,22163,22156,22157,22150,22148,22147,22142,22146,22143,22145,22742,22740,22735,22738,23341,23333,23346,23331,23340,23335,23334,23343,23342,23419,23537,23538,23991,24172,24170,24510,24507,25027,25013,25020,25063,25056,25061,25060,25064,25054,25839,25833,25827,25835,25828,25832,25985,25984,26038,26074,26322,27277,27286,27265,27301,27273,27295,27291,27297,27294,27271,27283,27278,27285,27267,27304,27300,27281,27263,27302,27290,27269,27276,27282,27483,27565,27657,28620,28585,28660,28628,28643,28636,28653,28647,28646,28638,28658,28637,28642,28648,29153,29169,29160,29170,29156,29168,29154,29555,29550,29551,29847,29874,29867,29840,29866,29869,29873,29861,29871,29968,29969,29970,29967,30084,30275,30280,30281,30279,30372,30441,30645,30635,30642,30647,30646,30644,30641,30632,30704,30963,30973,30978,30971,30972,30962,30981,30969,30974,30980,31147,31144,31324,31323,31318,31320,31316,31322,31422,31424,31425,31749,31759,31730,31744,31743,31739,31758,31732,31755,31731,31746,31753,31747,31745,31736,31741,31750,31728,31729,31760,31754,31976,32301,32316,32322,32307,38984,32312,32298,32329,32320,32327,32297,32332,32304,32315,32310,32324,32314,32581,32639,32638,32637,32756,32754,32812,33211,33220,33228,33226,33221,33223,33212,33257,33371,33370,33372,34179,34176,34191,34215,34197,34208,34187,34211,34171,34212,34202,34206,34167,34172,34185,34209,34170,34168,34135,34190,34198,34182,34189,34201,34205,34177,34210,34178,34184,34181,34169,34166,34200,34192,34207,34408,34750,34730,34733,34757,34736,34732,34745,34741,34748,34734,34761,34755,34754,34764,34743,34735,34756,34762,34740,34742,34751,34744,34749,34782,34738,35125,35123,35132,35134,35137,35154,35127,35138,35245,35247,35246,35314,35315,35614,35608,35606,35601,35589,35595,35618,35599,35602,35605,35591,35597,35592,35590,35612,35603,35610,35919,35952,35954,35953,35951,35989,35988,36089,36207,36430,36429,36435,36432,36428,36423,36675,36672,36997,36990,37176,37274,37282,37275,37273,37279,37281,37277,37280,37793,37763,37807,37732,37718,37703,37756,37720,37724,37750,37705,37712,37713,37728,37741,37775,37708,37738,37753,37719,37717,37714,37711,37745,37751,37755,37729,37726,37731,37735,37760,37710,37721,38343,38336,38345,38339,38341,38327,38574,38576,38572,38688,38687,38680,38685,38681,38810,38817,38812,38814,38813,38869,38868,38897,38977,38980,38986,38985,38981,38979,39205,39211,39212,39210,39219,39218,39215,39213,39217,39216,39320,39331,39329,39426,39418,39412,39415,39417,39416,39414,39419,39421,39422,39420,39427,39614,39678,39677,39681,39676,39752,39834,39848,39838,39835,39846,39841,39845,39844,39814,39842,39840,39855,40243,40257,40295,40246,40238,40239,40241,40248,40240,40261,40258,40259,40254,40247,40256,40253,32757,40237,40586,40585,40589,40624,40648,40666,40699,40703,40740,40739,40738,40788,40864,20785,20781,20782,22168,22172,22167,22170,22173,22169,22896,23356,23657,23658,24e3,24173,24174,25048,25055,25069,25070,25073,25066,25072,25067,25046,25065,25855,25860,25853,25848,25857,25859,25852,26004,26075,26330,26331,26328,27333,27321,27325,27361,27334,27322,27318,27319,27335,27316,27309,27486,27593,27659,28679,28684,28685,28673,28677,28692,28686,28671,28672,28667,28710,28668,28663,28682,29185,29183,29177,29187,29181,29558,29880,29888,29877,29889,29886,29878,29883,29890,29972,29971,30300,30308,30297,30288,30291,30295,30298,30374,30397,30444,30658,30650,30975,30988,30995,30996,30985,30992,30994,30993,31149,31148,31327,31772,31785,31769,31776,31775,31789,31773,31782,31784,31778,31781,31792,32348,32336,32342,32355,32344,32354,32351,32337,32352,32343,32339,32693,32691,32759,32760,32885,33233,33234,33232,33375,33374,34228,34246,34240,34243,34242,34227,34229,34237,34247,34244,34239,34251,34254,34248,34245,34225,34230,34258,34340,34232,34231,34238,34409,34791,34790,34786,34779,34795,34794,34789,34783,34803,34788,34772,34780,34771,34797,34776,34787,34724,34775,34777,34817,34804,34792,34781,35155,35147,35151,35148,35142,35152,35153,35145,35626,35623,35619,35635,35632,35637,35655,35631,35644,35646,35633,35621,35639,35622,35638,35630,35620,35643,35645,35642,35906,35957,35993,35992,35991,36094,36100,36098,36096,36444,36450,36448,36439,36438,36446,36453,36455,36443,36442,36449,36445,36457,36436,36678,36679,36680,36683,37160,37178,37179,37182,37288,37285,37287,37295,37290,37813,37772,37778,37815,37787,37789,37769,37799,37774,37802,37790,37798,37781,37768,37785,37791,37773,37809,37777,37810,37796,37800,37812,37795,37797,38354,38355,38353,38579,38615,38618,24002,38623,38616,38621,38691,38690,38693,38828,38830,38824,38827,38820,38826,38818,38821,38871,38873,38870,38872,38906,38992,38993,38994,39096,39233,39228,39226,39439,39435,39433,39437,39428,39441,39434,39429,39431,39430,39616,39644,39688,39684,39685,39721,39733,39754,39756,39755,39879,39878,39875,39871,39873,39861,39864,39891,39862,39876,39865,39869,40284,40275,40271,40266,40283,40267,40281,40278,40268,40279,40274,40276,40287,40280,40282,40590,40588,40671,40705,40704,40726,40741,40747,40746,40745,40744,40780,40789,20788,20789,21142,21239,21428,22187,22189,22182,22183,22186,22188,22746,22749,22747,22802,23357,23358,23359,24003,24176,24511,25083,25863,25872,25869,25865,25868,25870,25988,26078,26077,26334,27367,27360,27340,27345,27353,27339,27359,27356,27344,27371,27343,27341,27358,27488,27568,27660,28697,28711,28704,28694,28715,28705,28706,28707,28713,28695,28708,28700,28714,29196,29194,29191,29186,29189,29349,29350,29348,29347,29345,29899,29893,29879,29891,29974,30304,30665,30666,30660,30705,31005,31003,31009,31004,30999,31006,31152,31335,31336,31795,31804,31801,31788,31803,31980,31978,32374,32373,32376,32368,32375,32367,32378,32370,32372,32360,32587,32586,32643,32646,32695,32765,32766,32888,33239,33237,33380,33377,33379,34283,34289,34285,34265,34273,34280,34266,34263,34284,34290,34296,34264,34271,34275,34268,34257,34288,34278,34287,34270,34274,34816,34810,34819,34806,34807,34825,34828,34827,34822,34812,34824,34815,34826,34818,35170,35162,35163,35159,35169,35164,35160,35165,35161,35208,35255,35254,35318,35664,35656,35658,35648,35667,35670,35668,35659,35669,35665,35650,35666,35671,35907,35959,35958,35994,36102,36103,36105,36268,36266,36269,36267,36461,36472,36467,36458,36463,36475,36546,36690,36689,36687,36688,36691,36788,37184,37183,37296,37293,37854,37831,37839,37826,37850,37840,37881,37868,37836,37849,37801,37862,37834,37844,37870,37859,37845,37828,37838,37824,37842,37863,38269,38362,38363,38625,38697,38699,38700,38696,38694,38835,38839,38838,38877,38878,38879,39004,39001,39005,38999,39103,39101,39099,39102,39240,39239,39235,39334,39335,39450,39445,39461,39453,39460,39451,39458,39456,39463,39459,39454,39452,39444,39618,39691,39690,39694,39692,39735,39914,39915,39904,39902,39908,39910,39906,39920,39892,39895,39916,39900,39897,39909,39893,39905,39898,40311,40321,40330,40324,40328,40305,40320,40312,40326,40331,40332,40317,40299,40308,40309,40304,40297,40325,40307,40315,40322,40303,40313,40319,40327,40296,40596,40593,40640,40700,40749,40768,40769,40781,40790,40791,40792,21303,22194,22197,22195,22755,23365,24006,24007,24302,24303,24512,24513,25081,25879,25878,25877,25875,26079,26344,26339,26340,27379,27376,27370,27368,27385,27377,27374,27375,28732,28725,28719,28727,28724,28721,28738,28728,28735,28730,28729,28736,28731,28723,28737,29203,29204,29352,29565,29564,29882,30379,30378,30398,30445,30668,30670,30671,30669,30706,31013,31011,31015,31016,31012,31017,31154,31342,31340,31341,31479,31817,31816,31818,31815,31813,31982,32379,32382,32385,32384,32698,32767,32889,33243,33241,33291,33384,33385,34338,34303,34305,34302,34331,34304,34294,34308,34313,34309,34316,34301,34841,34832,34833,34839,34835,34838,35171,35174,35257,35319,35680,35690,35677,35688,35683,35685,35687,35693,36270,36486,36488,36484,36697,36694,36695,36693,36696,36698,37005,37187,37185,37303,37301,37298,37299,37899,37907,37883,37920,37903,37908,37886,37909,37904,37928,37913,37901,37877,37888,37879,37895,37902,37910,37906,37882,37897,37880,37898,37887,37884,37900,37878,37905,37894,38366,38368,38367,38702,38703,38841,38843,38909,38910,39008,39010,39011,39007,39105,39106,39248,39246,39257,39244,39243,39251,39474,39476,39473,39468,39466,39478,39465,39470,39480,39469,39623,39626,39622,39696,39698,39697,39947,39944,39927,39941,39954,39928,4e4,39943,39950,39942,39959,39956,39945,40351,40345,40356,40349,40338,40344,40336,40347,40352,40340,40348,40362,40343,40353,40346,40354,40360,40350,40355,40383,40361,40342,40358,40359,40601,40603,40602,40677,40676,40679,40678,40752,40750,40795,40800,40798,40797,40793,40849,20794,20793,21144,21143,22211,22205,22206,23368,23367,24011,24015,24305,25085,25883,27394,27388,27395,27384,27392,28739,28740,28746,28744,28745,28741,28742,29213,29210,29209,29566,29975,30314,30672,31021,31025,31023,31828,31827,31986,32394,32391,32392,32395,32390,32397,32589,32699,32816,33245,34328,34346,34342,34335,34339,34332,34329,34343,34350,34337,34336,34345,34334,34341,34857,34845,34843,34848,34852,34844,34859,34890,35181,35177,35182,35179,35322,35705,35704,35653,35706,35707,36112,36116,36271,36494,36492,36702,36699,36701,37190,37188,37189,37305,37951,37947,37942,37929,37949,37948,37936,37945,37930,37943,37932,37952,37937,38373,38372,38371,38709,38714,38847,38881,39012,39113,39110,39104,39256,39254,39481,39485,39494,39492,39490,39489,39482,39487,39629,39701,39703,39704,39702,39738,39762,39979,39965,39964,39980,39971,39976,39977,39972,39969,40375,40374,40380,40385,40391,40394,40399,40382,40389,40387,40379,40373,40398,40377,40378,40364,40392,40369,40365,40396,40371,40397,40370,40570,40604,40683,40686,40685,40731,40728,40730,40753,40782,40805,40804,40850,20153,22214,22213,22219,22897,23371,23372,24021,24017,24306,25889,25888,25894,25890,27403,27400,27401,27661,28757,28758,28759,28754,29214,29215,29353,29567,29912,29909,29913,29911,30317,30381,31029,31156,31344,31345,31831,31836,31833,31835,31834,31988,31985,32401,32591,32647,33246,33387,34356,34357,34355,34348,34354,34358,34860,34856,34854,34858,34853,35185,35263,35262,35323,35710,35716,35714,35718,35717,35711,36117,36501,36500,36506,36498,36496,36502,36503,36704,36706,37191,37964,37968,37962,37963,37967,37959,37957,37960,37961,37958,38719,38883,39018,39017,39115,39252,39259,39502,39507,39508,39500,39503,39496,39498,39497,39506,39504,39632,39705,39723,39739,39766,39765,40006,40008,39999,40004,39993,39987,40001,39996,39991,39988,39986,39997,39990,40411,40402,40414,40410,40395,40400,40412,40401,40415,40425,40409,40408,40406,40437,40405,40413,40630,40688,40757,40755,40754,40770,40811,40853,40866,20797,21145,22760,22759,22898,23373,24024,34863,24399,25089,25091,25092,25897,25893,26006,26347,27409,27410,27407,27594,28763,28762,29218,29570,29569,29571,30320,30676,31847,31846,32405,33388,34362,34368,34361,34364,34353,34363,34366,34864,34866,34862,34867,35190,35188,35187,35326,35724,35726,35723,35720,35909,36121,36504,36708,36707,37308,37986,37973,37981,37975,37982,38852,38853,38912,39510,39513,39710,39711,39712,40018,40024,40016,40010,40013,40011,40021,40025,40012,40014,40443,40439,40431,40419,40427,40440,40420,40438,40417,40430,40422,40434,40432,40418,40428,40436,40435,40424,40429,40642,40656,40690,40691,40710,40732,40760,40759,40758,40771,40783,40817,40816,40814,40815,22227,22221,23374,23661,25901,26349,26350,27411,28767,28769,28765,28768,29219,29915,29925,30677,31032,31159,31158,31850,32407,32649,33389,34371,34872,34871,34869,34891,35732,35733,36510,36511,36512,36509,37310,37309,37314,37995,37992,37993,38629,38726,38723,38727,38855,38885,39518,39637,39769,40035,40039,40038,40034,40030,40032,40450,40446,40455,40451,40454,40453,40448,40449,40457,40447,40445,40452,40608,40734,40774,40820,40821,40822,22228,25902,26040,27416,27417,27415,27418,28770,29222,29354,30680,30681,31033,31849,31851,31990,32410,32408,32411,32409,33248,33249,34374,34375,34376,35193,35194,35196,35195,35327,35736,35737,36517,36516,36515,37998,37997,37999,38001,38003,38729,39026,39263,40040,40046,40045,40459,40461,40464,40463,40466,40465,40609,40693,40713,40775,40824,40827,40826,40825,22302,28774,31855,34876,36274,36518,37315,38004,38008,38006,38005,39520,40052,40051,40049,40053,40468,40467,40694,40714,40868,28776,28773,31991,34410,34878,34877,34879,35742,35996,36521,36553,38731,39027,39028,39116,39265,39339,39524,39526,39527,39716,40469,40471,40776,25095,27422,29223,34380,36520,38018,38016,38017,39529,39528,39726,40473,29225,34379,35743,38019,40057,40631,30325,39531,40058,40477,28777,28778,40612,40830,40777,40856,30849,37561,35023,22715,24658,31911,23290,9556,9574,9559,9568,9580,9571,9562,9577,9565,9554,9572,9557,9566,9578,9569,9560,9575,9563,9555,9573,9558,9567,9579,9570,9561,9576,9564,9553,9552,9581,9582,9584,9583,65517,132423,37595,132575,147397,34124,17077,29679,20917,13897,149826,166372,37700,137691,33518,146632,30780,26436,25311,149811,166314,131744,158643,135941,20395,140525,20488,159017,162436,144896,150193,140563,20521,131966,24484,131968,131911,28379,132127,20605,20737,13434,20750,39020,14147,33814,149924,132231,20832,144308,20842,134143,139516,131813,140592,132494,143923,137603,23426,34685,132531,146585,20914,20920,40244,20937,20943,20945,15580,20947,150182,20915,20962,21314,20973,33741,26942,145197,24443,21003,21030,21052,21173,21079,21140,21177,21189,31765,34114,21216,34317,158483,21253,166622,21833,28377,147328,133460,147436,21299,21316,134114,27851,136998,26651,29653,24650,16042,14540,136936,29149,17570,21357,21364,165547,21374,21375,136598,136723,30694,21395,166555,21408,21419,21422,29607,153458,16217,29596,21441,21445,27721,20041,22526,21465,15019,134031,21472,147435,142755,21494,134263,21523,28793,21803,26199,27995,21613,158547,134516,21853,21647,21668,18342,136973,134877,15796,134477,166332,140952,21831,19693,21551,29719,21894,21929,22021,137431,147514,17746,148533,26291,135348,22071,26317,144010,26276,26285,22093,22095,30961,22257,38791,21502,22272,22255,22253,166758,13859,135759,22342,147877,27758,28811,22338,14001,158846,22502,136214,22531,136276,148323,22566,150517,22620,22698,13665,22752,22748,135740,22779,23551,22339,172368,148088,37843,13729,22815,26790,14019,28249,136766,23076,21843,136850,34053,22985,134478,158849,159018,137180,23001,137211,137138,159142,28017,137256,136917,23033,159301,23211,23139,14054,149929,23159,14088,23190,29797,23251,159649,140628,15749,137489,14130,136888,24195,21200,23414,25992,23420,162318,16388,18525,131588,23509,24928,137780,154060,132517,23539,23453,19728,23557,138052,23571,29646,23572,138405,158504,23625,18653,23685,23785,23791,23947,138745,138807,23824,23832,23878,138916,23738,24023,33532,14381,149761,139337,139635,33415,14390,15298,24110,27274,24181,24186,148668,134355,21414,20151,24272,21416,137073,24073,24308,164994,24313,24315,14496,24316,26686,37915,24333,131521,194708,15070,18606,135994,24378,157832,140240,24408,140401,24419,38845,159342,24434,37696,166454,24487,23990,15711,152144,139114,159992,140904,37334,131742,166441,24625,26245,137335,14691,15815,13881,22416,141236,31089,15936,24734,24740,24755,149890,149903,162387,29860,20705,23200,24932,33828,24898,194726,159442,24961,20980,132694,24967,23466,147383,141407,25043,166813,170333,25040,14642,141696,141505,24611,24924,25886,25483,131352,25285,137072,25301,142861,25452,149983,14871,25656,25592,136078,137212,25744,28554,142902,38932,147596,153373,25825,25829,38011,14950,25658,14935,25933,28438,150056,150051,25989,25965,25951,143486,26037,149824,19255,26065,16600,137257,26080,26083,24543,144384,26136,143863,143864,26180,143780,143781,26187,134773,26215,152038,26227,26228,138813,143921,165364,143816,152339,30661,141559,39332,26370,148380,150049,15147,27130,145346,26462,26471,26466,147917,168173,26583,17641,26658,28240,37436,26625,144358,159136,26717,144495,27105,27147,166623,26995,26819,144845,26881,26880,15666,14849,144956,15232,26540,26977,166474,17148,26934,27032,15265,132041,33635,20624,27129,144985,139562,27205,145155,27293,15347,26545,27336,168348,15373,27421,133411,24798,27445,27508,141261,28341,146139,132021,137560,14144,21537,146266,27617,147196,27612,27703,140427,149745,158545,27738,33318,27769,146876,17605,146877,147876,149772,149760,146633,14053,15595,134450,39811,143865,140433,32655,26679,159013,159137,159211,28054,27996,28284,28420,149887,147589,159346,34099,159604,20935,27804,28189,33838,166689,28207,146991,29779,147330,31180,28239,23185,143435,28664,14093,28573,146992,28410,136343,147517,17749,37872,28484,28508,15694,28532,168304,15675,28575,147780,28627,147601,147797,147513,147440,147380,147775,20959,147798,147799,147776,156125,28747,28798,28839,28801,28876,28885,28886,28895,16644,15848,29108,29078,148087,28971,28997,23176,29002,29038,23708,148325,29007,37730,148161,28972,148570,150055,150050,29114,166888,28861,29198,37954,29205,22801,37955,29220,37697,153093,29230,29248,149876,26813,29269,29271,15957,143428,26637,28477,29314,29482,29483,149539,165931,18669,165892,29480,29486,29647,29610,134202,158254,29641,29769,147938,136935,150052,26147,14021,149943,149901,150011,29687,29717,26883,150054,29753,132547,16087,29788,141485,29792,167602,29767,29668,29814,33721,29804,14128,29812,37873,27180,29826,18771,150156,147807,150137,166799,23366,166915,137374,29896,137608,29966,29929,29982,167641,137803,23511,167596,37765,30029,30026,30055,30062,151426,16132,150803,30094,29789,30110,30132,30210,30252,30289,30287,30319,30326,156661,30352,33263,14328,157969,157966,30369,30373,30391,30412,159647,33890,151709,151933,138780,30494,30502,30528,25775,152096,30552,144044,30639,166244,166248,136897,30708,30729,136054,150034,26826,30895,30919,30931,38565,31022,153056,30935,31028,30897,161292,36792,34948,166699,155779,140828,31110,35072,26882,31104,153687,31133,162617,31036,31145,28202,160038,16040,31174,168205,31188],"euc-kr":[44034,44035,44037,44038,44043,44044,44045,44046,44047,44056,44062,44063,44065,44066,44067,44069,44070,44071,44072,44073,44074,44075,44078,44082,44083,44084,null,null,null,null,null,null,44085,44086,44087,44090,44091,44093,44094,44095,44097,44098,44099,44100,44101,44102,44103,44104,44105,44106,44108,44110,44111,44112,44113,44114,44115,44117,null,null,null,null,null,null,44118,44119,44121,44122,44123,44125,44126,44127,44128,44129,44130,44131,44132,44133,44134,44135,44136,44137,44138,44139,44140,44141,44142,44143,44146,44147,44149,44150,44153,44155,44156,44157,44158,44159,44162,44167,44168,44173,44174,44175,44177,44178,44179,44181,44182,44183,44184,44185,44186,44187,44190,44194,44195,44196,44197,44198,44199,44203,44205,44206,44209,44210,44211,44212,44213,44214,44215,44218,44222,44223,44224,44226,44227,44229,44230,44231,44233,44234,44235,44237,44238,44239,44240,44241,44242,44243,44244,44246,44248,44249,44250,44251,44252,44253,44254,44255,44258,44259,44261,44262,44265,44267,44269,44270,44274,44276,44279,44280,44281,44282,44283,44286,44287,44289,44290,44291,44293,44295,44296,44297,44298,44299,44302,44304,44306,44307,44308,44309,44310,44311,44313,44314,44315,44317,44318,44319,44321,44322,44323,44324,44325,44326,44327,44328,44330,44331,44334,44335,44336,44337,44338,44339,null,null,null,null,null,null,44342,44343,44345,44346,44347,44349,44350,44351,44352,44353,44354,44355,44358,44360,44362,44363,44364,44365,44366,44367,44369,44370,44371,44373,44374,44375,null,null,null,null,null,null,44377,44378,44379,44380,44381,44382,44383,44384,44386,44388,44389,44390,44391,44392,44393,44394,44395,44398,44399,44401,44402,44407,44408,44409,44410,44414,44416,44419,44420,44421,44422,44423,44426,44427,44429,44430,44431,44433,44434,44435,44436,44437,44438,44439,44440,44441,44442,44443,44446,44447,44448,44449,44450,44451,44453,44454,44455,44456,44457,44458,44459,44460,44461,44462,44463,44464,44465,44466,44467,44468,44469,44470,44472,44473,44474,44475,44476,44477,44478,44479,44482,44483,44485,44486,44487,44489,44490,44491,44492,44493,44494,44495,44498,44500,44501,44502,44503,44504,44505,44506,44507,44509,44510,44511,44513,44514,44515,44517,44518,44519,44520,44521,44522,44523,44524,44525,44526,44527,44528,44529,44530,44531,44532,44533,44534,44535,44538,44539,44541,44542,44546,44547,44548,44549,44550,44551,44554,44556,44558,44559,44560,44561,44562,44563,44565,44566,44567,44568,44569,44570,44571,44572,null,null,null,null,null,null,44573,44574,44575,44576,44577,44578,44579,44580,44581,44582,44583,44584,44585,44586,44587,44588,44589,44590,44591,44594,44595,44597,44598,44601,44603,44604,null,null,null,null,null,null,44605,44606,44607,44610,44612,44615,44616,44617,44619,44623,44625,44626,44627,44629,44631,44632,44633,44634,44635,44638,44642,44643,44644,44646,44647,44650,44651,44653,44654,44655,44657,44658,44659,44660,44661,44662,44663,44666,44670,44671,44672,44673,44674,44675,44678,44679,44680,44681,44682,44683,44685,44686,44687,44688,44689,44690,44691,44692,44693,44694,44695,44696,44697,44698,44699,44700,44701,44702,44703,44704,44705,44706,44707,44708,44709,44710,44711,44712,44713,44714,44715,44716,44717,44718,44719,44720,44721,44722,44723,44724,44725,44726,44727,44728,44729,44730,44731,44735,44737,44738,44739,44741,44742,44743,44744,44745,44746,44747,44750,44754,44755,44756,44757,44758,44759,44762,44763,44765,44766,44767,44768,44769,44770,44771,44772,44773,44774,44775,44777,44778,44780,44782,44783,44784,44785,44786,44787,44789,44790,44791,44793,44794,44795,44797,44798,44799,44800,44801,44802,44803,44804,44805,null,null,null,null,null,null,44806,44809,44810,44811,44812,44814,44815,44817,44818,44819,44820,44821,44822,44823,44824,44825,44826,44827,44828,44829,44830,44831,44832,44833,44834,44835,null,null,null,null,null,null,44836,44837,44838,44839,44840,44841,44842,44843,44846,44847,44849,44851,44853,44854,44855,44856,44857,44858,44859,44862,44864,44868,44869,44870,44871,44874,44875,44876,44877,44878,44879,44881,44882,44883,44884,44885,44886,44887,44888,44889,44890,44891,44894,44895,44896,44897,44898,44899,44902,44903,44904,44905,44906,44907,44908,44909,44910,44911,44912,44913,44914,44915,44916,44917,44918,44919,44920,44922,44923,44924,44925,44926,44927,44929,44930,44931,44933,44934,44935,44937,44938,44939,44940,44941,44942,44943,44946,44947,44948,44950,44951,44952,44953,44954,44955,44957,44958,44959,44960,44961,44962,44963,44964,44965,44966,44967,44968,44969,44970,44971,44972,44973,44974,44975,44976,44977,44978,44979,44980,44981,44982,44983,44986,44987,44989,44990,44991,44993,44994,44995,44996,44997,44998,45002,45004,45007,45008,45009,45010,45011,45013,45014,45015,45016,45017,45018,45019,45021,45022,45023,45024,45025,null,null,null,null,null,null,45026,45027,45028,45029,45030,45031,45034,45035,45036,45037,45038,45039,45042,45043,45045,45046,45047,45049,45050,45051,45052,45053,45054,45055,45058,45059,null,null,null,null,null,null,45061,45062,45063,45064,45065,45066,45067,45069,45070,45071,45073,45074,45075,45077,45078,45079,45080,45081,45082,45083,45086,45087,45088,45089,45090,45091,45092,45093,45094,45095,45097,45098,45099,45100,45101,45102,45103,45104,45105,45106,45107,45108,45109,45110,45111,45112,45113,45114,45115,45116,45117,45118,45119,45120,45121,45122,45123,45126,45127,45129,45131,45133,45135,45136,45137,45138,45142,45144,45146,45147,45148,45150,45151,45152,45153,45154,45155,45156,45157,45158,45159,45160,45161,45162,45163,45164,45165,45166,45167,45168,45169,45170,45171,45172,45173,45174,45175,45176,45177,45178,45179,45182,45183,45185,45186,45187,45189,45190,45191,45192,45193,45194,45195,45198,45200,45202,45203,45204,45205,45206,45207,45211,45213,45214,45219,45220,45221,45222,45223,45226,45232,45234,45238,45239,45241,45242,45243,45245,45246,45247,45248,45249,45250,45251,45254,45258,45259,45260,45261,45262,45263,45266,null,null,null,null,null,null,45267,45269,45270,45271,45273,45274,45275,45276,45277,45278,45279,45281,45282,45283,45284,45286,45287,45288,45289,45290,45291,45292,45293,45294,45295,45296,null,null,null,null,null,null,45297,45298,45299,45300,45301,45302,45303,45304,45305,45306,45307,45308,45309,45310,45311,45312,45313,45314,45315,45316,45317,45318,45319,45322,45325,45326,45327,45329,45332,45333,45334,45335,45338,45342,45343,45344,45345,45346,45350,45351,45353,45354,45355,45357,45358,45359,45360,45361,45362,45363,45366,45370,45371,45372,45373,45374,45375,45378,45379,45381,45382,45383,45385,45386,45387,45388,45389,45390,45391,45394,45395,45398,45399,45401,45402,45403,45405,45406,45407,45409,45410,45411,45412,45413,45414,45415,45416,45417,45418,45419,45420,45421,45422,45423,45424,45425,45426,45427,45428,45429,45430,45431,45434,45435,45437,45438,45439,45441,45443,45444,45445,45446,45447,45450,45452,45454,45455,45456,45457,45461,45462,45463,45465,45466,45467,45469,45470,45471,45472,45473,45474,45475,45476,45477,45478,45479,45481,45482,45483,45484,45485,45486,45487,45488,45489,45490,45491,45492,45493,45494,45495,45496,null,null,null,null,null,null,45497,45498,45499,45500,45501,45502,45503,45504,45505,45506,45507,45508,45509,45510,45511,45512,45513,45514,45515,45517,45518,45519,45521,45522,45523,45525,null,null,null,null,null,null,45526,45527,45528,45529,45530,45531,45534,45536,45537,45538,45539,45540,45541,45542,45543,45546,45547,45549,45550,45551,45553,45554,45555,45556,45557,45558,45559,45560,45562,45564,45566,45567,45568,45569,45570,45571,45574,45575,45577,45578,45581,45582,45583,45584,45585,45586,45587,45590,45592,45594,45595,45596,45597,45598,45599,45601,45602,45603,45604,45605,45606,45607,45608,45609,45610,45611,45612,45613,45614,45615,45616,45617,45618,45619,45621,45622,45623,45624,45625,45626,45627,45629,45630,45631,45632,45633,45634,45635,45636,45637,45638,45639,45640,45641,45642,45643,45644,45645,45646,45647,45648,45649,45650,45651,45652,45653,45654,45655,45657,45658,45659,45661,45662,45663,45665,45666,45667,45668,45669,45670,45671,45674,45675,45676,45677,45678,45679,45680,45681,45682,45683,45686,45687,45688,45689,45690,45691,45693,45694,45695,45696,45697,45698,45699,45702,45703,45704,45706,45707,45708,45709,45710,null,null,null,null,null,null,45711,45714,45715,45717,45718,45719,45723,45724,45725,45726,45727,45730,45732,45735,45736,45737,45739,45741,45742,45743,45745,45746,45747,45749,45750,45751,null,null,null,null,null,null,45752,45753,45754,45755,45756,45757,45758,45759,45760,45761,45762,45763,45764,45765,45766,45767,45770,45771,45773,45774,45775,45777,45779,45780,45781,45782,45783,45786,45788,45790,45791,45792,45793,45795,45799,45801,45802,45808,45809,45810,45814,45820,45821,45822,45826,45827,45829,45830,45831,45833,45834,45835,45836,45837,45838,45839,45842,45846,45847,45848,45849,45850,45851,45853,45854,45855,45856,45857,45858,45859,45860,45861,45862,45863,45864,45865,45866,45867,45868,45869,45870,45871,45872,45873,45874,45875,45876,45877,45878,45879,45880,45881,45882,45883,45884,45885,45886,45887,45888,45889,45890,45891,45892,45893,45894,45895,45896,45897,45898,45899,45900,45901,45902,45903,45904,45905,45906,45907,45911,45913,45914,45917,45920,45921,45922,45923,45926,45928,45930,45932,45933,45935,45938,45939,45941,45942,45943,45945,45946,45947,45948,45949,45950,45951,45954,45958,45959,45960,45961,45962,45963,45965,null,null,null,null,null,null,45966,45967,45969,45970,45971,45973,45974,45975,45976,45977,45978,45979,45980,45981,45982,45983,45986,45987,45988,45989,45990,45991,45993,45994,45995,45997,null,null,null,null,null,null,45998,45999,46e3,46001,46002,46003,46004,46005,46006,46007,46008,46009,46010,46011,46012,46013,46014,46015,46016,46017,46018,46019,46022,46023,46025,46026,46029,46031,46033,46034,46035,46038,46040,46042,46044,46046,46047,46049,46050,46051,46053,46054,46055,46057,46058,46059,46060,46061,46062,46063,46064,46065,46066,46067,46068,46069,46070,46071,46072,46073,46074,46075,46077,46078,46079,46080,46081,46082,46083,46084,46085,46086,46087,46088,46089,46090,46091,46092,46093,46094,46095,46097,46098,46099,46100,46101,46102,46103,46105,46106,46107,46109,46110,46111,46113,46114,46115,46116,46117,46118,46119,46122,46124,46125,46126,46127,46128,46129,46130,46131,46133,46134,46135,46136,46137,46138,46139,46140,46141,46142,46143,46144,46145,46146,46147,46148,46149,46150,46151,46152,46153,46154,46155,46156,46157,46158,46159,46162,46163,46165,46166,46167,46169,46170,46171,46172,46173,46174,46175,46178,46180,46182,null,null,null,null,null,null,46183,46184,46185,46186,46187,46189,46190,46191,46192,46193,46194,46195,46196,46197,46198,46199,46200,46201,46202,46203,46204,46205,46206,46207,46209,46210,null,null,null,null,null,null,46211,46212,46213,46214,46215,46217,46218,46219,46220,46221,46222,46223,46224,46225,46226,46227,46228,46229,46230,46231,46232,46233,46234,46235,46236,46238,46239,46240,46241,46242,46243,46245,46246,46247,46249,46250,46251,46253,46254,46255,46256,46257,46258,46259,46260,46262,46264,46266,46267,46268,46269,46270,46271,46273,46274,46275,46277,46278,46279,46281,46282,46283,46284,46285,46286,46287,46289,46290,46291,46292,46294,46295,46296,46297,46298,46299,46302,46303,46305,46306,46309,46311,46312,46313,46314,46315,46318,46320,46322,46323,46324,46325,46326,46327,46329,46330,46331,46332,46333,46334,46335,46336,46337,46338,46339,46340,46341,46342,46343,46344,46345,46346,46347,46348,46349,46350,46351,46352,46353,46354,46355,46358,46359,46361,46362,46365,46366,46367,46368,46369,46370,46371,46374,46379,46380,46381,46382,46383,46386,46387,46389,46390,46391,46393,46394,46395,46396,46397,46398,46399,46402,46406,null,null,null,null,null,null,46407,46408,46409,46410,46414,46415,46417,46418,46419,46421,46422,46423,46424,46425,46426,46427,46430,46434,46435,46436,46437,46438,46439,46440,46441,46442,null,null,null,null,null,null,46443,46444,46445,46446,46447,46448,46449,46450,46451,46452,46453,46454,46455,46456,46457,46458,46459,46460,46461,46462,46463,46464,46465,46466,46467,46468,46469,46470,46471,46472,46473,46474,46475,46476,46477,46478,46479,46480,46481,46482,46483,46484,46485,46486,46487,46488,46489,46490,46491,46492,46493,46494,46495,46498,46499,46501,46502,46503,46505,46508,46509,46510,46511,46514,46518,46519,46520,46521,46522,46526,46527,46529,46530,46531,46533,46534,46535,46536,46537,46538,46539,46542,46546,46547,46548,46549,46550,46551,46553,46554,46555,46556,46557,46558,46559,46560,46561,46562,46563,46564,46565,46566,46567,46568,46569,46570,46571,46573,46574,46575,46576,46577,46578,46579,46580,46581,46582,46583,46584,46585,46586,46587,46588,46589,46590,46591,46592,46593,46594,46595,46596,46597,46598,46599,46600,46601,46602,46603,46604,46605,46606,46607,46610,46611,46613,46614,46615,46617,46618,46619,46620,46621,null,null,null,null,null,null,46622,46623,46624,46625,46626,46627,46628,46630,46631,46632,46633,46634,46635,46637,46638,46639,46640,46641,46642,46643,46645,46646,46647,46648,46649,46650,null,null,null,null,null,null,46651,46652,46653,46654,46655,46656,46657,46658,46659,46660,46661,46662,46663,46665,46666,46667,46668,46669,46670,46671,46672,46673,46674,46675,46676,46677,46678,46679,46680,46681,46682,46683,46684,46685,46686,46687,46688,46689,46690,46691,46693,46694,46695,46697,46698,46699,46700,46701,46702,46703,46704,46705,46706,46707,46708,46709,46710,46711,46712,46713,46714,46715,46716,46717,46718,46719,46720,46721,46722,46723,46724,46725,46726,46727,46728,46729,46730,46731,46732,46733,46734,46735,46736,46737,46738,46739,46740,46741,46742,46743,46744,46745,46746,46747,46750,46751,46753,46754,46755,46757,46758,46759,46760,46761,46762,46765,46766,46767,46768,46770,46771,46772,46773,46774,46775,46776,46777,46778,46779,46780,46781,46782,46783,46784,46785,46786,46787,46788,46789,46790,46791,46792,46793,46794,46795,46796,46797,46798,46799,46800,46801,46802,46803,46805,46806,46807,46808,46809,46810,46811,46812,46813,null,null,null,null,null,null,46814,46815,46816,46817,46818,46819,46820,46821,46822,46823,46824,46825,46826,46827,46828,46829,46830,46831,46833,46834,46835,46837,46838,46839,46841,46842,null,null,null,null,null,null,46843,46844,46845,46846,46847,46850,46851,46852,46854,46855,46856,46857,46858,46859,46860,46861,46862,46863,46864,46865,46866,46867,46868,46869,46870,46871,46872,46873,46874,46875,46876,46877,46878,46879,46880,46881,46882,46883,46884,46885,46886,46887,46890,46891,46893,46894,46897,46898,46899,46900,46901,46902,46903,46906,46908,46909,46910,46911,46912,46913,46914,46915,46917,46918,46919,46921,46922,46923,46925,46926,46927,46928,46929,46930,46931,46934,46935,46936,46937,46938,46939,46940,46941,46942,46943,46945,46946,46947,46949,46950,46951,46953,46954,46955,46956,46957,46958,46959,46962,46964,46966,46967,46968,46969,46970,46971,46974,46975,46977,46978,46979,46981,46982,46983,46984,46985,46986,46987,46990,46995,46996,46997,47002,47003,47005,47006,47007,47009,47010,47011,47012,47013,47014,47015,47018,47022,47023,47024,47025,47026,47027,47030,47031,47033,47034,47035,47036,47037,47038,47039,47040,47041,null,null,null,null,null,null,47042,47043,47044,47045,47046,47048,47050,47051,47052,47053,47054,47055,47056,47057,47058,47059,47060,47061,47062,47063,47064,47065,47066,47067,47068,47069,null,null,null,null,null,null,47070,47071,47072,47073,47074,47075,47076,47077,47078,47079,47080,47081,47082,47083,47086,47087,47089,47090,47091,47093,47094,47095,47096,47097,47098,47099,47102,47106,47107,47108,47109,47110,47114,47115,47117,47118,47119,47121,47122,47123,47124,47125,47126,47127,47130,47132,47134,47135,47136,47137,47138,47139,47142,47143,47145,47146,47147,47149,47150,47151,47152,47153,47154,47155,47158,47162,47163,47164,47165,47166,47167,47169,47170,47171,47173,47174,47175,47176,47177,47178,47179,47180,47181,47182,47183,47184,47186,47188,47189,47190,47191,47192,47193,47194,47195,47198,47199,47201,47202,47203,47205,47206,47207,47208,47209,47210,47211,47214,47216,47218,47219,47220,47221,47222,47223,47225,47226,47227,47229,47230,47231,47232,47233,47234,47235,47236,47237,47238,47239,47240,47241,47242,47243,47244,47246,47247,47248,47249,47250,47251,47252,47253,47254,47255,47256,47257,47258,47259,47260,47261,47262,47263,null,null,null,null,null,null,47264,47265,47266,47267,47268,47269,47270,47271,47273,47274,47275,47276,47277,47278,47279,47281,47282,47283,47285,47286,47287,47289,47290,47291,47292,47293,null,null,null,null,null,null,47294,47295,47298,47300,47302,47303,47304,47305,47306,47307,47309,47310,47311,47313,47314,47315,47317,47318,47319,47320,47321,47322,47323,47324,47326,47328,47330,47331,47332,47333,47334,47335,47338,47339,47341,47342,47343,47345,47346,47347,47348,47349,47350,47351,47354,47356,47358,47359,47360,47361,47362,47363,47365,47366,47367,47368,47369,47370,47371,47372,47373,47374,47375,47376,47377,47378,47379,47380,47381,47382,47383,47385,47386,47387,47388,47389,47390,47391,47393,47394,47395,47396,47397,47398,47399,47400,47401,47402,47403,47404,47405,47406,47407,47408,47409,47410,47411,47412,47413,47414,47415,47416,47417,47418,47419,47422,47423,47425,47426,47427,47429,47430,47431,47432,47433,47434,47435,47437,47438,47440,47442,47443,47444,47445,47446,47447,47450,47451,47453,47454,47455,47457,47458,47459,47460,47461,47462,47463,47466,47468,47470,47471,47472,47473,47474,47475,47478,47479,47481,47482,47483,47485,null,null,null,null,null,null,47486,47487,47488,47489,47490,47491,47494,47496,47499,47500,47503,47504,47505,47506,47507,47508,47509,47510,47511,47512,47513,47514,47515,47516,47517,47518,null,null,null,null,null,null,47519,47520,47521,47522,47523,47524,47525,47526,47527,47528,47529,47530,47531,47534,47535,47537,47538,47539,47541,47542,47543,47544,47545,47546,47547,47550,47552,47554,47555,47556,47557,47558,47559,47562,47563,47565,47571,47572,47573,47574,47575,47578,47580,47583,47584,47586,47590,47591,47593,47594,47595,47597,47598,47599,47600,47601,47602,47603,47606,47611,47612,47613,47614,47615,47618,47619,47620,47621,47622,47623,47625,47626,47627,47628,47629,47630,47631,47632,47633,47634,47635,47636,47638,47639,47640,47641,47642,47643,47644,47645,47646,47647,47648,47649,47650,47651,47652,47653,47654,47655,47656,47657,47658,47659,47660,47661,47662,47663,47664,47665,47666,47667,47668,47669,47670,47671,47674,47675,47677,47678,47679,47681,47683,47684,47685,47686,47687,47690,47692,47695,47696,47697,47698,47702,47703,47705,47706,47707,47709,47710,47711,47712,47713,47714,47715,47718,47722,47723,47724,47725,47726,47727,null,null,null,null,null,null,47730,47731,47733,47734,47735,47737,47738,47739,47740,47741,47742,47743,47744,47745,47746,47750,47752,47753,47754,47755,47757,47758,47759,47760,47761,47762,null,null,null,null,null,null,47763,47764,47765,47766,47767,47768,47769,47770,47771,47772,47773,47774,47775,47776,47777,47778,47779,47780,47781,47782,47783,47786,47789,47790,47791,47793,47795,47796,47797,47798,47799,47802,47804,47806,47807,47808,47809,47810,47811,47813,47814,47815,47817,47818,47819,47820,47821,47822,47823,47824,47825,47826,47827,47828,47829,47830,47831,47834,47835,47836,47837,47838,47839,47840,47841,47842,47843,47844,47845,47846,47847,47848,47849,47850,47851,47852,47853,47854,47855,47856,47857,47858,47859,47860,47861,47862,47863,47864,47865,47866,47867,47869,47870,47871,47873,47874,47875,47877,47878,47879,47880,47881,47882,47883,47884,47886,47888,47890,47891,47892,47893,47894,47895,47897,47898,47899,47901,47902,47903,47905,47906,47907,47908,47909,47910,47911,47912,47914,47916,47917,47918,47919,47920,47921,47922,47923,47927,47929,47930,47935,47936,47937,47938,47939,47942,47944,47946,47947,47948,47950,47953,47954,null,null,null,null,null,null,47955,47957,47958,47959,47961,47962,47963,47964,47965,47966,47967,47968,47970,47972,47973,47974,47975,47976,47977,47978,47979,47981,47982,47983,47984,47985,null,null,null,null,null,null,47986,47987,47988,47989,47990,47991,47992,47993,47994,47995,47996,47997,47998,47999,48e3,48001,48002,48003,48004,48005,48006,48007,48009,48010,48011,48013,48014,48015,48017,48018,48019,48020,48021,48022,48023,48024,48025,48026,48027,48028,48029,48030,48031,48032,48033,48034,48035,48037,48038,48039,48041,48042,48043,48045,48046,48047,48048,48049,48050,48051,48053,48054,48056,48057,48058,48059,48060,48061,48062,48063,48065,48066,48067,48069,48070,48071,48073,48074,48075,48076,48077,48078,48079,48081,48082,48084,48085,48086,48087,48088,48089,48090,48091,48092,48093,48094,48095,48096,48097,48098,48099,48100,48101,48102,48103,48104,48105,48106,48107,48108,48109,48110,48111,48112,48113,48114,48115,48116,48117,48118,48119,48122,48123,48125,48126,48129,48131,48132,48133,48134,48135,48138,48142,48144,48146,48147,48153,48154,48160,48161,48162,48163,48166,48168,48170,48171,48172,48174,48175,48178,48179,48181,null,null,null,null,null,null,48182,48183,48185,48186,48187,48188,48189,48190,48191,48194,48198,48199,48200,48202,48203,48206,48207,48209,48210,48211,48212,48213,48214,48215,48216,48217,null,null,null,null,null,null,48218,48219,48220,48222,48223,48224,48225,48226,48227,48228,48229,48230,48231,48232,48233,48234,48235,48236,48237,48238,48239,48240,48241,48242,48243,48244,48245,48246,48247,48248,48249,48250,48251,48252,48253,48254,48255,48256,48257,48258,48259,48262,48263,48265,48266,48269,48271,48272,48273,48274,48275,48278,48280,48283,48284,48285,48286,48287,48290,48291,48293,48294,48297,48298,48299,48300,48301,48302,48303,48306,48310,48311,48312,48313,48314,48315,48318,48319,48321,48322,48323,48325,48326,48327,48328,48329,48330,48331,48332,48334,48338,48339,48340,48342,48343,48345,48346,48347,48349,48350,48351,48352,48353,48354,48355,48356,48357,48358,48359,48360,48361,48362,48363,48364,48365,48366,48367,48368,48369,48370,48371,48375,48377,48378,48379,48381,48382,48383,48384,48385,48386,48387,48390,48392,48394,48395,48396,48397,48398,48399,48401,48402,48403,48405,48406,48407,48408,48409,48410,48411,48412,48413,null,null,null,null,null,null,48414,48415,48416,48417,48418,48419,48421,48422,48423,48424,48425,48426,48427,48429,48430,48431,48432,48433,48434,48435,48436,48437,48438,48439,48440,48441,null,null,null,null,null,null,48442,48443,48444,48445,48446,48447,48449,48450,48451,48452,48453,48454,48455,48458,48459,48461,48462,48463,48465,48466,48467,48468,48469,48470,48471,48474,48475,48476,48477,48478,48479,48480,48481,48482,48483,48485,48486,48487,48489,48490,48491,48492,48493,48494,48495,48496,48497,48498,48499,48500,48501,48502,48503,48504,48505,48506,48507,48508,48509,48510,48511,48514,48515,48517,48518,48523,48524,48525,48526,48527,48530,48532,48534,48535,48536,48539,48541,48542,48543,48544,48545,48546,48547,48549,48550,48551,48552,48553,48554,48555,48556,48557,48558,48559,48561,48562,48563,48564,48565,48566,48567,48569,48570,48571,48572,48573,48574,48575,48576,48577,48578,48579,48580,48581,48582,48583,48584,48585,48586,48587,48588,48589,48590,48591,48592,48593,48594,48595,48598,48599,48601,48602,48603,48605,48606,48607,48608,48609,48610,48611,48612,48613,48614,48615,48616,48618,48619,48620,48621,48622,48623,48625,null,null,null,null,null,null,48626,48627,48629,48630,48631,48633,48634,48635,48636,48637,48638,48639,48641,48642,48644,48646,48647,48648,48649,48650,48651,48654,48655,48657,48658,48659,null,null,null,null,null,null,48661,48662,48663,48664,48665,48666,48667,48670,48672,48673,48674,48675,48676,48677,48678,48679,48680,48681,48682,48683,48684,48685,48686,48687,48688,48689,48690,48691,48692,48693,48694,48695,48696,48697,48698,48699,48700,48701,48702,48703,48704,48705,48706,48707,48710,48711,48713,48714,48715,48717,48719,48720,48721,48722,48723,48726,48728,48732,48733,48734,48735,48738,48739,48741,48742,48743,48745,48747,48748,48749,48750,48751,48754,48758,48759,48760,48761,48762,48766,48767,48769,48770,48771,48773,48774,48775,48776,48777,48778,48779,48782,48786,48787,48788,48789,48790,48791,48794,48795,48796,48797,48798,48799,48800,48801,48802,48803,48804,48805,48806,48807,48809,48810,48811,48812,48813,48814,48815,48816,48817,48818,48819,48820,48821,48822,48823,48824,48825,48826,48827,48828,48829,48830,48831,48832,48833,48834,48835,48836,48837,48838,48839,48840,48841,48842,48843,48844,48845,48846,48847,48850,48851,null,null,null,null,null,null,48853,48854,48857,48858,48859,48860,48861,48862,48863,48865,48866,48870,48871,48872,48873,48874,48875,48877,48878,48879,48880,48881,48882,48883,48884,48885,null,null,null,null,null,null,48886,48887,48888,48889,48890,48891,48892,48893,48894,48895,48896,48898,48899,48900,48901,48902,48903,48906,48907,48908,48909,48910,48911,48912,48913,48914,48915,48916,48917,48918,48919,48922,48926,48927,48928,48929,48930,48931,48932,48933,48934,48935,48936,48937,48938,48939,48940,48941,48942,48943,48944,48945,48946,48947,48948,48949,48950,48951,48952,48953,48954,48955,48956,48957,48958,48959,48962,48963,48965,48966,48967,48969,48970,48971,48972,48973,48974,48975,48978,48979,48980,48982,48983,48984,48985,48986,48987,48988,48989,48990,48991,48992,48993,48994,48995,48996,48997,48998,48999,49e3,49001,49002,49003,49004,49005,49006,49007,49008,49009,49010,49011,49012,49013,49014,49015,49016,49017,49018,49019,49020,49021,49022,49023,49024,49025,49026,49027,49028,49029,49030,49031,49032,49033,49034,49035,49036,49037,49038,49039,49040,49041,49042,49043,49045,49046,49047,49048,49049,49050,49051,49052,49053,null,null,null,null,null,null,49054,49055,49056,49057,49058,49059,49060,49061,49062,49063,49064,49065,49066,49067,49068,49069,49070,49071,49073,49074,49075,49076,49077,49078,49079,49080,null,null,null,null,null,null,49081,49082,49083,49084,49085,49086,49087,49088,49089,49090,49091,49092,49094,49095,49096,49097,49098,49099,49102,49103,49105,49106,49107,49109,49110,49111,49112,49113,49114,49115,49117,49118,49120,49122,49123,49124,49125,49126,49127,49128,49129,49130,49131,49132,49133,49134,49135,49136,49137,49138,49139,49140,49141,49142,49143,49144,49145,49146,49147,49148,49149,49150,49151,49152,49153,49154,49155,49156,49157,49158,49159,49160,49161,49162,49163,49164,49165,49166,49167,49168,49169,49170,49171,49172,49173,49174,49175,49176,49177,49178,49179,49180,49181,49182,49183,49184,49185,49186,49187,49188,49189,49190,49191,49192,49193,49194,49195,49196,49197,49198,49199,49200,49201,49202,49203,49204,49205,49206,49207,49208,49209,49210,49211,49213,49214,49215,49216,49217,49218,49219,49220,49221,49222,49223,49224,49225,49226,49227,49228,49229,49230,49231,49232,49234,49235,49236,49237,49238,49239,49241,49242,49243,null,null,null,null,null,null,49245,49246,49247,49249,49250,49251,49252,49253,49254,49255,49258,49259,49260,49261,49262,49263,49264,49265,49266,49267,49268,49269,49270,49271,49272,49273,null,null,null,null,null,null,49274,49275,49276,49277,49278,49279,49280,49281,49282,49283,49284,49285,49286,49287,49288,49289,49290,49291,49292,49293,49294,49295,49298,49299,49301,49302,49303,49305,49306,49307,49308,49309,49310,49311,49314,49316,49318,49319,49320,49321,49322,49323,49326,49329,49330,49335,49336,49337,49338,49339,49342,49346,49347,49348,49350,49351,49354,49355,49357,49358,49359,49361,49362,49363,49364,49365,49366,49367,49370,49374,49375,49376,49377,49378,49379,49382,49383,49385,49386,49387,49389,49390,49391,49392,49393,49394,49395,49398,49400,49402,49403,49404,49405,49406,49407,49409,49410,49411,49413,49414,49415,49417,49418,49419,49420,49421,49422,49423,49425,49426,49427,49428,49430,49431,49432,49433,49434,49435,49441,49442,49445,49448,49449,49450,49451,49454,49458,49459,49460,49461,49463,49466,49467,49469,49470,49471,49473,49474,49475,49476,49477,49478,49479,49482,49486,49487,49488,49489,49490,49491,49494,49495,null,null,null,null,null,null,49497,49498,49499,49501,49502,49503,49504,49505,49506,49507,49510,49514,49515,49516,49517,49518,49519,49521,49522,49523,49525,49526,49527,49529,49530,49531,null,null,null,null,null,null,49532,49533,49534,49535,49536,49537,49538,49539,49540,49542,49543,49544,49545,49546,49547,49551,49553,49554,49555,49557,49559,49560,49561,49562,49563,49566,49568,49570,49571,49572,49574,49575,49578,49579,49581,49582,49583,49585,49586,49587,49588,49589,49590,49591,49592,49593,49594,49595,49596,49598,49599,49600,49601,49602,49603,49605,49606,49607,49609,49610,49611,49613,49614,49615,49616,49617,49618,49619,49621,49622,49625,49626,49627,49628,49629,49630,49631,49633,49634,49635,49637,49638,49639,49641,49642,49643,49644,49645,49646,49647,49650,49652,49653,49654,49655,49656,49657,49658,49659,49662,49663,49665,49666,49667,49669,49670,49671,49672,49673,49674,49675,49678,49680,49682,49683,49684,49685,49686,49687,49690,49691,49693,49694,49697,49698,49699,49700,49701,49702,49703,49706,49708,49710,49712,49715,49717,49718,49719,49720,49721,49722,49723,49724,49725,49726,49727,49728,49729,49730,49731,49732,49733,null,null,null,null,null,null,49734,49735,49737,49738,49739,49740,49741,49742,49743,49746,49747,49749,49750,49751,49753,49754,49755,49756,49757,49758,49759,49761,49762,49763,49764,49766,null,null,null,null,null,null,49767,49768,49769,49770,49771,49774,49775,49777,49778,49779,49781,49782,49783,49784,49785,49786,49787,49790,49792,49794,49795,49796,49797,49798,49799,49802,49803,49804,49805,49806,49807,49809,49810,49811,49812,49813,49814,49815,49817,49818,49820,49822,49823,49824,49825,49826,49827,49830,49831,49833,49834,49835,49838,49839,49840,49841,49842,49843,49846,49848,49850,49851,49852,49853,49854,49855,49856,49857,49858,49859,49860,49861,49862,49863,49864,49865,49866,49867,49868,49869,49870,49871,49872,49873,49874,49875,49876,49877,49878,49879,49880,49881,49882,49883,49886,49887,49889,49890,49893,49894,49895,49896,49897,49898,49902,49904,49906,49907,49908,49909,49911,49914,49917,49918,49919,49921,49922,49923,49924,49925,49926,49927,49930,49931,49934,49935,49936,49937,49938,49942,49943,49945,49946,49947,49949,49950,49951,49952,49953,49954,49955,49958,49959,49962,49963,49964,49965,49966,49967,49968,49969,49970,null,null,null,null,null,null,49971,49972,49973,49974,49975,49976,49977,49978,49979,49980,49981,49982,49983,49984,49985,49986,49987,49988,49990,49991,49992,49993,49994,49995,49996,49997,null,null,null,null,null,null,49998,49999,5e4,50001,50002,50003,50004,50005,50006,50007,50008,50009,50010,50011,50012,50013,50014,50015,50016,50017,50018,50019,50020,50021,50022,50023,50026,50027,50029,50030,50031,50033,50035,50036,50037,50038,50039,50042,50043,50046,50047,50048,50049,50050,50051,50053,50054,50055,50057,50058,50059,50061,50062,50063,50064,50065,50066,50067,50068,50069,50070,50071,50072,50073,50074,50075,50076,50077,50078,50079,50080,50081,50082,50083,50084,50085,50086,50087,50088,50089,50090,50091,50092,50093,50094,50095,50096,50097,50098,50099,50100,50101,50102,50103,50104,50105,50106,50107,50108,50109,50110,50111,50113,50114,50115,50116,50117,50118,50119,50120,50121,50122,50123,50124,50125,50126,50127,50128,50129,50130,50131,50132,50133,50134,50135,50138,50139,50141,50142,50145,50147,50148,50149,50150,50151,50154,50155,50156,50158,50159,50160,50161,50162,50163,50166,50167,50169,50170,50171,50172,50173,50174,null,null,null,null,null,null,50175,50176,50177,50178,50179,50180,50181,50182,50183,50185,50186,50187,50188,50189,50190,50191,50193,50194,50195,50196,50197,50198,50199,50200,50201,50202,null,null,null,null,null,null,50203,50204,50205,50206,50207,50208,50209,50210,50211,50213,50214,50215,50216,50217,50218,50219,50221,50222,50223,50225,50226,50227,50229,50230,50231,50232,50233,50234,50235,50238,50239,50240,50241,50242,50243,50244,50245,50246,50247,50249,50250,50251,50252,50253,50254,50255,50256,50257,50258,50259,50260,50261,50262,50263,50264,50265,50266,50267,50268,50269,50270,50271,50272,50273,50274,50275,50278,50279,50281,50282,50283,50285,50286,50287,50288,50289,50290,50291,50294,50295,50296,50298,50299,50300,50301,50302,50303,50305,50306,50307,50308,50309,50310,50311,50312,50313,50314,50315,50316,50317,50318,50319,50320,50321,50322,50323,50325,50326,50327,50328,50329,50330,50331,50333,50334,50335,50336,50337,50338,50339,50340,50341,50342,50343,50344,50345,50346,50347,50348,50349,50350,50351,50352,50353,50354,50355,50356,50357,50358,50359,50361,50362,50363,50365,50366,50367,50368,50369,50370,50371,50372,50373,null,null,null,null,null,null,50374,50375,50376,50377,50378,50379,50380,50381,50382,50383,50384,50385,50386,50387,50388,50389,50390,50391,50392,50393,50394,50395,50396,50397,50398,50399,null,null,null,null,null,null,50400,50401,50402,50403,50404,50405,50406,50407,50408,50410,50411,50412,50413,50414,50415,50418,50419,50421,50422,50423,50425,50427,50428,50429,50430,50434,50435,50436,50437,50438,50439,50440,50441,50442,50443,50445,50446,50447,50449,50450,50451,50453,50454,50455,50456,50457,50458,50459,50461,50462,50463,50464,50465,50466,50467,50468,50469,50470,50471,50474,50475,50477,50478,50479,50481,50482,50483,50484,50485,50486,50487,50490,50492,50494,50495,50496,50497,50498,50499,50502,50503,50507,50511,50512,50513,50514,50518,50522,50523,50524,50527,50530,50531,50533,50534,50535,50537,50538,50539,50540,50541,50542,50543,50546,50550,50551,50552,50553,50554,50555,50558,50559,50561,50562,50563,50565,50566,50568,50569,50570,50571,50574,50576,50578,50579,50580,50582,50585,50586,50587,50589,50590,50591,50593,50594,50595,50596,50597,50598,50599,50600,50602,50603,50604,50605,50606,50607,50608,50609,50610,50611,50614,null,null,null,null,null,null,50615,50618,50623,50624,50625,50626,50627,50635,50637,50639,50642,50643,50645,50646,50647,50649,50650,50651,50652,50653,50654,50655,50658,50660,50662,50663,null,null,null,null,null,null,50664,50665,50666,50667,50671,50673,50674,50675,50677,50680,50681,50682,50683,50690,50691,50692,50697,50698,50699,50701,50702,50703,50705,50706,50707,50708,50709,50710,50711,50714,50717,50718,50719,50720,50721,50722,50723,50726,50727,50729,50730,50731,50735,50737,50738,50742,50744,50746,50748,50749,50750,50751,50754,50755,50757,50758,50759,50761,50762,50763,50764,50765,50766,50767,50770,50774,50775,50776,50777,50778,50779,50782,50783,50785,50786,50787,50788,50789,50790,50791,50792,50793,50794,50795,50797,50798,50800,50802,50803,50804,50805,50806,50807,50810,50811,50813,50814,50815,50817,50818,50819,50820,50821,50822,50823,50826,50828,50830,50831,50832,50833,50834,50835,50838,50839,50841,50842,50843,50845,50846,50847,50848,50849,50850,50851,50854,50856,50858,50859,50860,50861,50862,50863,50866,50867,50869,50870,50871,50875,50876,50877,50878,50879,50882,50884,50886,50887,50888,50889,50890,50891,50894,null,null,null,null,null,null,50895,50897,50898,50899,50901,50902,50903,50904,50905,50906,50907,50910,50911,50914,50915,50916,50917,50918,50919,50922,50923,50925,50926,50927,50929,50930,null,null,null,null,null,null,50931,50932,50933,50934,50935,50938,50939,50940,50942,50943,50944,50945,50946,50947,50950,50951,50953,50954,50955,50957,50958,50959,50960,50961,50962,50963,50966,50968,50970,50971,50972,50973,50974,50975,50978,50979,50981,50982,50983,50985,50986,50987,50988,50989,50990,50991,50994,50996,50998,51e3,51001,51002,51003,51006,51007,51009,51010,51011,51013,51014,51015,51016,51017,51019,51022,51024,51033,51034,51035,51037,51038,51039,51041,51042,51043,51044,51045,51046,51047,51049,51050,51052,51053,51054,51055,51056,51057,51058,51059,51062,51063,51065,51066,51067,51071,51072,51073,51074,51078,51083,51084,51085,51087,51090,51091,51093,51097,51099,51100,51101,51102,51103,51106,51111,51112,51113,51114,51115,51118,51119,51121,51122,51123,51125,51126,51127,51128,51129,51130,51131,51134,51138,51139,51140,51141,51142,51143,51146,51147,51149,51151,51153,51154,51155,51156,51157,51158,51159,51161,51162,51163,51164,null,null,null,null,null,null,51166,51167,51168,51169,51170,51171,51173,51174,51175,51177,51178,51179,51181,51182,51183,51184,51185,51186,51187,51188,51189,51190,51191,51192,51193,51194,null,null,null,null,null,null,51195,51196,51197,51198,51199,51202,51203,51205,51206,51207,51209,51211,51212,51213,51214,51215,51218,51220,51223,51224,51225,51226,51227,51230,51231,51233,51234,51235,51237,51238,51239,51240,51241,51242,51243,51246,51248,51250,51251,51252,51253,51254,51255,51257,51258,51259,51261,51262,51263,51265,51266,51267,51268,51269,51270,51271,51274,51275,51278,51279,51280,51281,51282,51283,51285,51286,51287,51288,51289,51290,51291,51292,51293,51294,51295,51296,51297,51298,51299,51300,51301,51302,51303,51304,51305,51306,51307,51308,51309,51310,51311,51314,51315,51317,51318,51319,51321,51323,51324,51325,51326,51327,51330,51332,51336,51337,51338,51342,51343,51344,51345,51346,51347,51349,51350,51351,51352,51353,51354,51355,51356,51358,51360,51362,51363,51364,51365,51366,51367,51369,51370,51371,51372,51373,51374,51375,51376,51377,51378,51379,51380,51381,51382,51383,51384,51385,51386,51387,51390,51391,51392,51393,null,null,null,null,null,null,51394,51395,51397,51398,51399,51401,51402,51403,51405,51406,51407,51408,51409,51410,51411,51414,51416,51418,51419,51420,51421,51422,51423,51426,51427,51429,null,null,null,null,null,null,51430,51431,51432,51433,51434,51435,51436,51437,51438,51439,51440,51441,51442,51443,51444,51446,51447,51448,51449,51450,51451,51454,51455,51457,51458,51459,51463,51464,51465,51466,51467,51470,12288,12289,12290,183,8229,8230,168,12291,173,8213,8741,65340,8764,8216,8217,8220,8221,12308,12309,12296,12297,12298,12299,12300,12301,12302,12303,12304,12305,177,215,247,8800,8804,8805,8734,8756,176,8242,8243,8451,8491,65504,65505,65509,9794,9792,8736,8869,8978,8706,8711,8801,8786,167,8251,9734,9733,9675,9679,9678,9671,9670,9633,9632,9651,9650,9661,9660,8594,8592,8593,8595,8596,12307,8810,8811,8730,8765,8733,8757,8747,8748,8712,8715,8838,8839,8834,8835,8746,8745,8743,8744,65506,51472,51474,51475,51476,51477,51478,51479,51481,51482,51483,51484,51485,51486,51487,51488,51489,51490,51491,51492,51493,51494,51495,51496,51497,51498,51499,null,null,null,null,null,null,51501,51502,51503,51504,51505,51506,51507,51509,51510,51511,51512,51513,51514,51515,51516,51517,51518,51519,51520,51521,51522,51523,51524,51525,51526,51527,null,null,null,null,null,null,51528,51529,51530,51531,51532,51533,51534,51535,51538,51539,51541,51542,51543,51545,51546,51547,51548,51549,51550,51551,51554,51556,51557,51558,51559,51560,51561,51562,51563,51565,51566,51567,8658,8660,8704,8707,180,65374,711,728,733,730,729,184,731,161,191,720,8750,8721,8719,164,8457,8240,9665,9664,9655,9654,9828,9824,9825,9829,9831,9827,8857,9672,9635,9680,9681,9618,9636,9637,9640,9639,9638,9641,9832,9743,9742,9756,9758,182,8224,8225,8597,8599,8601,8598,8600,9837,9833,9834,9836,12927,12828,8470,13255,8482,13250,13272,8481,8364,174,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,51569,51570,51571,51573,51574,51575,51576,51577,51578,51579,51581,51582,51583,51584,51585,51586,51587,51588,51589,51590,51591,51594,51595,51597,51598,51599,null,null,null,null,null,null,51601,51602,51603,51604,51605,51606,51607,51610,51612,51614,51615,51616,51617,51618,51619,51620,51621,51622,51623,51624,51625,51626,51627,51628,51629,51630,null,null,null,null,null,null,51631,51632,51633,51634,51635,51636,51637,51638,51639,51640,51641,51642,51643,51644,51645,51646,51647,51650,51651,51653,51654,51657,51659,51660,51661,51662,51663,51666,51668,51671,51672,51675,65281,65282,65283,65284,65285,65286,65287,65288,65289,65290,65291,65292,65293,65294,65295,65296,65297,65298,65299,65300,65301,65302,65303,65304,65305,65306,65307,65308,65309,65310,65311,65312,65313,65314,65315,65316,65317,65318,65319,65320,65321,65322,65323,65324,65325,65326,65327,65328,65329,65330,65331,65332,65333,65334,65335,65336,65337,65338,65339,65510,65341,65342,65343,65344,65345,65346,65347,65348,65349,65350,65351,65352,65353,65354,65355,65356,65357,65358,65359,65360,65361,65362,65363,65364,65365,65366,65367,65368,65369,65370,65371,65372,65373,65507,51678,51679,51681,51683,51685,51686,51688,51689,51690,51691,51694,51698,51699,51700,51701,51702,51703,51706,51707,51709,51710,51711,51713,51714,51715,51716,null,null,null,null,null,null,51717,51718,51719,51722,51726,51727,51728,51729,51730,51731,51733,51734,51735,51737,51738,51739,51740,51741,51742,51743,51744,51745,51746,51747,51748,51749,null,null,null,null,null,null,51750,51751,51752,51754,51755,51756,51757,51758,51759,51760,51761,51762,51763,51764,51765,51766,51767,51768,51769,51770,51771,51772,51773,51774,51775,51776,51777,51778,51779,51780,51781,51782,12593,12594,12595,12596,12597,12598,12599,12600,12601,12602,12603,12604,12605,12606,12607,12608,12609,12610,12611,12612,12613,12614,12615,12616,12617,12618,12619,12620,12621,12622,12623,12624,12625,12626,12627,12628,12629,12630,12631,12632,12633,12634,12635,12636,12637,12638,12639,12640,12641,12642,12643,12644,12645,12646,12647,12648,12649,12650,12651,12652,12653,12654,12655,12656,12657,12658,12659,12660,12661,12662,12663,12664,12665,12666,12667,12668,12669,12670,12671,12672,12673,12674,12675,12676,12677,12678,12679,12680,12681,12682,12683,12684,12685,12686,51783,51784,51785,51786,51787,51790,51791,51793,51794,51795,51797,51798,51799,51800,51801,51802,51803,51806,51810,51811,51812,51813,51814,51815,51817,51818,null,null,null,null,null,null,51819,51820,51821,51822,51823,51824,51825,51826,51827,51828,51829,51830,51831,51832,51833,51834,51835,51836,51838,51839,51840,51841,51842,51843,51845,51846,null,null,null,null,null,null,51847,51848,51849,51850,51851,51852,51853,51854,51855,51856,51857,51858,51859,51860,51861,51862,51863,51865,51866,51867,51868,51869,51870,51871,51872,51873,51874,51875,51876,51877,51878,51879,8560,8561,8562,8563,8564,8565,8566,8567,8568,8569,null,null,null,null,null,8544,8545,8546,8547,8548,8549,8550,8551,8552,8553,null,null,null,null,null,null,null,913,914,915,916,917,918,919,920,921,922,923,924,925,926,927,928,929,931,932,933,934,935,936,937,null,null,null,null,null,null,null,null,945,946,947,948,949,950,951,952,953,954,955,956,957,958,959,960,961,963,964,965,966,967,968,969,null,null,null,null,null,null,51880,51881,51882,51883,51884,51885,51886,51887,51888,51889,51890,51891,51892,51893,51894,51895,51896,51897,51898,51899,51902,51903,51905,51906,51907,51909,null,null,null,null,null,null,51910,51911,51912,51913,51914,51915,51918,51920,51922,51924,51925,51926,51927,51930,51931,51932,51933,51934,51935,51937,51938,51939,51940,51941,51942,51943,null,null,null,null,null,null,51944,51945,51946,51947,51949,51950,51951,51952,51953,51954,51955,51957,51958,51959,51960,51961,51962,51963,51964,51965,51966,51967,51968,51969,51970,51971,51972,51973,51974,51975,51977,51978,9472,9474,9484,9488,9496,9492,9500,9516,9508,9524,9532,9473,9475,9487,9491,9499,9495,9507,9523,9515,9531,9547,9504,9519,9512,9527,9535,9501,9520,9509,9528,9538,9490,9489,9498,9497,9494,9493,9486,9485,9502,9503,9505,9506,9510,9511,9513,9514,9517,9518,9521,9522,9525,9526,9529,9530,9533,9534,9536,9537,9539,9540,9541,9542,9543,9544,9545,9546,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,51979,51980,51981,51982,51983,51985,51986,51987,51989,51990,51991,51993,51994,51995,51996,51997,51998,51999,52002,52003,52004,52005,52006,52007,52008,52009,null,null,null,null,null,null,52010,52011,52012,52013,52014,52015,52016,52017,52018,52019,52020,52021,52022,52023,52024,52025,52026,52027,52028,52029,52030,52031,52032,52034,52035,52036,null,null,null,null,null,null,52037,52038,52039,52042,52043,52045,52046,52047,52049,52050,52051,52052,52053,52054,52055,52058,52059,52060,52062,52063,52064,52065,52066,52067,52069,52070,52071,52072,52073,52074,52075,52076,13205,13206,13207,8467,13208,13252,13219,13220,13221,13222,13209,13210,13211,13212,13213,13214,13215,13216,13217,13218,13258,13197,13198,13199,13263,13192,13193,13256,13223,13224,13232,13233,13234,13235,13236,13237,13238,13239,13240,13241,13184,13185,13186,13187,13188,13242,13243,13244,13245,13246,13247,13200,13201,13202,13203,13204,8486,13248,13249,13194,13195,13196,13270,13253,13229,13230,13231,13275,13225,13226,13227,13228,13277,13264,13267,13251,13257,13276,13254,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,52077,52078,52079,52080,52081,52082,52083,52084,52085,52086,52087,52090,52091,52092,52093,52094,52095,52096,52097,52098,52099,52100,52101,52102,52103,52104,null,null,null,null,null,null,52105,52106,52107,52108,52109,52110,52111,52112,52113,52114,52115,52116,52117,52118,52119,52120,52121,52122,52123,52125,52126,52127,52128,52129,52130,52131,null,null,null,null,null,null,52132,52133,52134,52135,52136,52137,52138,52139,52140,52141,52142,52143,52144,52145,52146,52147,52148,52149,52150,52151,52153,52154,52155,52156,52157,52158,52159,52160,52161,52162,52163,52164,198,208,170,294,null,306,null,319,321,216,338,186,222,358,330,null,12896,12897,12898,12899,12900,12901,12902,12903,12904,12905,12906,12907,12908,12909,12910,12911,12912,12913,12914,12915,12916,12917,12918,12919,12920,12921,12922,12923,9424,9425,9426,9427,9428,9429,9430,9431,9432,9433,9434,9435,9436,9437,9438,9439,9440,9441,9442,9443,9444,9445,9446,9447,9448,9449,9312,9313,9314,9315,9316,9317,9318,9319,9320,9321,9322,9323,9324,9325,9326,189,8531,8532,188,190,8539,8540,8541,8542,52165,52166,52167,52168,52169,52170,52171,52172,52173,52174,52175,52176,52177,52178,52179,52181,52182,52183,52184,52185,52186,52187,52188,52189,52190,52191,null,null,null,null,null,null,52192,52193,52194,52195,52197,52198,52200,52202,52203,52204,52205,52206,52207,52208,52209,52210,52211,52212,52213,52214,52215,52216,52217,52218,52219,52220,null,null,null,null,null,null,52221,52222,52223,52224,52225,52226,52227,52228,52229,52230,52231,52232,52233,52234,52235,52238,52239,52241,52242,52243,52245,52246,52247,52248,52249,52250,52251,52254,52255,52256,52259,52260,230,273,240,295,305,307,312,320,322,248,339,223,254,359,331,329,12800,12801,12802,12803,12804,12805,12806,12807,12808,12809,12810,12811,12812,12813,12814,12815,12816,12817,12818,12819,12820,12821,12822,12823,12824,12825,12826,12827,9372,9373,9374,9375,9376,9377,9378,9379,9380,9381,9382,9383,9384,9385,9386,9387,9388,9389,9390,9391,9392,9393,9394,9395,9396,9397,9332,9333,9334,9335,9336,9337,9338,9339,9340,9341,9342,9343,9344,9345,9346,185,178,179,8308,8319,8321,8322,8323,8324,52261,52262,52266,52267,52269,52271,52273,52274,52275,52276,52277,52278,52279,52282,52287,52288,52289,52290,52291,52294,52295,52297,52298,52299,52301,52302,null,null,null,null,null,null,52303,52304,52305,52306,52307,52310,52314,52315,52316,52317,52318,52319,52321,52322,52323,52325,52327,52329,52330,52331,52332,52333,52334,52335,52337,52338,null,null,null,null,null,null,52339,52340,52342,52343,52344,52345,52346,52347,52348,52349,52350,52351,52352,52353,52354,52355,52356,52357,52358,52359,52360,52361,52362,52363,52364,52365,52366,52367,52368,52369,52370,52371,12353,12354,12355,12356,12357,12358,12359,12360,12361,12362,12363,12364,12365,12366,12367,12368,12369,12370,12371,12372,12373,12374,12375,12376,12377,12378,12379,12380,12381,12382,12383,12384,12385,12386,12387,12388,12389,12390,12391,12392,12393,12394,12395,12396,12397,12398,12399,12400,12401,12402,12403,12404,12405,12406,12407,12408,12409,12410,12411,12412,12413,12414,12415,12416,12417,12418,12419,12420,12421,12422,12423,12424,12425,12426,12427,12428,12429,12430,12431,12432,12433,12434,12435,null,null,null,null,null,null,null,null,null,null,null,52372,52373,52374,52375,52378,52379,52381,52382,52383,52385,52386,52387,52388,52389,52390,52391,52394,52398,52399,52400,52401,52402,52403,52406,52407,52409,null,null,null,null,null,null,52410,52411,52413,52414,52415,52416,52417,52418,52419,52422,52424,52426,52427,52428,52429,52430,52431,52433,52434,52435,52437,52438,52439,52440,52441,52442,null,null,null,null,null,null,52443,52444,52445,52446,52447,52448,52449,52450,52451,52453,52454,52455,52456,52457,52458,52459,52461,52462,52463,52465,52466,52467,52468,52469,52470,52471,52472,52473,52474,52475,52476,52477,12449,12450,12451,12452,12453,12454,12455,12456,12457,12458,12459,12460,12461,12462,12463,12464,12465,12466,12467,12468,12469,12470,12471,12472,12473,12474,12475,12476,12477,12478,12479,12480,12481,12482,12483,12484,12485,12486,12487,12488,12489,12490,12491,12492,12493,12494,12495,12496,12497,12498,12499,12500,12501,12502,12503,12504,12505,12506,12507,12508,12509,12510,12511,12512,12513,12514,12515,12516,12517,12518,12519,12520,12521,12522,12523,12524,12525,12526,12527,12528,12529,12530,12531,12532,12533,12534,null,null,null,null,null,null,null,null,52478,52479,52480,52482,52483,52484,52485,52486,52487,52490,52491,52493,52494,52495,52497,52498,52499,52500,52501,52502,52503,52506,52508,52510,52511,52512,null,null,null,null,null,null,52513,52514,52515,52517,52518,52519,52521,52522,52523,52525,52526,52527,52528,52529,52530,52531,52532,52533,52534,52535,52536,52538,52539,52540,52541,52542,null,null,null,null,null,null,52543,52544,52545,52546,52547,52548,52549,52550,52551,52552,52553,52554,52555,52556,52557,52558,52559,52560,52561,52562,52563,52564,52565,52566,52567,52568,52569,52570,52571,52573,52574,52575,1040,1041,1042,1043,1044,1045,1025,1046,1047,1048,1049,1050,1051,1052,1053,1054,1055,1056,1057,1058,1059,1060,1061,1062,1063,1064,1065,1066,1067,1068,1069,1070,1071,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,1072,1073,1074,1075,1076,1077,1105,1078,1079,1080,1081,1082,1083,1084,1085,1086,1087,1088,1089,1090,1091,1092,1093,1094,1095,1096,1097,1098,1099,1100,1101,1102,1103,null,null,null,null,null,null,null,null,null,null,null,null,null,52577,52578,52579,52581,52582,52583,52584,52585,52586,52587,52590,52592,52594,52595,52596,52597,52598,52599,52601,52602,52603,52604,52605,52606,52607,52608,null,null,null,null,null,null,52609,52610,52611,52612,52613,52614,52615,52617,52618,52619,52620,52621,52622,52623,52624,52625,52626,52627,52630,52631,52633,52634,52635,52637,52638,52639,null,null,null,null,null,null,52640,52641,52642,52643,52646,52648,52650,52651,52652,52653,52654,52655,52657,52658,52659,52660,52661,52662,52663,52664,52665,52666,52667,52668,52669,52670,52671,52672,52673,52674,52675,52677,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,52678,52679,52680,52681,52682,52683,52685,52686,52687,52689,52690,52691,52692,52693,52694,52695,52696,52697,52698,52699,52700,52701,52702,52703,52704,52705,null,null,null,null,null,null,52706,52707,52708,52709,52710,52711,52713,52714,52715,52717,52718,52719,52721,52722,52723,52724,52725,52726,52727,52730,52732,52734,52735,52736,52737,52738,null,null,null,null,null,null,52739,52741,52742,52743,52745,52746,52747,52749,52750,52751,52752,52753,52754,52755,52757,52758,52759,52760,52762,52763,52764,52765,52766,52767,52770,52771,52773,52774,52775,52777,52778,52779,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,52780,52781,52782,52783,52786,52788,52790,52791,52792,52793,52794,52795,52796,52797,52798,52799,52800,52801,52802,52803,52804,52805,52806,52807,52808,52809,null,null,null,null,null,null,52810,52811,52812,52813,52814,52815,52816,52817,52818,52819,52820,52821,52822,52823,52826,52827,52829,52830,52834,52835,52836,52837,52838,52839,52842,52844,null,null,null,null,null,null,52846,52847,52848,52849,52850,52851,52854,52855,52857,52858,52859,52861,52862,52863,52864,52865,52866,52867,52870,52872,52874,52875,52876,52877,52878,52879,52882,52883,52885,52886,52887,52889,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,52890,52891,52892,52893,52894,52895,52898,52902,52903,52904,52905,52906,52907,52910,52911,52912,52913,52914,52915,52916,52917,52918,52919,52920,52921,52922,null,null,null,null,null,null,52923,52924,52925,52926,52927,52928,52930,52931,52932,52933,52934,52935,52936,52937,52938,52939,52940,52941,52942,52943,52944,52945,52946,52947,52948,52949,null,null,null,null,null,null,52950,52951,52952,52953,52954,52955,52956,52957,52958,52959,52960,52961,52962,52963,52966,52967,52969,52970,52973,52974,52975,52976,52977,52978,52979,52982,52986,52987,52988,52989,52990,52991,44032,44033,44036,44039,44040,44041,44042,44048,44049,44050,44051,44052,44053,44054,44055,44057,44058,44059,44060,44061,44064,44068,44076,44077,44079,44080,44081,44088,44089,44092,44096,44107,44109,44116,44120,44124,44144,44145,44148,44151,44152,44154,44160,44161,44163,44164,44165,44166,44169,44170,44171,44172,44176,44180,44188,44189,44191,44192,44193,44200,44201,44202,44204,44207,44208,44216,44217,44219,44220,44221,44225,44228,44232,44236,44245,44247,44256,44257,44260,44263,44264,44266,44268,44271,44272,44273,44275,44277,44278,44284,44285,44288,44292,44294,52994,52995,52997,52998,52999,53001,53002,53003,53004,53005,53006,53007,53010,53012,53014,53015,53016,53017,53018,53019,53021,53022,53023,53025,53026,53027,null,null,null,null,null,null,53029,53030,53031,53032,53033,53034,53035,53038,53042,53043,53044,53045,53046,53047,53049,53050,53051,53052,53053,53054,53055,53056,53057,53058,53059,53060,null,null,null,null,null,null,53061,53062,53063,53064,53065,53066,53067,53068,53069,53070,53071,53072,53073,53074,53075,53078,53079,53081,53082,53083,53085,53086,53087,53088,53089,53090,53091,53094,53096,53098,53099,53100,44300,44301,44303,44305,44312,44316,44320,44329,44332,44333,44340,44341,44344,44348,44356,44357,44359,44361,44368,44372,44376,44385,44387,44396,44397,44400,44403,44404,44405,44406,44411,44412,44413,44415,44417,44418,44424,44425,44428,44432,44444,44445,44452,44471,44480,44481,44484,44488,44496,44497,44499,44508,44512,44516,44536,44537,44540,44543,44544,44545,44552,44553,44555,44557,44564,44592,44593,44596,44599,44600,44602,44608,44609,44611,44613,44614,44618,44620,44621,44622,44624,44628,44630,44636,44637,44639,44640,44641,44645,44648,44649,44652,44656,44664,53101,53102,53103,53106,53107,53109,53110,53111,53113,53114,53115,53116,53117,53118,53119,53121,53122,53123,53124,53126,53127,53128,53129,53130,53131,53133,null,null,null,null,null,null,53134,53135,53136,53137,53138,53139,53140,53141,53142,53143,53144,53145,53146,53147,53148,53149,53150,53151,53152,53154,53155,53156,53157,53158,53159,53161,null,null,null,null,null,null,53162,53163,53164,53165,53166,53167,53169,53170,53171,53172,53173,53174,53175,53176,53177,53178,53179,53180,53181,53182,53183,53184,53185,53186,53187,53189,53190,53191,53192,53193,53194,53195,44665,44667,44668,44669,44676,44677,44684,44732,44733,44734,44736,44740,44748,44749,44751,44752,44753,44760,44761,44764,44776,44779,44781,44788,44792,44796,44807,44808,44813,44816,44844,44845,44848,44850,44852,44860,44861,44863,44865,44866,44867,44872,44873,44880,44892,44893,44900,44901,44921,44928,44932,44936,44944,44945,44949,44956,44984,44985,44988,44992,44999,45e3,45001,45003,45005,45006,45012,45020,45032,45033,45040,45041,45044,45048,45056,45057,45060,45068,45072,45076,45084,45085,45096,45124,45125,45128,45130,45132,45134,45139,45140,45141,45143,45145,53196,53197,53198,53199,53200,53201,53202,53203,53204,53205,53206,53207,53208,53209,53210,53211,53212,53213,53214,53215,53218,53219,53221,53222,53223,53225,null,null,null,null,null,null,53226,53227,53228,53229,53230,53231,53234,53236,53238,53239,53240,53241,53242,53243,53245,53246,53247,53249,53250,53251,53253,53254,53255,53256,53257,53258,null,null,null,null,null,null,53259,53260,53261,53262,53263,53264,53266,53267,53268,53269,53270,53271,53273,53274,53275,53276,53277,53278,53279,53280,53281,53282,53283,53284,53285,53286,53287,53288,53289,53290,53291,53292,45149,45180,45181,45184,45188,45196,45197,45199,45201,45208,45209,45210,45212,45215,45216,45217,45218,45224,45225,45227,45228,45229,45230,45231,45233,45235,45236,45237,45240,45244,45252,45253,45255,45256,45257,45264,45265,45268,45272,45280,45285,45320,45321,45323,45324,45328,45330,45331,45336,45337,45339,45340,45341,45347,45348,45349,45352,45356,45364,45365,45367,45368,45369,45376,45377,45380,45384,45392,45393,45396,45397,45400,45404,45408,45432,45433,45436,45440,45442,45448,45449,45451,45453,45458,45459,45460,45464,45468,45480,45516,45520,45524,45532,45533,53294,53295,53296,53297,53298,53299,53302,53303,53305,53306,53307,53309,53310,53311,53312,53313,53314,53315,53318,53320,53322,53323,53324,53325,53326,53327,null,null,null,null,null,null,53329,53330,53331,53333,53334,53335,53337,53338,53339,53340,53341,53342,53343,53345,53346,53347,53348,53349,53350,53351,53352,53353,53354,53355,53358,53359,null,null,null,null,null,null,53361,53362,53363,53365,53366,53367,53368,53369,53370,53371,53374,53375,53376,53378,53379,53380,53381,53382,53383,53384,53385,53386,53387,53388,53389,53390,53391,53392,53393,53394,53395,53396,45535,45544,45545,45548,45552,45561,45563,45565,45572,45573,45576,45579,45580,45588,45589,45591,45593,45600,45620,45628,45656,45660,45664,45672,45673,45684,45685,45692,45700,45701,45705,45712,45713,45716,45720,45721,45722,45728,45729,45731,45733,45734,45738,45740,45744,45748,45768,45769,45772,45776,45778,45784,45785,45787,45789,45794,45796,45797,45798,45800,45803,45804,45805,45806,45807,45811,45812,45813,45815,45816,45817,45818,45819,45823,45824,45825,45828,45832,45840,45841,45843,45844,45845,45852,45908,45909,45910,45912,45915,45916,45918,45919,45924,45925,53397,53398,53399,53400,53401,53402,53403,53404,53405,53406,53407,53408,53409,53410,53411,53414,53415,53417,53418,53419,53421,53422,53423,53424,53425,53426,null,null,null,null,null,null,53427,53430,53432,53434,53435,53436,53437,53438,53439,53442,53443,53445,53446,53447,53450,53451,53452,53453,53454,53455,53458,53462,53463,53464,53465,53466,null,null,null,null,null,null,53467,53470,53471,53473,53474,53475,53477,53478,53479,53480,53481,53482,53483,53486,53490,53491,53492,53493,53494,53495,53497,53498,53499,53500,53501,53502,53503,53504,53505,53506,53507,53508,45927,45929,45931,45934,45936,45937,45940,45944,45952,45953,45955,45956,45957,45964,45968,45972,45984,45985,45992,45996,46020,46021,46024,46027,46028,46030,46032,46036,46037,46039,46041,46043,46045,46048,46052,46056,46076,46096,46104,46108,46112,46120,46121,46123,46132,46160,46161,46164,46168,46176,46177,46179,46181,46188,46208,46216,46237,46244,46248,46252,46261,46263,46265,46272,46276,46280,46288,46293,46300,46301,46304,46307,46308,46310,46316,46317,46319,46321,46328,46356,46357,46360,46363,46364,46372,46373,46375,46376,46377,46378,46384,46385,46388,46392,53509,53510,53511,53512,53513,53514,53515,53516,53518,53519,53520,53521,53522,53523,53524,53525,53526,53527,53528,53529,53530,53531,53532,53533,53534,53535,null,null,null,null,null,null,53536,53537,53538,53539,53540,53541,53542,53543,53544,53545,53546,53547,53548,53549,53550,53551,53554,53555,53557,53558,53559,53561,53563,53564,53565,53566,null,null,null,null,null,null,53567,53570,53574,53575,53576,53577,53578,53579,53582,53583,53585,53586,53587,53589,53590,53591,53592,53593,53594,53595,53598,53600,53602,53603,53604,53605,53606,53607,53609,53610,53611,53613,46400,46401,46403,46404,46405,46411,46412,46413,46416,46420,46428,46429,46431,46432,46433,46496,46497,46500,46504,46506,46507,46512,46513,46515,46516,46517,46523,46524,46525,46528,46532,46540,46541,46543,46544,46545,46552,46572,46608,46609,46612,46616,46629,46636,46644,46664,46692,46696,46748,46749,46752,46756,46763,46764,46769,46804,46832,46836,46840,46848,46849,46853,46888,46889,46892,46895,46896,46904,46905,46907,46916,46920,46924,46932,46933,46944,46948,46952,46960,46961,46963,46965,46972,46973,46976,46980,46988,46989,46991,46992,46993,46994,46998,46999,53614,53615,53616,53617,53618,53619,53620,53621,53622,53623,53624,53625,53626,53627,53629,53630,53631,53632,53633,53634,53635,53637,53638,53639,53641,53642,null,null,null,null,null,null,53643,53644,53645,53646,53647,53648,53649,53650,53651,53652,53653,53654,53655,53656,53657,53658,53659,53660,53661,53662,53663,53666,53667,53669,53670,53671,null,null,null,null,null,null,53673,53674,53675,53676,53677,53678,53679,53682,53684,53686,53687,53688,53689,53691,53693,53694,53695,53697,53698,53699,53700,53701,53702,53703,53704,53705,53706,53707,53708,53709,53710,53711,47e3,47001,47004,47008,47016,47017,47019,47020,47021,47028,47029,47032,47047,47049,47084,47085,47088,47092,47100,47101,47103,47104,47105,47111,47112,47113,47116,47120,47128,47129,47131,47133,47140,47141,47144,47148,47156,47157,47159,47160,47161,47168,47172,47185,47187,47196,47197,47200,47204,47212,47213,47215,47217,47224,47228,47245,47272,47280,47284,47288,47296,47297,47299,47301,47308,47312,47316,47325,47327,47329,47336,47337,47340,47344,47352,47353,47355,47357,47364,47384,47392,47420,47421,47424,47428,47436,47439,47441,47448,47449,47452,47456,47464,47465,53712,53713,53714,53715,53716,53717,53718,53719,53721,53722,53723,53724,53725,53726,53727,53728,53729,53730,53731,53732,53733,53734,53735,53736,53737,53738,null,null,null,null,null,null,53739,53740,53741,53742,53743,53744,53745,53746,53747,53749,53750,53751,53753,53754,53755,53756,53757,53758,53759,53760,53761,53762,53763,53764,53765,53766,null,null,null,null,null,null,53768,53770,53771,53772,53773,53774,53775,53777,53778,53779,53780,53781,53782,53783,53784,53785,53786,53787,53788,53789,53790,53791,53792,53793,53794,53795,53796,53797,53798,53799,53800,53801,47467,47469,47476,47477,47480,47484,47492,47493,47495,47497,47498,47501,47502,47532,47533,47536,47540,47548,47549,47551,47553,47560,47561,47564,47566,47567,47568,47569,47570,47576,47577,47579,47581,47582,47585,47587,47588,47589,47592,47596,47604,47605,47607,47608,47609,47610,47616,47617,47624,47637,47672,47673,47676,47680,47682,47688,47689,47691,47693,47694,47699,47700,47701,47704,47708,47716,47717,47719,47720,47721,47728,47729,47732,47736,47747,47748,47749,47751,47756,47784,47785,47787,47788,47792,47794,47800,47801,47803,47805,47812,47816,47832,47833,47868,53802,53803,53806,53807,53809,53810,53811,53813,53814,53815,53816,53817,53818,53819,53822,53824,53826,53827,53828,53829,53830,53831,53833,53834,53835,53836,null,null,null,null,null,null,53837,53838,53839,53840,53841,53842,53843,53844,53845,53846,53847,53848,53849,53850,53851,53853,53854,53855,53856,53857,53858,53859,53861,53862,53863,53864,null,null,null,null,null,null,53865,53866,53867,53868,53869,53870,53871,53872,53873,53874,53875,53876,53877,53878,53879,53880,53881,53882,53883,53884,53885,53886,53887,53890,53891,53893,53894,53895,53897,53898,53899,53900,47872,47876,47885,47887,47889,47896,47900,47904,47913,47915,47924,47925,47926,47928,47931,47932,47933,47934,47940,47941,47943,47945,47949,47951,47952,47956,47960,47969,47971,47980,48008,48012,48016,48036,48040,48044,48052,48055,48064,48068,48072,48080,48083,48120,48121,48124,48127,48128,48130,48136,48137,48139,48140,48141,48143,48145,48148,48149,48150,48151,48152,48155,48156,48157,48158,48159,48164,48165,48167,48169,48173,48176,48177,48180,48184,48192,48193,48195,48196,48197,48201,48204,48205,48208,48221,48260,48261,48264,48267,48268,48270,48276,48277,48279,53901,53902,53903,53906,53907,53908,53910,53911,53912,53913,53914,53915,53917,53918,53919,53921,53922,53923,53925,53926,53927,53928,53929,53930,53931,53933,null,null,null,null,null,null,53934,53935,53936,53938,53939,53940,53941,53942,53943,53946,53947,53949,53950,53953,53955,53956,53957,53958,53959,53962,53964,53965,53966,53967,53968,53969,null,null,null,null,null,null,53970,53971,53973,53974,53975,53977,53978,53979,53981,53982,53983,53984,53985,53986,53987,53990,53991,53992,53993,53994,53995,53996,53997,53998,53999,54002,54003,54005,54006,54007,54009,54010,48281,48282,48288,48289,48292,48295,48296,48304,48305,48307,48308,48309,48316,48317,48320,48324,48333,48335,48336,48337,48341,48344,48348,48372,48373,48374,48376,48380,48388,48389,48391,48393,48400,48404,48420,48428,48448,48456,48457,48460,48464,48472,48473,48484,48488,48512,48513,48516,48519,48520,48521,48522,48528,48529,48531,48533,48537,48538,48540,48548,48560,48568,48596,48597,48600,48604,48617,48624,48628,48632,48640,48643,48645,48652,48653,48656,48660,48668,48669,48671,48708,48709,48712,48716,48718,48724,48725,48727,48729,48730,48731,48736,48737,48740,54011,54012,54013,54014,54015,54018,54020,54022,54023,54024,54025,54026,54027,54031,54033,54034,54035,54037,54039,54040,54041,54042,54043,54046,54050,54051,null,null,null,null,null,null,54052,54054,54055,54058,54059,54061,54062,54063,54065,54066,54067,54068,54069,54070,54071,54074,54078,54079,54080,54081,54082,54083,54086,54087,54088,54089,null,null,null,null,null,null,54090,54091,54092,54093,54094,54095,54096,54097,54098,54099,54100,54101,54102,54103,54104,54105,54106,54107,54108,54109,54110,54111,54112,54113,54114,54115,54116,54117,54118,54119,54120,54121,48744,48746,48752,48753,48755,48756,48757,48763,48764,48765,48768,48772,48780,48781,48783,48784,48785,48792,48793,48808,48848,48849,48852,48855,48856,48864,48867,48868,48869,48876,48897,48904,48905,48920,48921,48923,48924,48925,48960,48961,48964,48968,48976,48977,48981,49044,49072,49093,49100,49101,49104,49108,49116,49119,49121,49212,49233,49240,49244,49248,49256,49257,49296,49297,49300,49304,49312,49313,49315,49317,49324,49325,49327,49328,49331,49332,49333,49334,49340,49341,49343,49344,49345,49349,49352,49353,49356,49360,49368,49369,49371,49372,49373,49380,54122,54123,54124,54125,54126,54127,54128,54129,54130,54131,54132,54133,54134,54135,54136,54137,54138,54139,54142,54143,54145,54146,54147,54149,54150,54151,null,null,null,null,null,null,54152,54153,54154,54155,54158,54162,54163,54164,54165,54166,54167,54170,54171,54173,54174,54175,54177,54178,54179,54180,54181,54182,54183,54186,54188,54190,null,null,null,null,null,null,54191,54192,54193,54194,54195,54197,54198,54199,54201,54202,54203,54205,54206,54207,54208,54209,54210,54211,54214,54215,54218,54219,54220,54221,54222,54223,54225,54226,54227,54228,54229,54230,49381,49384,49388,49396,49397,49399,49401,49408,49412,49416,49424,49429,49436,49437,49438,49439,49440,49443,49444,49446,49447,49452,49453,49455,49456,49457,49462,49464,49465,49468,49472,49480,49481,49483,49484,49485,49492,49493,49496,49500,49508,49509,49511,49512,49513,49520,49524,49528,49541,49548,49549,49550,49552,49556,49558,49564,49565,49567,49569,49573,49576,49577,49580,49584,49597,49604,49608,49612,49620,49623,49624,49632,49636,49640,49648,49649,49651,49660,49661,49664,49668,49676,49677,49679,49681,49688,49689,49692,49695,49696,49704,49705,49707,49709,54231,54233,54234,54235,54236,54237,54238,54239,54240,54242,54244,54245,54246,54247,54248,54249,54250,54251,54254,54255,54257,54258,54259,54261,54262,54263,null,null,null,null,null,null,54264,54265,54266,54267,54270,54272,54274,54275,54276,54277,54278,54279,54281,54282,54283,54284,54285,54286,54287,54288,54289,54290,54291,54292,54293,54294,null,null,null,null,null,null,54295,54296,54297,54298,54299,54300,54302,54303,54304,54305,54306,54307,54308,54309,54310,54311,54312,54313,54314,54315,54316,54317,54318,54319,54320,54321,54322,54323,54324,54325,54326,54327,49711,49713,49714,49716,49736,49744,49745,49748,49752,49760,49765,49772,49773,49776,49780,49788,49789,49791,49793,49800,49801,49808,49816,49819,49821,49828,49829,49832,49836,49837,49844,49845,49847,49849,49884,49885,49888,49891,49892,49899,49900,49901,49903,49905,49910,49912,49913,49915,49916,49920,49928,49929,49932,49933,49939,49940,49941,49944,49948,49956,49957,49960,49961,49989,50024,50025,50028,50032,50034,50040,50041,50044,50045,50052,50056,50060,50112,50136,50137,50140,50143,50144,50146,50152,50153,50157,50164,50165,50168,50184,50192,50212,50220,50224,54328,54329,54330,54331,54332,54333,54334,54335,54337,54338,54339,54341,54342,54343,54344,54345,54346,54347,54348,54349,54350,54351,54352,54353,54354,54355,null,null,null,null,null,null,54356,54357,54358,54359,54360,54361,54362,54363,54365,54366,54367,54369,54370,54371,54373,54374,54375,54376,54377,54378,54379,54380,54382,54384,54385,54386,null,null,null,null,null,null,54387,54388,54389,54390,54391,54394,54395,54397,54398,54401,54403,54404,54405,54406,54407,54410,54412,54414,54415,54416,54417,54418,54419,54421,54422,54423,54424,54425,54426,54427,54428,54429,50228,50236,50237,50248,50276,50277,50280,50284,50292,50293,50297,50304,50324,50332,50360,50364,50409,50416,50417,50420,50424,50426,50431,50432,50433,50444,50448,50452,50460,50472,50473,50476,50480,50488,50489,50491,50493,50500,50501,50504,50505,50506,50508,50509,50510,50515,50516,50517,50519,50520,50521,50525,50526,50528,50529,50532,50536,50544,50545,50547,50548,50549,50556,50557,50560,50564,50567,50572,50573,50575,50577,50581,50583,50584,50588,50592,50601,50612,50613,50616,50617,50619,50620,50621,50622,50628,50629,50630,50631,50632,50633,50634,50636,50638,54430,54431,54432,54433,54434,54435,54436,54437,54438,54439,54440,54442,54443,54444,54445,54446,54447,54448,54449,54450,54451,54452,54453,54454,54455,54456,null,null,null,null,null,null,54457,54458,54459,54460,54461,54462,54463,54464,54465,54466,54467,54468,54469,54470,54471,54472,54473,54474,54475,54477,54478,54479,54481,54482,54483,54485,null,null,null,null,null,null,54486,54487,54488,54489,54490,54491,54493,54494,54496,54497,54498,54499,54500,54501,54502,54503,54505,54506,54507,54509,54510,54511,54513,54514,54515,54516,54517,54518,54519,54521,54522,54524,50640,50641,50644,50648,50656,50657,50659,50661,50668,50669,50670,50672,50676,50678,50679,50684,50685,50686,50687,50688,50689,50693,50694,50695,50696,50700,50704,50712,50713,50715,50716,50724,50725,50728,50732,50733,50734,50736,50739,50740,50741,50743,50745,50747,50752,50753,50756,50760,50768,50769,50771,50772,50773,50780,50781,50784,50796,50799,50801,50808,50809,50812,50816,50824,50825,50827,50829,50836,50837,50840,50844,50852,50853,50855,50857,50864,50865,50868,50872,50873,50874,50880,50881,50883,50885,50892,50893,50896,50900,50908,50909,50912,50913,50920,54526,54527,54528,54529,54530,54531,54533,54534,54535,54537,54538,54539,54541,54542,54543,54544,54545,54546,54547,54550,54552,54553,54554,54555,54556,54557,null,null,null,null,null,null,54558,54559,54560,54561,54562,54563,54564,54565,54566,54567,54568,54569,54570,54571,54572,54573,54574,54575,54576,54577,54578,54579,54580,54581,54582,54583,null,null,null,null,null,null,54584,54585,54586,54587,54590,54591,54593,54594,54595,54597,54598,54599,54600,54601,54602,54603,54606,54608,54610,54611,54612,54613,54614,54615,54618,54619,54621,54622,54623,54625,54626,54627,50921,50924,50928,50936,50937,50941,50948,50949,50952,50956,50964,50965,50967,50969,50976,50977,50980,50984,50992,50993,50995,50997,50999,51004,51005,51008,51012,51018,51020,51021,51023,51025,51026,51027,51028,51029,51030,51031,51032,51036,51040,51048,51051,51060,51061,51064,51068,51069,51070,51075,51076,51077,51079,51080,51081,51082,51086,51088,51089,51092,51094,51095,51096,51098,51104,51105,51107,51108,51109,51110,51116,51117,51120,51124,51132,51133,51135,51136,51137,51144,51145,51148,51150,51152,51160,51165,51172,51176,51180,51200,51201,51204,51208,51210,54628,54630,54631,54634,54636,54638,54639,54640,54641,54642,54643,54646,54647,54649,54650,54651,54653,54654,54655,54656,54657,54658,54659,54662,54666,54667,null,null,null,null,null,null,54668,54669,54670,54671,54673,54674,54675,54676,54677,54678,54679,54680,54681,54682,54683,54684,54685,54686,54687,54688,54689,54690,54691,54692,54694,54695,null,null,null,null,null,null,54696,54697,54698,54699,54700,54701,54702,54703,54704,54705,54706,54707,54708,54709,54710,54711,54712,54713,54714,54715,54716,54717,54718,54719,54720,54721,54722,54723,54724,54725,54726,54727,51216,51217,51219,51221,51222,51228,51229,51232,51236,51244,51245,51247,51249,51256,51260,51264,51272,51273,51276,51277,51284,51312,51313,51316,51320,51322,51328,51329,51331,51333,51334,51335,51339,51340,51341,51348,51357,51359,51361,51368,51388,51389,51396,51400,51404,51412,51413,51415,51417,51424,51425,51428,51445,51452,51453,51456,51460,51461,51462,51468,51469,51471,51473,51480,51500,51508,51536,51537,51540,51544,51552,51553,51555,51564,51568,51572,51580,51592,51593,51596,51600,51608,51609,51611,51613,51648,51649,51652,51655,51656,51658,51664,51665,51667,54730,54731,54733,54734,54735,54737,54739,54740,54741,54742,54743,54746,54748,54750,54751,54752,54753,54754,54755,54758,54759,54761,54762,54763,54765,54766,null,null,null,null,null,null,54767,54768,54769,54770,54771,54774,54776,54778,54779,54780,54781,54782,54783,54786,54787,54789,54790,54791,54793,54794,54795,54796,54797,54798,54799,54802,null,null,null,null,null,null,54806,54807,54808,54809,54810,54811,54813,54814,54815,54817,54818,54819,54821,54822,54823,54824,54825,54826,54827,54828,54830,54831,54832,54833,54834,54835,54836,54837,54838,54839,54842,54843,51669,51670,51673,51674,51676,51677,51680,51682,51684,51687,51692,51693,51695,51696,51697,51704,51705,51708,51712,51720,51721,51723,51724,51725,51732,51736,51753,51788,51789,51792,51796,51804,51805,51807,51808,51809,51816,51837,51844,51864,51900,51901,51904,51908,51916,51917,51919,51921,51923,51928,51929,51936,51948,51956,51976,51984,51988,51992,52e3,52001,52033,52040,52041,52044,52048,52056,52057,52061,52068,52088,52089,52124,52152,52180,52196,52199,52201,52236,52237,52240,52244,52252,52253,52257,52258,52263,52264,52265,52268,52270,52272,52280,52281,52283,54845,54846,54847,54849,54850,54851,54852,54854,54855,54858,54860,54862,54863,54864,54866,54867,54870,54871,54873,54874,54875,54877,54878,54879,54880,54881,null,null,null,null,null,null,54882,54883,54884,54885,54886,54888,54890,54891,54892,54893,54894,54895,54898,54899,54901,54902,54903,54904,54905,54906,54907,54908,54909,54910,54911,54912,null,null,null,null,null,null,54913,54914,54916,54918,54919,54920,54921,54922,54923,54926,54927,54929,54930,54931,54933,54934,54935,54936,54937,54938,54939,54940,54942,54944,54946,54947,54948,54949,54950,54951,54953,54954,52284,52285,52286,52292,52293,52296,52300,52308,52309,52311,52312,52313,52320,52324,52326,52328,52336,52341,52376,52377,52380,52384,52392,52393,52395,52396,52397,52404,52405,52408,52412,52420,52421,52423,52425,52432,52436,52452,52460,52464,52481,52488,52489,52492,52496,52504,52505,52507,52509,52516,52520,52524,52537,52572,52576,52580,52588,52589,52591,52593,52600,52616,52628,52629,52632,52636,52644,52645,52647,52649,52656,52676,52684,52688,52712,52716,52720,52728,52729,52731,52733,52740,52744,52748,52756,52761,52768,52769,52772,52776,52784,52785,52787,52789,54955,54957,54958,54959,54961,54962,54963,54964,54965,54966,54967,54968,54970,54972,54973,54974,54975,54976,54977,54978,54979,54982,54983,54985,54986,54987,null,null,null,null,null,null,54989,54990,54991,54992,54994,54995,54997,54998,55e3,55002,55003,55004,55005,55006,55007,55009,55010,55011,55013,55014,55015,55017,55018,55019,55020,55021,null,null,null,null,null,null,55022,55023,55025,55026,55027,55028,55030,55031,55032,55033,55034,55035,55038,55039,55041,55042,55043,55045,55046,55047,55048,55049,55050,55051,55052,55053,55054,55055,55056,55058,55059,55060,52824,52825,52828,52831,52832,52833,52840,52841,52843,52845,52852,52853,52856,52860,52868,52869,52871,52873,52880,52881,52884,52888,52896,52897,52899,52900,52901,52908,52909,52929,52964,52965,52968,52971,52972,52980,52981,52983,52984,52985,52992,52993,52996,53e3,53008,53009,53011,53013,53020,53024,53028,53036,53037,53039,53040,53041,53048,53076,53077,53080,53084,53092,53093,53095,53097,53104,53105,53108,53112,53120,53125,53132,53153,53160,53168,53188,53216,53217,53220,53224,53232,53233,53235,53237,53244,53248,53252,53265,53272,53293,53300,53301,53304,53308,55061,55062,55063,55066,55067,55069,55070,55071,55073,55074,55075,55076,55077,55078,55079,55082,55084,55086,55087,55088,55089,55090,55091,55094,55095,55097,null,null,null,null,null,null,55098,55099,55101,55102,55103,55104,55105,55106,55107,55109,55110,55112,55114,55115,55116,55117,55118,55119,55122,55123,55125,55130,55131,55132,55133,55134,null,null,null,null,null,null,55135,55138,55140,55142,55143,55144,55146,55147,55149,55150,55151,55153,55154,55155,55157,55158,55159,55160,55161,55162,55163,55166,55167,55168,55170,55171,55172,55173,55174,55175,55178,55179,53316,53317,53319,53321,53328,53332,53336,53344,53356,53357,53360,53364,53372,53373,53377,53412,53413,53416,53420,53428,53429,53431,53433,53440,53441,53444,53448,53449,53456,53457,53459,53460,53461,53468,53469,53472,53476,53484,53485,53487,53488,53489,53496,53517,53552,53553,53556,53560,53562,53568,53569,53571,53572,53573,53580,53581,53584,53588,53596,53597,53599,53601,53608,53612,53628,53636,53640,53664,53665,53668,53672,53680,53681,53683,53685,53690,53692,53696,53720,53748,53752,53767,53769,53776,53804,53805,53808,53812,53820,53821,53823,53825,53832,53852,55181,55182,55183,55185,55186,55187,55188,55189,55190,55191,55194,55196,55198,55199,55200,55201,55202,55203,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,53860,53888,53889,53892,53896,53904,53905,53909,53916,53920,53924,53932,53937,53944,53945,53948,53951,53952,53954,53960,53961,53963,53972,53976,53980,53988,53989,54e3,54001,54004,54008,54016,54017,54019,54021,54028,54029,54030,54032,54036,54038,54044,54045,54047,54048,54049,54053,54056,54057,54060,54064,54072,54073,54075,54076,54077,54084,54085,54140,54141,54144,54148,54156,54157,54159,54160,54161,54168,54169,54172,54176,54184,54185,54187,54189,54196,54200,54204,54212,54213,54216,54217,54224,54232,54241,54243,54252,54253,54256,54260,54268,54269,54271,54273,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,54280,54301,54336,54340,54364,54368,54372,54381,54383,54392,54393,54396,54399,54400,54402,54408,54409,54411,54413,54420,54441,54476,54480,54484,54492,54495,54504,54508,54512,54520,54523,54525,54532,54536,54540,54548,54549,54551,54588,54589,54592,54596,54604,54605,54607,54609,54616,54617,54620,54624,54629,54632,54633,54635,54637,54644,54645,54648,54652,54660,54661,54663,54664,54665,54672,54693,54728,54729,54732,54736,54738,54744,54745,54747,54749,54756,54757,54760,54764,54772,54773,54775,54777,54784,54785,54788,54792,54800,54801,54803,54804,54805,54812,54816,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,54820,54829,54840,54841,54844,54848,54853,54856,54857,54859,54861,54865,54868,54869,54872,54876,54887,54889,54896,54897,54900,54915,54917,54924,54925,54928,54932,54941,54943,54945,54952,54956,54960,54969,54971,54980,54981,54984,54988,54993,54996,54999,55001,55008,55012,55016,55024,55029,55036,55037,55040,55044,55057,55064,55065,55068,55072,55080,55081,55083,55085,55092,55093,55096,55100,55108,55111,55113,55120,55121,55124,55126,55127,55128,55129,55136,55137,55139,55141,55145,55148,55152,55156,55164,55165,55169,55176,55177,55180,55184,55192,55193,55195,55197,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,20285,20339,20551,20729,21152,21487,21621,21733,22025,23233,23478,26247,26550,26551,26607,27468,29634,30146,31292,33499,33540,34903,34952,35382,36040,36303,36603,36838,39381,21051,21364,21508,24682,24932,27580,29647,33050,35258,35282,38307,20355,21002,22718,22904,23014,24178,24185,25031,25536,26438,26604,26751,28567,30286,30475,30965,31240,31487,31777,32925,33390,33393,35563,38291,20075,21917,26359,28212,30883,31469,33883,35088,34638,38824,21208,22350,22570,23884,24863,25022,25121,25954,26577,27204,28187,29976,30131,30435,30640,32058,37039,37969,37970,40853,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,21283,23724,30002,32987,37440,38296,21083,22536,23004,23713,23831,24247,24378,24394,24951,27743,30074,30086,31968,32115,32177,32652,33108,33313,34193,35137,35611,37628,38477,40007,20171,20215,20491,20977,22607,24887,24894,24936,25913,27114,28433,30117,30342,30422,31623,33445,33995,63744,37799,38283,21888,23458,22353,63745,31923,32697,37301,20520,21435,23621,24040,25298,25454,25818,25831,28192,28844,31067,36317,36382,63746,36989,37445,37624,20094,20214,20581,24062,24314,24838,26967,33137,34388,36423,37749,39467,20062,20625,26480,26688,20745,21133,21138,27298,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,30652,37392,40660,21163,24623,36850,20552,25001,25581,25802,26684,27268,28608,33160,35233,38548,22533,29309,29356,29956,32121,32365,32937,35211,35700,36963,40273,25225,27770,28500,32080,32570,35363,20860,24906,31645,35609,37463,37772,20140,20435,20510,20670,20742,21185,21197,21375,22384,22659,24218,24465,24950,25004,25806,25964,26223,26299,26356,26775,28039,28805,28913,29855,29861,29898,30169,30828,30956,31455,31478,32069,32147,32789,32831,33051,33686,35686,36629,36885,37857,38915,38968,39514,39912,20418,21843,22586,22865,23395,23622,24760,25106,26690,26800,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,26856,28330,30028,30328,30926,31293,31995,32363,32380,35336,35489,35903,38542,40388,21476,21481,21578,21617,22266,22993,23396,23611,24235,25335,25911,25925,25970,26272,26543,27073,27837,30204,30352,30590,31295,32660,32771,32929,33167,33510,33533,33776,34241,34865,34996,35493,63747,36764,37678,38599,39015,39640,40723,21741,26011,26354,26767,31296,35895,40288,22256,22372,23825,26118,26801,26829,28414,29736,34974,39908,27752,63748,39592,20379,20844,20849,21151,23380,24037,24656,24685,25329,25511,25915,29657,31354,34467,36002,38799,20018,23521,25096,26524,29916,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,31185,33747,35463,35506,36328,36942,37707,38982,24275,27112,34303,37101,63749,20896,23448,23532,24931,26874,27454,28748,29743,29912,31649,32592,33733,35264,36011,38364,39208,21038,24669,25324,36866,20362,20809,21281,22745,24291,26336,27960,28826,29378,29654,31568,33009,37979,21350,25499,32619,20054,20608,22602,22750,24618,24871,25296,27088,39745,23439,32024,32945,36703,20132,20689,21676,21932,23308,23968,24039,25898,25934,26657,27211,29409,30350,30703,32094,32761,33184,34126,34527,36611,36686,37066,39171,39509,39851,19992,20037,20061,20167,20465,20855,21246,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,21312,21475,21477,21646,22036,22389,22434,23495,23943,24272,25084,25304,25937,26552,26601,27083,27472,27590,27628,27714,28317,28792,29399,29590,29699,30655,30697,31350,32127,32777,33276,33285,33290,33503,34914,35635,36092,36544,36881,37041,37476,37558,39378,39493,40169,40407,40860,22283,23616,33738,38816,38827,40628,21531,31384,32676,35033,36557,37089,22528,23624,25496,31391,23470,24339,31353,31406,33422,36524,20518,21048,21240,21367,22280,25331,25458,27402,28099,30519,21413,29527,34152,36470,38357,26426,27331,28528,35437,36556,39243,63750,26231,27512,36020,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,39740,63751,21483,22317,22862,25542,27131,29674,30789,31418,31429,31998,33909,35215,36211,36917,38312,21243,22343,30023,31584,33740,37406,63752,27224,20811,21067,21127,25119,26840,26997,38553,20677,21156,21220,25027,26020,26681,27135,29822,31563,33465,33771,35250,35641,36817,39241,63753,20170,22935,25810,26129,27278,29748,31105,31165,33449,34942,34943,35167,63754,37670,20235,21450,24613,25201,27762,32026,32102,20120,20834,30684,32943,20225,20238,20854,20864,21980,22120,22331,22522,22524,22804,22855,22931,23492,23696,23822,24049,24190,24524,25216,26071,26083,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,26398,26399,26462,26827,26820,27231,27450,27683,27773,27778,28103,29592,29734,29738,29826,29859,30072,30079,30849,30959,31041,31047,31048,31098,31637,32e3,32186,32648,32774,32813,32908,35352,35663,35912,36215,37665,37668,39138,39249,39438,39439,39525,40594,32202,20342,21513,25326,26708,37329,21931,20794,63755,63756,23068,25062,63757,25295,25343,63758,63759,63760,63761,63762,63763,37027,63764,63765,63766,63767,63768,35582,63769,63770,63771,63772,26262,63773,29014,63774,63775,38627,63776,25423,25466,21335,63777,26511,26976,28275,63778,30007,63779,63780,63781,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,32013,63782,63783,34930,22218,23064,63784,63785,63786,63787,63788,20035,63789,20839,22856,26608,32784,63790,22899,24180,25754,31178,24565,24684,25288,25467,23527,23511,21162,63791,22900,24361,24594,63792,63793,63794,29785,63795,63796,63797,63798,63799,63800,39377,63801,63802,63803,63804,63805,63806,63807,63808,63809,63810,63811,28611,63812,63813,33215,36786,24817,63814,63815,33126,63816,63817,23615,63818,63819,63820,63821,63822,63823,63824,63825,23273,35365,26491,32016,63826,63827,63828,63829,63830,63831,33021,63832,63833,23612,27877,21311,28346,22810,33590,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,20025,20150,20294,21934,22296,22727,24406,26039,26086,27264,27573,28237,30701,31471,31774,32222,34507,34962,37170,37723,25787,28606,29562,30136,36948,21846,22349,25018,25812,26311,28129,28251,28525,28601,30192,32835,33213,34113,35203,35527,35674,37663,27795,30035,31572,36367,36957,21776,22530,22616,24162,25095,25758,26848,30070,31958,34739,40680,20195,22408,22382,22823,23565,23729,24118,24453,25140,25825,29619,33274,34955,36024,38538,40667,23429,24503,24755,20498,20992,21040,22294,22581,22615,23566,23648,23798,23947,24230,24466,24764,25361,25481,25623,26691,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,26873,27330,28120,28193,28372,28644,29182,30428,30585,31153,31291,33796,35241,36077,36339,36424,36867,36884,36947,37117,37709,38518,38876,27602,28678,29272,29346,29544,30563,31167,31716,32411,35712,22697,24775,25958,26109,26302,27788,28958,29129,35930,38931,20077,31361,20189,20908,20941,21205,21516,24999,26481,26704,26847,27934,28540,30140,30643,31461,33012,33891,37509,20828,26007,26460,26515,30168,31431,33651,63834,35910,36887,38957,23663,33216,33434,36929,36975,37389,24471,23965,27225,29128,30331,31561,34276,35588,37159,39472,21895,25078,63835,30313,32645,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,34367,34746,35064,37007,63836,27931,28889,29662,32097,33853,63837,37226,39409,63838,20098,21365,27396,27410,28734,29211,34349,40478,21068,36771,23888,25829,25900,27414,28651,31811,32412,34253,35172,35261,25289,33240,34847,24266,26391,28010,29436,29701,29807,34690,37086,20358,23821,24480,33802,20919,25504,30053,20142,20486,20841,20937,26753,27153,31918,31921,31975,33391,35538,36635,37327,20406,20791,21237,21570,24300,24942,25150,26053,27354,28670,31018,34268,34851,38317,39522,39530,40599,40654,21147,26310,27511,28701,31019,36706,38722,24976,25088,25891,28451,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,29001,29833,32244,32879,34030,36646,36899,37706,20925,21015,21155,27916,28872,35010,24265,25986,27566,28610,31806,29557,20196,20278,22265,63839,23738,23994,24604,29618,31533,32666,32718,32838,36894,37428,38646,38728,38936,40801,20363,28583,31150,37300,38583,21214,63840,25736,25796,27347,28510,28696,29200,30439,32769,34310,34396,36335,36613,38706,39791,40442,40565,30860,31103,32160,33737,37636,40575,40595,35542,22751,24324,26407,28711,29903,31840,32894,20769,28712,29282,30922,36034,36058,36084,38647,20102,20698,23534,24278,26009,29134,30274,30637,32842,34044,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,36988,39719,40845,22744,23105,23650,27155,28122,28431,30267,32047,32311,34078,35128,37860,38475,21129,26066,26611,27060,27969,28316,28687,29705,29792,30041,30244,30827,35628,39006,20845,25134,38520,20374,20523,23833,28138,32184,36650,24459,24900,26647,63841,38534,21202,32907,20956,20940,26974,31260,32190,33777,38517,20442,21033,21400,21519,21774,23653,24743,26446,26792,28012,29313,29432,29702,29827,63842,30178,31852,32633,32696,33673,35023,35041,37324,37328,38626,39881,21533,28542,29136,29848,34298,36522,38563,40023,40607,26519,28107,29747,33256,38678,30764,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,31435,31520,31890,25705,29802,30194,30908,30952,39340,39764,40635,23518,24149,28448,33180,33707,37e3,19975,21325,23081,24018,24398,24930,25405,26217,26364,28415,28459,28771,30622,33836,34067,34875,36627,39237,39995,21788,25273,26411,27819,33545,35178,38778,20129,22916,24536,24537,26395,32178,32596,33426,33579,33725,36638,37017,22475,22969,23186,23504,26151,26522,26757,27599,29028,32629,36023,36067,36993,39749,33032,35978,38476,39488,40613,23391,27667,29467,30450,30431,33804,20906,35219,20813,20885,21193,26825,27796,30468,30496,32191,32236,38754,40629,28357,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,34065,20901,21517,21629,26126,26269,26919,28319,30399,30609,33559,33986,34719,37225,37528,40180,34946,20398,20882,21215,22982,24125,24917,25720,25721,26286,26576,27169,27597,27611,29279,29281,29761,30520,30683,32791,33468,33541,35584,35624,35980,26408,27792,29287,30446,30566,31302,40361,27519,27794,22818,26406,33945,21359,22675,22937,24287,25551,26164,26483,28218,29483,31447,33495,37672,21209,24043,25006,25035,25098,25287,25771,26080,26969,27494,27595,28961,29687,30045,32326,33310,33538,34154,35491,36031,38695,40289,22696,40664,20497,21006,21563,21839,25991,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,27766,32010,32011,32862,34442,38272,38639,21247,27797,29289,21619,23194,23614,23883,24396,24494,26410,26806,26979,28220,28228,30473,31859,32654,34183,35598,36855,38753,40692,23735,24758,24845,25003,25935,26107,26108,27665,27887,29599,29641,32225,38292,23494,34588,35600,21085,21338,25293,25615,25778,26420,27192,27850,29632,29854,31636,31893,32283,33162,33334,34180,36843,38649,39361,20276,21322,21453,21467,25292,25644,25856,26001,27075,27886,28504,29677,30036,30242,30436,30460,30928,30971,31020,32070,33324,34784,36820,38930,39151,21187,25300,25765,28196,28497,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,30332,36299,37297,37474,39662,39747,20515,20621,22346,22952,23592,24135,24439,25151,25918,26041,26049,26121,26507,27036,28354,30917,32033,32938,33152,33323,33459,33953,34444,35370,35607,37030,38450,40848,20493,20467,63843,22521,24472,25308,25490,26479,28227,28953,30403,32972,32986,35060,35061,35097,36064,36649,37197,38506,20271,20336,24091,26575,26658,30333,30334,39748,24161,27146,29033,29140,30058,63844,32321,34115,34281,39132,20240,31567,32624,38309,20961,24070,26805,27710,27726,27867,29359,31684,33539,27861,29754,20731,21128,22721,25816,27287,29863,30294,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,30887,34327,38370,38713,63845,21342,24321,35722,36776,36783,37002,21029,30629,40009,40712,19993,20482,20853,23643,24183,26142,26170,26564,26821,28851,29953,30149,31177,31453,36647,39200,39432,20445,22561,22577,23542,26222,27493,27921,28282,28541,29668,29995,33769,35036,35091,35676,36628,20239,20693,21264,21340,23443,24489,26381,31119,33145,33583,34068,35079,35206,36665,36667,39333,39954,26412,20086,20472,22857,23553,23791,23792,25447,26834,28925,29090,29739,32299,34028,34562,36898,37586,40179,19981,20184,20463,20613,21078,21103,21542,21648,22496,22827,23142,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,23386,23413,23500,24220,63846,25206,25975,26023,28014,28325,29238,31526,31807,32566,33104,33105,33178,33344,33433,33705,35331,36e3,36070,36091,36212,36282,37096,37340,38428,38468,39385,40167,21271,20998,21545,22132,22707,22868,22894,24575,24996,25198,26128,27774,28954,30406,31881,31966,32027,33452,36033,38640,63847,20315,24343,24447,25282,23849,26379,26842,30844,32323,40300,19989,20633,21269,21290,21329,22915,23138,24199,24754,24970,25161,25209,26e3,26503,27047,27604,27606,27607,27608,27832,63848,29749,30202,30738,30865,31189,31192,31875,32203,32737,32933,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,33086,33218,33778,34586,35048,35513,35692,36027,37145,38750,39131,40763,22188,23338,24428,25996,27315,27567,27996,28657,28693,29277,29613,36007,36051,38971,24977,27703,32856,39425,20045,20107,20123,20181,20282,20284,20351,20447,20735,21490,21496,21766,21987,22235,22763,22882,23057,23531,23546,23556,24051,24107,24473,24605,25448,26012,26031,26614,26619,26797,27515,27801,27863,28195,28681,29509,30722,31038,31040,31072,31169,31721,32023,32114,32902,33293,33678,34001,34503,35039,35408,35422,35613,36060,36198,36781,37034,39164,39391,40605,21066,63849,26388,63850,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,20632,21034,23665,25955,27733,29642,29987,30109,31639,33948,37240,38704,20087,25746,27578,29022,34217,19977,63851,26441,26862,28183,33439,34072,34923,25591,28545,37394,39087,19978,20663,20687,20767,21830,21930,22039,23360,23577,23776,24120,24202,24224,24258,24819,26705,27233,28248,29245,29248,29376,30456,31077,31665,32724,35059,35316,35443,35937,36062,38684,22622,29885,36093,21959,63852,31329,32034,33394,29298,29983,29989,63853,31513,22661,22779,23996,24207,24246,24464,24661,25234,25471,25933,26257,26329,26360,26646,26866,29312,29790,31598,32110,32214,32626,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,32997,33298,34223,35199,35475,36893,37604,40653,40736,22805,22893,24109,24796,26132,26227,26512,27728,28101,28511,30707,30889,33990,37323,37675,20185,20682,20808,21892,23307,23459,25159,25982,26059,28210,29053,29697,29764,29831,29887,30316,31146,32218,32341,32680,33146,33203,33337,34330,34796,35445,36323,36984,37521,37925,39245,39854,21352,23633,26964,27844,27945,28203,33292,34203,35131,35373,35498,38634,40807,21089,26297,27570,32406,34814,36109,38275,38493,25885,28041,29166,63854,22478,22995,23468,24615,24826,25104,26143,26207,29481,29689,30427,30465,31596,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,32854,32882,33125,35488,37266,19990,21218,27506,27927,31237,31545,32048,63855,36016,21484,22063,22609,23477,23567,23569,24034,25152,25475,25620,26157,26803,27836,28040,28335,28703,28836,29138,29990,30095,30094,30233,31505,31712,31787,32032,32057,34092,34157,34311,35380,36877,36961,37045,37559,38902,39479,20439,23660,26463,28049,31903,32396,35606,36118,36895,23403,24061,25613,33984,36956,39137,29575,23435,24730,26494,28126,35359,35494,36865,38924,21047,63856,28753,30862,37782,34928,37335,20462,21463,22013,22234,22402,22781,23234,23432,23723,23744,24101,24833,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,25101,25163,25480,25628,25910,25976,27193,27530,27700,27929,28465,29159,29417,29560,29703,29874,30246,30561,31168,31319,31466,31929,32143,32172,32353,32670,33065,33585,33936,34010,34282,34966,35504,35728,36664,36930,36995,37228,37526,37561,38539,38567,38568,38614,38656,38920,39318,39635,39706,21460,22654,22809,23408,23487,28113,28506,29087,29729,29881,32901,33789,24033,24455,24490,24642,26092,26642,26991,27219,27529,27957,28147,29667,30462,30636,31565,32020,33059,33308,33600,34036,34147,35426,35524,37255,37662,38918,39348,25100,34899,36848,37477,23815,23847,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,23913,29791,33181,34664,28629,25342,32722,35126,35186,19998,20056,20711,21213,21319,25215,26119,32361,34821,38494,20365,21273,22070,22987,23204,23608,23630,23629,24066,24337,24643,26045,26159,26178,26558,26612,29468,30690,31034,32709,33940,33997,35222,35430,35433,35553,35925,35962,22516,23508,24335,24687,25325,26893,27542,28252,29060,31698,34645,35672,36606,39135,39166,20280,20353,20449,21627,23072,23480,24892,26032,26216,29180,30003,31070,32051,33102,33251,33688,34218,34254,34563,35338,36523,36763,63857,36805,22833,23460,23526,24713,23529,23563,24515,27777,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,63858,28145,28683,29978,33455,35574,20160,21313,63859,38617,27663,20126,20420,20818,21854,23077,23784,25105,29273,33469,33706,34558,34905,35357,38463,38597,39187,40201,40285,22538,23731,23997,24132,24801,24853,25569,27138,28197,37122,37716,38990,39952,40823,23433,23736,25353,26191,26696,30524,38593,38797,38996,39839,26017,35585,36555,38332,21813,23721,24022,24245,26263,30284,33780,38343,22739,25276,29390,40232,20208,22830,24591,26171,27523,31207,40230,21395,21696,22467,23830,24859,26326,28079,30861,33406,38552,38724,21380,25212,25494,28082,32266,33099,38989,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,27387,32588,40367,40474,20063,20539,20918,22812,24825,25590,26928,29242,32822,63860,37326,24369,63861,63862,32004,33509,33903,33979,34277,36493,63863,20335,63864,63865,22756,23363,24665,25562,25880,25965,26264,63866,26954,27171,27915,28673,29036,30162,30221,31155,31344,63867,32650,63868,35140,63869,35731,37312,38525,63870,39178,22276,24481,26044,28417,30208,31142,35486,39341,39770,40812,20740,25014,25233,27277,33222,20547,22576,24422,28937,35328,35578,23420,34326,20474,20796,22196,22852,25513,28153,23978,26989,20870,20104,20313,63871,63872,63873,22914,63874,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,63875,27487,27741,63876,29877,30998,63877,33287,33349,33593,36671,36701,63878,39192,63879,63880,63881,20134,63882,22495,24441,26131,63883,63884,30123,32377,35695,63885,36870,39515,22181,22567,23032,23071,23476,63886,24310,63887,63888,25424,25403,63889,26941,27783,27839,28046,28051,28149,28436,63890,28895,28982,29017,63891,29123,29141,63892,30799,30831,63893,31605,32227,63894,32303,63895,34893,36575,63896,63897,63898,37467,63899,40182,63900,63901,63902,24709,28037,63903,29105,63904,63905,38321,21421,63906,63907,63908,26579,63909,28814,28976,29744,33398,33490,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,63910,38331,39653,40573,26308,63911,29121,33865,63912,63913,22603,63914,63915,23992,24433,63916,26144,26254,27001,27054,27704,27891,28214,28481,28634,28699,28719,29008,29151,29552,63917,29787,63918,29908,30408,31310,32403,63919,63920,33521,35424,36814,63921,37704,63922,38681,63923,63924,20034,20522,63925,21e3,21473,26355,27757,28618,29450,30591,31330,33454,34269,34306,63926,35028,35427,35709,35947,63927,37555,63928,38675,38928,20116,20237,20425,20658,21320,21566,21555,21978,22626,22714,22887,23067,23524,24735,63929,25034,25942,26111,26212,26791,27738,28595,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,28879,29100,29522,31613,34568,35492,39986,40711,23627,27779,29508,29577,37434,28331,29797,30239,31337,32277,34314,20800,22725,25793,29934,29973,30320,32705,37013,38605,39252,28198,29926,31401,31402,33253,34521,34680,35355,23113,23436,23451,26785,26880,28003,29609,29715,29740,30871,32233,32747,33048,33109,33694,35916,38446,38929,26352,24448,26106,26505,27754,29579,20525,23043,27498,30702,22806,23916,24013,29477,30031,63930,63931,20709,20985,22575,22829,22934,23002,23525,63932,63933,23970,25303,25622,25747,25854,63934,26332,63935,27208,63936,29183,29796,63937,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,31368,31407,32327,32350,32768,33136,63938,34799,35201,35616,36953,63939,36992,39250,24958,27442,28020,32287,35109,36785,20433,20653,20887,21191,22471,22665,23481,24248,24898,27029,28044,28263,28342,29076,29794,29992,29996,32883,33592,33993,36362,37780,37854,63940,20110,20305,20598,20778,21448,21451,21491,23431,23507,23588,24858,24962,26100,29275,29591,29760,30402,31056,31121,31161,32006,32701,33419,34261,34398,36802,36935,37109,37354,38533,38632,38633,21206,24423,26093,26161,26671,29020,31286,37057,38922,20113,63941,27218,27550,28560,29065,32792,33464,34131,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,36939,38549,38642,38907,34074,39729,20112,29066,38596,20803,21407,21729,22291,22290,22435,23195,23236,23491,24616,24895,25588,27781,27961,28274,28304,29232,29503,29783,33489,34945,36677,36960,63942,38498,39e3,40219,26376,36234,37470,20301,20553,20702,21361,22285,22996,23041,23561,24944,26256,28205,29234,29771,32239,32963,33806,33894,34111,34655,34907,35096,35586,36949,38859,39759,20083,20369,20754,20842,63943,21807,21929,23418,23461,24188,24189,24254,24736,24799,24840,24841,25540,25912,26377,63944,26580,26586,63945,26977,26978,27833,27943,63946,28216,63947,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,28641,29494,29495,63948,29788,30001,63949,30290,63950,63951,32173,33278,33848,35029,35480,35547,35565,36400,36418,36938,36926,36986,37193,37321,37742,63952,63953,22537,63954,27603,32905,32946,63955,63956,20801,22891,23609,63957,63958,28516,29607,32996,36103,63959,37399,38287,63960,63961,63962,63963,32895,25102,28700,32104,34701,63964,22432,24681,24903,27575,35518,37504,38577,20057,21535,28139,34093,38512,38899,39150,25558,27875,37009,20957,25033,33210,40441,20381,20506,20736,23452,24847,25087,25836,26885,27589,30097,30691,32681,33380,34191,34811,34915,35516,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,35696,37291,20108,20197,20234,63965,63966,22839,23016,63967,24050,24347,24411,24609,63968,63969,63970,63971,29246,29669,63972,30064,30157,63973,31227,63974,32780,32819,32900,33505,33617,63975,63976,36029,36019,36999,63977,63978,39156,39180,63979,63980,28727,30410,32714,32716,32764,35610,20154,20161,20995,21360,63981,21693,22240,23035,23493,24341,24525,28270,63982,63983,32106,33589,63984,34451,35469,63985,38765,38775,63986,63987,19968,20314,20350,22777,26085,28322,36920,37808,39353,20219,22764,22922,23001,24641,63988,63989,31252,63990,33615,36035,20837,21316,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,63991,63992,63993,20173,21097,23381,33471,20180,21050,21672,22985,23039,23376,23383,23388,24675,24904,28363,28825,29038,29574,29943,30133,30913,32043,32773,33258,33576,34071,34249,35566,36039,38604,20316,21242,22204,26027,26152,28796,28856,29237,32189,33421,37196,38592,40306,23409,26855,27544,28538,30430,23697,26283,28507,31668,31786,34870,38620,19976,20183,21280,22580,22715,22767,22892,23559,24115,24196,24373,25484,26290,26454,27167,27299,27404,28479,29254,63994,29520,29835,31456,31911,33144,33247,33255,33674,33900,34083,34196,34255,35037,36115,37292,38263,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,38556,20877,21705,22312,23472,25165,26448,26685,26771,28221,28371,28797,32289,35009,36001,36617,40779,40782,29229,31631,35533,37658,20295,20302,20786,21632,22992,24213,25269,26485,26990,27159,27822,28186,29401,29482,30141,31672,32053,33511,33785,33879,34295,35419,36015,36487,36889,37048,38606,40799,21219,21514,23265,23490,25688,25973,28404,29380,63995,30340,31309,31515,31821,32318,32735,33659,35627,36042,36196,36321,36447,36842,36857,36969,37841,20291,20346,20659,20840,20856,21069,21098,22625,22652,22880,23560,23637,24283,24731,25136,26643,27583,27656,28593,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,29006,29728,3e4,30008,30033,30322,31564,31627,31661,31686,32399,35438,36670,36681,37439,37523,37666,37931,38651,39002,39019,39198,20999,25130,25240,27993,30308,31434,31680,32118,21344,23742,24215,28472,28857,31896,38673,39822,40670,25509,25722,34678,19969,20117,20141,20572,20597,21576,22979,23450,24128,24237,24311,24449,24773,25402,25919,25972,26060,26230,26232,26622,26984,27273,27491,27712,28096,28136,28191,28254,28702,28833,29582,29693,30010,30555,30855,31118,31243,31357,31934,32142,33351,35330,35562,35998,37165,37194,37336,37478,37580,37664,38662,38742,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,38748,38914,40718,21046,21137,21884,22564,24093,24351,24716,25552,26799,28639,31085,31532,33229,34234,35069,35576,36420,37261,38500,38555,38717,38988,40778,20430,20806,20939,21161,22066,24340,24427,25514,25805,26089,26177,26362,26361,26397,26781,26839,27133,28437,28526,29031,29157,29226,29866,30522,31062,31066,31199,31264,31381,31895,31967,32068,32368,32903,34299,34468,35412,35519,36249,36481,36896,36973,37347,38459,38613,40165,26063,31751,36275,37827,23384,23562,21330,25305,29469,20519,23447,24478,24752,24939,26837,28121,29742,31278,32066,32156,32305,33131,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,36394,36405,37758,37912,20304,22352,24038,24231,25387,32618,20027,20303,20367,20570,23005,32964,21610,21608,22014,22863,23449,24030,24282,26205,26417,26609,26666,27880,27954,28234,28557,28855,29664,30087,31820,32002,32044,32162,33311,34523,35387,35461,36208,36490,36659,36913,37198,37202,37956,39376,31481,31909,20426,20737,20934,22472,23535,23803,26201,27197,27994,28310,28652,28940,30063,31459,34850,36897,36981,38603,39423,33537,20013,20210,34886,37325,21373,27355,26987,27713,33914,22686,24974,26366,25327,28893,29969,30151,32338,33976,35657,36104,20043,21482,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,21675,22320,22336,24535,25345,25351,25711,25903,26088,26234,26525,26547,27490,27744,27802,28460,30693,30757,31049,31063,32025,32930,33026,33267,33437,33463,34584,35468,63996,36100,36286,36978,30452,31257,31287,32340,32887,21767,21972,22645,25391,25634,26185,26187,26733,27035,27524,27941,28337,29645,29800,29857,30043,30137,30433,30494,30603,31206,32265,32285,33275,34095,34967,35386,36049,36587,36784,36914,37805,38499,38515,38663,20356,21489,23018,23241,24089,26702,29894,30142,31209,31378,33187,34541,36074,36300,36845,26015,26389,63997,22519,28503,32221,36655,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,37878,38598,24501,25074,28548,19988,20376,20511,21449,21983,23919,24046,27425,27492,30923,31642,63998,36425,36554,36974,25417,25662,30528,31364,37679,38015,40810,25776,28591,29158,29864,29914,31428,31762,32386,31922,32408,35738,36106,38013,39184,39244,21049,23519,25830,26413,32046,20717,21443,22649,24920,24921,25082,26028,31449,35730,35734,20489,20513,21109,21809,23100,24288,24432,24884,25950,26124,26166,26274,27085,28356,28466,29462,30241,31379,33081,33369,33750,33980,20661,22512,23488,23528,24425,25505,30758,32181,33756,34081,37319,37365,20874,26613,31574,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,36012,20932,22971,24765,34389,20508,63999,21076,23610,24957,25114,25299,25842,26021,28364,30240,33034,36448,38495,38587,20191,21315,21912,22825,24029,25797,27849,28154,29588,31359,33307,34214,36068,36368,36983,37351,38369,38433,38854,20984,21746,21894,24505,25764,28552,32180,36639,36685,37941,20681,23574,27838,28155,29979,30651,31805,31844,35449,35522,22558,22974,24086,25463,29266,30090,30571,35548,36028,36626,24307,26228,28152,32893,33729,35531,38737,39894,64e3,21059,26367,28053,28399,32224,35558,36910,36958,39636,21021,21119,21736,24980,25220,25307,26786,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,26898,26970,27189,28818,28966,30813,30977,30990,31186,31245,32918,33400,33493,33609,34121,35970,36229,37218,37259,37294,20419,22225,29165,30679,34560,35320,23544,24534,26449,37032,21474,22618,23541,24740,24961,25696,32317,32880,34085,37507,25774,20652,23828,26368,22684,25277,25512,26894,27e3,27166,28267,30394,31179,33467,33833,35535,36264,36861,37138,37195,37276,37648,37656,37786,38619,39478,39949,19985,30044,31069,31482,31569,31689,32302,33988,36441,36468,36600,36880,26149,26943,29763,20986,26414,40668,20805,24544,27798,34802,34909,34935,24756,33205,33795,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,36101,21462,21561,22068,23094,23601,28810,32736,32858,33030,33261,36259,37257,39519,40434,20596,20164,21408,24827,28204,23652,20360,20516,21988,23769,24159,24677,26772,27835,28100,29118,30164,30196,30305,31258,31305,32199,32251,32622,33268,34473,36636,38601,39347,40786,21063,21189,39149,35242,19971,26578,28422,20405,23522,26517,27784,28024,29723,30759,37341,37756,34756,31204,31281,24555,20182,21668,21822,22702,22949,24816,25171,25302,26422,26965,33333,38464,39345,39389,20524,21331,21828,22396,64001,25176,64002,25826,26219,26589,28609,28655,29730,29752,35351,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,37944,21585,22022,22374,24392,24986,27470,28760,28845,32187,35477,22890,33067,25506,30472,32829,36010,22612,25645,27067,23445,24081,28271,64003,34153,20812,21488,22826,24608,24907,27526,27760,27888,31518,32974,33492,36294,37040,39089,64004,25799,28580,25745,25860,20814,21520,22303,35342,24927,26742,64005,30171,31570,32113,36890,22534,27084,33151,35114,36864,38969,20600,22871,22956,25237,36879,39722,24925,29305,38358,22369,23110,24052,25226,25773,25850,26487,27874,27966,29228,29750,30772,32631,33453,36315,38935,21028,22338,26495,29256,29923,36009,36774,37393,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,38442,20843,21485,25420,20329,21764,24726,25943,27803,28031,29260,29437,31255,35207,35997,24429,28558,28921,33192,24846,20415,20559,25153,29255,31687,32232,32745,36941,38829,39449,36022,22378,24179,26544,33805,35413,21536,23318,24163,24290,24330,25987,32954,34109,38281,38491,20296,21253,21261,21263,21638,21754,22275,24067,24598,25243,25265,25429,64006,27873,28006,30129,30770,32990,33071,33502,33889,33970,34957,35090,36875,37610,39165,39825,24133,26292,26333,28689,29190,64007,20469,21117,24426,24915,26451,27161,28418,29922,31080,34920,35961,39111,39108,39491,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,21697,31263,26963,35575,35914,39080,39342,24444,25259,30130,30382,34987,36991,38466,21305,24380,24517,27852,29644,30050,30091,31558,33534,39325,20047,36924,19979,20309,21414,22799,24264,26160,27827,29781,33655,34662,36032,36944,38686,39957,22737,23416,34384,35604,40372,23506,24680,24717,26097,27735,28450,28579,28698,32597,32752,38289,38290,38480,38867,21106,36676,20989,21547,21688,21859,21898,27323,28085,32216,33382,37532,38519,40569,21512,21704,30418,34532,38308,38356,38492,20130,20233,23022,23270,24055,24658,25239,26477,26689,27782,28207,32568,32923,33322,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,64008,64009,38917,20133,20565,21683,22419,22874,23401,23475,25032,26999,28023,28707,34809,35299,35442,35559,36994,39405,39608,21182,26680,20502,24184,26447,33607,34892,20139,21521,22190,29670,37141,38911,39177,39255,39321,22099,22687,34395,35377,25010,27382,29563,36562,27463,38570,39511,22869,29184,36203,38761,20436,23796,24358,25080,26203,27883,28843,29572,29625,29694,30505,30541,32067,32098,32291,33335,34898,64010,36066,37449,39023,23377,31348,34880,38913,23244,20448,21332,22846,23805,25406,28025,29433,33029,33031,33698,37583,38960,20136,20804,21009,22411,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,24418,27842,28366,28677,28752,28847,29074,29673,29801,33610,34722,34913,36872,37026,37795,39336,20846,24407,24800,24935,26291,34137,36426,37295,38795,20046,20114,21628,22741,22778,22909,23733,24359,25142,25160,26122,26215,27627,28009,28111,28246,28408,28564,28640,28649,28765,29392,29733,29786,29920,30355,31068,31946,32286,32993,33446,33899,33983,34382,34399,34676,35703,35946,37804,38912,39013,24785,25110,37239,23130,26127,28151,28222,29759,39746,24573,24794,31503,21700,24344,27742,27859,27946,28888,32005,34425,35340,40251,21270,21644,23301,27194,28779,30069,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,31117,31166,33457,33775,35441,35649,36008,38772,64011,25844,25899,30906,30907,31339,20024,21914,22864,23462,24187,24739,25563,27489,26213,26707,28185,29029,29872,32008,36996,39529,39973,27963,28369,29502,35905,38346,20976,24140,24488,24653,24822,24880,24908,26179,26180,27045,27841,28255,28361,28514,29004,29852,30343,31681,31783,33618,34647,36945,38541,40643,21295,22238,24315,24458,24674,24724,25079,26214,26371,27292,28142,28590,28784,29546,32362,33214,33588,34516,35496,36036,21123,29554,23446,27243,37892,21742,22150,23389,25928,25989,26313,26783,28045,28102,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,29243,32948,37237,39501,20399,20505,21402,21518,21564,21897,21957,24127,24460,26429,29030,29661,36869,21211,21235,22628,22734,28932,29071,29179,34224,35347,26248,34216,21927,26244,29002,33841,21321,21913,27585,24409,24509,25582,26249,28999,35569,36637,40638,20241,25658,28875,30054,34407,24676,35662,40440,20807,20982,21256,27958,33016,40657,26133,27427,28824,30165,21507,23673,32007,35350,27424,27453,27462,21560,24688,27965,32725,33288,20694,20958,21916,22123,22221,23020,23305,24076,24985,24984,25137,26206,26342,29081,29113,29114,29351,31143,31232,32690,35440,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null],gb18030:[19970,19972,19973,19974,19983,19986,19991,19999,2e4,20001,20003,20006,20009,20014,20015,20017,20019,20021,20023,20028,20032,20033,20034,20036,20038,20042,20049,20053,20055,20058,20059,20066,20067,20068,20069,20071,20072,20074,20075,20076,20077,20078,20079,20082,20084,20085,20086,20087,20088,20089,20090,20091,20092,20093,20095,20096,20097,20098,20099,20100,20101,20103,20106,20112,20118,20119,20121,20124,20125,20126,20131,20138,20143,20144,20145,20148,20150,20151,20152,20153,20156,20157,20158,20168,20172,20175,20176,20178,20186,20187,20188,20192,20194,20198,20199,20201,20205,20206,20207,20209,20212,20216,20217,20218,20220,20222,20224,20226,20227,20228,20229,20230,20231,20232,20235,20236,20242,20243,20244,20245,20246,20252,20253,20257,20259,20264,20265,20268,20269,20270,20273,20275,20277,20279,20281,20283,20286,20287,20288,20289,20290,20292,20293,20295,20296,20297,20298,20299,20300,20306,20308,20310,20321,20322,20326,20328,20330,20331,20333,20334,20337,20338,20341,20343,20344,20345,20346,20349,20352,20353,20354,20357,20358,20359,20362,20364,20366,20368,20370,20371,20373,20374,20376,20377,20378,20380,20382,20383,20385,20386,20388,20395,20397,20400,20401,20402,20403,20404,20406,20407,20408,20409,20410,20411,20412,20413,20414,20416,20417,20418,20422,20423,20424,20425,20427,20428,20429,20434,20435,20436,20437,20438,20441,20443,20448,20450,20452,20453,20455,20459,20460,20464,20466,20468,20469,20470,20471,20473,20475,20476,20477,20479,20480,20481,20482,20483,20484,20485,20486,20487,20488,20489,20490,20491,20494,20496,20497,20499,20501,20502,20503,20507,20509,20510,20512,20514,20515,20516,20519,20523,20527,20528,20529,20530,20531,20532,20533,20534,20535,20536,20537,20539,20541,20543,20544,20545,20546,20548,20549,20550,20553,20554,20555,20557,20560,20561,20562,20563,20564,20566,20567,20568,20569,20571,20573,20574,20575,20576,20577,20578,20579,20580,20582,20583,20584,20585,20586,20587,20589,20590,20591,20592,20593,20594,20595,20596,20597,20600,20601,20602,20604,20605,20609,20610,20611,20612,20614,20615,20617,20618,20619,20620,20622,20623,20624,20625,20626,20627,20628,20629,20630,20631,20632,20633,20634,20635,20636,20637,20638,20639,20640,20641,20642,20644,20646,20650,20651,20653,20654,20655,20656,20657,20659,20660,20661,20662,20663,20664,20665,20668,20669,20670,20671,20672,20673,20674,20675,20676,20677,20678,20679,20680,20681,20682,20683,20684,20685,20686,20688,20689,20690,20691,20692,20693,20695,20696,20697,20699,20700,20701,20702,20703,20704,20705,20706,20707,20708,20709,20712,20713,20714,20715,20719,20720,20721,20722,20724,20726,20727,20728,20729,20730,20732,20733,20734,20735,20736,20737,20738,20739,20740,20741,20744,20745,20746,20748,20749,20750,20751,20752,20753,20755,20756,20757,20758,20759,20760,20761,20762,20763,20764,20765,20766,20767,20768,20770,20771,20772,20773,20774,20775,20776,20777,20778,20779,20780,20781,20782,20783,20784,20785,20786,20787,20788,20789,20790,20791,20792,20793,20794,20795,20796,20797,20798,20802,20807,20810,20812,20814,20815,20816,20818,20819,20823,20824,20825,20827,20829,20830,20831,20832,20833,20835,20836,20838,20839,20841,20842,20847,20850,20858,20862,20863,20867,20868,20870,20871,20874,20875,20878,20879,20880,20881,20883,20884,20888,20890,20893,20894,20895,20897,20899,20902,20903,20904,20905,20906,20909,20910,20916,20920,20921,20922,20926,20927,20929,20930,20931,20933,20936,20938,20941,20942,20944,20946,20947,20948,20949,20950,20951,20952,20953,20954,20956,20958,20959,20962,20963,20965,20966,20967,20968,20969,20970,20972,20974,20977,20978,20980,20983,20990,20996,20997,21001,21003,21004,21007,21008,21011,21012,21013,21020,21022,21023,21025,21026,21027,21029,21030,21031,21034,21036,21039,21041,21042,21044,21045,21052,21054,21060,21061,21062,21063,21064,21065,21067,21070,21071,21074,21075,21077,21079,21080,21081,21082,21083,21085,21087,21088,21090,21091,21092,21094,21096,21099,21100,21101,21102,21104,21105,21107,21108,21109,21110,21111,21112,21113,21114,21115,21116,21118,21120,21123,21124,21125,21126,21127,21129,21130,21131,21132,21133,21134,21135,21137,21138,21140,21141,21142,21143,21144,21145,21146,21148,21156,21157,21158,21159,21166,21167,21168,21172,21173,21174,21175,21176,21177,21178,21179,21180,21181,21184,21185,21186,21188,21189,21190,21192,21194,21196,21197,21198,21199,21201,21203,21204,21205,21207,21209,21210,21211,21212,21213,21214,21216,21217,21218,21219,21221,21222,21223,21224,21225,21226,21227,21228,21229,21230,21231,21233,21234,21235,21236,21237,21238,21239,21240,21243,21244,21245,21249,21250,21251,21252,21255,21257,21258,21259,21260,21262,21265,21266,21267,21268,21272,21275,21276,21278,21279,21282,21284,21285,21287,21288,21289,21291,21292,21293,21295,21296,21297,21298,21299,21300,21301,21302,21303,21304,21308,21309,21312,21314,21316,21318,21323,21324,21325,21328,21332,21336,21337,21339,21341,21349,21352,21354,21356,21357,21362,21366,21369,21371,21372,21373,21374,21376,21377,21379,21383,21384,21386,21390,21391,21392,21393,21394,21395,21396,21398,21399,21401,21403,21404,21406,21408,21409,21412,21415,21418,21419,21420,21421,21423,21424,21425,21426,21427,21428,21429,21431,21432,21433,21434,21436,21437,21438,21440,21443,21444,21445,21446,21447,21454,21455,21456,21458,21459,21461,21466,21468,21469,21470,21473,21474,21479,21492,21498,21502,21503,21504,21506,21509,21511,21515,21524,21528,21529,21530,21532,21538,21540,21541,21546,21552,21555,21558,21559,21562,21565,21567,21569,21570,21572,21573,21575,21577,21580,21581,21582,21583,21585,21594,21597,21598,21599,21600,21601,21603,21605,21607,21609,21610,21611,21612,21613,21614,21615,21616,21620,21625,21626,21630,21631,21633,21635,21637,21639,21640,21641,21642,21645,21649,21651,21655,21656,21660,21662,21663,21664,21665,21666,21669,21678,21680,21682,21685,21686,21687,21689,21690,21692,21694,21699,21701,21706,21707,21718,21720,21723,21728,21729,21730,21731,21732,21739,21740,21743,21744,21745,21748,21749,21750,21751,21752,21753,21755,21758,21760,21762,21763,21764,21765,21768,21770,21771,21772,21773,21774,21778,21779,21781,21782,21783,21784,21785,21786,21788,21789,21790,21791,21793,21797,21798,21800,21801,21803,21805,21810,21812,21813,21814,21816,21817,21818,21819,21821,21824,21826,21829,21831,21832,21835,21836,21837,21838,21839,21841,21842,21843,21844,21847,21848,21849,21850,21851,21853,21854,21855,21856,21858,21859,21864,21865,21867,21871,21872,21873,21874,21875,21876,21881,21882,21885,21887,21893,21894,21900,21901,21902,21904,21906,21907,21909,21910,21911,21914,21915,21918,21920,21921,21922,21923,21924,21925,21926,21928,21929,21930,21931,21932,21933,21934,21935,21936,21938,21940,21942,21944,21946,21948,21951,21952,21953,21954,21955,21958,21959,21960,21962,21963,21966,21967,21968,21973,21975,21976,21977,21978,21979,21982,21984,21986,21991,21993,21997,21998,22e3,22001,22004,22006,22008,22009,22010,22011,22012,22015,22018,22019,22020,22021,22022,22023,22026,22027,22029,22032,22033,22034,22035,22036,22037,22038,22039,22041,22042,22044,22045,22048,22049,22050,22053,22054,22056,22057,22058,22059,22062,22063,22064,22067,22069,22071,22072,22074,22076,22077,22078,22080,22081,22082,22083,22084,22085,22086,22087,22088,22089,22090,22091,22095,22096,22097,22098,22099,22101,22102,22106,22107,22109,22110,22111,22112,22113,22115,22117,22118,22119,22125,22126,22127,22128,22130,22131,22132,22133,22135,22136,22137,22138,22141,22142,22143,22144,22145,22146,22147,22148,22151,22152,22153,22154,22155,22156,22157,22160,22161,22162,22164,22165,22166,22167,22168,22169,22170,22171,22172,22173,22174,22175,22176,22177,22178,22180,22181,22182,22183,22184,22185,22186,22187,22188,22189,22190,22192,22193,22194,22195,22196,22197,22198,22200,22201,22202,22203,22205,22206,22207,22208,22209,22210,22211,22212,22213,22214,22215,22216,22217,22219,22220,22221,22222,22223,22224,22225,22226,22227,22229,22230,22232,22233,22236,22243,22245,22246,22247,22248,22249,22250,22252,22254,22255,22258,22259,22262,22263,22264,22267,22268,22272,22273,22274,22277,22279,22283,22284,22285,22286,22287,22288,22289,22290,22291,22292,22293,22294,22295,22296,22297,22298,22299,22301,22302,22304,22305,22306,22308,22309,22310,22311,22315,22321,22322,22324,22325,22326,22327,22328,22332,22333,22335,22337,22339,22340,22341,22342,22344,22345,22347,22354,22355,22356,22357,22358,22360,22361,22370,22371,22373,22375,22380,22382,22384,22385,22386,22388,22389,22392,22393,22394,22397,22398,22399,22400,22401,22407,22408,22409,22410,22413,22414,22415,22416,22417,22420,22421,22422,22423,22424,22425,22426,22428,22429,22430,22431,22437,22440,22442,22444,22447,22448,22449,22451,22453,22454,22455,22457,22458,22459,22460,22461,22462,22463,22464,22465,22468,22469,22470,22471,22472,22473,22474,22476,22477,22480,22481,22483,22486,22487,22491,22492,22494,22497,22498,22499,22501,22502,22503,22504,22505,22506,22507,22508,22510,22512,22513,22514,22515,22517,22518,22519,22523,22524,22526,22527,22529,22531,22532,22533,22536,22537,22538,22540,22542,22543,22544,22546,22547,22548,22550,22551,22552,22554,22555,22556,22557,22559,22562,22563,22565,22566,22567,22568,22569,22571,22572,22573,22574,22575,22577,22578,22579,22580,22582,22583,22584,22585,22586,22587,22588,22589,22590,22591,22592,22593,22594,22595,22597,22598,22599,22600,22601,22602,22603,22606,22607,22608,22610,22611,22613,22614,22615,22617,22618,22619,22620,22621,22623,22624,22625,22626,22627,22628,22630,22631,22632,22633,22634,22637,22638,22639,22640,22641,22642,22643,22644,22645,22646,22647,22648,22649,22650,22651,22652,22653,22655,22658,22660,22662,22663,22664,22666,22667,22668,22669,22670,22671,22672,22673,22676,22677,22678,22679,22680,22683,22684,22685,22688,22689,22690,22691,22692,22693,22694,22695,22698,22699,22700,22701,22702,22703,22704,22705,22706,22707,22708,22709,22710,22711,22712,22713,22714,22715,22717,22718,22719,22720,22722,22723,22724,22726,22727,22728,22729,22730,22731,22732,22733,22734,22735,22736,22738,22739,22740,22742,22743,22744,22745,22746,22747,22748,22749,22750,22751,22752,22753,22754,22755,22757,22758,22759,22760,22761,22762,22765,22767,22769,22770,22772,22773,22775,22776,22778,22779,22780,22781,22782,22783,22784,22785,22787,22789,22790,22792,22793,22794,22795,22796,22798,22800,22801,22802,22803,22807,22808,22811,22813,22814,22816,22817,22818,22819,22822,22824,22828,22832,22834,22835,22837,22838,22843,22845,22846,22847,22848,22851,22853,22854,22858,22860,22861,22864,22866,22867,22873,22875,22876,22877,22878,22879,22881,22883,22884,22886,22887,22888,22889,22890,22891,22892,22893,22894,22895,22896,22897,22898,22901,22903,22906,22907,22908,22910,22911,22912,22917,22921,22923,22924,22926,22927,22928,22929,22932,22933,22936,22938,22939,22940,22941,22943,22944,22945,22946,22950,22951,22956,22957,22960,22961,22963,22964,22965,22966,22967,22968,22970,22972,22973,22975,22976,22977,22978,22979,22980,22981,22983,22984,22985,22988,22989,22990,22991,22997,22998,23001,23003,23006,23007,23008,23009,23010,23012,23014,23015,23017,23018,23019,23021,23022,23023,23024,23025,23026,23027,23028,23029,23030,23031,23032,23034,23036,23037,23038,23040,23042,23050,23051,23053,23054,23055,23056,23058,23060,23061,23062,23063,23065,23066,23067,23069,23070,23073,23074,23076,23078,23079,23080,23082,23083,23084,23085,23086,23087,23088,23091,23093,23095,23096,23097,23098,23099,23101,23102,23103,23105,23106,23107,23108,23109,23111,23112,23115,23116,23117,23118,23119,23120,23121,23122,23123,23124,23126,23127,23128,23129,23131,23132,23133,23134,23135,23136,23137,23139,23140,23141,23142,23144,23145,23147,23148,23149,23150,23151,23152,23153,23154,23155,23160,23161,23163,23164,23165,23166,23168,23169,23170,23171,23172,23173,23174,23175,23176,23177,23178,23179,23180,23181,23182,23183,23184,23185,23187,23188,23189,23190,23191,23192,23193,23196,23197,23198,23199,23200,23201,23202,23203,23204,23205,23206,23207,23208,23209,23211,23212,23213,23214,23215,23216,23217,23220,23222,23223,23225,23226,23227,23228,23229,23231,23232,23235,23236,23237,23238,23239,23240,23242,23243,23245,23246,23247,23248,23249,23251,23253,23255,23257,23258,23259,23261,23262,23263,23266,23268,23269,23271,23272,23274,23276,23277,23278,23279,23280,23282,23283,23284,23285,23286,23287,23288,23289,23290,23291,23292,23293,23294,23295,23296,23297,23298,23299,23300,23301,23302,23303,23304,23306,23307,23308,23309,23310,23311,23312,23313,23314,23315,23316,23317,23320,23321,23322,23323,23324,23325,23326,23327,23328,23329,23330,23331,23332,23333,23334,23335,23336,23337,23338,23339,23340,23341,23342,23343,23344,23345,23347,23349,23350,23352,23353,23354,23355,23356,23357,23358,23359,23361,23362,23363,23364,23365,23366,23367,23368,23369,23370,23371,23372,23373,23374,23375,23378,23382,23390,23392,23393,23399,23400,23403,23405,23406,23407,23410,23412,23414,23415,23416,23417,23419,23420,23422,23423,23426,23430,23434,23437,23438,23440,23441,23442,23444,23446,23455,23463,23464,23465,23468,23469,23470,23471,23473,23474,23479,23482,23483,23484,23488,23489,23491,23496,23497,23498,23499,23501,23502,23503,23505,23508,23509,23510,23511,23512,23513,23514,23515,23516,23520,23522,23523,23526,23527,23529,23530,23531,23532,23533,23535,23537,23538,23539,23540,23541,23542,23543,23549,23550,23552,23554,23555,23557,23559,23560,23563,23564,23565,23566,23568,23570,23571,23575,23577,23579,23582,23583,23584,23585,23587,23590,23592,23593,23594,23595,23597,23598,23599,23600,23602,23603,23605,23606,23607,23619,23620,23622,23623,23628,23629,23634,23635,23636,23638,23639,23640,23642,23643,23644,23645,23647,23650,23652,23655,23656,23657,23658,23659,23660,23661,23664,23666,23667,23668,23669,23670,23671,23672,23675,23676,23677,23678,23680,23683,23684,23685,23686,23687,23689,23690,23691,23694,23695,23698,23699,23701,23709,23710,23711,23712,23713,23716,23717,23718,23719,23720,23722,23726,23727,23728,23730,23732,23734,23737,23738,23739,23740,23742,23744,23746,23747,23749,23750,23751,23752,23753,23754,23756,23757,23758,23759,23760,23761,23763,23764,23765,23766,23767,23768,23770,23771,23772,23773,23774,23775,23776,23778,23779,23783,23785,23787,23788,23790,23791,23793,23794,23795,23796,23797,23798,23799,23800,23801,23802,23804,23805,23806,23807,23808,23809,23812,23813,23816,23817,23818,23819,23820,23821,23823,23824,23825,23826,23827,23829,23831,23832,23833,23834,23836,23837,23839,23840,23841,23842,23843,23845,23848,23850,23851,23852,23855,23856,23857,23858,23859,23861,23862,23863,23864,23865,23866,23867,23868,23871,23872,23873,23874,23875,23876,23877,23878,23880,23881,23885,23886,23887,23888,23889,23890,23891,23892,23893,23894,23895,23897,23898,23900,23902,23903,23904,23905,23906,23907,23908,23909,23910,23911,23912,23914,23917,23918,23920,23921,23922,23923,23925,23926,23927,23928,23929,23930,23931,23932,23933,23934,23935,23936,23937,23939,23940,23941,23942,23943,23944,23945,23946,23947,23948,23949,23950,23951,23952,23953,23954,23955,23956,23957,23958,23959,23960,23962,23963,23964,23966,23967,23968,23969,23970,23971,23972,23973,23974,23975,23976,23977,23978,23979,23980,23981,23982,23983,23984,23985,23986,23987,23988,23989,23990,23992,23993,23994,23995,23996,23997,23998,23999,24e3,24001,24002,24003,24004,24006,24007,24008,24009,24010,24011,24012,24014,24015,24016,24017,24018,24019,24020,24021,24022,24023,24024,24025,24026,24028,24031,24032,24035,24036,24042,24044,24045,24048,24053,24054,24056,24057,24058,24059,24060,24063,24064,24068,24071,24073,24074,24075,24077,24078,24082,24083,24087,24094,24095,24096,24097,24098,24099,24100,24101,24104,24105,24106,24107,24108,24111,24112,24114,24115,24116,24117,24118,24121,24122,24126,24127,24128,24129,24131,24134,24135,24136,24137,24138,24139,24141,24142,24143,24144,24145,24146,24147,24150,24151,24152,24153,24154,24156,24157,24159,24160,24163,24164,24165,24166,24167,24168,24169,24170,24171,24172,24173,24174,24175,24176,24177,24181,24183,24185,24190,24193,24194,24195,24197,24200,24201,24204,24205,24206,24210,24216,24219,24221,24225,24226,24227,24228,24232,24233,24234,24235,24236,24238,24239,24240,24241,24242,24244,24250,24251,24252,24253,24255,24256,24257,24258,24259,24260,24261,24262,24263,24264,24267,24268,24269,24270,24271,24272,24276,24277,24279,24280,24281,24282,24284,24285,24286,24287,24288,24289,24290,24291,24292,24293,24294,24295,24297,24299,24300,24301,24302,24303,24304,24305,24306,24307,24309,24312,24313,24315,24316,24317,24325,24326,24327,24329,24332,24333,24334,24336,24338,24340,24342,24345,24346,24348,24349,24350,24353,24354,24355,24356,24360,24363,24364,24366,24368,24370,24371,24372,24373,24374,24375,24376,24379,24381,24382,24383,24385,24386,24387,24388,24389,24390,24391,24392,24393,24394,24395,24396,24397,24398,24399,24401,24404,24409,24410,24411,24412,24414,24415,24416,24419,24421,24423,24424,24427,24430,24431,24434,24436,24437,24438,24440,24442,24445,24446,24447,24451,24454,24461,24462,24463,24465,24467,24468,24470,24474,24475,24477,24478,24479,24480,24482,24483,24484,24485,24486,24487,24489,24491,24492,24495,24496,24497,24498,24499,24500,24502,24504,24505,24506,24507,24510,24511,24512,24513,24514,24519,24520,24522,24523,24526,24531,24532,24533,24538,24539,24540,24542,24543,24546,24547,24549,24550,24552,24553,24556,24559,24560,24562,24563,24564,24566,24567,24569,24570,24572,24583,24584,24585,24587,24588,24592,24593,24595,24599,24600,24602,24606,24607,24610,24611,24612,24620,24621,24622,24624,24625,24626,24627,24628,24630,24631,24632,24633,24634,24637,24638,24640,24644,24645,24646,24647,24648,24649,24650,24652,24654,24655,24657,24659,24660,24662,24663,24664,24667,24668,24670,24671,24672,24673,24677,24678,24686,24689,24690,24692,24693,24695,24702,24704,24705,24706,24709,24710,24711,24712,24714,24715,24718,24719,24720,24721,24723,24725,24727,24728,24729,24732,24734,24737,24738,24740,24741,24743,24745,24746,24750,24752,24755,24757,24758,24759,24761,24762,24765,24766,24767,24768,24769,24770,24771,24772,24775,24776,24777,24780,24781,24782,24783,24784,24786,24787,24788,24790,24791,24793,24795,24798,24801,24802,24803,24804,24805,24810,24817,24818,24821,24823,24824,24827,24828,24829,24830,24831,24834,24835,24836,24837,24839,24842,24843,24844,24848,24849,24850,24851,24852,24854,24855,24856,24857,24859,24860,24861,24862,24865,24866,24869,24872,24873,24874,24876,24877,24878,24879,24880,24881,24882,24883,24884,24885,24886,24887,24888,24889,24890,24891,24892,24893,24894,24896,24897,24898,24899,24900,24901,24902,24903,24905,24907,24909,24911,24912,24914,24915,24916,24918,24919,24920,24921,24922,24923,24924,24926,24927,24928,24929,24931,24932,24933,24934,24937,24938,24939,24940,24941,24942,24943,24945,24946,24947,24948,24950,24952,24953,24954,24955,24956,24957,24958,24959,24960,24961,24962,24963,24964,24965,24966,24967,24968,24969,24970,24972,24973,24975,24976,24977,24978,24979,24981,24982,24983,24984,24985,24986,24987,24988,24990,24991,24992,24993,24994,24995,24996,24997,24998,25002,25003,25005,25006,25007,25008,25009,25010,25011,25012,25013,25014,25016,25017,25018,25019,25020,25021,25023,25024,25025,25027,25028,25029,25030,25031,25033,25036,25037,25038,25039,25040,25043,25045,25046,25047,25048,25049,25050,25051,25052,25053,25054,25055,25056,25057,25058,25059,25060,25061,25063,25064,25065,25066,25067,25068,25069,25070,25071,25072,25073,25074,25075,25076,25078,25079,25080,25081,25082,25083,25084,25085,25086,25088,25089,25090,25091,25092,25093,25095,25097,25107,25108,25113,25116,25117,25118,25120,25123,25126,25127,25128,25129,25131,25133,25135,25136,25137,25138,25141,25142,25144,25145,25146,25147,25148,25154,25156,25157,25158,25162,25167,25168,25173,25174,25175,25177,25178,25180,25181,25182,25183,25184,25185,25186,25188,25189,25192,25201,25202,25204,25205,25207,25208,25210,25211,25213,25217,25218,25219,25221,25222,25223,25224,25227,25228,25229,25230,25231,25232,25236,25241,25244,25245,25246,25251,25254,25255,25257,25258,25261,25262,25263,25264,25266,25267,25268,25270,25271,25272,25274,25278,25280,25281,25283,25291,25295,25297,25301,25309,25310,25312,25313,25316,25322,25323,25328,25330,25333,25336,25337,25338,25339,25344,25347,25348,25349,25350,25354,25355,25356,25357,25359,25360,25362,25363,25364,25365,25367,25368,25369,25372,25382,25383,25385,25388,25389,25390,25392,25393,25395,25396,25397,25398,25399,25400,25403,25404,25406,25407,25408,25409,25412,25415,25416,25418,25425,25426,25427,25428,25430,25431,25432,25433,25434,25435,25436,25437,25440,25444,25445,25446,25448,25450,25451,25452,25455,25456,25458,25459,25460,25461,25464,25465,25468,25469,25470,25471,25473,25475,25476,25477,25478,25483,25485,25489,25491,25492,25493,25495,25497,25498,25499,25500,25501,25502,25503,25505,25508,25510,25515,25519,25521,25522,25525,25526,25529,25531,25533,25535,25536,25537,25538,25539,25541,25543,25544,25546,25547,25548,25553,25555,25556,25557,25559,25560,25561,25562,25563,25564,25565,25567,25570,25572,25573,25574,25575,25576,25579,25580,25582,25583,25584,25585,25587,25589,25591,25593,25594,25595,25596,25598,25603,25604,25606,25607,25608,25609,25610,25613,25614,25617,25618,25621,25622,25623,25624,25625,25626,25629,25631,25634,25635,25636,25637,25639,25640,25641,25643,25646,25647,25648,25649,25650,25651,25653,25654,25655,25656,25657,25659,25660,25662,25664,25666,25667,25673,25675,25676,25677,25678,25679,25680,25681,25683,25685,25686,25687,25689,25690,25691,25692,25693,25695,25696,25697,25698,25699,25700,25701,25702,25704,25706,25707,25708,25710,25711,25712,25713,25714,25715,25716,25717,25718,25719,25723,25724,25725,25726,25727,25728,25729,25731,25734,25736,25737,25738,25739,25740,25741,25742,25743,25744,25747,25748,25751,25752,25754,25755,25756,25757,25759,25760,25761,25762,25763,25765,25766,25767,25768,25770,25771,25775,25777,25778,25779,25780,25782,25785,25787,25789,25790,25791,25793,25795,25796,25798,25799,25800,25801,25802,25803,25804,25807,25809,25811,25812,25813,25814,25817,25818,25819,25820,25821,25823,25824,25825,25827,25829,25831,25832,25833,25834,25835,25836,25837,25838,25839,25840,25841,25842,25843,25844,25845,25846,25847,25848,25849,25850,25851,25852,25853,25854,25855,25857,25858,25859,25860,25861,25862,25863,25864,25866,25867,25868,25869,25870,25871,25872,25873,25875,25876,25877,25878,25879,25881,25882,25883,25884,25885,25886,25887,25888,25889,25890,25891,25892,25894,25895,25896,25897,25898,25900,25901,25904,25905,25906,25907,25911,25914,25916,25917,25920,25921,25922,25923,25924,25926,25927,25930,25931,25933,25934,25936,25938,25939,25940,25943,25944,25946,25948,25951,25952,25953,25956,25957,25959,25960,25961,25962,25965,25966,25967,25969,25971,25973,25974,25976,25977,25978,25979,25980,25981,25982,25983,25984,25985,25986,25987,25988,25989,25990,25992,25993,25994,25997,25998,25999,26002,26004,26005,26006,26008,26010,26013,26014,26016,26018,26019,26022,26024,26026,26028,26030,26033,26034,26035,26036,26037,26038,26039,26040,26042,26043,26046,26047,26048,26050,26055,26056,26057,26058,26061,26064,26065,26067,26068,26069,26072,26073,26074,26075,26076,26077,26078,26079,26081,26083,26084,26090,26091,26098,26099,26100,26101,26104,26105,26107,26108,26109,26110,26111,26113,26116,26117,26119,26120,26121,26123,26125,26128,26129,26130,26134,26135,26136,26138,26139,26140,26142,26145,26146,26147,26148,26150,26153,26154,26155,26156,26158,26160,26162,26163,26167,26168,26169,26170,26171,26173,26175,26176,26178,26180,26181,26182,26183,26184,26185,26186,26189,26190,26192,26193,26200,26201,26203,26204,26205,26206,26208,26210,26211,26213,26215,26217,26218,26219,26220,26221,26225,26226,26227,26229,26232,26233,26235,26236,26237,26239,26240,26241,26243,26245,26246,26248,26249,26250,26251,26253,26254,26255,26256,26258,26259,26260,26261,26264,26265,26266,26267,26268,26270,26271,26272,26273,26274,26275,26276,26277,26278,26281,26282,26283,26284,26285,26287,26288,26289,26290,26291,26293,26294,26295,26296,26298,26299,26300,26301,26303,26304,26305,26306,26307,26308,26309,26310,26311,26312,26313,26314,26315,26316,26317,26318,26319,26320,26321,26322,26323,26324,26325,26326,26327,26328,26330,26334,26335,26336,26337,26338,26339,26340,26341,26343,26344,26346,26347,26348,26349,26350,26351,26353,26357,26358,26360,26362,26363,26365,26369,26370,26371,26372,26373,26374,26375,26380,26382,26383,26385,26386,26387,26390,26392,26393,26394,26396,26398,26400,26401,26402,26403,26404,26405,26407,26409,26414,26416,26418,26419,26422,26423,26424,26425,26427,26428,26430,26431,26433,26436,26437,26439,26442,26443,26445,26450,26452,26453,26455,26456,26457,26458,26459,26461,26466,26467,26468,26470,26471,26475,26476,26478,26481,26484,26486,26488,26489,26490,26491,26493,26496,26498,26499,26501,26502,26504,26506,26508,26509,26510,26511,26513,26514,26515,26516,26518,26521,26523,26527,26528,26529,26532,26534,26537,26540,26542,26545,26546,26548,26553,26554,26555,26556,26557,26558,26559,26560,26562,26565,26566,26567,26568,26569,26570,26571,26572,26573,26574,26581,26582,26583,26587,26591,26593,26595,26596,26598,26599,26600,26602,26603,26605,26606,26610,26613,26614,26615,26616,26617,26618,26619,26620,26622,26625,26626,26627,26628,26630,26637,26640,26642,26644,26645,26648,26649,26650,26651,26652,26654,26655,26656,26658,26659,26660,26661,26662,26663,26664,26667,26668,26669,26670,26671,26672,26673,26676,26677,26678,26682,26683,26687,26695,26699,26701,26703,26706,26710,26711,26712,26713,26714,26715,26716,26717,26718,26719,26730,26732,26733,26734,26735,26736,26737,26738,26739,26741,26744,26745,26746,26747,26748,26749,26750,26751,26752,26754,26756,26759,26760,26761,26762,26763,26764,26765,26766,26768,26769,26770,26772,26773,26774,26776,26777,26778,26779,26780,26781,26782,26783,26784,26785,26787,26788,26789,26793,26794,26795,26796,26798,26801,26802,26804,26806,26807,26808,26809,26810,26811,26812,26813,26814,26815,26817,26819,26820,26821,26822,26823,26824,26826,26828,26830,26831,26832,26833,26835,26836,26838,26839,26841,26843,26844,26845,26846,26847,26849,26850,26852,26853,26854,26855,26856,26857,26858,26859,26860,26861,26863,26866,26867,26868,26870,26871,26872,26875,26877,26878,26879,26880,26882,26883,26884,26886,26887,26888,26889,26890,26892,26895,26897,26899,26900,26901,26902,26903,26904,26905,26906,26907,26908,26909,26910,26913,26914,26915,26917,26918,26919,26920,26921,26922,26923,26924,26926,26927,26929,26930,26931,26933,26934,26935,26936,26938,26939,26940,26942,26944,26945,26947,26948,26949,26950,26951,26952,26953,26954,26955,26956,26957,26958,26959,26960,26961,26962,26963,26965,26966,26968,26969,26971,26972,26975,26977,26978,26980,26981,26983,26984,26985,26986,26988,26989,26991,26992,26994,26995,26996,26997,26998,27002,27003,27005,27006,27007,27009,27011,27013,27018,27019,27020,27022,27023,27024,27025,27026,27027,27030,27031,27033,27034,27037,27038,27039,27040,27041,27042,27043,27044,27045,27046,27049,27050,27052,27054,27055,27056,27058,27059,27061,27062,27064,27065,27066,27068,27069,27070,27071,27072,27074,27075,27076,27077,27078,27079,27080,27081,27083,27085,27087,27089,27090,27091,27093,27094,27095,27096,27097,27098,27100,27101,27102,27105,27106,27107,27108,27109,27110,27111,27112,27113,27114,27115,27116,27118,27119,27120,27121,27123,27124,27125,27126,27127,27128,27129,27130,27131,27132,27134,27136,27137,27138,27139,27140,27141,27142,27143,27144,27145,27147,27148,27149,27150,27151,27152,27153,27154,27155,27156,27157,27158,27161,27162,27163,27164,27165,27166,27168,27170,27171,27172,27173,27174,27175,27177,27179,27180,27181,27182,27184,27186,27187,27188,27190,27191,27192,27193,27194,27195,27196,27199,27200,27201,27202,27203,27205,27206,27208,27209,27210,27211,27212,27213,27214,27215,27217,27218,27219,27220,27221,27222,27223,27226,27228,27229,27230,27231,27232,27234,27235,27236,27238,27239,27240,27241,27242,27243,27244,27245,27246,27247,27248,27250,27251,27252,27253,27254,27255,27256,27258,27259,27261,27262,27263,27265,27266,27267,27269,27270,27271,27272,27273,27274,27275,27276,27277,27279,27282,27283,27284,27285,27286,27288,27289,27290,27291,27292,27293,27294,27295,27297,27298,27299,27300,27301,27302,27303,27304,27306,27309,27310,27311,27312,27313,27314,27315,27316,27317,27318,27319,27320,27321,27322,27323,27324,27325,27326,27327,27328,27329,27330,27331,27332,27333,27334,27335,27336,27337,27338,27339,27340,27341,27342,27343,27344,27345,27346,27347,27348,27349,27350,27351,27352,27353,27354,27355,27356,27357,27358,27359,27360,27361,27362,27363,27364,27365,27366,27367,27368,27369,27370,27371,27372,27373,27374,27375,27376,27377,27378,27379,27380,27381,27382,27383,27384,27385,27386,27387,27388,27389,27390,27391,27392,27393,27394,27395,27396,27397,27398,27399,27400,27401,27402,27403,27404,27405,27406,27407,27408,27409,27410,27411,27412,27413,27414,27415,27416,27417,27418,27419,27420,27421,27422,27423,27429,27430,27432,27433,27434,27435,27436,27437,27438,27439,27440,27441,27443,27444,27445,27446,27448,27451,27452,27453,27455,27456,27457,27458,27460,27461,27464,27466,27467,27469,27470,27471,27472,27473,27474,27475,27476,27477,27478,27479,27480,27482,27483,27484,27485,27486,27487,27488,27489,27496,27497,27499,27500,27501,27502,27503,27504,27505,27506,27507,27508,27509,27510,27511,27512,27514,27517,27518,27519,27520,27525,27528,27532,27534,27535,27536,27537,27540,27541,27543,27544,27545,27548,27549,27550,27551,27552,27554,27555,27556,27557,27558,27559,27560,27561,27563,27564,27565,27566,27567,27568,27569,27570,27574,27576,27577,27578,27579,27580,27581,27582,27584,27587,27588,27590,27591,27592,27593,27594,27596,27598,27600,27601,27608,27610,27612,27613,27614,27615,27616,27618,27619,27620,27621,27622,27623,27624,27625,27628,27629,27630,27632,27633,27634,27636,27638,27639,27640,27642,27643,27644,27646,27647,27648,27649,27650,27651,27652,27656,27657,27658,27659,27660,27662,27666,27671,27676,27677,27678,27680,27683,27685,27691,27692,27693,27697,27699,27702,27703,27705,27706,27707,27708,27710,27711,27715,27716,27717,27720,27723,27724,27725,27726,27727,27729,27730,27731,27734,27736,27737,27738,27746,27747,27749,27750,27751,27755,27756,27757,27758,27759,27761,27763,27765,27767,27768,27770,27771,27772,27775,27776,27780,27783,27786,27787,27789,27790,27793,27794,27797,27798,27799,27800,27802,27804,27805,27806,27808,27810,27816,27820,27823,27824,27828,27829,27830,27831,27834,27840,27841,27842,27843,27846,27847,27848,27851,27853,27854,27855,27857,27858,27864,27865,27866,27868,27869,27871,27876,27878,27879,27881,27884,27885,27890,27892,27897,27903,27904,27906,27907,27909,27910,27912,27913,27914,27917,27919,27920,27921,27923,27924,27925,27926,27928,27932,27933,27935,27936,27937,27938,27939,27940,27942,27944,27945,27948,27949,27951,27952,27956,27958,27959,27960,27962,27967,27968,27970,27972,27977,27980,27984,27989,27990,27991,27992,27995,27997,27999,28001,28002,28004,28005,28007,28008,28011,28012,28013,28016,28017,28018,28019,28021,28022,28025,28026,28027,28029,28030,28031,28032,28033,28035,28036,28038,28039,28042,28043,28045,28047,28048,28050,28054,28055,28056,28057,28058,28060,28066,28069,28076,28077,28080,28081,28083,28084,28086,28087,28089,28090,28091,28092,28093,28094,28097,28098,28099,28104,28105,28106,28109,28110,28111,28112,28114,28115,28116,28117,28119,28122,28123,28124,28127,28130,28131,28133,28135,28136,28137,28138,28141,28143,28144,28146,28148,28149,28150,28152,28154,28157,28158,28159,28160,28161,28162,28163,28164,28166,28167,28168,28169,28171,28175,28178,28179,28181,28184,28185,28187,28188,28190,28191,28194,28198,28199,28200,28202,28204,28206,28208,28209,28211,28213,28214,28215,28217,28219,28220,28221,28222,28223,28224,28225,28226,28229,28230,28231,28232,28233,28234,28235,28236,28239,28240,28241,28242,28245,28247,28249,28250,28252,28253,28254,28256,28257,28258,28259,28260,28261,28262,28263,28264,28265,28266,28268,28269,28271,28272,28273,28274,28275,28276,28277,28278,28279,28280,28281,28282,28283,28284,28285,28288,28289,28290,28292,28295,28296,28298,28299,28300,28301,28302,28305,28306,28307,28308,28309,28310,28311,28313,28314,28315,28317,28318,28320,28321,28323,28324,28326,28328,28329,28331,28332,28333,28334,28336,28339,28341,28344,28345,28348,28350,28351,28352,28355,28356,28357,28358,28360,28361,28362,28364,28365,28366,28368,28370,28374,28376,28377,28379,28380,28381,28387,28391,28394,28395,28396,28397,28398,28399,28400,28401,28402,28403,28405,28406,28407,28408,28410,28411,28412,28413,28414,28415,28416,28417,28419,28420,28421,28423,28424,28426,28427,28428,28429,28430,28432,28433,28434,28438,28439,28440,28441,28442,28443,28444,28445,28446,28447,28449,28450,28451,28453,28454,28455,28456,28460,28462,28464,28466,28468,28469,28471,28472,28473,28474,28475,28476,28477,28479,28480,28481,28482,28483,28484,28485,28488,28489,28490,28492,28494,28495,28496,28497,28498,28499,28500,28501,28502,28503,28505,28506,28507,28509,28511,28512,28513,28515,28516,28517,28519,28520,28521,28522,28523,28524,28527,28528,28529,28531,28533,28534,28535,28537,28539,28541,28542,28543,28544,28545,28546,28547,28549,28550,28551,28554,28555,28559,28560,28561,28562,28563,28564,28565,28566,28567,28568,28569,28570,28571,28573,28574,28575,28576,28578,28579,28580,28581,28582,28584,28585,28586,28587,28588,28589,28590,28591,28592,28593,28594,28596,28597,28599,28600,28602,28603,28604,28605,28606,28607,28609,28611,28612,28613,28614,28615,28616,28618,28619,28620,28621,28622,28623,28624,28627,28628,28629,28630,28631,28632,28633,28634,28635,28636,28637,28639,28642,28643,28644,28645,28646,28647,28648,28649,28650,28651,28652,28653,28656,28657,28658,28659,28660,28661,28662,28663,28664,28665,28666,28667,28668,28669,28670,28671,28672,28673,28674,28675,28676,28677,28678,28679,28680,28681,28682,28683,28684,28685,28686,28687,28688,28690,28691,28692,28693,28694,28695,28696,28697,28700,28701,28702,28703,28704,28705,28706,28708,28709,28710,28711,28712,28713,28714,28715,28716,28717,28718,28719,28720,28721,28722,28723,28724,28726,28727,28728,28730,28731,28732,28733,28734,28735,28736,28737,28738,28739,28740,28741,28742,28743,28744,28745,28746,28747,28749,28750,28752,28753,28754,28755,28756,28757,28758,28759,28760,28761,28762,28763,28764,28765,28767,28768,28769,28770,28771,28772,28773,28774,28775,28776,28777,28778,28782,28785,28786,28787,28788,28791,28793,28794,28795,28797,28801,28802,28803,28804,28806,28807,28808,28811,28812,28813,28815,28816,28817,28819,28823,28824,28826,28827,28830,28831,28832,28833,28834,28835,28836,28837,28838,28839,28840,28841,28842,28848,28850,28852,28853,28854,28858,28862,28863,28868,28869,28870,28871,28873,28875,28876,28877,28878,28879,28880,28881,28882,28883,28884,28885,28886,28887,28890,28892,28893,28894,28896,28897,28898,28899,28901,28906,28910,28912,28913,28914,28915,28916,28917,28918,28920,28922,28923,28924,28926,28927,28928,28929,28930,28931,28932,28933,28934,28935,28936,28939,28940,28941,28942,28943,28945,28946,28948,28951,28955,28956,28957,28958,28959,28960,28961,28962,28963,28964,28965,28967,28968,28969,28970,28971,28972,28973,28974,28978,28979,28980,28981,28983,28984,28985,28986,28987,28988,28989,28990,28991,28992,28993,28994,28995,28996,28998,28999,29e3,29001,29003,29005,29007,29008,29009,29010,29011,29012,29013,29014,29015,29016,29017,29018,29019,29021,29023,29024,29025,29026,29027,29029,29033,29034,29035,29036,29037,29039,29040,29041,29044,29045,29046,29047,29049,29051,29052,29054,29055,29056,29057,29058,29059,29061,29062,29063,29064,29065,29067,29068,29069,29070,29072,29073,29074,29075,29077,29078,29079,29082,29083,29084,29085,29086,29089,29090,29091,29092,29093,29094,29095,29097,29098,29099,29101,29102,29103,29104,29105,29106,29108,29110,29111,29112,29114,29115,29116,29117,29118,29119,29120,29121,29122,29124,29125,29126,29127,29128,29129,29130,29131,29132,29133,29135,29136,29137,29138,29139,29142,29143,29144,29145,29146,29147,29148,29149,29150,29151,29153,29154,29155,29156,29158,29160,29161,29162,29163,29164,29165,29167,29168,29169,29170,29171,29172,29173,29174,29175,29176,29178,29179,29180,29181,29182,29183,29184,29185,29186,29187,29188,29189,29191,29192,29193,29194,29195,29196,29197,29198,29199,29200,29201,29202,29203,29204,29205,29206,29207,29208,29209,29210,29211,29212,29214,29215,29216,29217,29218,29219,29220,29221,29222,29223,29225,29227,29229,29230,29231,29234,29235,29236,29242,29244,29246,29248,29249,29250,29251,29252,29253,29254,29257,29258,29259,29262,29263,29264,29265,29267,29268,29269,29271,29272,29274,29276,29278,29280,29283,29284,29285,29288,29290,29291,29292,29293,29296,29297,29299,29300,29302,29303,29304,29307,29308,29309,29314,29315,29317,29318,29319,29320,29321,29324,29326,29328,29329,29331,29332,29333,29334,29335,29336,29337,29338,29339,29340,29341,29342,29344,29345,29346,29347,29348,29349,29350,29351,29352,29353,29354,29355,29358,29361,29362,29363,29365,29370,29371,29372,29373,29374,29375,29376,29381,29382,29383,29385,29386,29387,29388,29391,29393,29395,29396,29397,29398,29400,29402,29403,58566,58567,58568,58569,58570,58571,58572,58573,58574,58575,58576,58577,58578,58579,58580,58581,58582,58583,58584,58585,58586,58587,58588,58589,58590,58591,58592,58593,58594,58595,58596,58597,58598,58599,58600,58601,58602,58603,58604,58605,58606,58607,58608,58609,58610,58611,58612,58613,58614,58615,58616,58617,58618,58619,58620,58621,58622,58623,58624,58625,58626,58627,58628,58629,58630,58631,58632,58633,58634,58635,58636,58637,58638,58639,58640,58641,58642,58643,58644,58645,58646,58647,58648,58649,58650,58651,58652,58653,58654,58655,58656,58657,58658,58659,58660,58661,12288,12289,12290,183,713,711,168,12291,12293,8212,65374,8214,8230,8216,8217,8220,8221,12308,12309,12296,12297,12298,12299,12300,12301,12302,12303,12310,12311,12304,12305,177,215,247,8758,8743,8744,8721,8719,8746,8745,8712,8759,8730,8869,8741,8736,8978,8857,8747,8750,8801,8780,8776,8765,8733,8800,8814,8815,8804,8805,8734,8757,8756,9794,9792,176,8242,8243,8451,65284,164,65504,65505,8240,167,8470,9734,9733,9675,9679,9678,9671,9670,9633,9632,9651,9650,8251,8594,8592,8593,8595,12307,58662,58663,58664,58665,58666,58667,58668,58669,58670,58671,58672,58673,58674,58675,58676,58677,58678,58679,58680,58681,58682,58683,58684,58685,58686,58687,58688,58689,58690,58691,58692,58693,58694,58695,58696,58697,58698,58699,58700,58701,58702,58703,58704,58705,58706,58707,58708,58709,58710,58711,58712,58713,58714,58715,58716,58717,58718,58719,58720,58721,58722,58723,58724,58725,58726,58727,58728,58729,58730,58731,58732,58733,58734,58735,58736,58737,58738,58739,58740,58741,58742,58743,58744,58745,58746,58747,58748,58749,58750,58751,58752,58753,58754,58755,58756,58757,8560,8561,8562,8563,8564,8565,8566,8567,8568,8569,59238,59239,59240,59241,59242,59243,9352,9353,9354,9355,9356,9357,9358,9359,9360,9361,9362,9363,9364,9365,9366,9367,9368,9369,9370,9371,9332,9333,9334,9335,9336,9337,9338,9339,9340,9341,9342,9343,9344,9345,9346,9347,9348,9349,9350,9351,9312,9313,9314,9315,9316,9317,9318,9319,9320,9321,8364,59245,12832,12833,12834,12835,12836,12837,12838,12839,12840,12841,59246,59247,8544,8545,8546,8547,8548,8549,8550,8551,8552,8553,8554,8555,59248,59249,58758,58759,58760,58761,58762,58763,58764,58765,58766,58767,58768,58769,58770,58771,58772,58773,58774,58775,58776,58777,58778,58779,58780,58781,58782,58783,58784,58785,58786,58787,58788,58789,58790,58791,58792,58793,58794,58795,58796,58797,58798,58799,58800,58801,58802,58803,58804,58805,58806,58807,58808,58809,58810,58811,58812,58813,58814,58815,58816,58817,58818,58819,58820,58821,58822,58823,58824,58825,58826,58827,58828,58829,58830,58831,58832,58833,58834,58835,58836,58837,58838,58839,58840,58841,58842,58843,58844,58845,58846,58847,58848,58849,58850,58851,58852,12288,65281,65282,65283,65509,65285,65286,65287,65288,65289,65290,65291,65292,65293,65294,65295,65296,65297,65298,65299,65300,65301,65302,65303,65304,65305,65306,65307,65308,65309,65310,65311,65312,65313,65314,65315,65316,65317,65318,65319,65320,65321,65322,65323,65324,65325,65326,65327,65328,65329,65330,65331,65332,65333,65334,65335,65336,65337,65338,65339,65340,65341,65342,65343,65344,65345,65346,65347,65348,65349,65350,65351,65352,65353,65354,65355,65356,65357,65358,65359,65360,65361,65362,65363,65364,65365,65366,65367,65368,65369,65370,65371,65372,65373,65507,58854,58855,58856,58857,58858,58859,58860,58861,58862,58863,58864,58865,58866,58867,58868,58869,58870,58871,58872,58873,58874,58875,58876,58877,58878,58879,58880,58881,58882,58883,58884,58885,58886,58887,58888,58889,58890,58891,58892,58893,58894,58895,58896,58897,58898,58899,58900,58901,58902,58903,58904,58905,58906,58907,58908,58909,58910,58911,58912,58913,58914,58915,58916,58917,58918,58919,58920,58921,58922,58923,58924,58925,58926,58927,58928,58929,58930,58931,58932,58933,58934,58935,58936,58937,58938,58939,58940,58941,58942,58943,58944,58945,58946,58947,58948,58949,12353,12354,12355,12356,12357,12358,12359,12360,12361,12362,12363,12364,12365,12366,12367,12368,12369,12370,12371,12372,12373,12374,12375,12376,12377,12378,12379,12380,12381,12382,12383,12384,12385,12386,12387,12388,12389,12390,12391,12392,12393,12394,12395,12396,12397,12398,12399,12400,12401,12402,12403,12404,12405,12406,12407,12408,12409,12410,12411,12412,12413,12414,12415,12416,12417,12418,12419,12420,12421,12422,12423,12424,12425,12426,12427,12428,12429,12430,12431,12432,12433,12434,12435,59250,59251,59252,59253,59254,59255,59256,59257,59258,59259,59260,58950,58951,58952,58953,58954,58955,58956,58957,58958,58959,58960,58961,58962,58963,58964,58965,58966,58967,58968,58969,58970,58971,58972,58973,58974,58975,58976,58977,58978,58979,58980,58981,58982,58983,58984,58985,58986,58987,58988,58989,58990,58991,58992,58993,58994,58995,58996,58997,58998,58999,59e3,59001,59002,59003,59004,59005,59006,59007,59008,59009,59010,59011,59012,59013,59014,59015,59016,59017,59018,59019,59020,59021,59022,59023,59024,59025,59026,59027,59028,59029,59030,59031,59032,59033,59034,59035,59036,59037,59038,59039,59040,59041,59042,59043,59044,59045,12449,12450,12451,12452,12453,12454,12455,12456,12457,12458,12459,12460,12461,12462,12463,12464,12465,12466,12467,12468,12469,12470,12471,12472,12473,12474,12475,12476,12477,12478,12479,12480,12481,12482,12483,12484,12485,12486,12487,12488,12489,12490,12491,12492,12493,12494,12495,12496,12497,12498,12499,12500,12501,12502,12503,12504,12505,12506,12507,12508,12509,12510,12511,12512,12513,12514,12515,12516,12517,12518,12519,12520,12521,12522,12523,12524,12525,12526,12527,12528,12529,12530,12531,12532,12533,12534,59261,59262,59263,59264,59265,59266,59267,59268,59046,59047,59048,59049,59050,59051,59052,59053,59054,59055,59056,59057,59058,59059,59060,59061,59062,59063,59064,59065,59066,59067,59068,59069,59070,59071,59072,59073,59074,59075,59076,59077,59078,59079,59080,59081,59082,59083,59084,59085,59086,59087,59088,59089,59090,59091,59092,59093,59094,59095,59096,59097,59098,59099,59100,59101,59102,59103,59104,59105,59106,59107,59108,59109,59110,59111,59112,59113,59114,59115,59116,59117,59118,59119,59120,59121,59122,59123,59124,59125,59126,59127,59128,59129,59130,59131,59132,59133,59134,59135,59136,59137,59138,59139,59140,59141,913,914,915,916,917,918,919,920,921,922,923,924,925,926,927,928,929,931,932,933,934,935,936,937,59269,59270,59271,59272,59273,59274,59275,59276,945,946,947,948,949,950,951,952,953,954,955,956,957,958,959,960,961,963,964,965,966,967,968,969,59277,59278,59279,59280,59281,59282,59283,65077,65078,65081,65082,65087,65088,65085,65086,65089,65090,65091,65092,59284,59285,65083,65084,65079,65080,65073,59286,65075,65076,59287,59288,59289,59290,59291,59292,59293,59294,59295,59142,59143,59144,59145,59146,59147,59148,59149,59150,59151,59152,59153,59154,59155,59156,59157,59158,59159,59160,59161,59162,59163,59164,59165,59166,59167,59168,59169,59170,59171,59172,59173,59174,59175,59176,59177,59178,59179,59180,59181,59182,59183,59184,59185,59186,59187,59188,59189,59190,59191,59192,59193,59194,59195,59196,59197,59198,59199,59200,59201,59202,59203,59204,59205,59206,59207,59208,59209,59210,59211,59212,59213,59214,59215,59216,59217,59218,59219,59220,59221,59222,59223,59224,59225,59226,59227,59228,59229,59230,59231,59232,59233,59234,59235,59236,59237,1040,1041,1042,1043,1044,1045,1025,1046,1047,1048,1049,1050,1051,1052,1053,1054,1055,1056,1057,1058,1059,1060,1061,1062,1063,1064,1065,1066,1067,1068,1069,1070,1071,59296,59297,59298,59299,59300,59301,59302,59303,59304,59305,59306,59307,59308,59309,59310,1072,1073,1074,1075,1076,1077,1105,1078,1079,1080,1081,1082,1083,1084,1085,1086,1087,1088,1089,1090,1091,1092,1093,1094,1095,1096,1097,1098,1099,1100,1101,1102,1103,59311,59312,59313,59314,59315,59316,59317,59318,59319,59320,59321,59322,59323,714,715,729,8211,8213,8229,8245,8453,8457,8598,8599,8600,8601,8725,8735,8739,8786,8806,8807,8895,9552,9553,9554,9555,9556,9557,9558,9559,9560,9561,9562,9563,9564,9565,9566,9567,9568,9569,9570,9571,9572,9573,9574,9575,9576,9577,9578,9579,9580,9581,9582,9583,9584,9585,9586,9587,9601,9602,9603,9604,9605,9606,9607,9608,9609,9610,9611,9612,9613,9614,9615,9619,9620,9621,9660,9661,9698,9699,9700,9701,9737,8853,12306,12317,12318,59324,59325,59326,59327,59328,59329,59330,59331,59332,59333,59334,257,225,462,224,275,233,283,232,299,237,464,236,333,243,466,242,363,250,468,249,470,472,474,476,252,234,593,7743,324,328,505,609,59337,59338,59339,59340,12549,12550,12551,12552,12553,12554,12555,12556,12557,12558,12559,12560,12561,12562,12563,12564,12565,12566,12567,12568,12569,12570,12571,12572,12573,12574,12575,12576,12577,12578,12579,12580,12581,12582,12583,12584,12585,59341,59342,59343,59344,59345,59346,59347,59348,59349,59350,59351,59352,59353,59354,59355,59356,59357,59358,59359,59360,59361,12321,12322,12323,12324,12325,12326,12327,12328,12329,12963,13198,13199,13212,13213,13214,13217,13252,13262,13265,13266,13269,65072,65506,65508,59362,8481,12849,59363,8208,59364,59365,59366,12540,12443,12444,12541,12542,12294,12445,12446,65097,65098,65099,65100,65101,65102,65103,65104,65105,65106,65108,65109,65110,65111,65113,65114,65115,65116,65117,65118,65119,65120,65121,65122,65123,65124,65125,65126,65128,65129,65130,65131,12350,12272,12273,12274,12275,12276,12277,12278,12279,12280,12281,12282,12283,12295,59380,59381,59382,59383,59384,59385,59386,59387,59388,59389,59390,59391,59392,9472,9473,9474,9475,9476,9477,9478,9479,9480,9481,9482,9483,9484,9485,9486,9487,9488,9489,9490,9491,9492,9493,9494,9495,9496,9497,9498,9499,9500,9501,9502,9503,9504,9505,9506,9507,9508,9509,9510,9511,9512,9513,9514,9515,9516,9517,9518,9519,9520,9521,9522,9523,9524,9525,9526,9527,9528,9529,9530,9531,9532,9533,9534,9535,9536,9537,9538,9539,9540,9541,9542,9543,9544,9545,9546,9547,59393,59394,59395,59396,59397,59398,59399,59400,59401,59402,59403,59404,59405,59406,59407,29404,29405,29407,29410,29411,29412,29413,29414,29415,29418,29419,29429,29430,29433,29437,29438,29439,29440,29442,29444,29445,29446,29447,29448,29449,29451,29452,29453,29455,29456,29457,29458,29460,29464,29465,29466,29471,29472,29475,29476,29478,29479,29480,29485,29487,29488,29490,29491,29493,29494,29498,29499,29500,29501,29504,29505,29506,29507,29508,29509,29510,29511,29512,29513,29514,29515,29516,29518,29519,29521,29523,29524,29525,29526,29528,29529,29530,29531,29532,29533,29534,29535,29537,29538,29539,29540,29541,29542,29543,29544,29545,29546,29547,29550,29552,29553,57344,57345,57346,57347,57348,57349,57350,57351,57352,57353,57354,57355,57356,57357,57358,57359,57360,57361,57362,57363,57364,57365,57366,57367,57368,57369,57370,57371,57372,57373,57374,57375,57376,57377,57378,57379,57380,57381,57382,57383,57384,57385,57386,57387,57388,57389,57390,57391,57392,57393,57394,57395,57396,57397,57398,57399,57400,57401,57402,57403,57404,57405,57406,57407,57408,57409,57410,57411,57412,57413,57414,57415,57416,57417,57418,57419,57420,57421,57422,57423,57424,57425,57426,57427,57428,57429,57430,57431,57432,57433,57434,57435,57436,57437,29554,29555,29556,29557,29558,29559,29560,29561,29562,29563,29564,29565,29567,29568,29569,29570,29571,29573,29574,29576,29578,29580,29581,29583,29584,29586,29587,29588,29589,29591,29592,29593,29594,29596,29597,29598,29600,29601,29603,29604,29605,29606,29607,29608,29610,29612,29613,29617,29620,29621,29622,29624,29625,29628,29629,29630,29631,29633,29635,29636,29637,29638,29639,29643,29644,29646,29650,29651,29652,29653,29654,29655,29656,29658,29659,29660,29661,29663,29665,29666,29667,29668,29670,29672,29674,29675,29676,29678,29679,29680,29681,29683,29684,29685,29686,29687,57438,57439,57440,57441,57442,57443,57444,57445,57446,57447,57448,57449,57450,57451,57452,57453,57454,57455,57456,57457,57458,57459,57460,57461,57462,57463,57464,57465,57466,57467,57468,57469,57470,57471,57472,57473,57474,57475,57476,57477,57478,57479,57480,57481,57482,57483,57484,57485,57486,57487,57488,57489,57490,57491,57492,57493,57494,57495,57496,57497,57498,57499,57500,57501,57502,57503,57504,57505,57506,57507,57508,57509,57510,57511,57512,57513,57514,57515,57516,57517,57518,57519,57520,57521,57522,57523,57524,57525,57526,57527,57528,57529,57530,57531,29688,29689,29690,29691,29692,29693,29694,29695,29696,29697,29698,29700,29703,29704,29707,29708,29709,29710,29713,29714,29715,29716,29717,29718,29719,29720,29721,29724,29725,29726,29727,29728,29729,29731,29732,29735,29737,29739,29741,29743,29745,29746,29751,29752,29753,29754,29755,29757,29758,29759,29760,29762,29763,29764,29765,29766,29767,29768,29769,29770,29771,29772,29773,29774,29775,29776,29777,29778,29779,29780,29782,29784,29789,29792,29793,29794,29795,29796,29797,29798,29799,29800,29801,29802,29803,29804,29806,29807,29809,29810,29811,29812,29813,29816,29817,29818,57532,57533,57534,57535,57536,57537,57538,57539,57540,57541,57542,57543,57544,57545,57546,57547,57548,57549,57550,57551,57552,57553,57554,57555,57556,57557,57558,57559,57560,57561,57562,57563,57564,57565,57566,57567,57568,57569,57570,57571,57572,57573,57574,57575,57576,57577,57578,57579,57580,57581,57582,57583,57584,57585,57586,57587,57588,57589,57590,57591,57592,57593,57594,57595,57596,57597,57598,57599,57600,57601,57602,57603,57604,57605,57606,57607,57608,57609,57610,57611,57612,57613,57614,57615,57616,57617,57618,57619,57620,57621,57622,57623,57624,57625,29819,29820,29821,29823,29826,29828,29829,29830,29832,29833,29834,29836,29837,29839,29841,29842,29843,29844,29845,29846,29847,29848,29849,29850,29851,29853,29855,29856,29857,29858,29859,29860,29861,29862,29866,29867,29868,29869,29870,29871,29872,29873,29874,29875,29876,29877,29878,29879,29880,29881,29883,29884,29885,29886,29887,29888,29889,29890,29891,29892,29893,29894,29895,29896,29897,29898,29899,29900,29901,29902,29903,29904,29905,29907,29908,29909,29910,29911,29912,29913,29914,29915,29917,29919,29921,29925,29927,29928,29929,29930,29931,29932,29933,29936,29937,29938,57626,57627,57628,57629,57630,57631,57632,57633,57634,57635,57636,57637,57638,57639,57640,57641,57642,57643,57644,57645,57646,57647,57648,57649,57650,57651,57652,57653,57654,57655,57656,57657,57658,57659,57660,57661,57662,57663,57664,57665,57666,57667,57668,57669,57670,57671,57672,57673,57674,57675,57676,57677,57678,57679,57680,57681,57682,57683,57684,57685,57686,57687,57688,57689,57690,57691,57692,57693,57694,57695,57696,57697,57698,57699,57700,57701,57702,57703,57704,57705,57706,57707,57708,57709,57710,57711,57712,57713,57714,57715,57716,57717,57718,57719,29939,29941,29944,29945,29946,29947,29948,29949,29950,29952,29953,29954,29955,29957,29958,29959,29960,29961,29962,29963,29964,29966,29968,29970,29972,29973,29974,29975,29979,29981,29982,29984,29985,29986,29987,29988,29990,29991,29994,29998,30004,30006,30009,30012,30013,30015,30017,30018,30019,30020,30022,30023,30025,30026,30029,30032,30033,30034,30035,30037,30038,30039,30040,30045,30046,30047,30048,30049,30050,30051,30052,30055,30056,30057,30059,30060,30061,30062,30063,30064,30065,30067,30069,30070,30071,30074,30075,30076,30077,30078,30080,30081,30082,30084,30085,30087,57720,57721,57722,57723,57724,57725,57726,57727,57728,57729,57730,57731,57732,57733,57734,57735,57736,57737,57738,57739,57740,57741,57742,57743,57744,57745,57746,57747,57748,57749,57750,57751,57752,57753,57754,57755,57756,57757,57758,57759,57760,57761,57762,57763,57764,57765,57766,57767,57768,57769,57770,57771,57772,57773,57774,57775,57776,57777,57778,57779,57780,57781,57782,57783,57784,57785,57786,57787,57788,57789,57790,57791,57792,57793,57794,57795,57796,57797,57798,57799,57800,57801,57802,57803,57804,57805,57806,57807,57808,57809,57810,57811,57812,57813,30088,30089,30090,30092,30093,30094,30096,30099,30101,30104,30107,30108,30110,30114,30118,30119,30120,30121,30122,30125,30134,30135,30138,30139,30143,30144,30145,30150,30155,30156,30158,30159,30160,30161,30163,30167,30169,30170,30172,30173,30175,30176,30177,30181,30185,30188,30189,30190,30191,30194,30195,30197,30198,30199,30200,30202,30203,30205,30206,30210,30212,30214,30215,30216,30217,30219,30221,30222,30223,30225,30226,30227,30228,30230,30234,30236,30237,30238,30241,30243,30247,30248,30252,30254,30255,30257,30258,30262,30263,30265,30266,30267,30269,30273,30274,30276,57814,57815,57816,57817,57818,57819,57820,57821,57822,57823,57824,57825,57826,57827,57828,57829,57830,57831,57832,57833,57834,57835,57836,57837,57838,57839,57840,57841,57842,57843,57844,57845,57846,57847,57848,57849,57850,57851,57852,57853,57854,57855,57856,57857,57858,57859,57860,57861,57862,57863,57864,57865,57866,57867,57868,57869,57870,57871,57872,57873,57874,57875,57876,57877,57878,57879,57880,57881,57882,57883,57884,57885,57886,57887,57888,57889,57890,57891,57892,57893,57894,57895,57896,57897,57898,57899,57900,57901,57902,57903,57904,57905,57906,57907,30277,30278,30279,30280,30281,30282,30283,30286,30287,30288,30289,30290,30291,30293,30295,30296,30297,30298,30299,30301,30303,30304,30305,30306,30308,30309,30310,30311,30312,30313,30314,30316,30317,30318,30320,30321,30322,30323,30324,30325,30326,30327,30329,30330,30332,30335,30336,30337,30339,30341,30345,30346,30348,30349,30351,30352,30354,30356,30357,30359,30360,30362,30363,30364,30365,30366,30367,30368,30369,30370,30371,30373,30374,30375,30376,30377,30378,30379,30380,30381,30383,30384,30387,30389,30390,30391,30392,30393,30394,30395,30396,30397,30398,30400,30401,30403,21834,38463,22467,25384,21710,21769,21696,30353,30284,34108,30702,33406,30861,29233,38552,38797,27688,23433,20474,25353,26263,23736,33018,26696,32942,26114,30414,20985,25942,29100,32753,34948,20658,22885,25034,28595,33453,25420,25170,21485,21543,31494,20843,30116,24052,25300,36299,38774,25226,32793,22365,38712,32610,29240,30333,26575,30334,25670,20336,36133,25308,31255,26001,29677,25644,25203,33324,39041,26495,29256,25198,25292,20276,29923,21322,21150,32458,37030,24110,26758,27036,33152,32465,26834,30917,34444,38225,20621,35876,33502,32990,21253,35090,21093,30404,30407,30409,30411,30412,30419,30421,30425,30426,30428,30429,30430,30432,30433,30434,30435,30436,30438,30439,30440,30441,30442,30443,30444,30445,30448,30451,30453,30454,30455,30458,30459,30461,30463,30464,30466,30467,30469,30470,30474,30476,30478,30479,30480,30481,30482,30483,30484,30485,30486,30487,30488,30491,30492,30493,30494,30497,30499,30500,30501,30503,30506,30507,30508,30510,30512,30513,30514,30515,30516,30521,30523,30525,30526,30527,30530,30532,30533,30534,30536,30537,30538,30539,30540,30541,30542,30543,30546,30547,30548,30549,30550,30551,30552,30553,30556,34180,38649,20445,22561,39281,23453,25265,25253,26292,35961,40077,29190,26479,30865,24754,21329,21271,36744,32972,36125,38049,20493,29384,22791,24811,28953,34987,22868,33519,26412,31528,23849,32503,29997,27893,36454,36856,36924,40763,27604,37145,31508,24444,30887,34006,34109,27605,27609,27606,24065,24199,30201,38381,25949,24330,24517,36767,22721,33218,36991,38491,38829,36793,32534,36140,25153,20415,21464,21342,36776,36777,36779,36941,26631,24426,33176,34920,40150,24971,21035,30250,24428,25996,28626,28392,23486,25672,20853,20912,26564,19993,31177,39292,28851,30557,30558,30559,30560,30564,30567,30569,30570,30573,30574,30575,30576,30577,30578,30579,30580,30581,30582,30583,30584,30586,30587,30588,30593,30594,30595,30598,30599,30600,30601,30602,30603,30607,30608,30611,30612,30613,30614,30615,30616,30617,30618,30619,30620,30621,30622,30625,30627,30628,30630,30632,30635,30637,30638,30639,30641,30642,30644,30646,30647,30648,30649,30650,30652,30654,30656,30657,30658,30659,30660,30661,30662,30663,30664,30665,30666,30667,30668,30670,30671,30672,30673,30674,30675,30676,30677,30678,30680,30681,30682,30685,30686,30687,30688,30689,30692,30149,24182,29627,33760,25773,25320,38069,27874,21338,21187,25615,38082,31636,20271,24091,33334,33046,33162,28196,27850,39539,25429,21340,21754,34917,22496,19981,24067,27493,31807,37096,24598,25830,29468,35009,26448,25165,36130,30572,36393,37319,24425,33756,34081,39184,21442,34453,27531,24813,24808,28799,33485,33329,20179,27815,34255,25805,31961,27133,26361,33609,21397,31574,20391,20876,27979,23618,36461,25554,21449,33580,33590,26597,30900,25661,23519,23700,24046,35815,25286,26612,35962,25600,25530,34633,39307,35863,32544,38130,20135,38416,39076,26124,29462,30694,30696,30698,30703,30704,30705,30706,30708,30709,30711,30713,30714,30715,30716,30723,30724,30725,30726,30727,30728,30730,30731,30734,30735,30736,30739,30741,30745,30747,30750,30752,30753,30754,30756,30760,30762,30763,30766,30767,30769,30770,30771,30773,30774,30781,30783,30785,30786,30787,30788,30790,30792,30793,30794,30795,30797,30799,30801,30803,30804,30808,30809,30810,30811,30812,30814,30815,30816,30817,30818,30819,30820,30821,30822,30823,30824,30825,30831,30832,30833,30834,30835,30836,30837,30838,30840,30841,30842,30843,30845,30846,30847,30848,30849,30850,30851,22330,23581,24120,38271,20607,32928,21378,25950,30021,21809,20513,36229,25220,38046,26397,22066,28526,24034,21557,28818,36710,25199,25764,25507,24443,28552,37108,33251,36784,23576,26216,24561,27785,38472,36225,34924,25745,31216,22478,27225,25104,21576,20056,31243,24809,28548,35802,25215,36894,39563,31204,21507,30196,25345,21273,27744,36831,24347,39536,32827,40831,20360,23610,36196,32709,26021,28861,20805,20914,34411,23815,23456,25277,37228,30068,36364,31264,24833,31609,20167,32504,30597,19985,33261,21021,20986,27249,21416,36487,38148,38607,28353,38500,26970,30852,30853,30854,30856,30858,30859,30863,30864,30866,30868,30869,30870,30873,30877,30878,30880,30882,30884,30886,30888,30889,30890,30891,30892,30893,30894,30895,30901,30902,30903,30904,30906,30907,30908,30909,30911,30912,30914,30915,30916,30918,30919,30920,30924,30925,30926,30927,30929,30930,30931,30934,30935,30936,30938,30939,30940,30941,30942,30943,30944,30945,30946,30947,30948,30949,30950,30951,30953,30954,30955,30957,30958,30959,30960,30961,30963,30965,30966,30968,30969,30971,30972,30973,30974,30975,30976,30978,30979,30980,30982,30983,30984,30985,30986,30987,30988,30784,20648,30679,25616,35302,22788,25571,24029,31359,26941,20256,33337,21912,20018,30126,31383,24162,24202,38383,21019,21561,28810,25462,38180,22402,26149,26943,37255,21767,28147,32431,34850,25139,32496,30133,33576,30913,38604,36766,24904,29943,35789,27492,21050,36176,27425,32874,33905,22257,21254,20174,19995,20945,31895,37259,31751,20419,36479,31713,31388,25703,23828,20652,33030,30209,31929,28140,32736,26449,23384,23544,30923,25774,25619,25514,25387,38169,25645,36798,31572,30249,25171,22823,21574,27513,20643,25140,24102,27526,20195,36151,34955,24453,36910,30989,30990,30991,30992,30993,30994,30996,30997,30998,30999,31e3,31001,31002,31003,31004,31005,31007,31008,31009,31010,31011,31013,31014,31015,31016,31017,31018,31019,31020,31021,31022,31023,31024,31025,31026,31027,31029,31030,31031,31032,31033,31037,31039,31042,31043,31044,31045,31047,31050,31051,31052,31053,31054,31055,31056,31057,31058,31060,31061,31064,31065,31073,31075,31076,31078,31081,31082,31083,31084,31086,31088,31089,31090,31091,31092,31093,31094,31097,31099,31100,31101,31102,31103,31106,31107,31110,31111,31112,31113,31115,31116,31117,31118,31120,31121,31122,24608,32829,25285,20025,21333,37112,25528,32966,26086,27694,20294,24814,28129,35806,24377,34507,24403,25377,20826,33633,26723,20992,25443,36424,20498,23707,31095,23548,21040,31291,24764,36947,30423,24503,24471,30340,36460,28783,30331,31561,30634,20979,37011,22564,20302,28404,36842,25932,31515,29380,28068,32735,23265,25269,24213,22320,33922,31532,24093,24351,36882,32532,39072,25474,28359,30872,28857,20856,38747,22443,30005,20291,30008,24215,24806,22880,28096,27583,30857,21500,38613,20939,20993,25481,21514,38035,35843,36300,29241,30879,34678,36845,35853,21472,31123,31124,31125,31126,31127,31128,31129,31131,31132,31133,31134,31135,31136,31137,31138,31139,31140,31141,31142,31144,31145,31146,31147,31148,31149,31150,31151,31152,31153,31154,31156,31157,31158,31159,31160,31164,31167,31170,31172,31173,31175,31176,31178,31180,31182,31183,31184,31187,31188,31190,31191,31193,31194,31195,31196,31197,31198,31200,31201,31202,31205,31208,31210,31212,31214,31217,31218,31219,31220,31221,31222,31223,31225,31226,31228,31230,31231,31233,31236,31237,31239,31240,31241,31242,31244,31247,31248,31249,31250,31251,31253,31254,31256,31257,31259,31260,19969,30447,21486,38025,39030,40718,38189,23450,35746,20002,19996,20908,33891,25026,21160,26635,20375,24683,20923,27934,20828,25238,26007,38497,35910,36887,30168,37117,30563,27602,29322,29420,35835,22581,30585,36172,26460,38208,32922,24230,28193,22930,31471,30701,38203,27573,26029,32526,22534,20817,38431,23545,22697,21544,36466,25958,39039,22244,38045,30462,36929,25479,21702,22810,22842,22427,36530,26421,36346,33333,21057,24816,22549,34558,23784,40517,20420,39069,35769,23077,24694,21380,25212,36943,37122,39295,24681,32780,20799,32819,23572,39285,27953,20108,31261,31263,31265,31266,31268,31269,31270,31271,31272,31273,31274,31275,31276,31277,31278,31279,31280,31281,31282,31284,31285,31286,31288,31290,31294,31296,31297,31298,31299,31300,31301,31303,31304,31305,31306,31307,31308,31309,31310,31311,31312,31314,31315,31316,31317,31318,31320,31321,31322,31323,31324,31325,31326,31327,31328,31329,31330,31331,31332,31333,31334,31335,31336,31337,31338,31339,31340,31341,31342,31343,31345,31346,31347,31349,31355,31356,31357,31358,31362,31365,31367,31369,31370,31371,31372,31374,31375,31376,31379,31380,31385,31386,31387,31390,31393,31394,36144,21457,32602,31567,20240,20047,38400,27861,29648,34281,24070,30058,32763,27146,30718,38034,32321,20961,28902,21453,36820,33539,36137,29359,39277,27867,22346,33459,26041,32938,25151,38450,22952,20223,35775,32442,25918,33778,38750,21857,39134,32933,21290,35837,21536,32954,24223,27832,36153,33452,37210,21545,27675,20998,32439,22367,28954,27774,31881,22859,20221,24575,24868,31914,20016,23553,26539,34562,23792,38155,39118,30127,28925,36898,20911,32541,35773,22857,20964,20315,21542,22827,25975,32932,23413,25206,25282,36752,24133,27679,31526,20239,20440,26381,31395,31396,31399,31401,31402,31403,31406,31407,31408,31409,31410,31412,31413,31414,31415,31416,31417,31418,31419,31420,31421,31422,31424,31425,31426,31427,31428,31429,31430,31431,31432,31433,31434,31436,31437,31438,31439,31440,31441,31442,31443,31444,31445,31447,31448,31450,31451,31452,31453,31457,31458,31460,31463,31464,31465,31466,31467,31468,31470,31472,31473,31474,31475,31476,31477,31478,31479,31480,31483,31484,31486,31488,31489,31490,31493,31495,31497,31500,31501,31502,31504,31506,31507,31510,31511,31512,31514,31516,31517,31519,31521,31522,31523,31527,31529,31533,28014,28074,31119,34993,24343,29995,25242,36741,20463,37340,26023,33071,33105,24220,33104,36212,21103,35206,36171,22797,20613,20184,38428,29238,33145,36127,23500,35747,38468,22919,32538,21648,22134,22030,35813,25913,27010,38041,30422,28297,24178,29976,26438,26577,31487,32925,36214,24863,31174,25954,36195,20872,21018,38050,32568,32923,32434,23703,28207,26464,31705,30347,39640,33167,32660,31957,25630,38224,31295,21578,21733,27468,25601,25096,40509,33011,30105,21106,38761,33883,26684,34532,38401,38548,38124,20010,21508,32473,26681,36319,32789,26356,24218,32697,31535,31536,31538,31540,31541,31542,31543,31545,31547,31549,31551,31552,31553,31554,31555,31556,31558,31560,31562,31565,31566,31571,31573,31575,31577,31580,31582,31583,31585,31587,31588,31589,31590,31591,31592,31593,31594,31595,31596,31597,31599,31600,31603,31604,31606,31608,31610,31612,31613,31615,31617,31618,31619,31620,31622,31623,31624,31625,31626,31627,31628,31630,31631,31633,31634,31635,31638,31640,31641,31642,31643,31646,31647,31648,31651,31652,31653,31662,31663,31664,31666,31667,31669,31670,31671,31673,31674,31675,31676,31677,31678,31679,31680,31682,31683,31684,22466,32831,26775,24037,25915,21151,24685,40858,20379,36524,20844,23467,24339,24041,27742,25329,36129,20849,38057,21246,27807,33503,29399,22434,26500,36141,22815,36764,33735,21653,31629,20272,27837,23396,22993,40723,21476,34506,39592,35895,32929,25925,39038,22266,38599,21038,29916,21072,23521,25346,35074,20054,25296,24618,26874,20851,23448,20896,35266,31649,39302,32592,24815,28748,36143,20809,24191,36891,29808,35268,22317,30789,24402,40863,38394,36712,39740,35809,30328,26690,26588,36330,36149,21053,36746,28378,26829,38149,37101,22269,26524,35065,36807,21704,31685,31688,31689,31690,31691,31693,31694,31695,31696,31698,31700,31701,31702,31703,31704,31707,31708,31710,31711,31712,31714,31715,31716,31719,31720,31721,31723,31724,31725,31727,31728,31730,31731,31732,31733,31734,31736,31737,31738,31739,31741,31743,31744,31745,31746,31747,31748,31749,31750,31752,31753,31754,31757,31758,31760,31761,31762,31763,31764,31765,31767,31768,31769,31770,31771,31772,31773,31774,31776,31777,31778,31779,31780,31781,31784,31785,31787,31788,31789,31790,31791,31792,31793,31794,31795,31796,31797,31798,31799,31801,31802,31803,31804,31805,31806,31810,39608,23401,28023,27686,20133,23475,39559,37219,25e3,37039,38889,21547,28085,23506,20989,21898,32597,32752,25788,25421,26097,25022,24717,28938,27735,27721,22831,26477,33322,22741,22158,35946,27627,37085,22909,32791,21495,28009,21621,21917,33655,33743,26680,31166,21644,20309,21512,30418,35977,38402,27827,28088,36203,35088,40548,36154,22079,40657,30165,24456,29408,24680,21756,20136,27178,34913,24658,36720,21700,28888,34425,40511,27946,23439,24344,32418,21897,20399,29492,21564,21402,20505,21518,21628,20046,24573,29786,22774,33899,32993,34676,29392,31946,28246,31811,31812,31813,31814,31815,31816,31817,31818,31819,31820,31822,31823,31824,31825,31826,31827,31828,31829,31830,31831,31832,31833,31834,31835,31836,31837,31838,31839,31840,31841,31842,31843,31844,31845,31846,31847,31848,31849,31850,31851,31852,31853,31854,31855,31856,31857,31858,31861,31862,31863,31864,31865,31866,31870,31871,31872,31873,31874,31875,31876,31877,31878,31879,31880,31882,31883,31884,31885,31886,31887,31888,31891,31892,31894,31897,31898,31899,31904,31905,31907,31910,31911,31912,31913,31915,31916,31917,31919,31920,31924,31925,31926,31927,31928,31930,31931,24359,34382,21804,25252,20114,27818,25143,33457,21719,21326,29502,28369,30011,21010,21270,35805,27088,24458,24576,28142,22351,27426,29615,26707,36824,32531,25442,24739,21796,30186,35938,28949,28067,23462,24187,33618,24908,40644,30970,34647,31783,30343,20976,24822,29004,26179,24140,24653,35854,28784,25381,36745,24509,24674,34516,22238,27585,24724,24935,21321,24800,26214,36159,31229,20250,28905,27719,35763,35826,32472,33636,26127,23130,39746,27985,28151,35905,27963,20249,28779,33719,25110,24785,38669,36135,31096,20987,22334,22522,26426,30072,31293,31215,31637,31935,31936,31938,31939,31940,31942,31945,31947,31950,31951,31952,31953,31954,31955,31956,31960,31962,31963,31965,31966,31969,31970,31971,31972,31973,31974,31975,31977,31978,31979,31980,31981,31982,31984,31985,31986,31987,31988,31989,31990,31991,31993,31994,31996,31997,31998,31999,32e3,32001,32002,32003,32004,32005,32006,32007,32008,32009,32011,32012,32013,32014,32015,32016,32017,32018,32019,32020,32021,32022,32023,32024,32025,32026,32027,32028,32029,32030,32031,32033,32035,32036,32037,32038,32040,32041,32042,32044,32045,32046,32048,32049,32050,32051,32052,32053,32054,32908,39269,36857,28608,35749,40481,23020,32489,32521,21513,26497,26840,36753,31821,38598,21450,24613,30142,27762,21363,23241,32423,25380,20960,33034,24049,34015,25216,20864,23395,20238,31085,21058,24760,27982,23492,23490,35745,35760,26082,24524,38469,22931,32487,32426,22025,26551,22841,20339,23478,21152,33626,39050,36158,30002,38078,20551,31292,20215,26550,39550,23233,27516,30417,22362,23574,31546,38388,29006,20860,32937,33392,22904,32516,33575,26816,26604,30897,30839,25315,25441,31616,20461,21098,20943,33616,27099,37492,36341,36145,35265,38190,31661,20214,32055,32056,32057,32058,32059,32060,32061,32062,32063,32064,32065,32066,32067,32068,32069,32070,32071,32072,32073,32074,32075,32076,32077,32078,32079,32080,32081,32082,32083,32084,32085,32086,32087,32088,32089,32090,32091,32092,32093,32094,32095,32096,32097,32098,32099,32100,32101,32102,32103,32104,32105,32106,32107,32108,32109,32111,32112,32113,32114,32115,32116,32117,32118,32120,32121,32122,32123,32124,32125,32126,32127,32128,32129,32130,32131,32132,32133,32134,32135,32136,32137,32138,32139,32140,32141,32142,32143,32144,32145,32146,32147,32148,32149,32150,32151,32152,20581,33328,21073,39279,28176,28293,28071,24314,20725,23004,23558,27974,27743,30086,33931,26728,22870,35762,21280,37233,38477,34121,26898,30977,28966,33014,20132,37066,27975,39556,23047,22204,25605,38128,30699,20389,33050,29409,35282,39290,32564,32478,21119,25945,37237,36735,36739,21483,31382,25581,25509,30342,31224,34903,38454,25130,21163,33410,26708,26480,25463,30571,31469,27905,32467,35299,22992,25106,34249,33445,30028,20511,20171,30117,35819,23626,24062,31563,26020,37329,20170,27941,35167,32039,38182,20165,35880,36827,38771,26187,31105,36817,28908,28024,32153,32154,32155,32156,32157,32158,32159,32160,32161,32162,32163,32164,32165,32167,32168,32169,32170,32171,32172,32173,32175,32176,32177,32178,32179,32180,32181,32182,32183,32184,32185,32186,32187,32188,32189,32190,32191,32192,32193,32194,32195,32196,32197,32198,32199,32200,32201,32202,32203,32204,32205,32206,32207,32208,32209,32210,32211,32212,32213,32214,32215,32216,32217,32218,32219,32220,32221,32222,32223,32224,32225,32226,32227,32228,32229,32230,32231,32232,32233,32234,32235,32236,32237,32238,32239,32240,32241,32242,32243,32244,32245,32246,32247,32248,32249,32250,23613,21170,33606,20834,33550,30555,26230,40120,20140,24778,31934,31923,32463,20117,35686,26223,39048,38745,22659,25964,38236,24452,30153,38742,31455,31454,20928,28847,31384,25578,31350,32416,29590,38893,20037,28792,20061,37202,21417,25937,26087,33276,33285,21646,23601,30106,38816,25304,29401,30141,23621,39545,33738,23616,21632,30697,20030,27822,32858,25298,25454,24040,20855,36317,36382,38191,20465,21477,24807,28844,21095,25424,40515,23071,20518,30519,21367,32482,25733,25899,25225,25496,20500,29237,35273,20915,35776,32477,22343,33740,38055,20891,21531,23803,32251,32252,32253,32254,32255,32256,32257,32258,32259,32260,32261,32262,32263,32264,32265,32266,32267,32268,32269,32270,32271,32272,32273,32274,32275,32276,32277,32278,32279,32280,32281,32282,32283,32284,32285,32286,32287,32288,32289,32290,32291,32292,32293,32294,32295,32296,32297,32298,32299,32300,32301,32302,32303,32304,32305,32306,32307,32308,32309,32310,32311,32312,32313,32314,32316,32317,32318,32319,32320,32322,32323,32324,32325,32326,32328,32329,32330,32331,32332,32333,32334,32335,32336,32337,32338,32339,32340,32341,32342,32343,32344,32345,32346,32347,32348,32349,20426,31459,27994,37089,39567,21888,21654,21345,21679,24320,25577,26999,20975,24936,21002,22570,21208,22350,30733,30475,24247,24951,31968,25179,25239,20130,28821,32771,25335,28900,38752,22391,33499,26607,26869,30933,39063,31185,22771,21683,21487,28212,20811,21051,23458,35838,32943,21827,22438,24691,22353,21549,31354,24656,23380,25511,25248,21475,25187,23495,26543,21741,31391,33510,37239,24211,35044,22840,22446,25358,36328,33007,22359,31607,20393,24555,23485,27454,21281,31568,29378,26694,30719,30518,26103,20917,20111,30420,23743,31397,33909,22862,39745,20608,32350,32351,32352,32353,32354,32355,32356,32357,32358,32359,32360,32361,32362,32363,32364,32365,32366,32367,32368,32369,32370,32371,32372,32373,32374,32375,32376,32377,32378,32379,32380,32381,32382,32383,32384,32385,32387,32388,32389,32390,32391,32392,32393,32394,32395,32396,32397,32398,32399,32400,32401,32402,32403,32404,32405,32406,32407,32408,32409,32410,32412,32413,32414,32430,32436,32443,32444,32470,32484,32492,32505,32522,32528,32542,32567,32569,32571,32572,32573,32574,32575,32576,32577,32579,32582,32583,32584,32585,32586,32587,32588,32589,32590,32591,32594,32595,39304,24871,28291,22372,26118,25414,22256,25324,25193,24275,38420,22403,25289,21895,34593,33098,36771,21862,33713,26469,36182,34013,23146,26639,25318,31726,38417,20848,28572,35888,25597,35272,25042,32518,28866,28389,29701,27028,29436,24266,37070,26391,28010,25438,21171,29282,32769,20332,23013,37226,28889,28061,21202,20048,38647,38253,34174,30922,32047,20769,22418,25794,32907,31867,27882,26865,26974,20919,21400,26792,29313,40654,31729,29432,31163,28435,29702,26446,37324,40100,31036,33673,33620,21519,26647,20029,21385,21169,30782,21382,21033,20616,20363,20432,32598,32601,32603,32604,32605,32606,32608,32611,32612,32613,32614,32615,32619,32620,32621,32623,32624,32627,32629,32630,32631,32632,32634,32635,32636,32637,32639,32640,32642,32643,32644,32645,32646,32647,32648,32649,32651,32653,32655,32656,32657,32658,32659,32661,32662,32663,32664,32665,32667,32668,32672,32674,32675,32677,32678,32680,32681,32682,32683,32684,32685,32686,32689,32691,32692,32693,32694,32695,32698,32699,32702,32704,32706,32707,32708,32710,32711,32712,32713,32715,32717,32719,32720,32721,32722,32723,32726,32727,32729,32730,32731,32732,32733,32734,32738,32739,30178,31435,31890,27813,38582,21147,29827,21737,20457,32852,33714,36830,38256,24265,24604,28063,24088,25947,33080,38142,24651,28860,32451,31918,20937,26753,31921,33391,20004,36742,37327,26238,20142,35845,25769,32842,20698,30103,29134,23525,36797,28518,20102,25730,38243,24278,26009,21015,35010,28872,21155,29454,29747,26519,30967,38678,20020,37051,40158,28107,20955,36161,21533,25294,29618,33777,38646,40836,38083,20278,32666,20940,28789,38517,23725,39046,21478,20196,28316,29705,27060,30827,39311,30041,21016,30244,27969,26611,20845,40857,32843,21657,31548,31423,32740,32743,32744,32746,32747,32748,32749,32751,32754,32756,32757,32758,32759,32760,32761,32762,32765,32766,32767,32770,32775,32776,32777,32778,32782,32783,32785,32787,32794,32795,32797,32798,32799,32801,32803,32804,32811,32812,32813,32814,32815,32816,32818,32820,32825,32826,32828,32830,32832,32833,32836,32837,32839,32840,32841,32846,32847,32848,32849,32851,32853,32854,32855,32857,32859,32860,32861,32862,32863,32864,32865,32866,32867,32868,32869,32870,32871,32872,32875,32876,32877,32878,32879,32880,32882,32883,32884,32885,32886,32887,32888,32889,32890,32891,32892,32893,38534,22404,25314,38471,27004,23044,25602,31699,28431,38475,33446,21346,39045,24208,28809,25523,21348,34383,40065,40595,30860,38706,36335,36162,40575,28510,31108,24405,38470,25134,39540,21525,38109,20387,26053,23653,23649,32533,34385,27695,24459,29575,28388,32511,23782,25371,23402,28390,21365,20081,25504,30053,25249,36718,20262,20177,27814,32438,35770,33821,34746,32599,36923,38179,31657,39585,35064,33853,27931,39558,32476,22920,40635,29595,30721,34434,39532,39554,22043,21527,22475,20080,40614,21334,36808,33033,30610,39314,34542,28385,34067,26364,24930,28459,32894,32897,32898,32901,32904,32906,32909,32910,32911,32912,32913,32914,32916,32917,32919,32921,32926,32931,32934,32935,32936,32940,32944,32947,32949,32950,32952,32953,32955,32965,32967,32968,32969,32970,32971,32975,32976,32977,32978,32979,32980,32981,32984,32991,32992,32994,32995,32998,33006,33013,33015,33017,33019,33022,33023,33024,33025,33027,33028,33029,33031,33032,33035,33036,33045,33047,33049,33051,33052,33053,33055,33056,33057,33058,33059,33060,33061,33062,33063,33064,33065,33066,33067,33069,33070,33072,33075,33076,33077,33079,33081,33082,33083,33084,33085,33087,35881,33426,33579,30450,27667,24537,33725,29483,33541,38170,27611,30683,38086,21359,33538,20882,24125,35980,36152,20040,29611,26522,26757,37238,38665,29028,27809,30473,23186,38209,27599,32654,26151,23504,22969,23194,38376,38391,20204,33804,33945,27308,30431,38192,29467,26790,23391,30511,37274,38753,31964,36855,35868,24357,31859,31192,35269,27852,34588,23494,24130,26825,30496,32501,20885,20813,21193,23081,32517,38754,33495,25551,30596,34256,31186,28218,24217,22937,34065,28781,27665,25279,30399,25935,24751,38397,26126,34719,40483,38125,21517,21629,35884,25720,33088,33089,33090,33091,33092,33093,33095,33097,33101,33102,33103,33106,33110,33111,33112,33115,33116,33117,33118,33119,33121,33122,33123,33124,33126,33128,33130,33131,33132,33135,33138,33139,33141,33142,33143,33144,33153,33155,33156,33157,33158,33159,33161,33163,33164,33165,33166,33168,33170,33171,33172,33173,33174,33175,33177,33178,33182,33183,33184,33185,33186,33188,33189,33191,33193,33195,33196,33197,33198,33199,33200,33201,33202,33204,33205,33206,33207,33208,33209,33212,33213,33214,33215,33220,33221,33223,33224,33225,33227,33229,33230,33231,33232,33233,33234,33235,25721,34321,27169,33180,30952,25705,39764,25273,26411,33707,22696,40664,27819,28448,23518,38476,35851,29279,26576,25287,29281,20137,22982,27597,22675,26286,24149,21215,24917,26408,30446,30566,29287,31302,25343,21738,21584,38048,37027,23068,32435,27670,20035,22902,32784,22856,21335,30007,38590,22218,25376,33041,24700,38393,28118,21602,39297,20869,23273,33021,22958,38675,20522,27877,23612,25311,20320,21311,33147,36870,28346,34091,25288,24180,30910,25781,25467,24565,23064,37247,40479,23615,25423,32834,23421,21870,38218,38221,28037,24744,26592,29406,20957,23425,33236,33237,33238,33239,33240,33241,33242,33243,33244,33245,33246,33247,33248,33249,33250,33252,33253,33254,33256,33257,33259,33262,33263,33264,33265,33266,33269,33270,33271,33272,33273,33274,33277,33279,33283,33287,33288,33289,33290,33291,33294,33295,33297,33299,33301,33302,33303,33304,33305,33306,33309,33312,33316,33317,33318,33319,33321,33326,33330,33338,33340,33341,33343,33344,33345,33346,33347,33349,33350,33352,33354,33356,33357,33358,33360,33361,33362,33363,33364,33365,33366,33367,33369,33371,33372,33373,33374,33376,33377,33378,33379,33380,33381,33382,33383,33385,25319,27870,29275,25197,38062,32445,33043,27987,20892,24324,22900,21162,24594,22899,26262,34384,30111,25386,25062,31983,35834,21734,27431,40485,27572,34261,21589,20598,27812,21866,36276,29228,24085,24597,29750,25293,25490,29260,24472,28227,27966,25856,28504,30424,30928,30460,30036,21028,21467,20051,24222,26049,32810,32982,25243,21638,21032,28846,34957,36305,27873,21624,32986,22521,35060,36180,38506,37197,20329,27803,21943,30406,30768,25256,28921,28558,24429,34028,26842,30844,31735,33192,26379,40527,25447,30896,22383,30738,38713,25209,25259,21128,29749,27607,33386,33387,33388,33389,33393,33397,33398,33399,33400,33403,33404,33408,33409,33411,33413,33414,33415,33417,33420,33424,33427,33428,33429,33430,33434,33435,33438,33440,33442,33443,33447,33458,33461,33462,33466,33467,33468,33471,33472,33474,33475,33477,33478,33481,33488,33494,33497,33498,33501,33506,33511,33512,33513,33514,33516,33517,33518,33520,33522,33523,33525,33526,33528,33530,33532,33533,33534,33535,33536,33546,33547,33549,33552,33554,33555,33558,33560,33561,33565,33566,33567,33568,33569,33570,33571,33572,33573,33574,33577,33578,33582,33584,33586,33591,33595,33597,21860,33086,30130,30382,21305,30174,20731,23617,35692,31687,20559,29255,39575,39128,28418,29922,31080,25735,30629,25340,39057,36139,21697,32856,20050,22378,33529,33805,24179,20973,29942,35780,23631,22369,27900,39047,23110,30772,39748,36843,31893,21078,25169,38138,20166,33670,33889,33769,33970,22484,26420,22275,26222,28006,35889,26333,28689,26399,27450,26646,25114,22971,19971,20932,28422,26578,27791,20854,26827,22855,27495,30054,23822,33040,40784,26071,31048,31041,39569,36215,23682,20062,20225,21551,22865,30732,22120,27668,36804,24323,27773,27875,35755,25488,33598,33599,33601,33602,33604,33605,33608,33610,33611,33612,33613,33614,33619,33621,33622,33623,33624,33625,33629,33634,33648,33649,33650,33651,33652,33653,33654,33657,33658,33662,33663,33664,33665,33666,33667,33668,33671,33672,33674,33675,33676,33677,33679,33680,33681,33684,33685,33686,33687,33689,33690,33693,33695,33697,33698,33699,33700,33701,33702,33703,33708,33709,33710,33711,33717,33723,33726,33727,33730,33731,33732,33734,33736,33737,33739,33741,33742,33744,33745,33746,33747,33749,33751,33753,33754,33755,33758,33762,33763,33764,33766,33767,33768,33771,33772,33773,24688,27965,29301,25190,38030,38085,21315,36801,31614,20191,35878,20094,40660,38065,38067,21069,28508,36963,27973,35892,22545,23884,27424,27465,26538,21595,33108,32652,22681,34103,24378,25250,27207,38201,25970,24708,26725,30631,20052,20392,24039,38808,25772,32728,23789,20431,31373,20999,33540,19988,24623,31363,38054,20405,20146,31206,29748,21220,33465,25810,31165,23517,27777,38738,36731,27682,20542,21375,28165,25806,26228,27696,24773,39031,35831,24198,29756,31351,31179,19992,37041,29699,27714,22234,37195,27845,36235,21306,34502,26354,36527,23624,39537,28192,33774,33775,33779,33780,33781,33782,33783,33786,33787,33788,33790,33791,33792,33794,33797,33799,33800,33801,33802,33808,33810,33811,33812,33813,33814,33815,33817,33818,33819,33822,33823,33824,33825,33826,33827,33833,33834,33835,33836,33837,33838,33839,33840,33842,33843,33844,33845,33846,33847,33849,33850,33851,33854,33855,33856,33857,33858,33859,33860,33861,33863,33864,33865,33866,33867,33868,33869,33870,33871,33872,33874,33875,33876,33877,33878,33880,33885,33886,33887,33888,33890,33892,33893,33894,33895,33896,33898,33902,33903,33904,33906,33908,33911,33913,33915,33916,21462,23094,40843,36259,21435,22280,39079,26435,37275,27849,20840,30154,25331,29356,21048,21149,32570,28820,30264,21364,40522,27063,30830,38592,35033,32676,28982,29123,20873,26579,29924,22756,25880,22199,35753,39286,25200,32469,24825,28909,22764,20161,20154,24525,38887,20219,35748,20995,22922,32427,25172,20173,26085,25102,33592,33993,33635,34701,29076,28342,23481,32466,20887,25545,26580,32905,33593,34837,20754,23418,22914,36785,20083,27741,20837,35109,36719,38446,34122,29790,38160,38384,28070,33509,24369,25746,27922,33832,33134,40131,22622,36187,19977,21441,33917,33918,33919,33920,33921,33923,33924,33925,33926,33930,33933,33935,33936,33937,33938,33939,33940,33941,33942,33944,33946,33947,33949,33950,33951,33952,33954,33955,33956,33957,33958,33959,33960,33961,33962,33963,33964,33965,33966,33968,33969,33971,33973,33974,33975,33979,33980,33982,33984,33986,33987,33989,33990,33991,33992,33995,33996,33998,33999,34002,34004,34005,34007,34008,34009,34010,34011,34012,34014,34017,34018,34020,34023,34024,34025,34026,34027,34029,34030,34031,34033,34034,34035,34036,34037,34038,34039,34040,34041,34042,34043,34045,34046,34048,34049,34050,20254,25955,26705,21971,20007,25620,39578,25195,23234,29791,33394,28073,26862,20711,33678,30722,26432,21049,27801,32433,20667,21861,29022,31579,26194,29642,33515,26441,23665,21024,29053,34923,38378,38485,25797,36193,33203,21892,27733,25159,32558,22674,20260,21830,36175,26188,19978,23578,35059,26786,25422,31245,28903,33421,21242,38902,23569,21736,37045,32461,22882,36170,34503,33292,33293,36198,25668,23556,24913,28041,31038,35774,30775,30003,21627,20280,36523,28145,23072,32453,31070,27784,23457,23158,29978,32958,24910,28183,22768,29983,29989,29298,21319,32499,34051,34052,34053,34054,34055,34056,34057,34058,34059,34061,34062,34063,34064,34066,34068,34069,34070,34072,34073,34075,34076,34077,34078,34080,34082,34083,34084,34085,34086,34087,34088,34089,34090,34093,34094,34095,34096,34097,34098,34099,34100,34101,34102,34110,34111,34112,34113,34114,34116,34117,34118,34119,34123,34124,34125,34126,34127,34128,34129,34130,34131,34132,34133,34135,34136,34138,34139,34140,34141,34143,34144,34145,34146,34147,34149,34150,34151,34153,34154,34155,34156,34157,34158,34159,34160,34161,34163,34165,34166,34167,34168,34172,34173,34175,34176,34177,30465,30427,21097,32988,22307,24072,22833,29422,26045,28287,35799,23608,34417,21313,30707,25342,26102,20160,39135,34432,23454,35782,21490,30690,20351,23630,39542,22987,24335,31034,22763,19990,26623,20107,25325,35475,36893,21183,26159,21980,22124,36866,20181,20365,37322,39280,27663,24066,24643,23460,35270,35797,25910,25163,39318,23432,23551,25480,21806,21463,30246,20861,34092,26530,26803,27530,25234,36755,21460,33298,28113,30095,20070,36174,23408,29087,34223,26257,26329,32626,34560,40653,40736,23646,26415,36848,26641,26463,25101,31446,22661,24246,25968,28465,34178,34179,34182,34184,34185,34186,34187,34188,34189,34190,34192,34193,34194,34195,34196,34197,34198,34199,34200,34201,34202,34205,34206,34207,34208,34209,34210,34211,34213,34214,34215,34217,34219,34220,34221,34225,34226,34227,34228,34229,34230,34232,34234,34235,34236,34237,34238,34239,34240,34242,34243,34244,34245,34246,34247,34248,34250,34251,34252,34253,34254,34257,34258,34260,34262,34263,34264,34265,34266,34267,34269,34270,34271,34272,34273,34274,34275,34277,34278,34279,34280,34282,34283,34284,34285,34286,34287,34288,34289,34290,34291,34292,34293,34294,34295,34296,24661,21047,32781,25684,34928,29993,24069,26643,25332,38684,21452,29245,35841,27700,30561,31246,21550,30636,39034,33308,35828,30805,26388,28865,26031,25749,22070,24605,31169,21496,19997,27515,32902,23546,21987,22235,20282,20284,39282,24051,26494,32824,24578,39042,36865,23435,35772,35829,25628,33368,25822,22013,33487,37221,20439,32032,36895,31903,20723,22609,28335,23487,35785,32899,37240,33948,31639,34429,38539,38543,32485,39635,30862,23681,31319,36930,38567,31071,23385,25439,31499,34001,26797,21766,32553,29712,32034,38145,25152,22604,20182,23427,22905,22612,34297,34298,34300,34301,34302,34304,34305,34306,34307,34308,34310,34311,34312,34313,34314,34315,34316,34317,34318,34319,34320,34322,34323,34324,34325,34327,34328,34329,34330,34331,34332,34333,34334,34335,34336,34337,34338,34339,34340,34341,34342,34344,34346,34347,34348,34349,34350,34351,34352,34353,34354,34355,34356,34357,34358,34359,34361,34362,34363,34365,34366,34367,34368,34369,34370,34371,34372,34373,34374,34375,34376,34377,34378,34379,34380,34386,34387,34389,34390,34391,34392,34393,34395,34396,34397,34399,34400,34401,34403,34404,34405,34406,34407,34408,34409,34410,29549,25374,36427,36367,32974,33492,25260,21488,27888,37214,22826,24577,27760,22349,25674,36138,30251,28393,22363,27264,30192,28525,35885,35848,22374,27631,34962,30899,25506,21497,28845,27748,22616,25642,22530,26848,33179,21776,31958,20504,36538,28108,36255,28907,25487,28059,28372,32486,33796,26691,36867,28120,38518,35752,22871,29305,34276,33150,30140,35466,26799,21076,36386,38161,25552,39064,36420,21884,20307,26367,22159,24789,28053,21059,23625,22825,28155,22635,3e4,29980,24684,33300,33094,25361,26465,36834,30522,36339,36148,38081,24086,21381,21548,28867,34413,34415,34416,34418,34419,34420,34421,34422,34423,34424,34435,34436,34437,34438,34439,34440,34441,34446,34447,34448,34449,34450,34452,34454,34455,34456,34457,34458,34459,34462,34463,34464,34465,34466,34469,34470,34475,34477,34478,34482,34483,34487,34488,34489,34491,34492,34493,34494,34495,34497,34498,34499,34501,34504,34508,34509,34514,34515,34517,34518,34519,34522,34524,34525,34528,34529,34530,34531,34533,34534,34535,34536,34538,34539,34540,34543,34549,34550,34551,34554,34555,34556,34557,34559,34561,34564,34565,34566,34571,34572,34574,34575,34576,34577,34580,34582,27712,24311,20572,20141,24237,25402,33351,36890,26704,37230,30643,21516,38108,24420,31461,26742,25413,31570,32479,30171,20599,25237,22836,36879,20984,31171,31361,22270,24466,36884,28034,23648,22303,21520,20820,28237,22242,25512,39059,33151,34581,35114,36864,21534,23663,33216,25302,25176,33073,40501,38464,39534,39548,26925,22949,25299,21822,25366,21703,34521,27964,23043,29926,34972,27498,22806,35916,24367,28286,29609,39037,20024,28919,23436,30871,25405,26202,30358,24779,23451,23113,19975,33109,27754,29579,20129,26505,32593,24448,26106,26395,24536,22916,23041,34585,34587,34589,34591,34592,34596,34598,34599,34600,34602,34603,34604,34605,34607,34608,34610,34611,34613,34614,34616,34617,34618,34620,34621,34624,34625,34626,34627,34628,34629,34630,34634,34635,34637,34639,34640,34641,34642,34644,34645,34646,34648,34650,34651,34652,34653,34654,34655,34657,34658,34662,34663,34664,34665,34666,34667,34668,34669,34671,34673,34674,34675,34677,34679,34680,34681,34682,34687,34688,34689,34692,34694,34695,34697,34698,34700,34702,34703,34704,34705,34706,34708,34709,34710,34712,34713,34714,34715,34716,34717,34718,34720,34721,34722,34723,34724,24013,24494,21361,38886,36829,26693,22260,21807,24799,20026,28493,32500,33479,33806,22996,20255,20266,23614,32428,26410,34074,21619,30031,32963,21890,39759,20301,28205,35859,23561,24944,21355,30239,28201,34442,25991,38395,32441,21563,31283,32010,38382,21985,32705,29934,25373,34583,28065,31389,25105,26017,21351,25569,27779,24043,21596,38056,20044,27745,35820,23627,26080,33436,26791,21566,21556,27595,27494,20116,25410,21320,33310,20237,20398,22366,25098,38654,26212,29289,21247,21153,24735,35823,26132,29081,26512,35199,30802,30717,26224,22075,21560,38177,29306,34725,34726,34727,34729,34730,34734,34736,34737,34738,34740,34742,34743,34744,34745,34747,34748,34750,34751,34753,34754,34755,34756,34757,34759,34760,34761,34764,34765,34766,34767,34768,34772,34773,34774,34775,34776,34777,34778,34780,34781,34782,34783,34785,34786,34787,34788,34790,34791,34792,34793,34795,34796,34797,34799,34800,34801,34802,34803,34804,34805,34806,34807,34808,34810,34811,34812,34813,34815,34816,34817,34818,34820,34821,34822,34823,34824,34825,34827,34828,34829,34830,34831,34832,34833,34834,34836,34839,34840,34841,34842,34844,34845,34846,34847,34848,34851,31232,24687,24076,24713,33181,22805,24796,29060,28911,28330,27728,29312,27268,34989,24109,20064,23219,21916,38115,27927,31995,38553,25103,32454,30606,34430,21283,38686,36758,26247,23777,20384,29421,19979,21414,22799,21523,25472,38184,20808,20185,40092,32420,21688,36132,34900,33335,38386,28046,24358,23244,26174,38505,29616,29486,21439,33146,39301,32673,23466,38519,38480,32447,30456,21410,38262,39321,31665,35140,28248,20065,32724,31077,35814,24819,21709,20139,39033,24055,27233,20687,21521,35937,33831,30813,38660,21066,21742,22179,38144,28040,23477,28102,26195,34852,34853,34854,34855,34856,34857,34858,34859,34860,34861,34862,34863,34864,34865,34867,34868,34869,34870,34871,34872,34874,34875,34877,34878,34879,34881,34882,34883,34886,34887,34888,34889,34890,34891,34894,34895,34896,34897,34898,34899,34901,34902,34904,34906,34907,34908,34909,34910,34911,34912,34918,34919,34922,34925,34927,34929,34931,34932,34933,34934,34936,34937,34938,34939,34940,34944,34947,34950,34951,34953,34954,34956,34958,34959,34960,34961,34963,34964,34965,34967,34968,34969,34970,34971,34973,34974,34975,34976,34977,34979,34981,34982,34983,34984,34985,34986,23567,23389,26657,32918,21880,31505,25928,26964,20123,27463,34638,38795,21327,25375,25658,37034,26012,32961,35856,20889,26800,21368,34809,25032,27844,27899,35874,23633,34218,33455,38156,27427,36763,26032,24571,24515,20449,34885,26143,33125,29481,24826,20852,21009,22411,24418,37026,34892,37266,24184,26447,24615,22995,20804,20982,33016,21256,27769,38596,29066,20241,20462,32670,26429,21957,38152,31168,34966,32483,22687,25100,38656,34394,22040,39035,24464,35768,33988,37207,21465,26093,24207,30044,24676,32110,23167,32490,32493,36713,21927,23459,24748,26059,29572,34988,34990,34991,34992,34994,34995,34996,34997,34998,35e3,35001,35002,35003,35005,35006,35007,35008,35011,35012,35015,35016,35018,35019,35020,35021,35023,35024,35025,35027,35030,35031,35034,35035,35036,35037,35038,35040,35041,35046,35047,35049,35050,35051,35052,35053,35054,35055,35058,35061,35062,35063,35066,35067,35069,35071,35072,35073,35075,35076,35077,35078,35079,35080,35081,35083,35084,35085,35086,35087,35089,35092,35093,35094,35095,35096,35100,35101,35102,35103,35104,35106,35107,35108,35110,35111,35112,35113,35116,35117,35118,35119,35121,35122,35123,35125,35127,36873,30307,30505,32474,38772,34203,23398,31348,38634,34880,21195,29071,24490,26092,35810,23547,39535,24033,27529,27739,35757,35759,36874,36805,21387,25276,40486,40493,21568,20011,33469,29273,34460,23830,34905,28079,38597,21713,20122,35766,28937,21693,38409,28895,28153,30416,20005,30740,34578,23721,24310,35328,39068,38414,28814,27839,22852,25513,30524,34893,28436,33395,22576,29141,21388,30746,38593,21761,24422,28976,23476,35866,39564,27523,22830,40495,31207,26472,25196,20335,30113,32650,27915,38451,27687,20208,30162,20859,26679,28478,36992,33136,22934,29814,35128,35129,35130,35131,35132,35133,35134,35135,35136,35138,35139,35141,35142,35143,35144,35145,35146,35147,35148,35149,35150,35151,35152,35153,35154,35155,35156,35157,35158,35159,35160,35161,35162,35163,35164,35165,35168,35169,35170,35171,35172,35173,35175,35176,35177,35178,35179,35180,35181,35182,35183,35184,35185,35186,35187,35188,35189,35190,35191,35192,35193,35194,35196,35197,35198,35200,35202,35204,35205,35207,35208,35209,35210,35211,35212,35213,35214,35215,35216,35217,35218,35219,35220,35221,35222,35223,35224,35225,35226,35227,35228,35229,35230,35231,35232,35233,25671,23591,36965,31377,35875,23002,21676,33280,33647,35201,32768,26928,22094,32822,29239,37326,20918,20063,39029,25494,19994,21494,26355,33099,22812,28082,19968,22777,21307,25558,38129,20381,20234,34915,39056,22839,36951,31227,20202,33008,30097,27778,23452,23016,24413,26885,34433,20506,24050,20057,30691,20197,33402,25233,26131,37009,23673,20159,24441,33222,36920,32900,30123,20134,35028,24847,27589,24518,20041,30410,28322,35811,35758,35850,35793,24322,32764,32716,32462,33589,33643,22240,27575,38899,38452,23035,21535,38134,28139,23493,39278,23609,24341,38544,35234,35235,35236,35237,35238,35239,35240,35241,35242,35243,35244,35245,35246,35247,35248,35249,35250,35251,35252,35253,35254,35255,35256,35257,35258,35259,35260,35261,35262,35263,35264,35267,35277,35283,35284,35285,35287,35288,35289,35291,35293,35295,35296,35297,35298,35300,35303,35304,35305,35306,35308,35309,35310,35312,35313,35314,35316,35317,35318,35319,35320,35321,35322,35323,35324,35325,35326,35327,35329,35330,35331,35332,35333,35334,35336,35337,35338,35339,35340,35341,35342,35343,35344,35345,35346,35347,35348,35349,35350,35351,35352,35353,35354,35355,35356,35357,21360,33521,27185,23156,40560,24212,32552,33721,33828,33829,33639,34631,36814,36194,30408,24433,39062,30828,26144,21727,25317,20323,33219,30152,24248,38605,36362,34553,21647,27891,28044,27704,24703,21191,29992,24189,20248,24736,24551,23588,30001,37038,38080,29369,27833,28216,37193,26377,21451,21491,20305,37321,35825,21448,24188,36802,28132,20110,30402,27014,34398,24858,33286,20313,20446,36926,40060,24841,28189,28180,38533,20104,23089,38632,19982,23679,31161,23431,35821,32701,29577,22495,33419,37057,21505,36935,21947,23786,24481,24840,27442,29425,32946,35465,35358,35359,35360,35361,35362,35363,35364,35365,35366,35367,35368,35369,35370,35371,35372,35373,35374,35375,35376,35377,35378,35379,35380,35381,35382,35383,35384,35385,35386,35387,35388,35389,35391,35392,35393,35394,35395,35396,35397,35398,35399,35401,35402,35403,35404,35405,35406,35407,35408,35409,35410,35411,35412,35413,35414,35415,35416,35417,35418,35419,35420,35421,35422,35423,35424,35425,35426,35427,35428,35429,35430,35431,35432,35433,35434,35435,35436,35437,35438,35439,35440,35441,35442,35443,35444,35445,35446,35447,35448,35450,35451,35452,35453,35454,35455,35456,28020,23507,35029,39044,35947,39533,40499,28170,20900,20803,22435,34945,21407,25588,36757,22253,21592,22278,29503,28304,32536,36828,33489,24895,24616,38498,26352,32422,36234,36291,38053,23731,31908,26376,24742,38405,32792,20113,37095,21248,38504,20801,36816,34164,37213,26197,38901,23381,21277,30776,26434,26685,21705,28798,23472,36733,20877,22312,21681,25874,26242,36190,36163,33039,33900,36973,31967,20991,34299,26531,26089,28577,34468,36481,22122,36896,30338,28790,29157,36131,25321,21017,27901,36156,24590,22686,24974,26366,36192,25166,21939,28195,26413,36711,35457,35458,35459,35460,35461,35462,35463,35464,35467,35468,35469,35470,35471,35472,35473,35474,35476,35477,35478,35479,35480,35481,35482,35483,35484,35485,35486,35487,35488,35489,35490,35491,35492,35493,35494,35495,35496,35497,35498,35499,35500,35501,35502,35503,35504,35505,35506,35507,35508,35509,35510,35511,35512,35513,35514,35515,35516,35517,35518,35519,35520,35521,35522,35523,35524,35525,35526,35527,35528,35529,35530,35531,35532,35533,35534,35535,35536,35537,35538,35539,35540,35541,35542,35543,35544,35545,35546,35547,35548,35549,35550,35551,35552,35553,35554,35555,38113,38392,30504,26629,27048,21643,20045,28856,35784,25688,25995,23429,31364,20538,23528,30651,27617,35449,31896,27838,30415,26025,36759,23853,23637,34360,26632,21344,25112,31449,28251,32509,27167,31456,24432,28467,24352,25484,28072,26454,19976,24080,36134,20183,32960,30260,38556,25307,26157,25214,27836,36213,29031,32617,20806,32903,21484,36974,25240,21746,34544,36761,32773,38167,34071,36825,27993,29645,26015,30495,29956,30759,33275,36126,38024,20390,26517,30137,35786,38663,25391,38215,38453,33976,25379,30529,24449,29424,20105,24596,25972,25327,27491,25919,35556,35557,35558,35559,35560,35561,35562,35563,35564,35565,35566,35567,35568,35569,35570,35571,35572,35573,35574,35575,35576,35577,35578,35579,35580,35581,35582,35583,35584,35585,35586,35587,35588,35589,35590,35592,35593,35594,35595,35596,35597,35598,35599,35600,35601,35602,35603,35604,35605,35606,35607,35608,35609,35610,35611,35612,35613,35614,35615,35616,35617,35618,35619,35620,35621,35623,35624,35625,35626,35627,35628,35629,35630,35631,35632,35633,35634,35635,35636,35637,35638,35639,35640,35641,35642,35643,35644,35645,35646,35647,35648,35649,35650,35651,35652,35653,24103,30151,37073,35777,33437,26525,25903,21553,34584,30693,32930,33026,27713,20043,32455,32844,30452,26893,27542,25191,20540,20356,22336,25351,27490,36286,21482,26088,32440,24535,25370,25527,33267,33268,32622,24092,23769,21046,26234,31209,31258,36136,28825,30164,28382,27835,31378,20013,30405,24544,38047,34935,32456,31181,32959,37325,20210,20247,33311,21608,24030,27954,35788,31909,36724,32920,24090,21650,30385,23449,26172,39588,29664,26666,34523,26417,29482,35832,35803,36880,31481,28891,29038,25284,30633,22065,20027,33879,26609,21161,34496,36142,38136,31569,35654,35655,35656,35657,35658,35659,35660,35661,35662,35663,35664,35665,35666,35667,35668,35669,35670,35671,35672,35673,35674,35675,35676,35677,35678,35679,35680,35681,35682,35683,35684,35685,35687,35688,35689,35690,35691,35693,35694,35695,35696,35697,35698,35699,35700,35701,35702,35703,35704,35705,35706,35707,35708,35709,35710,35711,35712,35713,35714,35715,35716,35717,35718,35719,35720,35721,35722,35723,35724,35725,35726,35727,35728,35729,35730,35731,35732,35733,35734,35735,35736,35737,35738,35739,35740,35741,35742,35743,35756,35761,35771,35783,35792,35818,35849,35870,20303,27880,31069,39547,25235,29226,25341,19987,30742,36716,25776,36186,31686,26729,24196,35013,22918,25758,22766,29366,26894,38181,36861,36184,22368,32512,35846,20934,25417,25305,21331,26700,29730,33537,37196,21828,30528,28796,27978,20857,21672,36164,23039,28363,28100,23388,32043,20180,31869,28371,23376,33258,28173,23383,39683,26837,36394,23447,32508,24635,32437,37049,36208,22863,25549,31199,36275,21330,26063,31062,35781,38459,32452,38075,32386,22068,37257,26368,32618,23562,36981,26152,24038,20304,26590,20570,20316,22352,24231,59408,59409,59410,59411,59412,35896,35897,35898,35899,35900,35901,35902,35903,35904,35906,35907,35908,35909,35912,35914,35915,35917,35918,35919,35920,35921,35922,35923,35924,35926,35927,35928,35929,35931,35932,35933,35934,35935,35936,35939,35940,35941,35942,35943,35944,35945,35948,35949,35950,35951,35952,35953,35954,35956,35957,35958,35959,35963,35964,35965,35966,35967,35968,35969,35971,35972,35974,35975,35976,35979,35981,35982,35983,35984,35985,35986,35987,35989,35990,35991,35993,35994,35995,35996,35997,35998,35999,36e3,36001,36002,36003,36004,36005,36006,36007,36008,36009,36010,36011,36012,36013,20109,19980,20800,19984,24319,21317,19989,20120,19998,39730,23404,22121,20008,31162,20031,21269,20039,22829,29243,21358,27664,22239,32996,39319,27603,30590,40727,20022,20127,40720,20060,20073,20115,33416,23387,21868,22031,20164,21389,21405,21411,21413,21422,38757,36189,21274,21493,21286,21294,21310,36188,21350,21347,20994,21e3,21006,21037,21043,21055,21056,21068,21086,21089,21084,33967,21117,21122,21121,21136,21139,20866,32596,20155,20163,20169,20162,20200,20193,20203,20190,20251,20211,20258,20324,20213,20261,20263,20233,20267,20318,20327,25912,20314,20317,36014,36015,36016,36017,36018,36019,36020,36021,36022,36023,36024,36025,36026,36027,36028,36029,36030,36031,36032,36033,36034,36035,36036,36037,36038,36039,36040,36041,36042,36043,36044,36045,36046,36047,36048,36049,36050,36051,36052,36053,36054,36055,36056,36057,36058,36059,36060,36061,36062,36063,36064,36065,36066,36067,36068,36069,36070,36071,36072,36073,36074,36075,36076,36077,36078,36079,36080,36081,36082,36083,36084,36085,36086,36087,36088,36089,36090,36091,36092,36093,36094,36095,36096,36097,36098,36099,36100,36101,36102,36103,36104,36105,36106,36107,36108,36109,20319,20311,20274,20285,20342,20340,20369,20361,20355,20367,20350,20347,20394,20348,20396,20372,20454,20456,20458,20421,20442,20451,20444,20433,20447,20472,20521,20556,20467,20524,20495,20526,20525,20478,20508,20492,20517,20520,20606,20547,20565,20552,20558,20588,20603,20645,20647,20649,20666,20694,20742,20717,20716,20710,20718,20743,20747,20189,27709,20312,20325,20430,40864,27718,31860,20846,24061,40649,39320,20865,22804,21241,21261,35335,21264,20971,22809,20821,20128,20822,20147,34926,34980,20149,33044,35026,31104,23348,34819,32696,20907,20913,20925,20924,36110,36111,36112,36113,36114,36115,36116,36117,36118,36119,36120,36121,36122,36123,36124,36128,36177,36178,36183,36191,36197,36200,36201,36202,36204,36206,36207,36209,36210,36216,36217,36218,36219,36220,36221,36222,36223,36224,36226,36227,36230,36231,36232,36233,36236,36237,36238,36239,36240,36242,36243,36245,36246,36247,36248,36249,36250,36251,36252,36253,36254,36256,36257,36258,36260,36261,36262,36263,36264,36265,36266,36267,36268,36269,36270,36271,36272,36274,36278,36279,36281,36283,36285,36288,36289,36290,36293,36295,36296,36297,36298,36301,36304,36306,36307,36308,20935,20886,20898,20901,35744,35750,35751,35754,35764,35765,35767,35778,35779,35787,35791,35790,35794,35795,35796,35798,35800,35801,35804,35807,35808,35812,35816,35817,35822,35824,35827,35830,35833,35836,35839,35840,35842,35844,35847,35852,35855,35857,35858,35860,35861,35862,35865,35867,35864,35869,35871,35872,35873,35877,35879,35882,35883,35886,35887,35890,35891,35893,35894,21353,21370,38429,38434,38433,38449,38442,38461,38460,38466,38473,38484,38495,38503,38508,38514,38516,38536,38541,38551,38576,37015,37019,37021,37017,37036,37025,37044,37043,37046,37050,36309,36312,36313,36316,36320,36321,36322,36325,36326,36327,36329,36333,36334,36336,36337,36338,36340,36342,36348,36350,36351,36352,36353,36354,36355,36356,36358,36359,36360,36363,36365,36366,36368,36369,36370,36371,36373,36374,36375,36376,36377,36378,36379,36380,36384,36385,36388,36389,36390,36391,36392,36395,36397,36400,36402,36403,36404,36406,36407,36408,36411,36412,36414,36415,36419,36421,36422,36428,36429,36430,36431,36432,36435,36436,36437,36438,36439,36440,36442,36443,36444,36445,36446,36447,36448,36449,36450,36451,36452,36453,36455,36456,36458,36459,36462,36465,37048,37040,37071,37061,37054,37072,37060,37063,37075,37094,37090,37084,37079,37083,37099,37103,37118,37124,37154,37150,37155,37169,37167,37177,37187,37190,21005,22850,21154,21164,21165,21182,21759,21200,21206,21232,21471,29166,30669,24308,20981,20988,39727,21430,24321,30042,24047,22348,22441,22433,22654,22716,22725,22737,22313,22316,22314,22323,22329,22318,22319,22364,22331,22338,22377,22405,22379,22406,22396,22395,22376,22381,22390,22387,22445,22436,22412,22450,22479,22439,22452,22419,22432,22485,22488,22490,22489,22482,22456,22516,22511,22520,22500,22493,36467,36469,36471,36472,36473,36474,36475,36477,36478,36480,36482,36483,36484,36486,36488,36489,36490,36491,36492,36493,36494,36497,36498,36499,36501,36502,36503,36504,36505,36506,36507,36509,36511,36512,36513,36514,36515,36516,36517,36518,36519,36520,36521,36522,36525,36526,36528,36529,36531,36532,36533,36534,36535,36536,36537,36539,36540,36541,36542,36543,36544,36545,36546,36547,36548,36549,36550,36551,36552,36553,36554,36555,36556,36557,36559,36560,36561,36562,36563,36564,36565,36566,36567,36568,36569,36570,36571,36572,36573,36574,36575,36576,36577,36578,36579,36580,22539,22541,22525,22509,22528,22558,22553,22596,22560,22629,22636,22657,22665,22682,22656,39336,40729,25087,33401,33405,33407,33423,33418,33448,33412,33422,33425,33431,33433,33451,33464,33470,33456,33480,33482,33507,33432,33463,33454,33483,33484,33473,33449,33460,33441,33450,33439,33476,33486,33444,33505,33545,33527,33508,33551,33543,33500,33524,33490,33496,33548,33531,33491,33553,33562,33542,33556,33557,33504,33493,33564,33617,33627,33628,33544,33682,33596,33588,33585,33691,33630,33583,33615,33607,33603,33631,33600,33559,33632,33581,33594,33587,33638,33637,36581,36582,36583,36584,36585,36586,36587,36588,36589,36590,36591,36592,36593,36594,36595,36596,36597,36598,36599,36600,36601,36602,36603,36604,36605,36606,36607,36608,36609,36610,36611,36612,36613,36614,36615,36616,36617,36618,36619,36620,36621,36622,36623,36624,36625,36626,36627,36628,36629,36630,36631,36632,36633,36634,36635,36636,36637,36638,36639,36640,36641,36642,36643,36644,36645,36646,36647,36648,36649,36650,36651,36652,36653,36654,36655,36656,36657,36658,36659,36660,36661,36662,36663,36664,36665,36666,36667,36668,36669,36670,36671,36672,36673,36674,36675,36676,33640,33563,33641,33644,33642,33645,33646,33712,33656,33715,33716,33696,33706,33683,33692,33669,33660,33718,33705,33661,33720,33659,33688,33694,33704,33722,33724,33729,33793,33765,33752,22535,33816,33803,33757,33789,33750,33820,33848,33809,33798,33748,33759,33807,33795,33784,33785,33770,33733,33728,33830,33776,33761,33884,33873,33882,33881,33907,33927,33928,33914,33929,33912,33852,33862,33897,33910,33932,33934,33841,33901,33985,33997,34e3,34022,33981,34003,33994,33983,33978,34016,33953,33977,33972,33943,34021,34019,34060,29965,34104,34032,34105,34079,34106,36677,36678,36679,36680,36681,36682,36683,36684,36685,36686,36687,36688,36689,36690,36691,36692,36693,36694,36695,36696,36697,36698,36699,36700,36701,36702,36703,36704,36705,36706,36707,36708,36709,36714,36736,36748,36754,36765,36768,36769,36770,36772,36773,36774,36775,36778,36780,36781,36782,36783,36786,36787,36788,36789,36791,36792,36794,36795,36796,36799,36800,36803,36806,36809,36810,36811,36812,36813,36815,36818,36822,36823,36826,36832,36833,36835,36839,36844,36847,36849,36850,36852,36853,36854,36858,36859,36860,36862,36863,36871,36872,36876,36878,36883,36885,36888,34134,34107,34047,34044,34137,34120,34152,34148,34142,34170,30626,34115,34162,34171,34212,34216,34183,34191,34169,34222,34204,34181,34233,34231,34224,34259,34241,34268,34303,34343,34309,34345,34326,34364,24318,24328,22844,22849,32823,22869,22874,22872,21263,23586,23589,23596,23604,25164,25194,25247,25275,25290,25306,25303,25326,25378,25334,25401,25419,25411,25517,25590,25457,25466,25486,25524,25453,25516,25482,25449,25518,25532,25586,25592,25568,25599,25540,25566,25550,25682,25542,25534,25669,25665,25611,25627,25632,25612,25638,25633,25694,25732,25709,25750,36889,36892,36899,36900,36901,36903,36904,36905,36906,36907,36908,36912,36913,36914,36915,36916,36919,36921,36922,36925,36927,36928,36931,36933,36934,36936,36937,36938,36939,36940,36942,36948,36949,36950,36953,36954,36956,36957,36958,36959,36960,36961,36964,36966,36967,36969,36970,36971,36972,36975,36976,36977,36978,36979,36982,36983,36984,36985,36986,36987,36988,36990,36993,36996,36997,36998,36999,37001,37002,37004,37005,37006,37007,37008,37010,37012,37014,37016,37018,37020,37022,37023,37024,37028,37029,37031,37032,37033,37035,37037,37042,37047,37052,37053,37055,37056,25722,25783,25784,25753,25786,25792,25808,25815,25828,25826,25865,25893,25902,24331,24530,29977,24337,21343,21489,21501,21481,21480,21499,21522,21526,21510,21579,21586,21587,21588,21590,21571,21537,21591,21593,21539,21554,21634,21652,21623,21617,21604,21658,21659,21636,21622,21606,21661,21712,21677,21698,21684,21714,21671,21670,21715,21716,21618,21667,21717,21691,21695,21708,21721,21722,21724,21673,21674,21668,21725,21711,21726,21787,21735,21792,21757,21780,21747,21794,21795,21775,21777,21799,21802,21863,21903,21941,21833,21869,21825,21845,21823,21840,21820,37058,37059,37062,37064,37065,37067,37068,37069,37074,37076,37077,37078,37080,37081,37082,37086,37087,37088,37091,37092,37093,37097,37098,37100,37102,37104,37105,37106,37107,37109,37110,37111,37113,37114,37115,37116,37119,37120,37121,37123,37125,37126,37127,37128,37129,37130,37131,37132,37133,37134,37135,37136,37137,37138,37139,37140,37141,37142,37143,37144,37146,37147,37148,37149,37151,37152,37153,37156,37157,37158,37159,37160,37161,37162,37163,37164,37165,37166,37168,37170,37171,37172,37173,37174,37175,37176,37178,37179,37180,37181,37182,37183,37184,37185,37186,37188,21815,21846,21877,21878,21879,21811,21808,21852,21899,21970,21891,21937,21945,21896,21889,21919,21886,21974,21905,21883,21983,21949,21950,21908,21913,21994,22007,21961,22047,21969,21995,21996,21972,21990,21981,21956,21999,21989,22002,22003,21964,21965,21992,22005,21988,36756,22046,22024,22028,22017,22052,22051,22014,22016,22055,22061,22104,22073,22103,22060,22093,22114,22105,22108,22092,22100,22150,22116,22129,22123,22139,22140,22149,22163,22191,22228,22231,22237,22241,22261,22251,22265,22271,22276,22282,22281,22300,24079,24089,24084,24081,24113,24123,24124,37189,37191,37192,37201,37203,37204,37205,37206,37208,37209,37211,37212,37215,37216,37222,37223,37224,37227,37229,37235,37242,37243,37244,37248,37249,37250,37251,37252,37254,37256,37258,37262,37263,37267,37268,37269,37270,37271,37272,37273,37276,37277,37278,37279,37280,37281,37284,37285,37286,37287,37288,37289,37291,37292,37296,37297,37298,37299,37302,37303,37304,37305,37307,37308,37309,37310,37311,37312,37313,37314,37315,37316,37317,37318,37320,37323,37328,37330,37331,37332,37333,37334,37335,37336,37337,37338,37339,37341,37342,37343,37344,37345,37346,37347,37348,37349,24119,24132,24148,24155,24158,24161,23692,23674,23693,23696,23702,23688,23704,23705,23697,23706,23708,23733,23714,23741,23724,23723,23729,23715,23745,23735,23748,23762,23780,23755,23781,23810,23811,23847,23846,23854,23844,23838,23814,23835,23896,23870,23860,23869,23916,23899,23919,23901,23915,23883,23882,23913,23924,23938,23961,23965,35955,23991,24005,24435,24439,24450,24455,24457,24460,24469,24473,24476,24488,24493,24501,24508,34914,24417,29357,29360,29364,29367,29368,29379,29377,29390,29389,29394,29416,29423,29417,29426,29428,29431,29441,29427,29443,29434,37350,37351,37352,37353,37354,37355,37356,37357,37358,37359,37360,37361,37362,37363,37364,37365,37366,37367,37368,37369,37370,37371,37372,37373,37374,37375,37376,37377,37378,37379,37380,37381,37382,37383,37384,37385,37386,37387,37388,37389,37390,37391,37392,37393,37394,37395,37396,37397,37398,37399,37400,37401,37402,37403,37404,37405,37406,37407,37408,37409,37410,37411,37412,37413,37414,37415,37416,37417,37418,37419,37420,37421,37422,37423,37424,37425,37426,37427,37428,37429,37430,37431,37432,37433,37434,37435,37436,37437,37438,37439,37440,37441,37442,37443,37444,37445,29435,29463,29459,29473,29450,29470,29469,29461,29474,29497,29477,29484,29496,29489,29520,29517,29527,29536,29548,29551,29566,33307,22821,39143,22820,22786,39267,39271,39272,39273,39274,39275,39276,39284,39287,39293,39296,39300,39303,39306,39309,39312,39313,39315,39316,39317,24192,24209,24203,24214,24229,24224,24249,24245,24254,24243,36179,24274,24273,24283,24296,24298,33210,24516,24521,24534,24527,24579,24558,24580,24545,24548,24574,24581,24582,24554,24557,24568,24601,24629,24614,24603,24591,24589,24617,24619,24586,24639,24609,24696,24697,24699,24698,24642,37446,37447,37448,37449,37450,37451,37452,37453,37454,37455,37456,37457,37458,37459,37460,37461,37462,37463,37464,37465,37466,37467,37468,37469,37470,37471,37472,37473,37474,37475,37476,37477,37478,37479,37480,37481,37482,37483,37484,37485,37486,37487,37488,37489,37490,37491,37493,37494,37495,37496,37497,37498,37499,37500,37501,37502,37503,37504,37505,37506,37507,37508,37509,37510,37511,37512,37513,37514,37515,37516,37517,37519,37520,37521,37522,37523,37524,37525,37526,37527,37528,37529,37530,37531,37532,37533,37534,37535,37536,37537,37538,37539,37540,37541,37542,37543,24682,24701,24726,24730,24749,24733,24707,24722,24716,24731,24812,24763,24753,24797,24792,24774,24794,24756,24864,24870,24853,24867,24820,24832,24846,24875,24906,24949,25004,24980,24999,25015,25044,25077,24541,38579,38377,38379,38385,38387,38389,38390,38396,38398,38403,38404,38406,38408,38410,38411,38412,38413,38415,38418,38421,38422,38423,38425,38426,20012,29247,25109,27701,27732,27740,27722,27811,27781,27792,27796,27788,27752,27753,27764,27766,27782,27817,27856,27860,27821,27895,27896,27889,27863,27826,27872,27862,27898,27883,27886,27825,27859,27887,27902,37544,37545,37546,37547,37548,37549,37551,37552,37553,37554,37555,37556,37557,37558,37559,37560,37561,37562,37563,37564,37565,37566,37567,37568,37569,37570,37571,37572,37573,37574,37575,37577,37578,37579,37580,37581,37582,37583,37584,37585,37586,37587,37588,37589,37590,37591,37592,37593,37594,37595,37596,37597,37598,37599,37600,37601,37602,37603,37604,37605,37606,37607,37608,37609,37610,37611,37612,37613,37614,37615,37616,37617,37618,37619,37620,37621,37622,37623,37624,37625,37626,37627,37628,37629,37630,37631,37632,37633,37634,37635,37636,37637,37638,37639,37640,37641,27961,27943,27916,27971,27976,27911,27908,27929,27918,27947,27981,27950,27957,27930,27983,27986,27988,27955,28049,28015,28062,28064,27998,28051,28052,27996,28e3,28028,28003,28186,28103,28101,28126,28174,28095,28128,28177,28134,28125,28121,28182,28075,28172,28078,28203,28270,28238,28267,28338,28255,28294,28243,28244,28210,28197,28228,28383,28337,28312,28384,28461,28386,28325,28327,28349,28347,28343,28375,28340,28367,28303,28354,28319,28514,28486,28487,28452,28437,28409,28463,28470,28491,28532,28458,28425,28457,28553,28557,28556,28536,28530,28540,28538,28625,37642,37643,37644,37645,37646,37647,37648,37649,37650,37651,37652,37653,37654,37655,37656,37657,37658,37659,37660,37661,37662,37663,37664,37665,37666,37667,37668,37669,37670,37671,37672,37673,37674,37675,37676,37677,37678,37679,37680,37681,37682,37683,37684,37685,37686,37687,37688,37689,37690,37691,37692,37693,37695,37696,37697,37698,37699,37700,37701,37702,37703,37704,37705,37706,37707,37708,37709,37710,37711,37712,37713,37714,37715,37716,37717,37718,37719,37720,37721,37722,37723,37724,37725,37726,37727,37728,37729,37730,37731,37732,37733,37734,37735,37736,37737,37739,28617,28583,28601,28598,28610,28641,28654,28638,28640,28655,28698,28707,28699,28729,28725,28751,28766,23424,23428,23445,23443,23461,23480,29999,39582,25652,23524,23534,35120,23536,36423,35591,36790,36819,36821,36837,36846,36836,36841,36838,36851,36840,36869,36868,36875,36902,36881,36877,36886,36897,36917,36918,36909,36911,36932,36945,36946,36944,36968,36952,36962,36955,26297,36980,36989,36994,37e3,36995,37003,24400,24407,24406,24408,23611,21675,23632,23641,23409,23651,23654,32700,24362,24361,24365,33396,24380,39739,23662,22913,22915,22925,22953,22954,22947,37740,37741,37742,37743,37744,37745,37746,37747,37748,37749,37750,37751,37752,37753,37754,37755,37756,37757,37758,37759,37760,37761,37762,37763,37764,37765,37766,37767,37768,37769,37770,37771,37772,37773,37774,37776,37777,37778,37779,37780,37781,37782,37783,37784,37785,37786,37787,37788,37789,37790,37791,37792,37793,37794,37795,37796,37797,37798,37799,37800,37801,37802,37803,37804,37805,37806,37807,37808,37809,37810,37811,37812,37813,37814,37815,37816,37817,37818,37819,37820,37821,37822,37823,37824,37825,37826,37827,37828,37829,37830,37831,37832,37833,37835,37836,37837,22935,22986,22955,22942,22948,22994,22962,22959,22999,22974,23045,23046,23005,23048,23011,23e3,23033,23052,23049,23090,23092,23057,23075,23059,23104,23143,23114,23125,23100,23138,23157,33004,23210,23195,23159,23162,23230,23275,23218,23250,23252,23224,23264,23267,23281,23254,23270,23256,23260,23305,23319,23318,23346,23351,23360,23573,23580,23386,23397,23411,23377,23379,23394,39541,39543,39544,39546,39551,39549,39552,39553,39557,39560,39562,39568,39570,39571,39574,39576,39579,39580,39581,39583,39584,39586,39587,39589,39591,32415,32417,32419,32421,32424,32425,37838,37839,37840,37841,37842,37843,37844,37845,37847,37848,37849,37850,37851,37852,37853,37854,37855,37856,37857,37858,37859,37860,37861,37862,37863,37864,37865,37866,37867,37868,37869,37870,37871,37872,37873,37874,37875,37876,37877,37878,37879,37880,37881,37882,37883,37884,37885,37886,37887,37888,37889,37890,37891,37892,37893,37894,37895,37896,37897,37898,37899,37900,37901,37902,37903,37904,37905,37906,37907,37908,37909,37910,37911,37912,37913,37914,37915,37916,37917,37918,37919,37920,37921,37922,37923,37924,37925,37926,37927,37928,37929,37930,37931,37932,37933,37934,32429,32432,32446,32448,32449,32450,32457,32459,32460,32464,32468,32471,32475,32480,32481,32488,32491,32494,32495,32497,32498,32525,32502,32506,32507,32510,32513,32514,32515,32519,32520,32523,32524,32527,32529,32530,32535,32537,32540,32539,32543,32545,32546,32547,32548,32549,32550,32551,32554,32555,32556,32557,32559,32560,32561,32562,32563,32565,24186,30079,24027,30014,37013,29582,29585,29614,29602,29599,29647,29634,29649,29623,29619,29632,29641,29640,29669,29657,39036,29706,29673,29671,29662,29626,29682,29711,29738,29787,29734,29733,29736,29744,29742,29740,37935,37936,37937,37938,37939,37940,37941,37942,37943,37944,37945,37946,37947,37948,37949,37951,37952,37953,37954,37955,37956,37957,37958,37959,37960,37961,37962,37963,37964,37965,37966,37967,37968,37969,37970,37971,37972,37973,37974,37975,37976,37977,37978,37979,37980,37981,37982,37983,37984,37985,37986,37987,37988,37989,37990,37991,37992,37993,37994,37996,37997,37998,37999,38e3,38001,38002,38003,38004,38005,38006,38007,38008,38009,38010,38011,38012,38013,38014,38015,38016,38017,38018,38019,38020,38033,38038,38040,38087,38095,38099,38100,38106,38118,38139,38172,38176,29723,29722,29761,29788,29783,29781,29785,29815,29805,29822,29852,29838,29824,29825,29831,29835,29854,29864,29865,29840,29863,29906,29882,38890,38891,38892,26444,26451,26462,26440,26473,26533,26503,26474,26483,26520,26535,26485,26536,26526,26541,26507,26487,26492,26608,26633,26584,26634,26601,26544,26636,26585,26549,26586,26547,26589,26624,26563,26552,26594,26638,26561,26621,26674,26675,26720,26721,26702,26722,26692,26724,26755,26653,26709,26726,26689,26727,26688,26686,26698,26697,26665,26805,26767,26740,26743,26771,26731,26818,26990,26876,26911,26912,26873,38183,38195,38205,38211,38216,38219,38229,38234,38240,38254,38260,38261,38263,38264,38265,38266,38267,38268,38269,38270,38272,38273,38274,38275,38276,38277,38278,38279,38280,38281,38282,38283,38284,38285,38286,38287,38288,38289,38290,38291,38292,38293,38294,38295,38296,38297,38298,38299,38300,38301,38302,38303,38304,38305,38306,38307,38308,38309,38310,38311,38312,38313,38314,38315,38316,38317,38318,38319,38320,38321,38322,38323,38324,38325,38326,38327,38328,38329,38330,38331,38332,38333,38334,38335,38336,38337,38338,38339,38340,38341,38342,38343,38344,38345,38346,38347,26916,26864,26891,26881,26967,26851,26896,26993,26937,26976,26946,26973,27012,26987,27008,27032,27e3,26932,27084,27015,27016,27086,27017,26982,26979,27001,27035,27047,27067,27051,27053,27092,27057,27073,27082,27103,27029,27104,27021,27135,27183,27117,27159,27160,27237,27122,27204,27198,27296,27216,27227,27189,27278,27257,27197,27176,27224,27260,27281,27280,27305,27287,27307,29495,29522,27521,27522,27527,27524,27538,27539,27533,27546,27547,27553,27562,36715,36717,36721,36722,36723,36725,36726,36728,36727,36729,36730,36732,36734,36737,36738,36740,36743,36747,38348,38349,38350,38351,38352,38353,38354,38355,38356,38357,38358,38359,38360,38361,38362,38363,38364,38365,38366,38367,38368,38369,38370,38371,38372,38373,38374,38375,38380,38399,38407,38419,38424,38427,38430,38432,38435,38436,38437,38438,38439,38440,38441,38443,38444,38445,38447,38448,38455,38456,38457,38458,38462,38465,38467,38474,38478,38479,38481,38482,38483,38486,38487,38488,38489,38490,38492,38493,38494,38496,38499,38501,38502,38507,38509,38510,38511,38512,38513,38515,38520,38521,38522,38523,38524,38525,38526,38527,38528,38529,38530,38531,38532,38535,38537,38538,36749,36750,36751,36760,36762,36558,25099,25111,25115,25119,25122,25121,25125,25124,25132,33255,29935,29940,29951,29967,29969,29971,25908,26094,26095,26096,26122,26137,26482,26115,26133,26112,28805,26359,26141,26164,26161,26166,26165,32774,26207,26196,26177,26191,26198,26209,26199,26231,26244,26252,26279,26269,26302,26331,26332,26342,26345,36146,36147,36150,36155,36157,36160,36165,36166,36168,36169,36167,36173,36181,36185,35271,35274,35275,35276,35278,35279,35280,35281,29294,29343,29277,29286,29295,29310,29311,29316,29323,29325,29327,29330,25352,25394,25520,38540,38542,38545,38546,38547,38549,38550,38554,38555,38557,38558,38559,38560,38561,38562,38563,38564,38565,38566,38568,38569,38570,38571,38572,38573,38574,38575,38577,38578,38580,38581,38583,38584,38586,38587,38591,38594,38595,38600,38602,38603,38608,38609,38611,38612,38614,38615,38616,38617,38618,38619,38620,38621,38622,38623,38625,38626,38627,38628,38629,38630,38631,38635,38636,38637,38638,38640,38641,38642,38644,38645,38648,38650,38651,38652,38653,38655,38658,38659,38661,38666,38667,38668,38672,38673,38674,38676,38677,38679,38680,38681,38682,38683,38685,38687,38688,25663,25816,32772,27626,27635,27645,27637,27641,27653,27655,27654,27661,27669,27672,27673,27674,27681,27689,27684,27690,27698,25909,25941,25963,29261,29266,29270,29232,34402,21014,32927,32924,32915,32956,26378,32957,32945,32939,32941,32948,32951,32999,33e3,33001,33002,32987,32962,32964,32985,32973,32983,26384,32989,33003,33009,33012,33005,33037,33038,33010,33020,26389,33042,35930,33078,33054,33068,33048,33074,33096,33100,33107,33140,33113,33114,33137,33120,33129,33148,33149,33133,33127,22605,23221,33160,33154,33169,28373,33187,33194,33228,26406,33226,33211,38689,38690,38691,38692,38693,38694,38695,38696,38697,38699,38700,38702,38703,38705,38707,38708,38709,38710,38711,38714,38715,38716,38717,38719,38720,38721,38722,38723,38724,38725,38726,38727,38728,38729,38730,38731,38732,38733,38734,38735,38736,38737,38740,38741,38743,38744,38746,38748,38749,38751,38755,38756,38758,38759,38760,38762,38763,38764,38765,38766,38767,38768,38769,38770,38773,38775,38776,38777,38778,38779,38781,38782,38783,38784,38785,38786,38787,38788,38790,38791,38792,38793,38794,38796,38798,38799,38800,38803,38805,38806,38807,38809,38810,38811,38812,38813,33217,33190,27428,27447,27449,27459,27462,27481,39121,39122,39123,39125,39129,39130,27571,24384,27586,35315,26e3,40785,26003,26044,26054,26052,26051,26060,26062,26066,26070,28800,28828,28822,28829,28859,28864,28855,28843,28849,28904,28874,28944,28947,28950,28975,28977,29043,29020,29032,28997,29042,29002,29048,29050,29080,29107,29109,29096,29088,29152,29140,29159,29177,29213,29224,28780,28952,29030,29113,25150,25149,25155,25160,25161,31035,31040,31046,31049,31067,31068,31059,31066,31074,31063,31072,31087,31079,31098,31109,31114,31130,31143,31155,24529,24528,38814,38815,38817,38818,38820,38821,38822,38823,38824,38825,38826,38828,38830,38832,38833,38835,38837,38838,38839,38840,38841,38842,38843,38844,38845,38846,38847,38848,38849,38850,38851,38852,38853,38854,38855,38856,38857,38858,38859,38860,38861,38862,38863,38864,38865,38866,38867,38868,38869,38870,38871,38872,38873,38874,38875,38876,38877,38878,38879,38880,38881,38882,38883,38884,38885,38888,38894,38895,38896,38897,38898,38900,38903,38904,38905,38906,38907,38908,38909,38910,38911,38912,38913,38914,38915,38916,38917,38918,38919,38920,38921,38922,38923,38924,38925,38926,24636,24669,24666,24679,24641,24665,24675,24747,24838,24845,24925,25001,24989,25035,25041,25094,32896,32895,27795,27894,28156,30710,30712,30720,30729,30743,30744,30737,26027,30765,30748,30749,30777,30778,30779,30751,30780,30757,30764,30755,30761,30798,30829,30806,30807,30758,30800,30791,30796,30826,30875,30867,30874,30855,30876,30881,30883,30898,30905,30885,30932,30937,30921,30956,30962,30981,30964,30995,31012,31006,31028,40859,40697,40699,40700,30449,30468,30477,30457,30471,30472,30490,30498,30489,30509,30502,30517,30520,30544,30545,30535,30531,30554,30568,38927,38928,38929,38930,38931,38932,38933,38934,38935,38936,38937,38938,38939,38940,38941,38942,38943,38944,38945,38946,38947,38948,38949,38950,38951,38952,38953,38954,38955,38956,38957,38958,38959,38960,38961,38962,38963,38964,38965,38966,38967,38968,38969,38970,38971,38972,38973,38974,38975,38976,38977,38978,38979,38980,38981,38982,38983,38984,38985,38986,38987,38988,38989,38990,38991,38992,38993,38994,38995,38996,38997,38998,38999,39e3,39001,39002,39003,39004,39005,39006,39007,39008,39009,39010,39011,39012,39013,39014,39015,39016,39017,39018,39019,39020,39021,39022,30562,30565,30591,30605,30589,30592,30604,30609,30623,30624,30640,30645,30653,30010,30016,30030,30027,30024,30043,30066,30073,30083,32600,32609,32607,35400,32616,32628,32625,32633,32641,32638,30413,30437,34866,38021,38022,38023,38027,38026,38028,38029,38031,38032,38036,38039,38037,38042,38043,38044,38051,38052,38059,38058,38061,38060,38063,38064,38066,38068,38070,38071,38072,38073,38074,38076,38077,38079,38084,38088,38089,38090,38091,38092,38093,38094,38096,38097,38098,38101,38102,38103,38105,38104,38107,38110,38111,38112,38114,38116,38117,38119,38120,38122,39023,39024,39025,39026,39027,39028,39051,39054,39058,39061,39065,39075,39080,39081,39082,39083,39084,39085,39086,39087,39088,39089,39090,39091,39092,39093,39094,39095,39096,39097,39098,39099,39100,39101,39102,39103,39104,39105,39106,39107,39108,39109,39110,39111,39112,39113,39114,39115,39116,39117,39119,39120,39124,39126,39127,39131,39132,39133,39136,39137,39138,39139,39140,39141,39142,39145,39146,39147,39148,39149,39150,39151,39152,39153,39154,39155,39156,39157,39158,39159,39160,39161,39162,39163,39164,39165,39166,39167,39168,39169,39170,39171,39172,39173,39174,39175,38121,38123,38126,38127,38131,38132,38133,38135,38137,38140,38141,38143,38147,38146,38150,38151,38153,38154,38157,38158,38159,38162,38163,38164,38165,38166,38168,38171,38173,38174,38175,38178,38186,38187,38185,38188,38193,38194,38196,38198,38199,38200,38204,38206,38207,38210,38197,38212,38213,38214,38217,38220,38222,38223,38226,38227,38228,38230,38231,38232,38233,38235,38238,38239,38237,38241,38242,38244,38245,38246,38247,38248,38249,38250,38251,38252,38255,38257,38258,38259,38202,30695,30700,38601,31189,31213,31203,31211,31238,23879,31235,31234,31262,31252,39176,39177,39178,39179,39180,39182,39183,39185,39186,39187,39188,39189,39190,39191,39192,39193,39194,39195,39196,39197,39198,39199,39200,39201,39202,39203,39204,39205,39206,39207,39208,39209,39210,39211,39212,39213,39215,39216,39217,39218,39219,39220,39221,39222,39223,39224,39225,39226,39227,39228,39229,39230,39231,39232,39233,39234,39235,39236,39237,39238,39239,39240,39241,39242,39243,39244,39245,39246,39247,39248,39249,39250,39251,39254,39255,39256,39257,39258,39259,39260,39261,39262,39263,39264,39265,39266,39268,39270,39283,39288,39289,39291,39294,39298,39299,39305,31289,31287,31313,40655,39333,31344,30344,30350,30355,30361,30372,29918,29920,29996,40480,40482,40488,40489,40490,40491,40492,40498,40497,40502,40504,40503,40505,40506,40510,40513,40514,40516,40518,40519,40520,40521,40523,40524,40526,40529,40533,40535,40538,40539,40540,40542,40547,40550,40551,40552,40553,40554,40555,40556,40561,40557,40563,30098,30100,30102,30112,30109,30124,30115,30131,30132,30136,30148,30129,30128,30147,30146,30166,30157,30179,30184,30182,30180,30187,30183,30211,30193,30204,30207,30224,30208,30213,30220,30231,30218,30245,30232,30229,30233,39308,39310,39322,39323,39324,39325,39326,39327,39328,39329,39330,39331,39332,39334,39335,39337,39338,39339,39340,39341,39342,39343,39344,39345,39346,39347,39348,39349,39350,39351,39352,39353,39354,39355,39356,39357,39358,39359,39360,39361,39362,39363,39364,39365,39366,39367,39368,39369,39370,39371,39372,39373,39374,39375,39376,39377,39378,39379,39380,39381,39382,39383,39384,39385,39386,39387,39388,39389,39390,39391,39392,39393,39394,39395,39396,39397,39398,39399,39400,39401,39402,39403,39404,39405,39406,39407,39408,39409,39410,39411,39412,39413,39414,39415,39416,39417,30235,30268,30242,30240,30272,30253,30256,30271,30261,30275,30270,30259,30285,30302,30292,30300,30294,30315,30319,32714,31462,31352,31353,31360,31366,31368,31381,31398,31392,31404,31400,31405,31411,34916,34921,34930,34941,34943,34946,34978,35014,34999,35004,35017,35042,35022,35043,35045,35057,35098,35068,35048,35070,35056,35105,35097,35091,35099,35082,35124,35115,35126,35137,35174,35195,30091,32997,30386,30388,30684,32786,32788,32790,32796,32800,32802,32805,32806,32807,32809,32808,32817,32779,32821,32835,32838,32845,32850,32873,32881,35203,39032,39040,39043,39418,39419,39420,39421,39422,39423,39424,39425,39426,39427,39428,39429,39430,39431,39432,39433,39434,39435,39436,39437,39438,39439,39440,39441,39442,39443,39444,39445,39446,39447,39448,39449,39450,39451,39452,39453,39454,39455,39456,39457,39458,39459,39460,39461,39462,39463,39464,39465,39466,39467,39468,39469,39470,39471,39472,39473,39474,39475,39476,39477,39478,39479,39480,39481,39482,39483,39484,39485,39486,39487,39488,39489,39490,39491,39492,39493,39494,39495,39496,39497,39498,39499,39500,39501,39502,39503,39504,39505,39506,39507,39508,39509,39510,39511,39512,39513,39049,39052,39053,39055,39060,39066,39067,39070,39071,39073,39074,39077,39078,34381,34388,34412,34414,34431,34426,34428,34427,34472,34445,34443,34476,34461,34471,34467,34474,34451,34473,34486,34500,34485,34510,34480,34490,34481,34479,34505,34511,34484,34537,34545,34546,34541,34547,34512,34579,34526,34548,34527,34520,34513,34563,34567,34552,34568,34570,34573,34569,34595,34619,34590,34597,34606,34586,34622,34632,34612,34609,34601,34615,34623,34690,34594,34685,34686,34683,34656,34672,34636,34670,34699,34643,34659,34684,34660,34649,34661,34707,34735,34728,34770,39514,39515,39516,39517,39518,39519,39520,39521,39522,39523,39524,39525,39526,39527,39528,39529,39530,39531,39538,39555,39561,39565,39566,39572,39573,39577,39590,39593,39594,39595,39596,39597,39598,39599,39602,39603,39604,39605,39609,39611,39613,39614,39615,39619,39620,39622,39623,39624,39625,39626,39629,39630,39631,39632,39634,39636,39637,39638,39639,39641,39642,39643,39644,39645,39646,39648,39650,39651,39652,39653,39655,39656,39657,39658,39660,39662,39664,39665,39666,39667,39668,39669,39670,39671,39672,39674,39676,39677,39678,39679,39680,39681,39682,39684,39685,39686,34758,34696,34693,34733,34711,34691,34731,34789,34732,34741,34739,34763,34771,34749,34769,34752,34762,34779,34794,34784,34798,34838,34835,34814,34826,34843,34849,34873,34876,32566,32578,32580,32581,33296,31482,31485,31496,31491,31492,31509,31498,31531,31503,31559,31544,31530,31513,31534,31537,31520,31525,31524,31539,31550,31518,31576,31578,31557,31605,31564,31581,31584,31598,31611,31586,31602,31601,31632,31654,31655,31672,31660,31645,31656,31621,31658,31644,31650,31659,31668,31697,31681,31692,31709,31706,31717,31718,31722,31756,31742,31740,31759,31766,31755,39687,39689,39690,39691,39692,39693,39694,39696,39697,39698,39700,39701,39702,39703,39704,39705,39706,39707,39708,39709,39710,39712,39713,39714,39716,39717,39718,39719,39720,39721,39722,39723,39724,39725,39726,39728,39729,39731,39732,39733,39734,39735,39736,39737,39738,39741,39742,39743,39744,39750,39754,39755,39756,39758,39760,39762,39763,39765,39766,39767,39768,39769,39770,39771,39772,39773,39774,39775,39776,39777,39778,39779,39780,39781,39782,39783,39784,39785,39786,39787,39788,39789,39790,39791,39792,39793,39794,39795,39796,39797,39798,39799,39800,39801,39802,39803,31775,31786,31782,31800,31809,31808,33278,33281,33282,33284,33260,34884,33313,33314,33315,33325,33327,33320,33323,33336,33339,33331,33332,33342,33348,33353,33355,33359,33370,33375,33384,34942,34949,34952,35032,35039,35166,32669,32671,32679,32687,32688,32690,31868,25929,31889,31901,31900,31902,31906,31922,31932,31933,31937,31943,31948,31949,31944,31941,31959,31976,33390,26280,32703,32718,32725,32741,32737,32742,32745,32750,32755,31992,32119,32166,32174,32327,32411,40632,40628,36211,36228,36244,36241,36273,36199,36205,35911,35913,37194,37200,37198,37199,37220,39804,39805,39806,39807,39808,39809,39810,39811,39812,39813,39814,39815,39816,39817,39818,39819,39820,39821,39822,39823,39824,39825,39826,39827,39828,39829,39830,39831,39832,39833,39834,39835,39836,39837,39838,39839,39840,39841,39842,39843,39844,39845,39846,39847,39848,39849,39850,39851,39852,39853,39854,39855,39856,39857,39858,39859,39860,39861,39862,39863,39864,39865,39866,39867,39868,39869,39870,39871,39872,39873,39874,39875,39876,39877,39878,39879,39880,39881,39882,39883,39884,39885,39886,39887,39888,39889,39890,39891,39892,39893,39894,39895,39896,39897,39898,39899,37218,37217,37232,37225,37231,37245,37246,37234,37236,37241,37260,37253,37264,37261,37265,37282,37283,37290,37293,37294,37295,37301,37300,37306,35925,40574,36280,36331,36357,36441,36457,36277,36287,36284,36282,36292,36310,36311,36314,36318,36302,36303,36315,36294,36332,36343,36344,36323,36345,36347,36324,36361,36349,36372,36381,36383,36396,36398,36387,36399,36410,36416,36409,36405,36413,36401,36425,36417,36418,36433,36434,36426,36464,36470,36476,36463,36468,36485,36495,36500,36496,36508,36510,35960,35970,35978,35973,35992,35988,26011,35286,35294,35290,35292,39900,39901,39902,39903,39904,39905,39906,39907,39908,39909,39910,39911,39912,39913,39914,39915,39916,39917,39918,39919,39920,39921,39922,39923,39924,39925,39926,39927,39928,39929,39930,39931,39932,39933,39934,39935,39936,39937,39938,39939,39940,39941,39942,39943,39944,39945,39946,39947,39948,39949,39950,39951,39952,39953,39954,39955,39956,39957,39958,39959,39960,39961,39962,39963,39964,39965,39966,39967,39968,39969,39970,39971,39972,39973,39974,39975,39976,39977,39978,39979,39980,39981,39982,39983,39984,39985,39986,39987,39988,39989,39990,39991,39992,39993,39994,39995,35301,35307,35311,35390,35622,38739,38633,38643,38639,38662,38657,38664,38671,38670,38698,38701,38704,38718,40832,40835,40837,40838,40839,40840,40841,40842,40844,40702,40715,40717,38585,38588,38589,38606,38610,30655,38624,37518,37550,37576,37694,37738,37834,37775,37950,37995,40063,40066,40069,40070,40071,40072,31267,40075,40078,40080,40081,40082,40084,40085,40090,40091,40094,40095,40096,40097,40098,40099,40101,40102,40103,40104,40105,40107,40109,40110,40112,40113,40114,40115,40116,40117,40118,40119,40122,40123,40124,40125,40132,40133,40134,40135,40138,40139,39996,39997,39998,39999,4e4,40001,40002,40003,40004,40005,40006,40007,40008,40009,40010,40011,40012,40013,40014,40015,40016,40017,40018,40019,40020,40021,40022,40023,40024,40025,40026,40027,40028,40029,40030,40031,40032,40033,40034,40035,40036,40037,40038,40039,40040,40041,40042,40043,40044,40045,40046,40047,40048,40049,40050,40051,40052,40053,40054,40055,40056,40057,40058,40059,40061,40062,40064,40067,40068,40073,40074,40076,40079,40083,40086,40087,40088,40089,40093,40106,40108,40111,40121,40126,40127,40128,40129,40130,40136,40137,40145,40146,40154,40155,40160,40161,40140,40141,40142,40143,40144,40147,40148,40149,40151,40152,40153,40156,40157,40159,40162,38780,38789,38801,38802,38804,38831,38827,38819,38834,38836,39601,39600,39607,40536,39606,39610,39612,39617,39616,39621,39618,39627,39628,39633,39749,39747,39751,39753,39752,39757,39761,39144,39181,39214,39253,39252,39647,39649,39654,39663,39659,39675,39661,39673,39688,39695,39699,39711,39715,40637,40638,32315,40578,40583,40584,40587,40594,37846,40605,40607,40667,40668,40669,40672,40671,40674,40681,40679,40677,40682,40687,40738,40748,40751,40761,40759,40765,40766,40772,40163,40164,40165,40166,40167,40168,40169,40170,40171,40172,40173,40174,40175,40176,40177,40178,40179,40180,40181,40182,40183,40184,40185,40186,40187,40188,40189,40190,40191,40192,40193,40194,40195,40196,40197,40198,40199,40200,40201,40202,40203,40204,40205,40206,40207,40208,40209,40210,40211,40212,40213,40214,40215,40216,40217,40218,40219,40220,40221,40222,40223,40224,40225,40226,40227,40228,40229,40230,40231,40232,40233,40234,40235,40236,40237,40238,40239,40240,40241,40242,40243,40244,40245,40246,40247,40248,40249,40250,40251,40252,40253,40254,40255,40256,40257,40258,57908,57909,57910,57911,57912,57913,57914,57915,57916,57917,57918,57919,57920,57921,57922,57923,57924,57925,57926,57927,57928,57929,57930,57931,57932,57933,57934,57935,57936,57937,57938,57939,57940,57941,57942,57943,57944,57945,57946,57947,57948,57949,57950,57951,57952,57953,57954,57955,57956,57957,57958,57959,57960,57961,57962,57963,57964,57965,57966,57967,57968,57969,57970,57971,57972,57973,57974,57975,57976,57977,57978,57979,57980,57981,57982,57983,57984,57985,57986,57987,57988,57989,57990,57991,57992,57993,57994,57995,57996,57997,57998,57999,58e3,58001,40259,40260,40261,40262,40263,40264,40265,40266,40267,40268,40269,40270,40271,40272,40273,40274,40275,40276,40277,40278,40279,40280,40281,40282,40283,40284,40285,40286,40287,40288,40289,40290,40291,40292,40293,40294,40295,40296,40297,40298,40299,40300,40301,40302,40303,40304,40305,40306,40307,40308,40309,40310,40311,40312,40313,40314,40315,40316,40317,40318,40319,40320,40321,40322,40323,40324,40325,40326,40327,40328,40329,40330,40331,40332,40333,40334,40335,40336,40337,40338,40339,40340,40341,40342,40343,40344,40345,40346,40347,40348,40349,40350,40351,40352,40353,40354,58002,58003,58004,58005,58006,58007,58008,58009,58010,58011,58012,58013,58014,58015,58016,58017,58018,58019,58020,58021,58022,58023,58024,58025,58026,58027,58028,58029,58030,58031,58032,58033,58034,58035,58036,58037,58038,58039,58040,58041,58042,58043,58044,58045,58046,58047,58048,58049,58050,58051,58052,58053,58054,58055,58056,58057,58058,58059,58060,58061,58062,58063,58064,58065,58066,58067,58068,58069,58070,58071,58072,58073,58074,58075,58076,58077,58078,58079,58080,58081,58082,58083,58084,58085,58086,58087,58088,58089,58090,58091,58092,58093,58094,58095,40355,40356,40357,40358,40359,40360,40361,40362,40363,40364,40365,40366,40367,40368,40369,40370,40371,40372,40373,40374,40375,40376,40377,40378,40379,40380,40381,40382,40383,40384,40385,40386,40387,40388,40389,40390,40391,40392,40393,40394,40395,40396,40397,40398,40399,40400,40401,40402,40403,40404,40405,40406,40407,40408,40409,40410,40411,40412,40413,40414,40415,40416,40417,40418,40419,40420,40421,40422,40423,40424,40425,40426,40427,40428,40429,40430,40431,40432,40433,40434,40435,40436,40437,40438,40439,40440,40441,40442,40443,40444,40445,40446,40447,40448,40449,40450,58096,58097,58098,58099,58100,58101,58102,58103,58104,58105,58106,58107,58108,58109,58110,58111,58112,58113,58114,58115,58116,58117,58118,58119,58120,58121,58122,58123,58124,58125,58126,58127,58128,58129,58130,58131,58132,58133,58134,58135,58136,58137,58138,58139,58140,58141,58142,58143,58144,58145,58146,58147,58148,58149,58150,58151,58152,58153,58154,58155,58156,58157,58158,58159,58160,58161,58162,58163,58164,58165,58166,58167,58168,58169,58170,58171,58172,58173,58174,58175,58176,58177,58178,58179,58180,58181,58182,58183,58184,58185,58186,58187,58188,58189,40451,40452,40453,40454,40455,40456,40457,40458,40459,40460,40461,40462,40463,40464,40465,40466,40467,40468,40469,40470,40471,40472,40473,40474,40475,40476,40477,40478,40484,40487,40494,40496,40500,40507,40508,40512,40525,40528,40530,40531,40532,40534,40537,40541,40543,40544,40545,40546,40549,40558,40559,40562,40564,40565,40566,40567,40568,40569,40570,40571,40572,40573,40576,40577,40579,40580,40581,40582,40585,40586,40588,40589,40590,40591,40592,40593,40596,40597,40598,40599,40600,40601,40602,40603,40604,40606,40608,40609,40610,40611,40612,40613,40615,40616,40617,40618,58190,58191,58192,58193,58194,58195,58196,58197,58198,58199,58200,58201,58202,58203,58204,58205,58206,58207,58208,58209,58210,58211,58212,58213,58214,58215,58216,58217,58218,58219,58220,58221,58222,58223,58224,58225,58226,58227,58228,58229,58230,58231,58232,58233,58234,58235,58236,58237,58238,58239,58240,58241,58242,58243,58244,58245,58246,58247,58248,58249,58250,58251,58252,58253,58254,58255,58256,58257,58258,58259,58260,58261,58262,58263,58264,58265,58266,58267,58268,58269,58270,58271,58272,58273,58274,58275,58276,58277,58278,58279,58280,58281,58282,58283,40619,40620,40621,40622,40623,40624,40625,40626,40627,40629,40630,40631,40633,40634,40636,40639,40640,40641,40642,40643,40645,40646,40647,40648,40650,40651,40652,40656,40658,40659,40661,40662,40663,40665,40666,40670,40673,40675,40676,40678,40680,40683,40684,40685,40686,40688,40689,40690,40691,40692,40693,40694,40695,40696,40698,40701,40703,40704,40705,40706,40707,40708,40709,40710,40711,40712,40713,40714,40716,40719,40721,40722,40724,40725,40726,40728,40730,40731,40732,40733,40734,40735,40737,40739,40740,40741,40742,40743,40744,40745,40746,40747,40749,40750,40752,40753,58284,58285,58286,58287,58288,58289,58290,58291,58292,58293,58294,58295,58296,58297,58298,58299,58300,58301,58302,58303,58304,58305,58306,58307,58308,58309,58310,58311,58312,58313,58314,58315,58316,58317,58318,58319,58320,58321,58322,58323,58324,58325,58326,58327,58328,58329,58330,58331,58332,58333,58334,58335,58336,58337,58338,58339,58340,58341,58342,58343,58344,58345,58346,58347,58348,58349,58350,58351,58352,58353,58354,58355,58356,58357,58358,58359,58360,58361,58362,58363,58364,58365,58366,58367,58368,58369,58370,58371,58372,58373,58374,58375,58376,58377,40754,40755,40756,40757,40758,40760,40762,40764,40767,40768,40769,40770,40771,40773,40774,40775,40776,40777,40778,40779,40780,40781,40782,40783,40786,40787,40788,40789,40790,40791,40792,40793,40794,40795,40796,40797,40798,40799,40800,40801,40802,40803,40804,40805,40806,40807,40808,40809,40810,40811,40812,40813,40814,40815,40816,40817,40818,40819,40820,40821,40822,40823,40824,40825,40826,40827,40828,40829,40830,40833,40834,40845,40846,40847,40848,40849,40850,40851,40852,40853,40854,40855,40856,40860,40861,40862,40865,40866,40867,40868,40869,63788,63865,63893,63975,63985,58378,58379,58380,58381,58382,58383,58384,58385,58386,58387,58388,58389,58390,58391,58392,58393,58394,58395,58396,58397,58398,58399,58400,58401,58402,58403,58404,58405,58406,58407,58408,58409,58410,58411,58412,58413,58414,58415,58416,58417,58418,58419,58420,58421,58422,58423,58424,58425,58426,58427,58428,58429,58430,58431,58432,58433,58434,58435,58436,58437,58438,58439,58440,58441,58442,58443,58444,58445,58446,58447,58448,58449,58450,58451,58452,58453,58454,58455,58456,58457,58458,58459,58460,58461,58462,58463,58464,58465,58466,58467,58468,58469,58470,58471,64012,64013,64014,64015,64017,64019,64020,64024,64031,64032,64033,64035,64036,64039,64040,64041,11905,59414,59415,59416,11908,13427,13383,11912,11915,59422,13726,13850,13838,11916,11927,14702,14616,59430,14799,14815,14963,14800,59435,59436,15182,15470,15584,11943,59441,59442,11946,16470,16735,11950,17207,11955,11958,11959,59451,17329,17324,11963,17373,17622,18017,17996,59459,18211,18217,18300,18317,11978,18759,18810,18813,18818,18819,18821,18822,18847,18843,18871,18870,59476,59477,19619,19615,19616,19617,19575,19618,19731,19732,19733,19734,19735,19736,19737,19886,59492,58472,58473,58474,58475,58476,58477,58478,58479,58480,58481,58482,58483,58484,58485,58486,58487,58488,58489,58490,58491,58492,58493,58494,58495,58496,58497,58498,58499,58500,58501,58502,58503,58504,58505,58506,58507,58508,58509,58510,58511,58512,58513,58514,58515,58516,58517,58518,58519,58520,58521,58522,58523,58524,58525,58526,58527,58528,58529,58530,58531,58532,58533,58534,58535,58536,58537,58538,58539,58540,58541,58542,58543,58544,58545,58546,58547,58548,58549,58550,58551,58552,58553,58554,58555,58556,58557,58558,58559,58560,58561,58562,58563,58564,58565],"gb18030-ranges":[[0,128],[36,165],[38,169],[45,178],[50,184],[81,216],[89,226],[95,235],[96,238],[100,244],[103,248],[104,251],[105,253],[109,258],[126,276],[133,284],[148,300],[172,325],[175,329],[179,334],[208,364],[306,463],[307,465],[308,467],[309,469],[310,471],[311,473],[312,475],[313,477],[341,506],[428,594],[443,610],[544,712],[545,716],[558,730],[741,930],[742,938],[749,962],[750,970],[805,1026],[819,1104],[820,1106],[7922,8209],[7924,8215],[7925,8218],[7927,8222],[7934,8231],[7943,8241],[7944,8244],[7945,8246],[7950,8252],[8062,8365],[8148,8452],[8149,8454],[8152,8458],[8164,8471],[8174,8482],[8236,8556],[8240,8570],[8262,8596],[8264,8602],[8374,8713],[8380,8720],[8381,8722],[8384,8726],[8388,8731],[8390,8737],[8392,8740],[8393,8742],[8394,8748],[8396,8751],[8401,8760],[8406,8766],[8416,8777],[8419,8781],[8424,8787],[8437,8802],[8439,8808],[8445,8816],[8482,8854],[8485,8858],[8496,8870],[8521,8896],[8603,8979],[8936,9322],[8946,9372],[9046,9548],[9050,9588],[9063,9616],[9066,9622],[9076,9634],[9092,9652],[9100,9662],[9108,9672],[9111,9676],[9113,9680],[9131,9702],[9162,9735],[9164,9738],[9218,9793],[9219,9795],[11329,11906],[11331,11909],[11334,11913],[11336,11917],[11346,11928],[11361,11944],[11363,11947],[11366,11951],[11370,11956],[11372,11960],[11375,11964],[11389,11979],[11682,12284],[11686,12292],[11687,12312],[11692,12319],[11694,12330],[11714,12351],[11716,12436],[11723,12447],[11725,12535],[11730,12543],[11736,12586],[11982,12842],[11989,12850],[12102,12964],[12336,13200],[12348,13215],[12350,13218],[12384,13253],[12393,13263],[12395,13267],[12397,13270],[12510,13384],[12553,13428],[12851,13727],[12962,13839],[12973,13851],[13738,14617],[13823,14703],[13919,14801],[13933,14816],[14080,14964],[14298,15183],[14585,15471],[14698,15585],[15583,16471],[15847,16736],[16318,17208],[16434,17325],[16438,17330],[16481,17374],[16729,17623],[17102,17997],[17122,18018],[17315,18212],[17320,18218],[17402,18301],[17418,18318],[17859,18760],[17909,18811],[17911,18814],[17915,18820],[17916,18823],[17936,18844],[17939,18848],[17961,18872],[18664,19576],[18703,19620],[18814,19738],[18962,19887],[19043,40870],[33469,59244],[33470,59336],[33471,59367],[33484,59413],[33485,59417],[33490,59423],[33497,59431],[33501,59437],[33505,59443],[33513,59452],[33520,59460],[33536,59478],[33550,59493],[37845,63789],[37921,63866],[37948,63894],[38029,63976],[38038,63986],[38064,64016],[38065,64018],[38066,64021],[38069,64025],[38075,64034],[38076,64037],[38078,64042],[39108,65074],[39109,65093],[39113,65107],[39114,65112],[39115,65127],[39116,65132],[39265,65375],[39394,65510],[189e3,65536]],jis0208:[12288,12289,12290,65292,65294,12539,65306,65307,65311,65281,12443,12444,180,65344,168,65342,65507,65343,12541,12542,12445,12446,12291,20189,12293,12294,12295,12540,8213,8208,65295,65340,65374,8741,65372,8230,8229,8216,8217,8220,8221,65288,65289,12308,12309,65339,65341,65371,65373,12296,12297,12298,12299,12300,12301,12302,12303,12304,12305,65291,65293,177,215,247,65309,8800,65308,65310,8806,8807,8734,8756,9794,9792,176,8242,8243,8451,65509,65284,65504,65505,65285,65283,65286,65290,65312,167,9734,9733,9675,9679,9678,9671,9670,9633,9632,9651,9650,9661,9660,8251,12306,8594,8592,8593,8595,12307,null,null,null,null,null,null,null,null,null,null,null,8712,8715,8838,8839,8834,8835,8746,8745,null,null,null,null,null,null,null,null,8743,8744,65506,8658,8660,8704,8707,null,null,null,null,null,null,null,null,null,null,null,8736,8869,8978,8706,8711,8801,8786,8810,8811,8730,8765,8733,8757,8747,8748,null,null,null,null,null,null,null,8491,8240,9839,9837,9834,8224,8225,182,null,null,null,null,9711,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,65296,65297,65298,65299,65300,65301,65302,65303,65304,65305,null,null,null,null,null,null,null,65313,65314,65315,65316,65317,65318,65319,65320,65321,65322,65323,65324,65325,65326,65327,65328,65329,65330,65331,65332,65333,65334,65335,65336,65337,65338,null,null,null,null,null,null,65345,65346,65347,65348,65349,65350,65351,65352,65353,65354,65355,65356,65357,65358,65359,65360,65361,65362,65363,65364,65365,65366,65367,65368,65369,65370,null,null,null,null,12353,12354,12355,12356,12357,12358,12359,12360,12361,12362,12363,12364,12365,12366,12367,12368,12369,12370,12371,12372,12373,12374,12375,12376,12377,12378,12379,12380,12381,12382,12383,12384,12385,12386,12387,12388,12389,12390,12391,12392,12393,12394,12395,12396,12397,12398,12399,12400,12401,12402,12403,12404,12405,12406,12407,12408,12409,12410,12411,12412,12413,12414,12415,12416,12417,12418,12419,12420,12421,12422,12423,12424,12425,12426,12427,12428,12429,12430,12431,12432,12433,12434,12435,null,null,null,null,null,null,null,null,null,null,null,12449,12450,12451,12452,12453,12454,12455,12456,12457,12458,12459,12460,12461,12462,12463,12464,12465,12466,12467,12468,12469,12470,12471,12472,12473,12474,12475,12476,12477,12478,12479,12480,12481,12482,12483,12484,12485,12486,12487,12488,12489,12490,12491,12492,12493,12494,12495,12496,12497,12498,12499,12500,12501,12502,12503,12504,12505,12506,12507,12508,12509,12510,12511,12512,12513,12514,12515,12516,12517,12518,12519,12520,12521,12522,12523,12524,12525,12526,12527,12528,12529,12530,12531,12532,12533,12534,null,null,null,null,null,null,null,null,913,914,915,916,917,918,919,920,921,922,923,924,925,926,927,928,929,931,932,933,934,935,936,937,null,null,null,null,null,null,null,null,945,946,947,948,949,950,951,952,953,954,955,956,957,958,959,960,961,963,964,965,966,967,968,969,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,1040,1041,1042,1043,1044,1045,1025,1046,1047,1048,1049,1050,1051,1052,1053,1054,1055,1056,1057,1058,1059,1060,1061,1062,1063,1064,1065,1066,1067,1068,1069,1070,1071,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,1072,1073,1074,1075,1076,1077,1105,1078,1079,1080,1081,1082,1083,1084,1085,1086,1087,1088,1089,1090,1091,1092,1093,1094,1095,1096,1097,1098,1099,1100,1101,1102,1103,null,null,null,null,null,null,null,null,null,null,null,null,null,9472,9474,9484,9488,9496,9492,9500,9516,9508,9524,9532,9473,9475,9487,9491,9499,9495,9507,9523,9515,9531,9547,9504,9519,9512,9527,9535,9501,9520,9509,9528,9538,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,9312,9313,9314,9315,9316,9317,9318,9319,9320,9321,9322,9323,9324,9325,9326,9327,9328,9329,9330,9331,8544,8545,8546,8547,8548,8549,8550,8551,8552,8553,null,13129,13076,13090,13133,13080,13095,13059,13110,13137,13143,13069,13094,13091,13099,13130,13115,13212,13213,13214,13198,13199,13252,13217,null,null,null,null,null,null,null,null,13179,12317,12319,8470,13261,8481,12964,12965,12966,12967,12968,12849,12850,12857,13182,13181,13180,8786,8801,8747,8750,8721,8730,8869,8736,8735,8895,8757,8745,8746,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,20124,21782,23043,38463,21696,24859,25384,23030,36898,33909,33564,31312,24746,25569,28197,26093,33894,33446,39925,26771,22311,26017,25201,23451,22992,34427,39156,32098,32190,39822,25110,31903,34999,23433,24245,25353,26263,26696,38343,38797,26447,20197,20234,20301,20381,20553,22258,22839,22996,23041,23561,24799,24847,24944,26131,26885,28858,30031,30064,31227,32173,32239,32963,33806,34915,35586,36949,36986,21307,20117,20133,22495,32946,37057,30959,19968,22769,28322,36920,31282,33576,33419,39983,20801,21360,21693,21729,22240,23035,24341,39154,28139,32996,34093,38498,38512,38560,38907,21515,21491,23431,28879,32701,36802,38632,21359,40284,31418,19985,30867,33276,28198,22040,21764,27421,34074,39995,23013,21417,28006,29916,38287,22082,20113,36939,38642,33615,39180,21473,21942,23344,24433,26144,26355,26628,27704,27891,27945,29787,30408,31310,38964,33521,34907,35424,37613,28082,30123,30410,39365,24742,35585,36234,38322,27022,21421,20870,22290,22576,22852,23476,24310,24616,25513,25588,27839,28436,28814,28948,29017,29141,29503,32257,33398,33489,34199,36960,37467,40219,22633,26044,27738,29989,20985,22830,22885,24448,24540,25276,26106,27178,27431,27572,29579,32705,35158,40236,40206,40644,23713,27798,33659,20740,23627,25014,33222,26742,29281,20057,20474,21368,24681,28201,31311,38899,19979,21270,20206,20309,20285,20385,20339,21152,21487,22025,22799,23233,23478,23521,31185,26247,26524,26550,27468,27827,28779,29634,31117,31166,31292,31623,33457,33499,33540,33655,33775,33747,34662,35506,22057,36008,36838,36942,38686,34442,20420,23784,25105,29273,30011,33253,33469,34558,36032,38597,39187,39381,20171,20250,35299,22238,22602,22730,24315,24555,24618,24724,24674,25040,25106,25296,25913,39745,26214,26800,28023,28784,30028,30342,32117,33445,34809,38283,38542,35997,20977,21182,22806,21683,23475,23830,24936,27010,28079,30861,33995,34903,35442,37799,39608,28012,39336,34521,22435,26623,34510,37390,21123,22151,21508,24275,25313,25785,26684,26680,27579,29554,30906,31339,35226,35282,36203,36611,37101,38307,38548,38761,23398,23731,27005,38989,38990,25499,31520,27179,27263,26806,39949,28511,21106,21917,24688,25324,27963,28167,28369,33883,35088,36676,19988,39993,21494,26907,27194,38788,26666,20828,31427,33970,37340,37772,22107,40232,26658,33541,33841,31909,21e3,33477,29926,20094,20355,20896,23506,21002,21208,21223,24059,21914,22570,23014,23436,23448,23515,24178,24185,24739,24863,24931,25022,25563,25954,26577,26707,26874,27454,27475,27735,28450,28567,28485,29872,29976,30435,30475,31487,31649,31777,32233,32566,32752,32925,33382,33694,35251,35532,36011,36996,37969,38291,38289,38306,38501,38867,39208,33304,20024,21547,23736,24012,29609,30284,30524,23721,32747,36107,38593,38929,38996,39e3,20225,20238,21361,21916,22120,22522,22855,23305,23492,23696,24076,24190,24524,25582,26426,26071,26082,26399,26827,26820,27231,24112,27589,27671,27773,30079,31048,23395,31232,32e3,24509,35215,35352,36020,36215,36556,36637,39138,39438,39740,20096,20605,20736,22931,23452,25135,25216,25836,27450,29344,30097,31047,32681,34811,35516,35696,25516,33738,38816,21513,21507,21931,26708,27224,35440,30759,26485,40653,21364,23458,33050,34384,36870,19992,20037,20167,20241,21450,21560,23470,24339,24613,25937,26429,27714,27762,27875,28792,29699,31350,31406,31496,32026,31998,32102,26087,29275,21435,23621,24040,25298,25312,25369,28192,34394,35377,36317,37624,28417,31142,39770,20136,20139,20140,20379,20384,20689,20807,31478,20849,20982,21332,21281,21375,21483,21932,22659,23777,24375,24394,24623,24656,24685,25375,25945,27211,27841,29378,29421,30703,33016,33029,33288,34126,37111,37857,38911,39255,39514,20208,20957,23597,26241,26989,23616,26354,26997,29577,26704,31873,20677,21220,22343,24062,37670,26020,27427,27453,29748,31105,31165,31563,32202,33465,33740,34943,35167,35641,36817,37329,21535,37504,20061,20534,21477,21306,29399,29590,30697,33510,36527,39366,39368,39378,20855,24858,34398,21936,31354,20598,23507,36935,38533,20018,27355,37351,23633,23624,25496,31391,27795,38772,36705,31402,29066,38536,31874,26647,32368,26705,37740,21234,21531,34219,35347,32676,36557,37089,21350,34952,31041,20418,20670,21009,20804,21843,22317,29674,22411,22865,24418,24452,24693,24950,24935,25001,25522,25658,25964,26223,26690,28179,30054,31293,31995,32076,32153,32331,32619,33550,33610,34509,35336,35427,35686,36605,38938,40335,33464,36814,39912,21127,25119,25731,28608,38553,26689,20625,27424,27770,28500,31348,32080,34880,35363,26376,20214,20537,20518,20581,20860,21048,21091,21927,22287,22533,23244,24314,25010,25080,25331,25458,26908,27177,29309,29356,29486,30740,30831,32121,30476,32937,35211,35609,36066,36562,36963,37749,38522,38997,39443,40568,20803,21407,21427,24187,24358,28187,28304,29572,29694,32067,33335,35328,35578,38480,20046,20491,21476,21628,22266,22993,23396,24049,24235,24359,25144,25925,26543,28246,29392,31946,34996,32929,32993,33776,34382,35463,36328,37431,38599,39015,40723,20116,20114,20237,21320,21577,21566,23087,24460,24481,24735,26791,27278,29786,30849,35486,35492,35703,37264,20062,39881,20132,20348,20399,20505,20502,20809,20844,21151,21177,21246,21402,21475,21521,21518,21897,22353,22434,22909,23380,23389,23439,24037,24039,24055,24184,24195,24218,24247,24344,24658,24908,25239,25304,25511,25915,26114,26179,26356,26477,26657,26775,27083,27743,27946,28009,28207,28317,30002,30343,30828,31295,31968,32005,32024,32094,32177,32789,32771,32943,32945,33108,33167,33322,33618,34892,34913,35611,36002,36092,37066,37237,37489,30783,37628,38308,38477,38917,39321,39640,40251,21083,21163,21495,21512,22741,25335,28640,35946,36703,40633,20811,21051,21578,22269,31296,37239,40288,40658,29508,28425,33136,29969,24573,24794,39592,29403,36796,27492,38915,20170,22256,22372,22718,23130,24680,25031,26127,26118,26681,26801,28151,30165,32058,33390,39746,20123,20304,21449,21766,23919,24038,24046,26619,27801,29811,30722,35408,37782,35039,22352,24231,25387,20661,20652,20877,26368,21705,22622,22971,23472,24425,25165,25505,26685,27507,28168,28797,37319,29312,30741,30758,31085,25998,32048,33756,35009,36617,38555,21092,22312,26448,32618,36001,20916,22338,38442,22586,27018,32948,21682,23822,22524,30869,40442,20316,21066,21643,25662,26152,26388,26613,31364,31574,32034,37679,26716,39853,31545,21273,20874,21047,23519,25334,25774,25830,26413,27578,34217,38609,30352,39894,25420,37638,39851,30399,26194,19977,20632,21442,23665,24808,25746,25955,26719,29158,29642,29987,31639,32386,34453,35715,36059,37240,39184,26028,26283,27531,20181,20180,20282,20351,21050,21496,21490,21987,22235,22763,22987,22985,23039,23376,23629,24066,24107,24535,24605,25351,25903,23388,26031,26045,26088,26525,27490,27515,27663,29509,31049,31169,31992,32025,32043,32930,33026,33267,35222,35422,35433,35430,35468,35566,36039,36060,38604,39164,27503,20107,20284,20365,20816,23383,23546,24904,25345,26178,27425,28363,27835,29246,29885,30164,30913,31034,32780,32819,33258,33940,36766,27728,40575,24335,35672,40235,31482,36600,23437,38635,19971,21489,22519,22833,23241,23460,24713,28287,28422,30142,36074,23455,34048,31712,20594,26612,33437,23649,34122,32286,33294,20889,23556,25448,36198,26012,29038,31038,32023,32773,35613,36554,36974,34503,37034,20511,21242,23610,26451,28796,29237,37196,37320,37675,33509,23490,24369,24825,20027,21462,23432,25163,26417,27530,29417,29664,31278,33131,36259,37202,39318,20754,21463,21610,23551,25480,27193,32172,38656,22234,21454,21608,23447,23601,24030,20462,24833,25342,27954,31168,31179,32066,32333,32722,33261,33311,33936,34886,35186,35728,36468,36655,36913,37195,37228,38598,37276,20160,20303,20805,21313,24467,25102,26580,27713,28171,29539,32294,37325,37507,21460,22809,23487,28113,31069,32302,31899,22654,29087,20986,34899,36848,20426,23803,26149,30636,31459,33308,39423,20934,24490,26092,26991,27529,28147,28310,28516,30462,32020,24033,36981,37255,38918,20966,21021,25152,26257,26329,28186,24246,32210,32626,26360,34223,34295,35576,21161,21465,22899,24207,24464,24661,37604,38500,20663,20767,21213,21280,21319,21484,21736,21830,21809,22039,22888,22974,23100,23477,23558,23567,23569,23578,24196,24202,24288,24432,25215,25220,25307,25484,25463,26119,26124,26157,26230,26494,26786,27167,27189,27836,28040,28169,28248,28988,28966,29031,30151,30465,30813,30977,31077,31216,31456,31505,31911,32057,32918,33750,33931,34121,34909,35059,35359,35388,35412,35443,35937,36062,37284,37478,37758,37912,38556,38808,19978,19976,19998,20055,20887,21104,22478,22580,22732,23330,24120,24773,25854,26465,26454,27972,29366,30067,31331,33976,35698,37304,37664,22065,22516,39166,25325,26893,27542,29165,32340,32887,33394,35302,39135,34645,36785,23611,20280,20449,20405,21767,23072,23517,23529,24515,24910,25391,26032,26187,26862,27035,28024,28145,30003,30137,30495,31070,31206,32051,33251,33455,34218,35242,35386,36523,36763,36914,37341,38663,20154,20161,20995,22645,22764,23563,29978,23613,33102,35338,36805,38499,38765,31525,35535,38920,37218,22259,21416,36887,21561,22402,24101,25512,27700,28810,30561,31883,32736,34928,36930,37204,37648,37656,38543,29790,39620,23815,23913,25968,26530,36264,38619,25454,26441,26905,33733,38935,38592,35070,28548,25722,23544,19990,28716,30045,26159,20932,21046,21218,22995,24449,24615,25104,25919,25972,26143,26228,26866,26646,27491,28165,29298,29983,30427,31934,32854,22768,35069,35199,35488,35475,35531,36893,37266,38738,38745,25993,31246,33030,38587,24109,24796,25114,26021,26132,26512,30707,31309,31821,32318,33034,36012,36196,36321,36447,30889,20999,25305,25509,25666,25240,35373,31363,31680,35500,38634,32118,33292,34633,20185,20808,21315,21344,23459,23554,23574,24029,25126,25159,25776,26643,26676,27849,27973,27927,26579,28508,29006,29053,26059,31359,31661,32218,32330,32680,33146,33307,33337,34214,35438,36046,36341,36984,36983,37549,37521,38275,39854,21069,21892,28472,28982,20840,31109,32341,33203,31950,22092,22609,23720,25514,26366,26365,26970,29401,30095,30094,30990,31062,31199,31895,32032,32068,34311,35380,38459,36961,40736,20711,21109,21452,21474,20489,21930,22766,22863,29245,23435,23652,21277,24803,24819,25436,25475,25407,25531,25805,26089,26361,24035,27085,27133,28437,29157,20105,30185,30456,31379,31967,32207,32156,32865,33609,33624,33900,33980,34299,35013,36208,36865,36973,37783,38684,39442,20687,22679,24974,33235,34101,36104,36896,20419,20596,21063,21363,24687,25417,26463,28204,36275,36895,20439,23646,36042,26063,32154,21330,34966,20854,25539,23384,23403,23562,25613,26449,36956,20182,22810,22826,27760,35409,21822,22549,22949,24816,25171,26561,33333,26965,38464,39364,39464,20307,22534,23550,32784,23729,24111,24453,24608,24907,25140,26367,27888,28382,32974,33151,33492,34955,36024,36864,36910,38538,40667,39899,20195,21488,22823,31532,37261,38988,40441,28381,28711,21331,21828,23429,25176,25246,25299,27810,28655,29730,35351,37944,28609,35582,33592,20967,34552,21482,21481,20294,36948,36784,22890,33073,24061,31466,36799,26842,35895,29432,40008,27197,35504,20025,21336,22022,22374,25285,25506,26086,27470,28129,28251,28845,30701,31471,31658,32187,32829,32966,34507,35477,37723,22243,22727,24382,26029,26262,27264,27573,30007,35527,20516,30693,22320,24347,24677,26234,27744,30196,31258,32622,33268,34584,36933,39347,31689,30044,31481,31569,33988,36880,31209,31378,33590,23265,30528,20013,20210,23449,24544,25277,26172,26609,27880,34411,34935,35387,37198,37619,39376,27159,28710,29482,33511,33879,36015,19969,20806,20939,21899,23541,24086,24115,24193,24340,24373,24427,24500,25074,25361,26274,26397,28526,29266,30010,30522,32884,33081,33144,34678,35519,35548,36229,36339,37530,38263,38914,40165,21189,25431,30452,26389,27784,29645,36035,37806,38515,27941,22684,26894,27084,36861,37786,30171,36890,22618,26626,25524,27131,20291,28460,26584,36795,34086,32180,37716,26943,28528,22378,22775,23340,32044,29226,21514,37347,40372,20141,20302,20572,20597,21059,35998,21576,22564,23450,24093,24213,24237,24311,24351,24716,25269,25402,25552,26799,27712,30855,31118,31243,32224,33351,35330,35558,36420,36883,37048,37165,37336,40718,27877,25688,25826,25973,28404,30340,31515,36969,37841,28346,21746,24505,25764,36685,36845,37444,20856,22635,22825,23637,24215,28155,32399,29980,36028,36578,39003,28857,20253,27583,28593,3e4,38651,20814,21520,22581,22615,22956,23648,24466,26007,26460,28193,30331,33759,36077,36884,37117,37709,30757,30778,21162,24230,22303,22900,24594,20498,20826,20908,20941,20992,21776,22612,22616,22871,23445,23798,23947,24764,25237,25645,26481,26691,26812,26847,30423,28120,28271,28059,28783,29128,24403,30168,31095,31561,31572,31570,31958,32113,21040,33891,34153,34276,35342,35588,35910,36367,36867,36879,37913,38518,38957,39472,38360,20685,21205,21516,22530,23566,24999,25758,27934,30643,31461,33012,33796,36947,37509,23776,40199,21311,24471,24499,28060,29305,30563,31167,31716,27602,29420,35501,26627,27233,20984,31361,26932,23626,40182,33515,23493,37193,28702,22136,23663,24775,25958,27788,35930,36929,38931,21585,26311,37389,22856,37027,20869,20045,20970,34201,35598,28760,25466,37707,26978,39348,32260,30071,21335,26976,36575,38627,27741,20108,23612,24336,36841,21250,36049,32905,34425,24319,26085,20083,20837,22914,23615,38894,20219,22922,24525,35469,28641,31152,31074,23527,33905,29483,29105,24180,24565,25467,25754,29123,31896,20035,24316,20043,22492,22178,24745,28611,32013,33021,33075,33215,36786,35223,34468,24052,25226,25773,35207,26487,27874,27966,29750,30772,23110,32629,33453,39340,20467,24259,25309,25490,25943,26479,30403,29260,32972,32954,36649,37197,20493,22521,23186,26757,26995,29028,29437,36023,22770,36064,38506,36889,34687,31204,30695,33833,20271,21093,21338,25293,26575,27850,30333,31636,31893,33334,34180,36843,26333,28448,29190,32283,33707,39361,40614,20989,31665,30834,31672,32903,31560,27368,24161,32908,30033,30048,20843,37474,28300,30330,37271,39658,20240,32624,25244,31567,38309,40169,22138,22617,34532,38588,20276,21028,21322,21453,21467,24070,25644,26001,26495,27710,27726,29256,29359,29677,30036,32321,33324,34281,36009,31684,37318,29033,38930,39151,25405,26217,30058,30436,30928,34115,34542,21290,21329,21542,22915,24199,24444,24754,25161,25209,25259,26e3,27604,27852,30130,30382,30865,31192,32203,32631,32933,34987,35513,36027,36991,38750,39131,27147,31800,20633,23614,24494,26503,27608,29749,30473,32654,40763,26570,31255,21305,30091,39661,24422,33181,33777,32920,24380,24517,30050,31558,36924,26727,23019,23195,32016,30334,35628,20469,24426,27161,27703,28418,29922,31080,34920,35413,35961,24287,25551,30149,31186,33495,37672,37618,33948,34541,39981,21697,24428,25996,27996,28693,36007,36051,38971,25935,29942,19981,20184,22496,22827,23142,23500,20904,24067,24220,24598,25206,25975,26023,26222,28014,29238,31526,33104,33178,33433,35676,36e3,36070,36212,38428,38468,20398,25771,27494,33310,33889,34154,37096,23553,26963,39080,33914,34135,20239,21103,24489,24133,26381,31119,33145,35079,35206,28149,24343,25173,27832,20175,29289,39826,20998,21563,22132,22707,24996,25198,28954,22894,31881,31966,32027,38640,25991,32862,19993,20341,20853,22592,24163,24179,24330,26564,20006,34109,38281,38491,31859,38913,20731,22721,30294,30887,21029,30629,34065,31622,20559,22793,29255,31687,32232,36794,36820,36941,20415,21193,23081,24321,38829,20445,33303,37610,22275,25429,27497,29995,35036,36628,31298,21215,22675,24917,25098,26286,27597,31807,33769,20515,20472,21253,21574,22577,22857,23453,23792,23791,23849,24214,25265,25447,25918,26041,26379,27861,27873,28921,30770,32299,32990,33459,33804,34028,34562,35090,35370,35914,37030,37586,39165,40179,40300,20047,20129,20621,21078,22346,22952,24125,24536,24537,25151,26292,26395,26576,26834,20882,32033,32938,33192,35584,35980,36031,37502,38450,21536,38956,21271,20693,21340,22696,25778,26420,29287,30566,31302,37350,21187,27809,27526,22528,24140,22868,26412,32763,20961,30406,25705,30952,39764,40635,22475,22969,26151,26522,27598,21737,27097,24149,33180,26517,39850,26622,40018,26717,20134,20451,21448,25273,26411,27819,36804,20397,32365,40639,19975,24930,28288,28459,34067,21619,26410,39749,24051,31637,23724,23494,34588,28234,34001,31252,33032,22937,31885,27665,30496,21209,22818,28961,29279,30683,38695,40289,26891,23167,23064,20901,21517,21629,26126,30431,36855,37528,40180,23018,29277,28357,20813,26825,32191,32236,38754,40634,25720,27169,33538,22916,23391,27611,29467,30450,32178,32791,33945,20786,26408,40665,30446,26466,21247,39173,23588,25147,31870,36016,21839,24758,32011,38272,21249,20063,20918,22812,29242,32822,37326,24357,30690,21380,24441,32004,34220,35379,36493,38742,26611,34222,37971,24841,24840,27833,30290,35565,36664,21807,20305,20778,21191,21451,23461,24189,24736,24962,25558,26377,26586,28263,28044,29494,29495,30001,31056,35029,35480,36938,37009,37109,38596,34701,22805,20104,20313,19982,35465,36671,38928,20653,24188,22934,23481,24248,25562,25594,25793,26332,26954,27096,27915,28342,29076,29992,31407,32650,32768,33865,33993,35201,35617,36362,36965,38525,39178,24958,25233,27442,27779,28020,32716,32764,28096,32645,34746,35064,26469,33713,38972,38647,27931,32097,33853,37226,20081,21365,23888,27396,28651,34253,34349,35239,21033,21519,23653,26446,26792,29702,29827,30178,35023,35041,37324,38626,38520,24459,29575,31435,33870,25504,30053,21129,27969,28316,29705,30041,30827,31890,38534,31452,40845,20406,24942,26053,34396,20102,20142,20698,20001,20940,23534,26009,26753,28092,29471,30274,30637,31260,31975,33391,35538,36988,37327,38517,38936,21147,32209,20523,21400,26519,28107,29136,29747,33256,36650,38563,40023,40607,29792,22593,28057,32047,39006,20196,20278,20363,20919,21169,23994,24604,29618,31036,33491,37428,38583,38646,38666,40599,40802,26278,27508,21015,21155,28872,35010,24265,24651,24976,28451,29001,31806,32244,32879,34030,36899,37676,21570,39791,27347,28809,36034,36335,38706,21172,23105,24266,24324,26391,27004,27028,28010,28431,29282,29436,31725,32769,32894,34635,37070,20845,40595,31108,32907,37682,35542,20525,21644,35441,27498,36036,33031,24785,26528,40434,20121,20120,39952,35435,34241,34152,26880,28286,30871,33109,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,24332,19984,19989,20010,20017,20022,20028,20031,20034,20054,20056,20098,20101,35947,20106,33298,24333,20110,20126,20127,20128,20130,20144,20147,20150,20174,20173,20164,20166,20162,20183,20190,20205,20191,20215,20233,20314,20272,20315,20317,20311,20295,20342,20360,20367,20376,20347,20329,20336,20369,20335,20358,20374,20760,20436,20447,20430,20440,20443,20433,20442,20432,20452,20453,20506,20520,20500,20522,20517,20485,20252,20470,20513,20521,20524,20478,20463,20497,20486,20547,20551,26371,20565,20560,20552,20570,20566,20588,20600,20608,20634,20613,20660,20658,20681,20682,20659,20674,20694,20702,20709,20717,20707,20718,20729,20725,20745,20737,20738,20758,20757,20756,20762,20769,20794,20791,20796,20795,20799,20800,20818,20812,20820,20834,31480,20841,20842,20846,20864,20866,22232,20876,20873,20879,20881,20883,20885,20886,20900,20902,20898,20905,20906,20907,20915,20913,20914,20912,20917,20925,20933,20937,20955,20960,34389,20969,20973,20976,20981,20990,20996,21003,21012,21006,21031,21034,21038,21043,21049,21071,21060,21067,21068,21086,21076,21098,21108,21097,21107,21119,21117,21133,21140,21138,21105,21128,21137,36776,36775,21164,21165,21180,21173,21185,21197,21207,21214,21219,21222,39149,21216,21235,21237,21240,21241,21254,21256,30008,21261,21264,21263,21269,21274,21283,21295,21297,21299,21304,21312,21318,21317,19991,21321,21325,20950,21342,21353,21358,22808,21371,21367,21378,21398,21408,21414,21413,21422,21424,21430,21443,31762,38617,21471,26364,29166,21486,21480,21485,21498,21505,21565,21568,21548,21549,21564,21550,21558,21545,21533,21582,21647,21621,21646,21599,21617,21623,21616,21650,21627,21632,21622,21636,21648,21638,21703,21666,21688,21669,21676,21700,21704,21672,21675,21698,21668,21694,21692,21720,21733,21734,21775,21780,21757,21742,21741,21754,21730,21817,21824,21859,21836,21806,21852,21829,21846,21847,21816,21811,21853,21913,21888,21679,21898,21919,21883,21886,21912,21918,21934,21884,21891,21929,21895,21928,21978,21957,21983,21956,21980,21988,21972,22036,22007,22038,22014,22013,22043,22009,22094,22096,29151,22068,22070,22066,22072,22123,22116,22063,22124,22122,22150,22144,22154,22176,22164,22159,22181,22190,22198,22196,22210,22204,22209,22211,22208,22216,22222,22225,22227,22231,22254,22265,22272,22271,22276,22281,22280,22283,22285,22291,22296,22294,21959,22300,22310,22327,22328,22350,22331,22336,22351,22377,22464,22408,22369,22399,22409,22419,22432,22451,22436,22442,22448,22467,22470,22484,22482,22483,22538,22486,22499,22539,22553,22557,22642,22561,22626,22603,22640,27584,22610,22589,22649,22661,22713,22687,22699,22714,22750,22715,22712,22702,22725,22739,22737,22743,22745,22744,22757,22748,22756,22751,22767,22778,22777,22779,22780,22781,22786,22794,22800,22811,26790,22821,22828,22829,22834,22840,22846,31442,22869,22864,22862,22874,22872,22882,22880,22887,22892,22889,22904,22913,22941,20318,20395,22947,22962,22982,23016,23004,22925,23001,23002,23077,23071,23057,23068,23049,23066,23104,23148,23113,23093,23094,23138,23146,23194,23228,23230,23243,23234,23229,23267,23255,23270,23273,23254,23290,23291,23308,23307,23318,23346,23248,23338,23350,23358,23363,23365,23360,23377,23381,23386,23387,23397,23401,23408,23411,23413,23416,25992,23418,23424,23427,23462,23480,23491,23495,23497,23508,23504,23524,23526,23522,23518,23525,23531,23536,23542,23539,23557,23559,23560,23565,23571,23584,23586,23592,23608,23609,23617,23622,23630,23635,23632,23631,23409,23660,23662,20066,23670,23673,23692,23697,23700,22939,23723,23739,23734,23740,23735,23749,23742,23751,23769,23785,23805,23802,23789,23948,23786,23819,23829,23831,23900,23839,23835,23825,23828,23842,23834,23833,23832,23884,23890,23886,23883,23916,23923,23926,23943,23940,23938,23970,23965,23980,23982,23997,23952,23991,23996,24009,24013,24019,24018,24022,24027,24043,24050,24053,24075,24090,24089,24081,24091,24118,24119,24132,24131,24128,24142,24151,24148,24159,24162,24164,24135,24181,24182,24186,40636,24191,24224,24257,24258,24264,24272,24271,24278,24291,24285,24282,24283,24290,24289,24296,24297,24300,24305,24307,24304,24308,24312,24318,24323,24329,24413,24412,24331,24337,24342,24361,24365,24376,24385,24392,24396,24398,24367,24401,24406,24407,24409,24417,24429,24435,24439,24451,24450,24447,24458,24456,24465,24455,24478,24473,24472,24480,24488,24493,24508,24534,24571,24548,24568,24561,24541,24755,24575,24609,24672,24601,24592,24617,24590,24625,24603,24597,24619,24614,24591,24634,24666,24641,24682,24695,24671,24650,24646,24653,24675,24643,24676,24642,24684,24683,24665,24705,24717,24807,24707,24730,24708,24731,24726,24727,24722,24743,24715,24801,24760,24800,24787,24756,24560,24765,24774,24757,24792,24909,24853,24838,24822,24823,24832,24820,24826,24835,24865,24827,24817,24845,24846,24903,24894,24872,24871,24906,24895,24892,24876,24884,24893,24898,24900,24947,24951,24920,24921,24922,24939,24948,24943,24933,24945,24927,24925,24915,24949,24985,24982,24967,25004,24980,24986,24970,24977,25003,25006,25036,25034,25033,25079,25032,25027,25030,25018,25035,32633,25037,25062,25059,25078,25082,25076,25087,25085,25084,25086,25088,25096,25097,25101,25100,25108,25115,25118,25121,25130,25134,25136,25138,25139,25153,25166,25182,25187,25179,25184,25192,25212,25218,25225,25214,25234,25235,25238,25300,25219,25236,25303,25297,25275,25295,25343,25286,25812,25288,25308,25292,25290,25282,25287,25243,25289,25356,25326,25329,25383,25346,25352,25327,25333,25424,25406,25421,25628,25423,25494,25486,25472,25515,25462,25507,25487,25481,25503,25525,25451,25449,25534,25577,25536,25542,25571,25545,25554,25590,25540,25622,25652,25606,25619,25638,25654,25885,25623,25640,25615,25703,25711,25718,25678,25898,25749,25747,25765,25769,25736,25788,25818,25810,25797,25799,25787,25816,25794,25841,25831,33289,25824,25825,25260,25827,25839,25900,25846,25844,25842,25850,25856,25853,25880,25884,25861,25892,25891,25899,25908,25909,25911,25910,25912,30027,25928,25942,25941,25933,25944,25950,25949,25970,25976,25986,25987,35722,26011,26015,26027,26039,26051,26054,26049,26052,26060,26066,26075,26073,26080,26081,26097,26482,26122,26115,26107,26483,26165,26166,26164,26140,26191,26180,26185,26177,26206,26205,26212,26215,26216,26207,26210,26224,26243,26248,26254,26249,26244,26264,26269,26305,26297,26313,26302,26300,26308,26296,26326,26330,26336,26175,26342,26345,26352,26357,26359,26383,26390,26398,26406,26407,38712,26414,26431,26422,26433,26424,26423,26438,26462,26464,26457,26467,26468,26505,26480,26537,26492,26474,26508,26507,26534,26529,26501,26551,26607,26548,26604,26547,26601,26552,26596,26590,26589,26594,26606,26553,26574,26566,26599,27292,26654,26694,26665,26688,26701,26674,26702,26803,26667,26713,26723,26743,26751,26783,26767,26797,26772,26781,26779,26755,27310,26809,26740,26805,26784,26810,26895,26765,26750,26881,26826,26888,26840,26914,26918,26849,26892,26829,26836,26855,26837,26934,26898,26884,26839,26851,26917,26873,26848,26863,26920,26922,26906,26915,26913,26822,27001,26999,26972,27e3,26987,26964,27006,26990,26937,26996,26941,26969,26928,26977,26974,26973,27009,26986,27058,27054,27088,27071,27073,27091,27070,27086,23528,27082,27101,27067,27075,27047,27182,27025,27040,27036,27029,27060,27102,27112,27138,27163,27135,27402,27129,27122,27111,27141,27057,27166,27117,27156,27115,27146,27154,27329,27171,27155,27204,27148,27250,27190,27256,27207,27234,27225,27238,27208,27192,27170,27280,27277,27296,27268,27298,27299,27287,34327,27323,27331,27330,27320,27315,27308,27358,27345,27359,27306,27354,27370,27387,27397,34326,27386,27410,27414,39729,27423,27448,27447,30428,27449,39150,27463,27459,27465,27472,27481,27476,27483,27487,27489,27512,27513,27519,27520,27524,27523,27533,27544,27541,27550,27556,27562,27563,27567,27570,27569,27571,27575,27580,27590,27595,27603,27615,27628,27627,27635,27631,40638,27656,27667,27668,27675,27684,27683,27742,27733,27746,27754,27778,27789,27802,27777,27803,27774,27752,27763,27794,27792,27844,27889,27859,27837,27863,27845,27869,27822,27825,27838,27834,27867,27887,27865,27882,27935,34893,27958,27947,27965,27960,27929,27957,27955,27922,27916,28003,28051,28004,27994,28025,27993,28046,28053,28644,28037,28153,28181,28170,28085,28103,28134,28088,28102,28140,28126,28108,28136,28114,28101,28154,28121,28132,28117,28138,28142,28205,28270,28206,28185,28274,28255,28222,28195,28267,28203,28278,28237,28191,28227,28218,28238,28196,28415,28189,28216,28290,28330,28312,28361,28343,28371,28349,28335,28356,28338,28372,28373,28303,28325,28354,28319,28481,28433,28748,28396,28408,28414,28479,28402,28465,28399,28466,28364,28478,28435,28407,28550,28538,28536,28545,28544,28527,28507,28659,28525,28546,28540,28504,28558,28561,28610,28518,28595,28579,28577,28580,28601,28614,28586,28639,28629,28652,28628,28632,28657,28654,28635,28681,28683,28666,28689,28673,28687,28670,28699,28698,28532,28701,28696,28703,28720,28734,28722,28753,28771,28825,28818,28847,28913,28844,28856,28851,28846,28895,28875,28893,28889,28937,28925,28956,28953,29029,29013,29064,29030,29026,29004,29014,29036,29071,29179,29060,29077,29096,29100,29143,29113,29118,29138,29129,29140,29134,29152,29164,29159,29173,29180,29177,29183,29197,29200,29211,29224,29229,29228,29232,29234,29243,29244,29247,29248,29254,29259,29272,29300,29310,29314,29313,29319,29330,29334,29346,29351,29369,29362,29379,29382,29380,29390,29394,29410,29408,29409,29433,29431,20495,29463,29450,29468,29462,29469,29492,29487,29481,29477,29502,29518,29519,40664,29527,29546,29544,29552,29560,29557,29563,29562,29640,29619,29646,29627,29632,29669,29678,29662,29858,29701,29807,29733,29688,29746,29754,29781,29759,29791,29785,29761,29788,29801,29808,29795,29802,29814,29822,29835,29854,29863,29898,29903,29908,29681,29920,29923,29927,29929,29934,29938,29936,29937,29944,29943,29956,29955,29957,29964,29966,29965,29973,29971,29982,29990,29996,30012,30020,30029,30026,30025,30043,30022,30042,30057,30052,30055,30059,30061,30072,30070,30086,30087,30068,30090,30089,30082,30100,30106,30109,30117,30115,30146,30131,30147,30133,30141,30136,30140,30129,30157,30154,30162,30169,30179,30174,30206,30207,30204,30209,30192,30202,30194,30195,30219,30221,30217,30239,30247,30240,30241,30242,30244,30260,30256,30267,30279,30280,30278,30300,30296,30305,30306,30312,30313,30314,30311,30316,30320,30322,30326,30328,30332,30336,30339,30344,30347,30350,30358,30355,30361,30362,30384,30388,30392,30393,30394,30402,30413,30422,30418,30430,30433,30437,30439,30442,34351,30459,30472,30471,30468,30505,30500,30494,30501,30502,30491,30519,30520,30535,30554,30568,30571,30555,30565,30591,30590,30585,30606,30603,30609,30624,30622,30640,30646,30649,30655,30652,30653,30651,30663,30669,30679,30682,30684,30691,30702,30716,30732,30738,31014,30752,31018,30789,30862,30836,30854,30844,30874,30860,30883,30901,30890,30895,30929,30918,30923,30932,30910,30908,30917,30922,30956,30951,30938,30973,30964,30983,30994,30993,31001,31020,31019,31040,31072,31063,31071,31066,31061,31059,31098,31103,31114,31133,31143,40779,31146,31150,31155,31161,31162,31177,31189,31207,31212,31201,31203,31240,31245,31256,31257,31264,31263,31104,31281,31291,31294,31287,31299,31319,31305,31329,31330,31337,40861,31344,31353,31357,31368,31383,31381,31384,31382,31401,31432,31408,31414,31429,31428,31423,36995,31431,31434,31437,31439,31445,31443,31449,31450,31453,31457,31458,31462,31469,31472,31490,31503,31498,31494,31539,31512,31513,31518,31541,31528,31542,31568,31610,31492,31565,31499,31564,31557,31605,31589,31604,31591,31600,31601,31596,31598,31645,31640,31647,31629,31644,31642,31627,31634,31631,31581,31641,31691,31681,31692,31695,31668,31686,31709,31721,31761,31764,31718,31717,31840,31744,31751,31763,31731,31735,31767,31757,31734,31779,31783,31786,31775,31799,31787,31805,31820,31811,31828,31823,31808,31824,31832,31839,31844,31830,31845,31852,31861,31875,31888,31908,31917,31906,31915,31905,31912,31923,31922,31921,31918,31929,31933,31936,31941,31938,31960,31954,31964,31970,39739,31983,31986,31988,31990,31994,32006,32002,32028,32021,32010,32069,32075,32046,32050,32063,32053,32070,32115,32086,32078,32114,32104,32110,32079,32099,32147,32137,32091,32143,32125,32155,32186,32174,32163,32181,32199,32189,32171,32317,32162,32175,32220,32184,32159,32176,32216,32221,32228,32222,32251,32242,32225,32261,32266,32291,32289,32274,32305,32287,32265,32267,32290,32326,32358,32315,32309,32313,32323,32311,32306,32314,32359,32349,32342,32350,32345,32346,32377,32362,32361,32380,32379,32387,32213,32381,36782,32383,32392,32393,32396,32402,32400,32403,32404,32406,32398,32411,32412,32568,32570,32581,32588,32589,32590,32592,32593,32597,32596,32600,32607,32608,32616,32617,32615,32632,32642,32646,32643,32648,32647,32652,32660,32670,32669,32666,32675,32687,32690,32697,32686,32694,32696,35697,32709,32710,32714,32725,32724,32737,32742,32745,32755,32761,39132,32774,32772,32779,32786,32792,32793,32796,32801,32808,32831,32827,32842,32838,32850,32856,32858,32863,32866,32872,32883,32882,32880,32886,32889,32893,32895,32900,32902,32901,32923,32915,32922,32941,20880,32940,32987,32997,32985,32989,32964,32986,32982,33033,33007,33009,33051,33065,33059,33071,33099,38539,33094,33086,33107,33105,33020,33137,33134,33125,33126,33140,33155,33160,33162,33152,33154,33184,33173,33188,33187,33119,33171,33193,33200,33205,33214,33208,33213,33216,33218,33210,33225,33229,33233,33241,33240,33224,33242,33247,33248,33255,33274,33275,33278,33281,33282,33285,33287,33290,33293,33296,33302,33321,33323,33336,33331,33344,33369,33368,33373,33370,33375,33380,33378,33384,33386,33387,33326,33393,33399,33400,33406,33421,33426,33451,33439,33467,33452,33505,33507,33503,33490,33524,33523,33530,33683,33539,33531,33529,33502,33542,33500,33545,33497,33589,33588,33558,33586,33585,33600,33593,33616,33605,33583,33579,33559,33560,33669,33690,33706,33695,33698,33686,33571,33678,33671,33674,33660,33717,33651,33653,33696,33673,33704,33780,33811,33771,33742,33789,33795,33752,33803,33729,33783,33799,33760,33778,33805,33826,33824,33725,33848,34054,33787,33901,33834,33852,34138,33924,33911,33899,33965,33902,33922,33897,33862,33836,33903,33913,33845,33994,33890,33977,33983,33951,34009,33997,33979,34010,34e3,33985,33990,34006,33953,34081,34047,34036,34071,34072,34092,34079,34069,34068,34044,34112,34147,34136,34120,34113,34306,34123,34133,34176,34212,34184,34193,34186,34216,34157,34196,34203,34282,34183,34204,34167,34174,34192,34249,34234,34255,34233,34256,34261,34269,34277,34268,34297,34314,34323,34315,34302,34298,34310,34338,34330,34352,34367,34381,20053,34388,34399,34407,34417,34451,34467,34473,34474,34443,34444,34486,34479,34500,34502,34480,34505,34851,34475,34516,34526,34537,34540,34527,34523,34543,34578,34566,34568,34560,34563,34555,34577,34569,34573,34553,34570,34612,34623,34615,34619,34597,34601,34586,34656,34655,34680,34636,34638,34676,34647,34664,34670,34649,34643,34659,34666,34821,34722,34719,34690,34735,34763,34749,34752,34768,38614,34731,34756,34739,34759,34758,34747,34799,34802,34784,34831,34829,34814,34806,34807,34830,34770,34833,34838,34837,34850,34849,34865,34870,34873,34855,34875,34884,34882,34898,34905,34910,34914,34923,34945,34942,34974,34933,34941,34997,34930,34946,34967,34962,34990,34969,34978,34957,34980,34992,35007,34993,35011,35012,35028,35032,35033,35037,35065,35074,35068,35060,35048,35058,35076,35084,35082,35091,35139,35102,35109,35114,35115,35137,35140,35131,35126,35128,35148,35101,35168,35166,35174,35172,35181,35178,35183,35188,35191,35198,35203,35208,35210,35219,35224,35233,35241,35238,35244,35247,35250,35258,35261,35263,35264,35290,35292,35293,35303,35316,35320,35331,35350,35344,35340,35355,35357,35365,35382,35393,35419,35410,35398,35400,35452,35437,35436,35426,35461,35458,35460,35496,35489,35473,35493,35494,35482,35491,35524,35533,35522,35546,35563,35571,35559,35556,35569,35604,35552,35554,35575,35550,35547,35596,35591,35610,35553,35606,35600,35607,35616,35635,38827,35622,35627,35646,35624,35649,35660,35663,35662,35657,35670,35675,35674,35691,35679,35692,35695,35700,35709,35712,35724,35726,35730,35731,35734,35737,35738,35898,35905,35903,35912,35916,35918,35920,35925,35938,35948,35960,35962,35970,35977,35973,35978,35981,35982,35988,35964,35992,25117,36013,36010,36029,36018,36019,36014,36022,36040,36033,36068,36067,36058,36093,36090,36091,36100,36101,36106,36103,36111,36109,36112,40782,36115,36045,36116,36118,36199,36205,36209,36211,36225,36249,36290,36286,36282,36303,36314,36310,36300,36315,36299,36330,36331,36319,36323,36348,36360,36361,36351,36381,36382,36368,36383,36418,36405,36400,36404,36426,36423,36425,36428,36432,36424,36441,36452,36448,36394,36451,36437,36470,36466,36476,36481,36487,36485,36484,36491,36490,36499,36497,36500,36505,36522,36513,36524,36528,36550,36529,36542,36549,36552,36555,36571,36579,36604,36603,36587,36606,36618,36613,36629,36626,36633,36627,36636,36639,36635,36620,36646,36659,36667,36665,36677,36674,36670,36684,36681,36678,36686,36695,36700,36706,36707,36708,36764,36767,36771,36781,36783,36791,36826,36837,36834,36842,36847,36999,36852,36869,36857,36858,36881,36885,36897,36877,36894,36886,36875,36903,36918,36917,36921,36856,36943,36944,36945,36946,36878,36937,36926,36950,36952,36958,36968,36975,36982,38568,36978,36994,36989,36993,36992,37002,37001,37007,37032,37039,37041,37045,37090,37092,25160,37083,37122,37138,37145,37170,37168,37194,37206,37208,37219,37221,37225,37235,37234,37259,37257,37250,37282,37291,37295,37290,37301,37300,37306,37312,37313,37321,37323,37328,37334,37343,37345,37339,37372,37365,37366,37406,37375,37396,37420,37397,37393,37470,37463,37445,37449,37476,37448,37525,37439,37451,37456,37532,37526,37523,37531,37466,37583,37561,37559,37609,37647,37626,37700,37678,37657,37666,37658,37667,37690,37685,37691,37724,37728,37756,37742,37718,37808,37804,37805,37780,37817,37846,37847,37864,37861,37848,37827,37853,37840,37832,37860,37914,37908,37907,37891,37895,37904,37942,37931,37941,37921,37946,37953,37970,37956,37979,37984,37986,37982,37994,37417,38e3,38005,38007,38013,37978,38012,38014,38017,38015,38274,38279,38282,38292,38294,38296,38297,38304,38312,38311,38317,38332,38331,38329,38334,38346,28662,38339,38349,38348,38357,38356,38358,38364,38369,38373,38370,38433,38440,38446,38447,38466,38476,38479,38475,38519,38492,38494,38493,38495,38502,38514,38508,38541,38552,38549,38551,38570,38567,38577,38578,38576,38580,38582,38584,38585,38606,38603,38601,38605,35149,38620,38669,38613,38649,38660,38662,38664,38675,38670,38673,38671,38678,38681,38692,38698,38704,38713,38717,38718,38724,38726,38728,38722,38729,38748,38752,38756,38758,38760,21202,38763,38769,38777,38789,38780,38785,38778,38790,38795,38799,38800,38812,38824,38822,38819,38835,38836,38851,38854,38856,38859,38876,38893,40783,38898,31455,38902,38901,38927,38924,38968,38948,38945,38967,38973,38982,38991,38987,39019,39023,39024,39025,39028,39027,39082,39087,39089,39094,39108,39107,39110,39145,39147,39171,39177,39186,39188,39192,39201,39197,39198,39204,39200,39212,39214,39229,39230,39234,39241,39237,39248,39243,39249,39250,39244,39253,39319,39320,39333,39341,39342,39356,39391,39387,39389,39384,39377,39405,39406,39409,39410,39419,39416,39425,39439,39429,39394,39449,39467,39479,39493,39490,39488,39491,39486,39509,39501,39515,39511,39519,39522,39525,39524,39529,39531,39530,39597,39600,39612,39616,39631,39633,39635,39636,39646,39647,39650,39651,39654,39663,39659,39662,39668,39665,39671,39675,39686,39704,39706,39711,39714,39715,39717,39719,39720,39721,39722,39726,39727,39730,39748,39747,39759,39757,39758,39761,39768,39796,39827,39811,39825,39830,39831,39839,39840,39848,39860,39872,39882,39865,39878,39887,39889,39890,39907,39906,39908,39892,39905,39994,39922,39921,39920,39957,39956,39945,39955,39948,39942,39944,39954,39946,39940,39982,39963,39973,39972,39969,39984,40007,39986,40006,39998,40026,40032,40039,40054,40056,40167,40172,40176,40201,40200,40171,40195,40198,40234,40230,40367,40227,40223,40260,40213,40210,40257,40255,40254,40262,40264,40285,40286,40292,40273,40272,40281,40306,40329,40327,40363,40303,40314,40346,40356,40361,40370,40388,40385,40379,40376,40378,40390,40399,40386,40409,40403,40440,40422,40429,40431,40445,40474,40475,40478,40565,40569,40573,40577,40584,40587,40588,40594,40597,40593,40605,40613,40617,40632,40618,40621,38753,40652,40654,40655,40656,40660,40668,40670,40669,40672,40677,40680,40687,40692,40694,40695,40697,40699,40700,40701,40711,40712,30391,40725,40737,40748,40766,40778,40786,40788,40803,40799,40800,40801,40806,40807,40812,40810,40823,40818,40822,40853,40860,40864,22575,27079,36953,29796,20956,29081,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,32394,35100,37704,37512,34012,20425,28859,26161,26824,37625,26363,24389,20008,20193,20220,20224,20227,20281,20310,20370,20362,20378,20372,20429,20544,20514,20479,20510,20550,20592,20546,20628,20724,20696,20810,20836,20893,20926,20972,21013,21148,21158,21184,21211,21248,21255,21284,21362,21395,21426,21469,64014,21660,21642,21673,21759,21894,22361,22373,22444,22472,22471,64015,64016,22686,22706,22795,22867,22875,22877,22883,22948,22970,23382,23488,29999,23512,23532,23582,23718,23738,23797,23847,23891,64017,23874,23917,23992,23993,24016,24353,24372,24423,24503,24542,24669,24709,24714,24798,24789,24864,24818,24849,24887,24880,24984,25107,25254,25589,25696,25757,25806,25934,26112,26133,26171,26121,26158,26142,26148,26213,26199,26201,64018,26227,26265,26272,26290,26303,26362,26382,63785,26470,26555,26706,26560,26625,26692,26831,64019,26984,64020,27032,27106,27184,27243,27206,27251,27262,27362,27364,27606,27711,27740,27782,27759,27866,27908,28039,28015,28054,28076,28111,28152,28146,28156,28217,28252,28199,28220,28351,28552,28597,28661,28677,28679,28712,28805,28843,28943,28932,29020,28998,28999,64021,29121,29182,29361,29374,29476,64022,29559,29629,29641,29654,29667,29650,29703,29685,29734,29738,29737,29742,29794,29833,29855,29953,30063,30338,30364,30366,30363,30374,64023,30534,21167,30753,30798,30820,30842,31024,64024,64025,64026,31124,64027,31131,31441,31463,64028,31467,31646,64029,32072,32092,32183,32160,32214,32338,32583,32673,64030,33537,33634,33663,33735,33782,33864,33972,34131,34137,34155,64031,34224,64032,64033,34823,35061,35346,35383,35449,35495,35518,35551,64034,35574,35667,35711,36080,36084,36114,36214,64035,36559,64036,64037,36967,37086,64038,37141,37159,37338,37335,37342,37357,37358,37348,37349,37382,37392,37386,37434,37440,37436,37454,37465,37457,37433,37479,37543,37495,37496,37607,37591,37593,37584,64039,37589,37600,37587,37669,37665,37627,64040,37662,37631,37661,37634,37744,37719,37796,37830,37854,37880,37937,37957,37960,38290,63964,64041,38557,38575,38707,38715,38723,38733,38735,38737,38741,38999,39013,64042,64043,39207,64044,39326,39502,39641,39644,39797,39794,39823,39857,39867,39936,40304,40299,64045,40473,40657,null,null,8560,8561,8562,8563,8564,8565,8566,8567,8568,8569,65506,65508,65287,65282,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,8560,8561,8562,8563,8564,8565,8566,8567,8568,8569,8544,8545,8546,8547,8548,8549,8550,8551,8552,8553,65506,65508,65287,65282,12849,8470,8481,8757,32394,35100,37704,37512,34012,20425,28859,26161,26824,37625,26363,24389,20008,20193,20220,20224,20227,20281,20310,20370,20362,20378,20372,20429,20544,20514,20479,20510,20550,20592,20546,20628,20724,20696,20810,20836,20893,20926,20972,21013,21148,21158,21184,21211,21248,21255,21284,21362,21395,21426,21469,64014,21660,21642,21673,21759,21894,22361,22373,22444,22472,22471,64015,64016,22686,22706,22795,22867,22875,22877,22883,22948,22970,23382,23488,29999,23512,23532,23582,23718,23738,23797,23847,23891,64017,23874,23917,23992,23993,24016,24353,24372,24423,24503,24542,24669,24709,24714,24798,24789,24864,24818,24849,24887,24880,24984,25107,25254,25589,25696,25757,25806,25934,26112,26133,26171,26121,26158,26142,26148,26213,26199,26201,64018,26227,26265,26272,26290,26303,26362,26382,63785,26470,26555,26706,26560,26625,26692,26831,64019,26984,64020,27032,27106,27184,27243,27206,27251,27262,27362,27364,27606,27711,27740,27782,27759,27866,27908,28039,28015,28054,28076,28111,28152,28146,28156,28217,28252,28199,28220,28351,28552,28597,28661,28677,28679,28712,28805,28843,28943,28932,29020,28998,28999,64021,29121,29182,29361,29374,29476,64022,29559,29629,29641,29654,29667,29650,29703,29685,29734,29738,29737,29742,29794,29833,29855,29953,30063,30338,30364,30366,30363,30374,64023,30534,21167,30753,30798,30820,30842,31024,64024,64025,64026,31124,64027,31131,31441,31463,64028,31467,31646,64029,32072,32092,32183,32160,32214,32338,32583,32673,64030,33537,33634,33663,33735,33782,33864,33972,34131,34137,34155,64031,34224,64032,64033,34823,35061,35346,35383,35449,35495,35518,35551,64034,35574,35667,35711,36080,36084,36114,36214,64035,36559,64036,64037,36967,37086,64038,37141,37159,37338,37335,37342,37357,37358,37348,37349,37382,37392,37386,37434,37440,37436,37454,37465,37457,37433,37479,37543,37495,37496,37607,37591,37593,37584,64039,37589,37600,37587,37669,37665,37627,64040,37662,37631,37661,37634,37744,37719,37796,37830,37854,37880,37937,37957,37960,38290,63964,64041,38557,38575,38707,38715,38723,38733,38735,38737,38741,38999,39013,64042,64043,39207,64044,39326,39502,39641,39644,39797,39794,39823,39857,39867,39936,40304,40299,64045,40473,40657,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null],jis0212:[null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,728,711,184,729,733,175,731,730,65374,900,901,null,null,null,null,null,null,null,null,161,166,191,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,186,170,169,174,8482,164,8470,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,902,904,905,906,938,null,908,null,910,939,null,911,null,null,null,null,940,941,942,943,970,912,972,962,973,971,944,974,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,1026,1027,1028,1029,1030,1031,1032,1033,1034,1035,1036,1038,1039,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,1106,1107,1108,1109,1110,1111,1112,1113,1114,1115,1116,1118,1119,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,198,272,null,294,null,306,null,321,319,null,330,216,338,null,358,222,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,230,273,240,295,305,307,312,322,320,329,331,248,339,223,359,254,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,193,192,196,194,258,461,256,260,197,195,262,264,268,199,266,270,201,200,203,202,282,278,274,280,null,284,286,290,288,292,205,204,207,206,463,304,298,302,296,308,310,313,317,315,323,327,325,209,211,210,214,212,465,336,332,213,340,344,342,346,348,352,350,356,354,218,217,220,219,364,467,368,362,370,366,360,471,475,473,469,372,221,376,374,377,381,379,null,null,null,null,null,null,null,225,224,228,226,259,462,257,261,229,227,263,265,269,231,267,271,233,232,235,234,283,279,275,281,501,285,287,null,289,293,237,236,239,238,464,null,299,303,297,309,311,314,318,316,324,328,326,241,243,242,246,244,466,337,333,245,341,345,343,347,349,353,351,357,355,250,249,252,251,365,468,369,363,371,367,361,472,476,474,470,373,253,255,375,378,382,380,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,19970,19972,19973,19980,19986,19999,20003,20004,20008,20011,20014,20015,20016,20021,20032,20033,20036,20039,20049,20058,20060,20067,20072,20073,20084,20085,20089,20095,20109,20118,20119,20125,20143,20153,20163,20176,20186,20187,20192,20193,20194,20200,20207,20209,20211,20213,20221,20222,20223,20224,20226,20227,20232,20235,20236,20242,20245,20246,20247,20249,20270,20273,20320,20275,20277,20279,20281,20283,20286,20288,20290,20296,20297,20299,20300,20306,20308,20310,20312,20319,20323,20330,20332,20334,20337,20343,20344,20345,20346,20349,20350,20353,20354,20356,20357,20361,20362,20364,20366,20368,20370,20371,20372,20375,20377,20378,20382,20383,20402,20407,20409,20411,20412,20413,20414,20416,20417,20421,20422,20424,20425,20427,20428,20429,20431,20434,20444,20448,20450,20464,20466,20476,20477,20479,20480,20481,20484,20487,20490,20492,20494,20496,20499,20503,20504,20507,20508,20509,20510,20514,20519,20526,20528,20530,20531,20533,20544,20545,20546,20549,20550,20554,20556,20558,20561,20562,20563,20567,20569,20575,20576,20578,20579,20582,20583,20586,20589,20592,20593,20539,20609,20611,20612,20614,20618,20622,20623,20624,20626,20627,20628,20630,20635,20636,20638,20639,20640,20641,20642,20650,20655,20656,20665,20666,20669,20672,20675,20676,20679,20684,20686,20688,20691,20692,20696,20700,20701,20703,20706,20708,20710,20712,20713,20719,20721,20726,20730,20734,20739,20742,20743,20744,20747,20748,20749,20750,20722,20752,20759,20761,20763,20764,20765,20766,20771,20775,20776,20780,20781,20783,20785,20787,20788,20789,20792,20793,20802,20810,20815,20819,20821,20823,20824,20831,20836,20838,20862,20867,20868,20875,20878,20888,20893,20897,20899,20909,20920,20922,20924,20926,20927,20930,20936,20943,20945,20946,20947,20949,20952,20958,20962,20965,20974,20978,20979,20980,20983,20993,20994,20997,21010,21011,21013,21014,21016,21026,21032,21041,21042,21045,21052,21061,21065,21077,21079,21080,21082,21084,21087,21088,21089,21094,21102,21111,21112,21113,21120,21122,21125,21130,21132,21139,21141,21142,21143,21144,21146,21148,21156,21157,21158,21159,21167,21168,21174,21175,21176,21178,21179,21181,21184,21188,21190,21192,21196,21199,21201,21204,21206,21211,21212,21217,21221,21224,21225,21226,21228,21232,21233,21236,21238,21239,21248,21251,21258,21259,21260,21265,21267,21272,21275,21276,21278,21279,21285,21287,21288,21289,21291,21292,21293,21296,21298,21301,21308,21309,21310,21314,21324,21323,21337,21339,21345,21347,21349,21356,21357,21362,21369,21374,21379,21383,21384,21390,21395,21396,21401,21405,21409,21412,21418,21419,21423,21426,21428,21429,21431,21432,21434,21437,21440,21445,21455,21458,21459,21461,21466,21469,21470,21472,21478,21479,21493,21506,21523,21530,21537,21543,21544,21546,21551,21553,21556,21557,21571,21572,21575,21581,21583,21598,21602,21604,21606,21607,21609,21611,21613,21614,21620,21631,21633,21635,21637,21640,21641,21645,21649,21653,21654,21660,21663,21665,21670,21671,21673,21674,21677,21678,21681,21687,21689,21690,21691,21695,21702,21706,21709,21710,21728,21738,21740,21743,21750,21756,21758,21759,21760,21761,21765,21768,21769,21772,21773,21774,21781,21802,21803,21810,21813,21814,21819,21820,21821,21825,21831,21833,21834,21837,21840,21841,21848,21850,21851,21854,21856,21857,21860,21862,21887,21889,21890,21894,21896,21902,21903,21905,21906,21907,21908,21911,21923,21924,21933,21938,21951,21953,21955,21958,21961,21963,21964,21966,21969,21970,21971,21975,21976,21979,21982,21986,21993,22006,22015,22021,22024,22026,22029,22030,22031,22032,22033,22034,22041,22060,22064,22067,22069,22071,22073,22075,22076,22077,22079,22080,22081,22083,22084,22086,22089,22091,22093,22095,22100,22110,22112,22113,22114,22115,22118,22121,22125,22127,22129,22130,22133,22148,22149,22152,22155,22156,22165,22169,22170,22173,22174,22175,22182,22183,22184,22185,22187,22188,22189,22193,22195,22199,22206,22213,22217,22218,22219,22223,22224,22220,22221,22233,22236,22237,22239,22241,22244,22245,22246,22247,22248,22257,22251,22253,22262,22263,22273,22274,22279,22282,22284,22289,22293,22298,22299,22301,22304,22306,22307,22308,22309,22313,22314,22316,22318,22319,22323,22324,22333,22334,22335,22341,22342,22348,22349,22354,22370,22373,22375,22376,22379,22381,22382,22383,22384,22385,22387,22388,22389,22391,22393,22394,22395,22396,22398,22401,22403,22412,22420,22423,22425,22426,22428,22429,22430,22431,22433,22421,22439,22440,22441,22444,22456,22461,22471,22472,22476,22479,22485,22493,22494,22500,22502,22503,22505,22509,22512,22517,22518,22520,22525,22526,22527,22531,22532,22536,22537,22497,22540,22541,22555,22558,22559,22560,22566,22567,22573,22578,22585,22591,22601,22604,22605,22607,22608,22613,22623,22625,22628,22631,22632,22648,22652,22655,22656,22657,22663,22664,22665,22666,22668,22669,22671,22672,22676,22678,22685,22688,22689,22690,22694,22697,22705,22706,22724,22716,22722,22728,22733,22734,22736,22738,22740,22742,22746,22749,22753,22754,22761,22771,22789,22790,22795,22796,22802,22803,22804,34369,22813,22817,22819,22820,22824,22831,22832,22835,22837,22838,22847,22851,22854,22866,22867,22873,22875,22877,22878,22879,22881,22883,22891,22893,22895,22898,22901,22902,22905,22907,22908,22923,22924,22926,22930,22933,22935,22943,22948,22951,22957,22958,22959,22960,22963,22967,22970,22972,22977,22979,22980,22984,22986,22989,22994,23005,23006,23007,23011,23012,23015,23022,23023,23025,23026,23028,23031,23040,23044,23052,23053,23054,23058,23059,23070,23075,23076,23079,23080,23082,23085,23088,23108,23109,23111,23112,23116,23120,23125,23134,23139,23141,23143,23149,23159,23162,23163,23166,23179,23184,23187,23190,23193,23196,23198,23199,23200,23202,23207,23212,23217,23218,23219,23221,23224,23226,23227,23231,23236,23238,23240,23247,23258,23260,23264,23269,23274,23278,23285,23286,23293,23296,23297,23304,23319,23348,23321,23323,23325,23329,23333,23341,23352,23361,23371,23372,23378,23382,23390,23400,23406,23407,23420,23421,23422,23423,23425,23428,23430,23434,23438,23440,23441,23443,23444,23446,23464,23465,23468,23469,23471,23473,23474,23479,23482,23484,23488,23489,23501,23503,23510,23511,23512,23513,23514,23520,23535,23537,23540,23549,23564,23575,23582,23583,23587,23590,23593,23595,23596,23598,23600,23602,23605,23606,23641,23642,23644,23650,23651,23655,23656,23657,23661,23664,23668,23669,23674,23675,23676,23677,23687,23688,23690,23695,23698,23709,23711,23712,23714,23715,23718,23722,23730,23732,23733,23738,23753,23755,23762,23773,23767,23790,23793,23794,23796,23809,23814,23821,23826,23851,23843,23844,23846,23847,23857,23860,23865,23869,23871,23874,23875,23878,23880,23893,23889,23897,23882,23903,23904,23905,23906,23908,23914,23917,23920,23929,23930,23934,23935,23937,23939,23944,23946,23954,23955,23956,23957,23961,23963,23967,23968,23975,23979,23984,23988,23992,23993,24003,24007,24011,24016,24014,24024,24025,24032,24036,24041,24056,24057,24064,24071,24077,24082,24084,24085,24088,24095,24096,24110,24104,24114,24117,24126,24139,24144,24137,24145,24150,24152,24155,24156,24158,24168,24170,24171,24172,24173,24174,24176,24192,24203,24206,24226,24228,24229,24232,24234,24236,24241,24243,24253,24254,24255,24262,24268,24267,24270,24273,24274,24276,24277,24284,24286,24293,24299,24322,24326,24327,24328,24334,24345,24348,24349,24353,24354,24355,24356,24360,24363,24364,24366,24368,24372,24374,24379,24381,24383,24384,24388,24389,24391,24397,24400,24404,24408,24411,24416,24419,24420,24423,24431,24434,24436,24437,24440,24442,24445,24446,24457,24461,24463,24470,24476,24477,24482,24487,24491,24484,24492,24495,24496,24497,24504,24516,24519,24520,24521,24523,24528,24529,24530,24531,24532,24542,24545,24546,24552,24553,24554,24556,24557,24558,24559,24562,24563,24566,24570,24572,24583,24586,24589,24595,24596,24599,24600,24602,24607,24612,24621,24627,24629,24640,24647,24648,24649,24652,24657,24660,24662,24663,24669,24673,24679,24689,24702,24703,24706,24710,24712,24714,24718,24721,24723,24725,24728,24733,24734,24738,24740,24741,24744,24752,24753,24759,24763,24766,24770,24772,24776,24777,24778,24779,24782,24783,24788,24789,24793,24795,24797,24798,24802,24805,24818,24821,24824,24828,24829,24834,24839,24842,24844,24848,24849,24850,24851,24852,24854,24855,24857,24860,24862,24866,24874,24875,24880,24881,24885,24886,24887,24889,24897,24901,24902,24905,24926,24928,24940,24946,24952,24955,24956,24959,24960,24961,24963,24964,24971,24973,24978,24979,24983,24984,24988,24989,24991,24992,24997,25e3,25002,25005,25016,25017,25020,25024,25025,25026,25038,25039,25045,25052,25053,25054,25055,25057,25058,25063,25065,25061,25068,25069,25071,25089,25091,25092,25095,25107,25109,25116,25120,25122,25123,25127,25129,25131,25145,25149,25154,25155,25156,25158,25164,25168,25169,25170,25172,25174,25178,25180,25188,25197,25199,25203,25210,25213,25229,25230,25231,25232,25254,25256,25267,25270,25271,25274,25278,25279,25284,25294,25301,25302,25306,25322,25330,25332,25340,25341,25347,25348,25354,25355,25357,25360,25363,25366,25368,25385,25386,25389,25397,25398,25401,25404,25409,25410,25411,25412,25414,25418,25419,25422,25426,25427,25428,25432,25435,25445,25446,25452,25453,25457,25460,25461,25464,25468,25469,25471,25474,25476,25479,25482,25488,25492,25493,25497,25498,25502,25508,25510,25517,25518,25519,25533,25537,25541,25544,25550,25553,25555,25556,25557,25564,25568,25573,25578,25580,25586,25587,25589,25592,25593,25609,25610,25616,25618,25620,25624,25630,25632,25634,25636,25637,25641,25642,25647,25648,25653,25661,25663,25675,25679,25681,25682,25683,25684,25690,25691,25692,25693,25695,25696,25697,25699,25709,25715,25716,25723,25725,25733,25735,25743,25744,25745,25752,25753,25755,25757,25759,25761,25763,25766,25768,25772,25779,25789,25790,25791,25796,25801,25802,25803,25804,25806,25808,25809,25813,25815,25828,25829,25833,25834,25837,25840,25845,25847,25851,25855,25857,25860,25864,25865,25866,25871,25875,25876,25878,25881,25883,25886,25887,25890,25894,25897,25902,25905,25914,25916,25917,25923,25927,25929,25936,25938,25940,25951,25952,25959,25963,25978,25981,25985,25989,25994,26002,26005,26008,26013,26016,26019,26022,26030,26034,26035,26036,26047,26050,26056,26057,26062,26064,26068,26070,26072,26079,26096,26098,26100,26101,26105,26110,26111,26112,26116,26120,26121,26125,26129,26130,26133,26134,26141,26142,26145,26146,26147,26148,26150,26153,26154,26155,26156,26158,26160,26161,26163,26169,26167,26176,26181,26182,26186,26188,26193,26190,26199,26200,26201,26203,26204,26208,26209,26363,26218,26219,26220,26238,26227,26229,26239,26231,26232,26233,26235,26240,26236,26251,26252,26253,26256,26258,26265,26266,26267,26268,26271,26272,26276,26285,26289,26290,26293,26299,26303,26304,26306,26307,26312,26316,26318,26319,26324,26331,26335,26344,26347,26348,26350,26362,26373,26375,26382,26387,26393,26396,26400,26402,26419,26430,26437,26439,26440,26444,26452,26453,26461,26470,26476,26478,26484,26486,26491,26497,26500,26510,26511,26513,26515,26518,26520,26521,26523,26544,26545,26546,26549,26555,26556,26557,26617,26560,26562,26563,26565,26568,26569,26578,26583,26585,26588,26593,26598,26608,26610,26614,26615,26706,26644,26649,26653,26655,26664,26663,26668,26669,26671,26672,26673,26675,26683,26687,26692,26693,26698,26700,26709,26711,26712,26715,26731,26734,26735,26736,26737,26738,26741,26745,26746,26747,26748,26754,26756,26758,26760,26774,26776,26778,26780,26785,26787,26789,26793,26794,26798,26802,26811,26821,26824,26828,26831,26832,26833,26835,26838,26841,26844,26845,26853,26856,26858,26859,26860,26861,26864,26865,26869,26870,26875,26876,26877,26886,26889,26890,26896,26897,26899,26902,26903,26929,26931,26933,26936,26939,26946,26949,26953,26958,26967,26971,26979,26980,26981,26982,26984,26985,26988,26992,26993,26994,27002,27003,27007,27008,27021,27026,27030,27032,27041,27045,27046,27048,27051,27053,27055,27063,27064,27066,27068,27077,27080,27089,27094,27095,27106,27109,27118,27119,27121,27123,27125,27134,27136,27137,27139,27151,27153,27157,27162,27165,27168,27172,27176,27184,27186,27188,27191,27195,27198,27199,27205,27206,27209,27210,27214,27216,27217,27218,27221,27222,27227,27236,27239,27242,27249,27251,27262,27265,27267,27270,27271,27273,27275,27281,27291,27293,27294,27295,27301,27307,27311,27312,27313,27316,27325,27326,27327,27334,27337,27336,27340,27344,27348,27349,27350,27356,27357,27364,27367,27372,27376,27377,27378,27388,27389,27394,27395,27398,27399,27401,27407,27408,27409,27415,27419,27422,27428,27432,27435,27436,27439,27445,27446,27451,27455,27462,27466,27469,27474,27478,27480,27485,27488,27495,27499,27502,27504,27509,27517,27518,27522,27525,27543,27547,27551,27552,27554,27555,27560,27561,27564,27565,27566,27568,27576,27577,27581,27582,27587,27588,27593,27596,27606,27610,27617,27619,27622,27623,27630,27633,27639,27641,27647,27650,27652,27653,27657,27661,27662,27664,27666,27673,27679,27686,27687,27688,27692,27694,27699,27701,27702,27706,27707,27711,27722,27723,27725,27727,27730,27732,27737,27739,27740,27755,27757,27759,27764,27766,27768,27769,27771,27781,27782,27783,27785,27796,27797,27799,27800,27804,27807,27824,27826,27828,27842,27846,27853,27855,27856,27857,27858,27860,27862,27866,27868,27872,27879,27881,27883,27884,27886,27890,27892,27908,27911,27914,27918,27919,27921,27923,27930,27942,27943,27944,27751,27950,27951,27953,27961,27964,27967,27991,27998,27999,28001,28005,28007,28015,28016,28028,28034,28039,28049,28050,28052,28054,28055,28056,28074,28076,28084,28087,28089,28093,28095,28100,28104,28106,28110,28111,28118,28123,28125,28127,28128,28130,28133,28137,28143,28144,28148,28150,28156,28160,28164,28190,28194,28199,28210,28214,28217,28219,28220,28228,28229,28232,28233,28235,28239,28241,28242,28243,28244,28247,28252,28253,28254,28258,28259,28264,28275,28283,28285,28301,28307,28313,28320,28327,28333,28334,28337,28339,28347,28351,28352,28353,28355,28359,28360,28362,28365,28366,28367,28395,28397,28398,28409,28411,28413,28420,28424,28426,28428,28429,28438,28440,28442,28443,28454,28457,28458,28463,28464,28467,28470,28475,28476,28461,28495,28497,28498,28499,28503,28505,28506,28509,28510,28513,28514,28520,28524,28541,28542,28547,28551,28552,28555,28556,28557,28560,28562,28563,28564,28566,28570,28575,28576,28581,28582,28583,28584,28590,28591,28592,28597,28598,28604,28613,28615,28616,28618,28634,28638,28648,28649,28656,28661,28665,28668,28669,28672,28677,28678,28679,28685,28695,28704,28707,28719,28724,28727,28729,28732,28739,28740,28744,28745,28746,28747,28756,28757,28765,28766,28750,28772,28773,28780,28782,28789,28790,28798,28801,28805,28806,28820,28821,28822,28823,28824,28827,28836,28843,28848,28849,28852,28855,28874,28881,28883,28884,28885,28886,28888,28892,28900,28922,28931,28932,28933,28934,28935,28939,28940,28943,28958,28960,28971,28973,28975,28976,28977,28984,28993,28997,28998,28999,29002,29003,29008,29010,29015,29018,29020,29022,29024,29032,29049,29056,29061,29063,29068,29074,29082,29083,29088,29090,29103,29104,29106,29107,29114,29119,29120,29121,29124,29131,29132,29139,29142,29145,29146,29148,29176,29182,29184,29191,29192,29193,29203,29207,29210,29213,29215,29220,29227,29231,29236,29240,29241,29249,29250,29251,29253,29262,29263,29264,29267,29269,29270,29274,29276,29278,29280,29283,29288,29291,29294,29295,29297,29303,29304,29307,29308,29311,29316,29321,29325,29326,29331,29339,29352,29357,29358,29361,29364,29374,29377,29383,29385,29388,29397,29398,29400,29407,29413,29427,29428,29434,29435,29438,29442,29444,29445,29447,29451,29453,29458,29459,29464,29465,29470,29474,29476,29479,29480,29484,29489,29490,29493,29498,29499,29501,29507,29517,29520,29522,29526,29528,29533,29534,29535,29536,29542,29543,29545,29547,29548,29550,29551,29553,29559,29561,29564,29568,29569,29571,29573,29574,29582,29584,29587,29589,29591,29592,29596,29598,29599,29600,29602,29605,29606,29610,29611,29613,29621,29623,29625,29628,29629,29631,29637,29638,29641,29643,29644,29647,29650,29651,29654,29657,29661,29665,29667,29670,29671,29673,29684,29685,29687,29689,29690,29691,29693,29695,29696,29697,29700,29703,29706,29713,29722,29723,29732,29734,29736,29737,29738,29739,29740,29741,29742,29743,29744,29745,29753,29760,29763,29764,29766,29767,29771,29773,29777,29778,29783,29789,29794,29798,29799,29800,29803,29805,29806,29809,29810,29824,29825,29829,29830,29831,29833,29839,29840,29841,29842,29848,29849,29850,29852,29855,29856,29857,29859,29862,29864,29865,29866,29867,29870,29871,29873,29874,29877,29881,29883,29887,29896,29897,29900,29904,29907,29912,29914,29915,29918,29919,29924,29928,29930,29931,29935,29940,29946,29947,29948,29951,29958,29970,29974,29975,29984,29985,29988,29991,29993,29994,29999,30006,30009,30013,30014,30015,30016,30019,30023,30024,30030,30032,30034,30039,30046,30047,30049,30063,30065,30073,30074,30075,30076,30077,30078,30081,30085,30096,30098,30099,30101,30105,30108,30114,30116,30132,30138,30143,30144,30145,30148,30150,30156,30158,30159,30167,30172,30175,30176,30177,30180,30183,30188,30190,30191,30193,30201,30208,30210,30211,30212,30215,30216,30218,30220,30223,30226,30227,30229,30230,30233,30235,30236,30237,30238,30243,30245,30246,30249,30253,30258,30259,30261,30264,30265,30266,30268,30282,30272,30273,30275,30276,30277,30281,30283,30293,30297,30303,30308,30309,30317,30318,30319,30321,30324,30337,30341,30348,30349,30357,30363,30364,30365,30367,30368,30370,30371,30372,30373,30374,30375,30376,30378,30381,30397,30401,30405,30409,30411,30412,30414,30420,30425,30432,30438,30440,30444,30448,30449,30454,30457,30460,30464,30470,30474,30478,30482,30484,30485,30487,30489,30490,30492,30498,30504,30509,30510,30511,30516,30517,30518,30521,30525,30526,30530,30533,30534,30538,30541,30542,30543,30546,30550,30551,30556,30558,30559,30560,30562,30564,30567,30570,30572,30576,30578,30579,30580,30586,30589,30592,30596,30604,30605,30612,30613,30614,30618,30623,30626,30631,30634,30638,30639,30641,30645,30654,30659,30665,30673,30674,30677,30681,30686,30687,30688,30692,30694,30698,30700,30704,30705,30708,30712,30715,30725,30726,30729,30733,30734,30737,30749,30753,30754,30755,30765,30766,30768,30773,30775,30787,30788,30791,30792,30796,30798,30802,30812,30814,30816,30817,30819,30820,30824,30826,30830,30842,30846,30858,30863,30868,30872,30881,30877,30878,30879,30884,30888,30892,30893,30896,30897,30898,30899,30907,30909,30911,30919,30920,30921,30924,30926,30930,30931,30933,30934,30948,30939,30943,30944,30945,30950,30954,30962,30963,30976,30966,30967,30970,30971,30975,30982,30988,30992,31002,31004,31006,31007,31008,31013,31015,31017,31021,31025,31028,31029,31035,31037,31039,31044,31045,31046,31050,31051,31055,31057,31060,31064,31067,31068,31079,31081,31083,31090,31097,31099,31100,31102,31115,31116,31121,31123,31124,31125,31126,31128,31131,31132,31137,31144,31145,31147,31151,31153,31156,31160,31163,31170,31172,31175,31176,31178,31183,31188,31190,31194,31197,31198,31200,31202,31205,31210,31211,31213,31217,31224,31228,31234,31235,31239,31241,31242,31244,31249,31253,31259,31262,31265,31271,31275,31277,31279,31280,31284,31285,31288,31289,31290,31300,31301,31303,31304,31308,31317,31318,31321,31324,31325,31327,31328,31333,31335,31338,31341,31349,31352,31358,31360,31362,31365,31366,31370,31371,31376,31377,31380,31390,31392,31395,31404,31411,31413,31417,31419,31420,31430,31433,31436,31438,31441,31451,31464,31465,31467,31468,31473,31476,31483,31485,31486,31495,31508,31519,31523,31527,31529,31530,31531,31533,31534,31535,31536,31537,31540,31549,31551,31552,31553,31559,31566,31573,31584,31588,31590,31593,31594,31597,31599,31602,31603,31607,31620,31625,31630,31632,31633,31638,31643,31646,31648,31653,31660,31663,31664,31666,31669,31670,31674,31675,31676,31677,31682,31685,31688,31690,31700,31702,31703,31705,31706,31707,31720,31722,31730,31732,31733,31736,31737,31738,31740,31742,31745,31746,31747,31748,31750,31753,31755,31756,31758,31759,31769,31771,31776,31781,31782,31784,31788,31793,31795,31796,31798,31801,31802,31814,31818,31829,31825,31826,31827,31833,31834,31835,31836,31837,31838,31841,31843,31847,31849,31853,31854,31856,31858,31865,31868,31869,31878,31879,31887,31892,31902,31904,31910,31920,31926,31927,31930,31931,31932,31935,31940,31943,31944,31945,31949,31951,31955,31956,31957,31959,31961,31962,31965,31974,31977,31979,31989,32003,32007,32008,32009,32015,32017,32018,32019,32022,32029,32030,32035,32038,32042,32045,32049,32060,32061,32062,32064,32065,32071,32072,32077,32081,32083,32087,32089,32090,32092,32093,32101,32103,32106,32112,32120,32122,32123,32127,32129,32130,32131,32133,32134,32136,32139,32140,32141,32145,32150,32151,32157,32158,32166,32167,32170,32179,32182,32183,32185,32194,32195,32196,32197,32198,32204,32205,32206,32215,32217,32256,32226,32229,32230,32234,32235,32237,32241,32245,32246,32249,32250,32264,32272,32273,32277,32279,32284,32285,32288,32295,32296,32300,32301,32303,32307,32310,32319,32324,32325,32327,32334,32336,32338,32344,32351,32353,32354,32357,32363,32366,32367,32371,32376,32382,32385,32390,32391,32394,32397,32401,32405,32408,32410,32413,32414,32572,32571,32573,32574,32575,32579,32580,32583,32591,32594,32595,32603,32604,32605,32609,32611,32612,32613,32614,32621,32625,32637,32638,32639,32640,32651,32653,32655,32656,32657,32662,32663,32668,32673,32674,32678,32682,32685,32692,32700,32703,32704,32707,32712,32718,32719,32731,32735,32739,32741,32744,32748,32750,32751,32754,32762,32765,32766,32767,32775,32776,32778,32781,32782,32783,32785,32787,32788,32790,32797,32798,32799,32800,32804,32806,32812,32814,32816,32820,32821,32823,32825,32826,32828,32830,32832,32836,32864,32868,32870,32877,32881,32885,32897,32904,32910,32924,32926,32934,32935,32939,32952,32953,32968,32973,32975,32978,32980,32981,32983,32984,32992,33005,33006,33008,33010,33011,33014,33017,33018,33022,33027,33035,33046,33047,33048,33052,33054,33056,33060,33063,33068,33072,33077,33082,33084,33093,33095,33098,33100,33106,33111,33120,33121,33127,33128,33129,33133,33135,33143,33153,33168,33156,33157,33158,33163,33166,33174,33176,33179,33182,33186,33198,33202,33204,33211,33227,33219,33221,33226,33230,33231,33237,33239,33243,33245,33246,33249,33252,33259,33260,33264,33265,33266,33269,33270,33272,33273,33277,33279,33280,33283,33295,33299,33300,33305,33306,33309,33313,33314,33320,33330,33332,33338,33347,33348,33349,33350,33355,33358,33359,33361,33366,33372,33376,33379,33383,33389,33396,33403,33405,33407,33408,33409,33411,33412,33415,33417,33418,33422,33425,33428,33430,33432,33434,33435,33440,33441,33443,33444,33447,33448,33449,33450,33454,33456,33458,33460,33463,33466,33468,33470,33471,33478,33488,33493,33498,33504,33506,33508,33512,33514,33517,33519,33526,33527,33533,33534,33536,33537,33543,33544,33546,33547,33620,33563,33565,33566,33567,33569,33570,33580,33581,33582,33584,33587,33591,33594,33596,33597,33602,33603,33604,33607,33613,33614,33617,33621,33622,33623,33648,33656,33661,33663,33664,33666,33668,33670,33677,33682,33684,33685,33688,33689,33691,33692,33693,33702,33703,33705,33708,33726,33727,33728,33735,33737,33743,33744,33745,33748,33757,33619,33768,33770,33782,33784,33785,33788,33793,33798,33802,33807,33809,33813,33817,33709,33839,33849,33861,33863,33864,33866,33869,33871,33873,33874,33878,33880,33881,33882,33884,33888,33892,33893,33895,33898,33904,33907,33908,33910,33912,33916,33917,33921,33925,33938,33939,33941,33950,33958,33960,33961,33962,33967,33969,33972,33978,33981,33982,33984,33986,33991,33992,33996,33999,34003,34012,34023,34026,34031,34032,34033,34034,34039,34098,34042,34043,34045,34050,34051,34055,34060,34062,34064,34076,34078,34082,34083,34084,34085,34087,34090,34091,34095,34099,34100,34102,34111,34118,34127,34128,34129,34130,34131,34134,34137,34140,34141,34142,34143,34144,34145,34146,34148,34155,34159,34169,34170,34171,34173,34175,34177,34181,34182,34185,34187,34188,34191,34195,34200,34205,34207,34208,34210,34213,34215,34228,34230,34231,34232,34236,34237,34238,34239,34242,34247,34250,34251,34254,34221,34264,34266,34271,34272,34278,34280,34285,34291,34294,34300,34303,34304,34308,34309,34317,34318,34320,34321,34322,34328,34329,34331,34334,34337,34343,34345,34358,34360,34362,34364,34365,34368,34370,34374,34386,34387,34390,34391,34392,34393,34397,34400,34401,34402,34403,34404,34409,34412,34415,34421,34422,34423,34426,34445,34449,34454,34456,34458,34460,34465,34470,34471,34472,34477,34481,34483,34484,34485,34487,34488,34489,34495,34496,34497,34499,34501,34513,34514,34517,34519,34522,34524,34528,34531,34533,34535,34440,34554,34556,34557,34564,34565,34567,34571,34574,34575,34576,34579,34580,34585,34590,34591,34593,34595,34600,34606,34607,34609,34610,34617,34618,34620,34621,34622,34624,34627,34629,34637,34648,34653,34657,34660,34661,34671,34673,34674,34683,34691,34692,34693,34694,34695,34696,34697,34699,34700,34704,34707,34709,34711,34712,34713,34718,34720,34723,34727,34732,34733,34734,34737,34741,34750,34751,34753,34760,34761,34762,34766,34773,34774,34777,34778,34780,34783,34786,34787,34788,34794,34795,34797,34801,34803,34808,34810,34815,34817,34819,34822,34825,34826,34827,34832,34841,34834,34835,34836,34840,34842,34843,34844,34846,34847,34856,34861,34862,34864,34866,34869,34874,34876,34881,34883,34885,34888,34889,34890,34891,34894,34897,34901,34902,34904,34906,34908,34911,34912,34916,34921,34929,34937,34939,34944,34968,34970,34971,34972,34975,34976,34984,34986,35002,35005,35006,35008,35018,35019,35020,35021,35022,35025,35026,35027,35035,35038,35047,35055,35056,35057,35061,35063,35073,35078,35085,35086,35087,35093,35094,35096,35097,35098,35100,35104,35110,35111,35112,35120,35121,35122,35125,35129,35130,35134,35136,35138,35141,35142,35145,35151,35154,35159,35162,35163,35164,35169,35170,35171,35179,35182,35184,35187,35189,35194,35195,35196,35197,35209,35213,35216,35220,35221,35227,35228,35231,35232,35237,35248,35252,35253,35254,35255,35260,35284,35285,35286,35287,35288,35301,35305,35307,35309,35313,35315,35318,35321,35325,35327,35332,35333,35335,35343,35345,35346,35348,35349,35358,35360,35362,35364,35366,35371,35372,35375,35381,35383,35389,35390,35392,35395,35397,35399,35401,35405,35406,35411,35414,35415,35416,35420,35421,35425,35429,35431,35445,35446,35447,35449,35450,35451,35454,35455,35456,35459,35462,35467,35471,35472,35474,35478,35479,35481,35487,35495,35497,35502,35503,35507,35510,35511,35515,35518,35523,35526,35528,35529,35530,35537,35539,35540,35541,35543,35549,35551,35564,35568,35572,35573,35574,35580,35583,35589,35590,35595,35601,35612,35614,35615,35594,35629,35632,35639,35644,35650,35651,35652,35653,35654,35656,35666,35667,35668,35673,35661,35678,35683,35693,35702,35704,35705,35708,35710,35713,35716,35717,35723,35725,35727,35732,35733,35740,35742,35743,35896,35897,35901,35902,35909,35911,35913,35915,35919,35921,35923,35924,35927,35928,35931,35933,35929,35939,35940,35942,35944,35945,35949,35955,35957,35958,35963,35966,35974,35975,35979,35984,35986,35987,35993,35995,35996,36004,36025,36026,36037,36038,36041,36043,36047,36054,36053,36057,36061,36065,36072,36076,36079,36080,36082,36085,36087,36088,36094,36095,36097,36099,36105,36114,36119,36123,36197,36201,36204,36206,36223,36226,36228,36232,36237,36240,36241,36245,36254,36255,36256,36262,36267,36268,36271,36274,36277,36279,36281,36283,36288,36293,36294,36295,36296,36298,36302,36305,36308,36309,36311,36313,36324,36325,36327,36332,36336,36284,36337,36338,36340,36349,36353,36356,36357,36358,36363,36369,36372,36374,36384,36385,36386,36387,36390,36391,36401,36403,36406,36407,36408,36409,36413,36416,36417,36427,36429,36430,36431,36436,36443,36444,36445,36446,36449,36450,36457,36460,36461,36463,36464,36465,36473,36474,36475,36482,36483,36489,36496,36498,36501,36506,36507,36509,36510,36514,36519,36521,36525,36526,36531,36533,36538,36539,36544,36545,36547,36548,36551,36559,36561,36564,36572,36584,36590,36592,36593,36599,36601,36602,36589,36608,36610,36615,36616,36623,36624,36630,36631,36632,36638,36640,36641,36643,36645,36647,36648,36652,36653,36654,36660,36661,36662,36663,36666,36672,36673,36675,36679,36687,36689,36690,36691,36692,36693,36696,36701,36702,36709,36765,36768,36769,36772,36773,36774,36789,36790,36792,36798,36800,36801,36806,36810,36811,36813,36816,36818,36819,36821,36832,36835,36836,36840,36846,36849,36853,36854,36859,36862,36866,36868,36872,36876,36888,36891,36904,36905,36911,36906,36908,36909,36915,36916,36919,36927,36931,36932,36940,36955,36957,36962,36966,36967,36972,36976,36980,36985,36997,37e3,37003,37004,37006,37008,37013,37015,37016,37017,37019,37024,37025,37026,37029,37040,37042,37043,37044,37046,37053,37068,37054,37059,37060,37061,37063,37064,37077,37079,37080,37081,37084,37085,37087,37093,37074,37110,37099,37103,37104,37108,37118,37119,37120,37124,37125,37126,37128,37133,37136,37140,37142,37143,37144,37146,37148,37150,37152,37157,37154,37155,37159,37161,37166,37167,37169,37172,37174,37175,37177,37178,37180,37181,37187,37191,37192,37199,37203,37207,37209,37210,37211,37217,37220,37223,37229,37236,37241,37242,37243,37249,37251,37253,37254,37258,37262,37265,37267,37268,37269,37272,37278,37281,37286,37288,37292,37293,37294,37296,37297,37298,37299,37302,37307,37308,37309,37311,37314,37315,37317,37331,37332,37335,37337,37338,37342,37348,37349,37353,37354,37356,37357,37358,37359,37360,37361,37367,37369,37371,37373,37376,37377,37380,37381,37382,37383,37385,37386,37388,37392,37394,37395,37398,37400,37404,37405,37411,37412,37413,37414,37416,37422,37423,37424,37427,37429,37430,37432,37433,37434,37436,37438,37440,37442,37443,37446,37447,37450,37453,37454,37455,37457,37464,37465,37468,37469,37472,37473,37477,37479,37480,37481,37486,37487,37488,37493,37494,37495,37496,37497,37499,37500,37501,37503,37512,37513,37514,37517,37518,37522,37527,37529,37535,37536,37540,37541,37543,37544,37547,37551,37554,37558,37560,37562,37563,37564,37565,37567,37568,37569,37570,37571,37573,37574,37575,37576,37579,37580,37581,37582,37584,37587,37589,37591,37592,37593,37596,37597,37599,37600,37601,37603,37605,37607,37608,37612,37614,37616,37625,37627,37631,37632,37634,37640,37645,37649,37652,37653,37660,37661,37662,37663,37665,37668,37669,37671,37673,37674,37683,37684,37686,37687,37703,37704,37705,37712,37713,37714,37717,37719,37720,37722,37726,37732,37733,37735,37737,37738,37741,37743,37744,37745,37747,37748,37750,37754,37757,37759,37760,37761,37762,37768,37770,37771,37773,37775,37778,37781,37784,37787,37790,37793,37795,37796,37798,37800,37803,37812,37813,37814,37818,37801,37825,37828,37829,37830,37831,37833,37834,37835,37836,37837,37843,37849,37852,37854,37855,37858,37862,37863,37881,37879,37880,37882,37883,37885,37889,37890,37892,37896,37897,37901,37902,37903,37909,37910,37911,37919,37934,37935,37937,37938,37939,37940,37947,37951,37949,37955,37957,37960,37962,37964,37973,37977,37980,37983,37985,37987,37992,37995,37997,37998,37999,38001,38002,38020,38019,38264,38265,38270,38276,38280,38284,38285,38286,38301,38302,38303,38305,38310,38313,38315,38316,38324,38326,38330,38333,38335,38342,38344,38345,38347,38352,38353,38354,38355,38361,38362,38365,38366,38367,38368,38372,38374,38429,38430,38434,38436,38437,38438,38444,38449,38451,38455,38456,38457,38458,38460,38461,38465,38482,38484,38486,38487,38488,38497,38510,38516,38523,38524,38526,38527,38529,38530,38531,38532,38537,38545,38550,38554,38557,38559,38564,38565,38566,38569,38574,38575,38579,38586,38602,38610,23986,38616,38618,38621,38622,38623,38633,38639,38641,38650,38658,38659,38661,38665,38682,38683,38685,38689,38690,38691,38696,38705,38707,38721,38723,38730,38734,38735,38741,38743,38744,38746,38747,38755,38759,38762,38766,38771,38774,38775,38776,38779,38781,38783,38784,38793,38805,38806,38807,38809,38810,38814,38815,38818,38828,38830,38833,38834,38837,38838,38840,38841,38842,38844,38846,38847,38849,38852,38853,38855,38857,38858,38860,38861,38862,38864,38865,38868,38871,38872,38873,38877,38878,38880,38875,38881,38884,38895,38897,38900,38903,38904,38906,38919,38922,38937,38925,38926,38932,38934,38940,38942,38944,38947,38950,38955,38958,38959,38960,38962,38963,38965,38949,38974,38980,38983,38986,38993,38994,38995,38998,38999,39001,39002,39010,39011,39013,39014,39018,39020,39083,39085,39086,39088,39092,39095,39096,39098,39099,39103,39106,39109,39112,39116,39137,39139,39141,39142,39143,39146,39155,39158,39170,39175,39176,39185,39189,39190,39191,39194,39195,39196,39199,39202,39206,39207,39211,39217,39218,39219,39220,39221,39225,39226,39227,39228,39232,39233,39238,39239,39240,39245,39246,39252,39256,39257,39259,39260,39262,39263,39264,39323,39325,39327,39334,39344,39345,39346,39349,39353,39354,39357,39359,39363,39369,39379,39380,39385,39386,39388,39390,39399,39402,39403,39404,39408,39412,39413,39417,39421,39422,39426,39427,39428,39435,39436,39440,39441,39446,39454,39456,39458,39459,39460,39463,39469,39470,39475,39477,39478,39480,39495,39489,39492,39498,39499,39500,39502,39505,39508,39510,39517,39594,39596,39598,39599,39602,39604,39605,39606,39609,39611,39614,39615,39617,39619,39622,39624,39630,39632,39634,39637,39638,39639,39643,39644,39648,39652,39653,39655,39657,39660,39666,39667,39669,39673,39674,39677,39679,39680,39681,39682,39683,39684,39685,39688,39689,39691,39692,39693,39694,39696,39698,39702,39705,39707,39708,39712,39718,39723,39725,39731,39732,39733,39735,39737,39738,39741,39752,39755,39756,39765,39766,39767,39771,39774,39777,39779,39781,39782,39784,39786,39787,39788,39789,39790,39795,39797,39799,39800,39801,39807,39808,39812,39813,39814,39815,39817,39818,39819,39821,39823,39824,39828,39834,39837,39838,39846,39847,39849,39852,39856,39857,39858,39863,39864,39867,39868,39870,39871,39873,39879,39880,39886,39888,39895,39896,39901,39903,39909,39911,39914,39915,39919,39923,39927,39928,39929,39930,39933,39935,39936,39938,39947,39951,39953,39958,39960,39961,39962,39964,39966,39970,39971,39974,39975,39976,39977,39978,39985,39989,39990,39991,39997,40001,40003,40004,40005,40009,40010,40014,40015,40016,40019,40020,40022,40024,40027,40029,40030,40031,40035,40041,40042,40028,40043,40040,40046,40048,40050,40053,40055,40059,40166,40178,40183,40185,40203,40194,40209,40215,40216,40220,40221,40222,40239,40240,40242,40243,40244,40250,40252,40261,40253,40258,40259,40263,40266,40275,40276,40287,40291,40290,40293,40297,40298,40299,40304,40310,40311,40315,40316,40318,40323,40324,40326,40330,40333,40334,40338,40339,40341,40342,40343,40344,40353,40362,40364,40366,40369,40373,40377,40380,40383,40387,40391,40393,40394,40404,40405,40406,40407,40410,40414,40415,40416,40421,40423,40425,40427,40430,40432,40435,40436,40446,40458,40450,40455,40462,40464,40465,40466,40469,40470,40473,40476,40477,40570,40571,40572,40576,40578,40579,40580,40581,40583,40590,40591,40598,40600,40603,40606,40612,40616,40620,40622,40623,40624,40627,40628,40629,40646,40648,40651,40661,40671,40676,40679,40684,40685,40686,40688,40689,40690,40693,40696,40703,40706,40707,40713,40719,40720,40721,40722,40724,40726,40727,40729,40730,40731,40735,40738,40742,40746,40747,40751,40753,40754,40756,40759,40761,40762,40764,40765,40767,40769,40771,40772,40773,40774,40775,40787,40789,40790,40791,40792,40794,40797,40798,40808,40809,40813,40814,40815,40816,40817,40819,40821,40826,40829,40847,40848,40849,40850,40852,40854,40855,40862,40865,40866,40867,40869,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null],ibm866:[1040,1041,1042,1043,1044,1045,1046,1047,1048,1049,1050,1051,1052,1053,1054,1055,1056,1057,1058,1059,1060,1061,1062,1063,1064,1065,1066,1067,1068,1069,1070,1071,1072,1073,1074,1075,1076,1077,1078,1079,1080,1081,1082,1083,1084,1085,1086,1087,9617,9618,9619,9474,9508,9569,9570,9558,9557,9571,9553,9559,9565,9564,9563,9488,9492,9524,9516,9500,9472,9532,9566,9567,9562,9556,9577,9574,9568,9552,9580,9575,9576,9572,9573,9561,9560,9554,9555,9579,9578,9496,9484,9608,9604,9612,9616,9600,1088,1089,1090,1091,1092,1093,1094,1095,1096,1097,1098,1099,1100,1101,1102,1103,1025,1105,1028,1108,1031,1111,1038,1118,176,8729,183,8730,8470,164,9632,160],"iso-8859-2":[128,129,130,131,132,133,134,135,136,137,138,139,140,141,142,143,144,145,146,147,148,149,150,151,152,153,154,155,156,157,158,159,160,260,728,321,164,317,346,167,168,352,350,356,377,173,381,379,176,261,731,322,180,318,347,711,184,353,351,357,378,733,382,380,340,193,194,258,196,313,262,199,268,201,280,203,282,205,206,270,272,323,327,211,212,336,214,215,344,366,218,368,220,221,354,223,341,225,226,259,228,314,263,231,269,233,281,235,283,237,238,271,273,324,328,243,244,337,246,247,345,367,250,369,252,253,355,729],"iso-8859-3":[128,129,130,131,132,133,134,135,136,137,138,139,140,141,142,143,144,145,146,147,148,149,150,151,152,153,154,155,156,157,158,159,160,294,728,163,164,null,292,167,168,304,350,286,308,173,null,379,176,295,178,179,180,181,293,183,184,305,351,287,309,189,null,380,192,193,194,null,196,266,264,199,200,201,202,203,204,205,206,207,null,209,210,211,212,288,214,215,284,217,218,219,220,364,348,223,224,225,226,null,228,267,265,231,232,233,234,235,236,237,238,239,null,241,242,243,244,289,246,247,285,249,250,251,252,365,349,729],"iso-8859-4":[128,129,130,131,132,133,134,135,136,137,138,139,140,141,142,143,144,145,146,147,148,149,150,151,152,153,154,155,156,157,158,159,160,260,312,342,164,296,315,167,168,352,274,290,358,173,381,175,176,261,731,343,180,297,316,711,184,353,275,291,359,330,382,331,256,193,194,195,196,197,198,302,268,201,280,203,278,205,206,298,272,325,332,310,212,213,214,215,216,370,218,219,220,360,362,223,257,225,226,227,228,229,230,303,269,233,281,235,279,237,238,299,273,326,333,311,244,245,246,247,248,371,250,251,252,361,363,729],"iso-8859-5":[128,129,130,131,132,133,134,135,136,137,138,139,140,141,142,143,144,145,146,147,148,149,150,151,152,153,154,155,156,157,158,159,160,1025,1026,1027,1028,1029,1030,1031,1032,1033,1034,1035,1036,173,1038,1039,1040,1041,1042,1043,1044,1045,1046,1047,1048,1049,1050,1051,1052,1053,1054,1055,1056,1057,1058,1059,1060,1061,1062,1063,1064,1065,1066,1067,1068,1069,1070,1071,1072,1073,1074,1075,1076,1077,1078,1079,1080,1081,1082,1083,1084,1085,1086,1087,1088,1089,1090,1091,1092,1093,1094,1095,1096,1097,1098,1099,1100,1101,1102,1103,8470,1105,1106,1107,1108,1109,1110,1111,1112,1113,1114,1115,1116,167,1118,1119],"iso-8859-6":[128,129,130,131,132,133,134,135,136,137,138,139,140,141,142,143,144,145,146,147,148,149,150,151,152,153,154,155,156,157,158,159,160,null,null,null,164,null,null,null,null,null,null,null,1548,173,null,null,null,null,null,null,null,null,null,null,null,null,null,1563,null,null,null,1567,null,1569,1570,1571,1572,1573,1574,1575,1576,1577,1578,1579,1580,1581,1582,1583,1584,1585,1586,1587,1588,1589,1590,1591,1592,1593,1594,null,null,null,null,null,1600,1601,1602,1603,1604,1605,1606,1607,1608,1609,1610,1611,1612,1613,1614,1615,1616,1617,1618,null,null,null,null,null,null,null,null,null,null,null,null,null],"iso-8859-7":[128,129,130,131,132,133,134,135,136,137,138,139,140,141,142,143,144,145,146,147,148,149,150,151,152,153,154,155,156,157,158,159,160,8216,8217,163,8364,8367,166,167,168,169,890,171,172,173,null,8213,176,177,178,179,900,901,902,183,904,905,906,187,908,189,910,911,912,913,914,915,916,917,918,919,920,921,922,923,924,925,926,927,928,929,null,931,932,933,934,935,936,937,938,939,940,941,942,943,944,945,946,947,948,949,950,951,952,953,954,955,956,957,958,959,960,961,962,963,964,965,966,967,968,969,970,971,972,973,974,null],"iso-8859-8":[128,129,130,131,132,133,134,135,136,137,138,139,140,141,142,143,144,145,146,147,148,149,150,151,152,153,154,155,156,157,158,159,160,null,162,163,164,165,166,167,168,169,215,171,172,173,174,175,176,177,178,179,180,181,182,183,184,185,247,187,188,189,190,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,8215,1488,1489,1490,1491,1492,1493,1494,1495,1496,1497,1498,1499,1500,1501,1502,1503,1504,1505,1506,1507,1508,1509,1510,1511,1512,1513,1514,null,null,8206,8207,null],"iso-8859-10":[128,129,130,131,132,133,134,135,136,137,138,139,140,141,142,143,144,145,146,147,148,149,150,151,152,153,154,155,156,157,158,159,160,260,274,290,298,296,310,167,315,272,352,358,381,173,362,330,176,261,275,291,299,297,311,183,316,273,353,359,382,8213,363,331,256,193,194,195,196,197,198,302,268,201,280,203,278,205,206,207,208,325,332,211,212,213,214,360,216,370,218,219,220,221,222,223,257,225,226,227,228,229,230,303,269,233,281,235,279,237,238,239,240,326,333,243,244,245,246,361,248,371,250,251,252,253,254,312],"iso-8859-13":[128,129,130,131,132,133,134,135,136,137,138,139,140,141,142,143,144,145,146,147,148,149,150,151,152,153,154,155,156,157,158,159,160,8221,162,163,164,8222,166,167,216,169,342,171,172,173,174,198,176,177,178,179,8220,181,182,183,248,185,343,187,188,189,190,230,260,302,256,262,196,197,280,274,268,201,377,278,290,310,298,315,352,323,325,211,332,213,214,215,370,321,346,362,220,379,381,223,261,303,257,263,228,229,281,275,269,233,378,279,291,311,299,316,353,324,326,243,333,245,246,247,371,322,347,363,252,380,382,8217],"iso-8859-14":[128,129,130,131,132,133,134,135,136,137,138,139,140,141,142,143,144,145,146,147,148,149,150,151,152,153,154,155,156,157,158,159,160,7682,7683,163,266,267,7690,167,7808,169,7810,7691,7922,173,174,376,7710,7711,288,289,7744,7745,182,7766,7809,7767,7811,7776,7923,7812,7813,7777,192,193,194,195,196,197,198,199,200,201,202,203,204,205,206,207,372,209,210,211,212,213,214,7786,216,217,218,219,220,221,374,223,224,225,226,227,228,229,230,231,232,233,234,235,236,237,238,239,373,241,242,243,244,245,246,7787,248,249,250,251,252,253,375,255],"iso-8859-15":[128,129,130,131,132,133,134,135,136,137,138,139,140,141,142,143,144,145,146,147,148,149,150,151,152,153,154,155,156,157,158,159,160,161,162,163,8364,165,352,167,353,169,170,171,172,173,174,175,176,177,178,179,381,181,182,183,382,185,186,187,338,339,376,191,192,193,194,195,196,197,198,199,200,201,202,203,204,205,206,207,208,209,210,211,212,213,214,215,216,217,218,219,220,221,222,223,224,225,226,227,228,229,230,231,232,233,234,235,236,237,238,239,240,241,242,243,244,245,246,247,248,249,250,251,252,253,254,255],"iso-8859-16":[128,129,130,131,132,133,134,135,136,137,138,139,140,141,142,143,144,145,146,147,148,149,150,151,152,153,154,155,156,157,158,159,160,260,261,321,8364,8222,352,167,353,169,536,171,377,173,378,379,176,177,268,322,381,8221,182,183,382,269,537,187,338,339,376,380,192,193,194,258,196,262,198,199,200,201,202,203,204,205,206,207,272,323,210,211,212,336,214,346,368,217,218,219,220,280,538,223,224,225,226,259,228,263,230,231,232,233,234,235,236,237,238,239,273,324,242,243,244,337,246,347,369,249,250,251,252,281,539,255],"koi8-r":[9472,9474,9484,9488,9492,9496,9500,9508,9516,9524,9532,9600,9604,9608,9612,9616,9617,9618,9619,8992,9632,8729,8730,8776,8804,8805,160,8993,176,178,183,247,9552,9553,9554,1105,9555,9556,9557,9558,9559,9560,9561,9562,9563,9564,9565,9566,9567,9568,9569,1025,9570,9571,9572,9573,9574,9575,9576,9577,9578,9579,9580,169,1102,1072,1073,1094,1076,1077,1092,1075,1093,1080,1081,1082,1083,1084,1085,1086,1087,1103,1088,1089,1090,1091,1078,1074,1100,1099,1079,1096,1101,1097,1095,1098,1070,1040,1041,1062,1044,1045,1060,1043,1061,1048,1049,1050,1051,1052,1053,1054,1055,1071,1056,1057,1058,1059,1046,1042,1068,1067,1047,1064,1069,1065,1063,1066],"koi8-u":[9472,9474,9484,9488,9492,9496,9500,9508,9516,9524,9532,9600,9604,9608,9612,9616,9617,9618,9619,8992,9632,8729,8730,8776,8804,8805,160,8993,176,178,183,247,9552,9553,9554,1105,1108,9556,1110,1111,9559,9560,9561,9562,9563,1169,1118,9566,9567,9568,9569,1025,1028,9571,1030,1031,9574,9575,9576,9577,9578,1168,1038,169,1102,1072,1073,1094,1076,1077,1092,1075,1093,1080,1081,1082,1083,1084,1085,1086,1087,1103,1088,1089,1090,1091,1078,1074,1100,1099,1079,1096,1101,1097,1095,1098,1070,1040,1041,1062,1044,1045,1060,1043,1061,1048,1049,1050,1051,1052,1053,1054,1055,1071,1056,1057,1058,1059,1046,1042,1068,1067,1047,1064,1069,1065,1063,1066],macintosh:[196,197,199,201,209,214,220,225,224,226,228,227,229,231,233,232,234,235,237,236,238,239,241,243,242,244,246,245,250,249,251,252,8224,176,162,163,167,8226,182,223,174,169,8482,180,168,8800,198,216,8734,177,8804,8805,165,181,8706,8721,8719,960,8747,170,186,937,230,248,191,161,172,8730,402,8776,8710,171,187,8230,160,192,195,213,338,339,8211,8212,8220,8221,8216,8217,247,9674,255,376,8260,8364,8249,8250,64257,64258,8225,183,8218,8222,8240,194,202,193,203,200,205,206,207,204,211,212,63743,210,218,219,217,305,710,732,175,728,729,730,184,733,731,711],"windows-874":[8364,129,130,131,132,8230,134,135,136,137,138,139,140,141,142,143,144,8216,8217,8220,8221,8226,8211,8212,152,153,154,155,156,157,158,159,160,3585,3586,3587,3588,3589,3590,3591,3592,3593,3594,3595,3596,3597,3598,3599,3600,3601,3602,3603,3604,3605,3606,3607,3608,3609,3610,3611,3612,3613,3614,3615,3616,3617,3618,3619,3620,3621,3622,3623,3624,3625,3626,3627,3628,3629,3630,3631,3632,3633,3634,3635,3636,3637,3638,3639,3640,3641,3642,null,null,null,null,3647,3648,3649,3650,3651,3652,3653,3654,3655,3656,3657,3658,3659,3660,3661,3662,3663,3664,3665,3666,3667,3668,3669,3670,3671,3672,3673,3674,3675,null,null,null,null],"windows-1250":[8364,129,8218,131,8222,8230,8224,8225,136,8240,352,8249,346,356,381,377,144,8216,8217,8220,8221,8226,8211,8212,152,8482,353,8250,347,357,382,378,160,711,728,321,164,260,166,167,168,169,350,171,172,173,174,379,176,177,731,322,180,181,182,183,184,261,351,187,317,733,318,380,340,193,194,258,196,313,262,199,268,201,280,203,282,205,206,270,272,323,327,211,212,336,214,215,344,366,218,368,220,221,354,223,341,225,226,259,228,314,263,231,269,233,281,235,283,237,238,271,273,324,328,243,244,337,246,247,345,367,250,369,252,253,355,729],"windows-1251":[1026,1027,8218,1107,8222,8230,8224,8225,8364,8240,1033,8249,1034,1036,1035,1039,1106,8216,8217,8220,8221,8226,8211,8212,152,8482,1113,8250,1114,1116,1115,1119,160,1038,1118,1032,164,1168,166,167,1025,169,1028,171,172,173,174,1031,176,177,1030,1110,1169,181,182,183,1105,8470,1108,187,1112,1029,1109,1111,1040,1041,1042,1043,1044,1045,1046,1047,1048,1049,1050,1051,1052,1053,1054,1055,1056,1057,1058,1059,1060,1061,1062,1063,1064,1065,1066,1067,1068,1069,1070,1071,1072,1073,1074,1075,1076,1077,1078,1079,1080,1081,1082,1083,1084,1085,1086,1087,1088,1089,1090,1091,1092,1093,1094,1095,1096,1097,1098,1099,1100,1101,1102,1103],"windows-1252":[8364,129,8218,402,8222,8230,8224,8225,710,8240,352,8249,338,141,381,143,144,8216,8217,8220,8221,8226,8211,8212,732,8482,353,8250,339,157,382,376,160,161,162,163,164,165,166,167,168,169,170,171,172,173,174,175,176,177,178,179,180,181,182,183,184,185,186,187,188,189,190,191,192,193,194,195,196,197,198,199,200,201,202,203,204,205,206,207,208,209,210,211,212,213,214,215,216,217,218,219,220,221,222,223,224,225,226,227,228,229,230,231,232,233,234,235,236,237,238,239,240,241,242,243,244,245,246,247,248,249,250,251,252,253,254,255],"windows-1253":[8364,129,8218,402,8222,8230,8224,8225,136,8240,138,8249,140,141,142,143,144,8216,8217,8220,8221,8226,8211,8212,152,8482,154,8250,156,157,158,159,160,901,902,163,164,165,166,167,168,169,null,171,172,173,174,8213,176,177,178,179,900,181,182,183,904,905,906,187,908,189,910,911,912,913,914,915,916,917,918,919,920,921,922,923,924,925,926,927,928,929,null,931,932,933,934,935,936,937,938,939,940,941,942,943,944,945,946,947,948,949,950,951,952,953,954,955,956,957,958,959,960,961,962,963,964,965,966,967,968,969,970,971,972,973,974,null],"windows-1254":[8364,129,8218,402,8222,8230,8224,8225,710,8240,352,8249,338,141,142,143,144,8216,8217,8220,8221,8226,8211,8212,732,8482,353,8250,339,157,158,376,160,161,162,163,164,165,166,167,168,169,170,171,172,173,174,175,176,177,178,179,180,181,182,183,184,185,186,187,188,189,190,191,192,193,194,195,196,197,198,199,200,201,202,203,204,205,206,207,286,209,210,211,212,213,214,215,216,217,218,219,220,304,350,223,224,225,226,227,228,229,230,231,232,233,234,235,236,237,238,239,287,241,242,243,244,245,246,247,248,249,250,251,252,305,351,255],"windows-1255":[8364,129,8218,402,8222,8230,8224,8225,710,8240,138,8249,140,141,142,143,144,8216,8217,8220,8221,8226,8211,8212,732,8482,154,8250,156,157,158,159,160,161,162,163,8362,165,166,167,168,169,215,171,172,173,174,175,176,177,178,179,180,181,182,183,184,185,247,187,188,189,190,191,1456,1457,1458,1459,1460,1461,1462,1463,1464,1465,1466,1467,1468,1469,1470,1471,1472,1473,1474,1475,1520,1521,1522,1523,1524,null,null,null,null,null,null,null,1488,1489,1490,1491,1492,1493,1494,1495,1496,1497,1498,1499,1500,1501,1502,1503,1504,1505,1506,1507,1508,1509,1510,1511,1512,1513,1514,null,null,8206,8207,null],"windows-1256":[8364,1662,8218,402,8222,8230,8224,8225,710,8240,1657,8249,338,1670,1688,1672,1711,8216,8217,8220,8221,8226,8211,8212,1705,8482,1681,8250,339,8204,8205,1722,160,1548,162,163,164,165,166,167,168,169,1726,171,172,173,174,175,176,177,178,179,180,181,182,183,184,185,1563,187,188,189,190,1567,1729,1569,1570,1571,1572,1573,1574,1575,1576,1577,1578,1579,1580,1581,1582,1583,1584,1585,1586,1587,1588,1589,1590,215,1591,1592,1593,1594,1600,1601,1602,1603,224,1604,226,1605,1606,1607,1608,231,232,233,234,235,1609,1610,238,239,1611,1612,1613,1614,244,1615,1616,247,1617,249,1618,251,252,8206,8207,1746],"windows-1257":[8364,129,8218,131,8222,8230,8224,8225,136,8240,138,8249,140,168,711,184,144,8216,8217,8220,8221,8226,8211,8212,152,8482,154,8250,156,175,731,159,160,null,162,163,164,null,166,167,216,169,342,171,172,173,174,198,176,177,178,179,180,181,182,183,248,185,343,187,188,189,190,230,260,302,256,262,196,197,280,274,268,201,377,278,290,310,298,315,352,323,325,211,332,213,214,215,370,321,346,362,220,379,381,223,261,303,257,263,228,229,281,275,269,233,378,279,291,311,299,316,353,324,326,243,333,245,246,247,371,322,347,363,252,380,382,729],"windows-1258":[8364,129,8218,402,8222,8230,8224,8225,710,8240,138,8249,338,141,142,143,144,8216,8217,8220,8221,8226,8211,8212,732,8482,154,8250,339,157,158,376,160,161,162,163,164,165,166,167,168,169,170,171,172,173,174,175,176,177,178,179,180,181,182,183,184,185,186,187,188,189,190,191,192,193,194,258,196,197,198,199,200,201,202,203,768,205,206,207,272,209,777,211,212,416,214,215,216,217,218,219,220,431,771,223,224,225,226,259,228,229,230,231,232,233,234,235,769,237,238,239,273,241,803,243,244,417,246,247,248,249,250,251,252,432,8363,255],"x-mac-cyrillic":[1040,1041,1042,1043,1044,1045,1046,1047,1048,1049,1050,1051,1052,1053,1054,1055,1056,1057,1058,1059,1060,1061,1062,1063,1064,1065,1066,1067,1068,1069,1070,1071,8224,176,1168,163,167,8226,182,1030,174,169,8482,1026,1106,8800,1027,1107,8734,177,8804,8805,1110,181,1169,1032,1028,1108,1031,1111,1033,1113,1034,1114,1112,1029,172,8730,402,8776,8710,171,187,8230,160,1035,1115,1036,1116,1109,8211,8212,8220,8221,8216,8217,247,8222,1038,1118,1039,1119,8470,1025,1105,1103,1072,1073,1074,1075,1076,1077,1078,1079,1080,1081,1082,1083,1084,1085,1086,1087,1088,1089,1090,1091,1092,1093,1094,1095,1096,1097,1098,1099,1100,1101,1102,8364]}}(this||{})},function(l,n,u){"use strict";(function(n){const e=u(2);let t=u(15);const r=u(16);l.exports=class{constructor(l){this.params=l}sign(l,u){let i=this.params;return u=(new r).encode(u),t.subtle.sign(i,l,u).then(l=>e(n.from(l)))}verify(l,n,u){let i=this.params;return"string"==typeof n&&(n=Uint8Array.from(e.toBuffer(n))),"string"==typeof u&&(u=(new r).encode(u)),t.subtle.verify(i,l,n,u)}async importKey(l){let n=Object.assign({},l),u=this.params,e=l.key_ops||[];return"sig"===l.use&&e.push("verify"),"enc"===l.use?Promise.resolve(l):(l.key_ops&&(e=l.key_ops),t.subtle.importKey("jwk",n,u,!0,e).then(l=>(Object.defineProperty(n,"cryptoKey",{enumerable:!1,value:l}),n)))}}}).call(this,u(1).Buffer)},function(l,n,u){const e=u(17),t=["sign","verify","encrypt","decrypt","importKey"];l.exports=class{constructor(){t.forEach(l=>{this[l]={}})}static get operations(){return t}define(l,n,u){this[n][l]=u}normalize(l,n){let u=this[l];if(!u)return new SyntaxError;let t=u[n];return t||new e(n)}}},function(l,n,u){"use strict";const e=u(20);class t{constructor({keys:l}={}){this.keys=l}static async importKeys(l){if(!l.keys)return Promise.reject(new Error("Cannot import JWKSet: keys property is empty"));let n,u;try{n=new t(l),u=l.keys.map(l=>e.importKey(l))}catch(l){return Promise.reject(l)}return Promise.all(u).then(l=>(n.keys=l,n))}}l.exports=t},function(l,n,u){const e=u(2),t=u(21),r=u(19),i=u(22);class o{constructor(l={}){this.type=l.type,this.segments=l.segments,this.header=new i(l.header),this.protected=l.protected,this.unprotected=l.unprotected,this.iv=l.iv,this.aad=l.aad,this.ciphertext=l.ciphertext,this.tag=l.tag,this.recipients=l.recipients,this.payload=l.payload,this.signatures=l.signatures,this.signature=l.signature,this.key=l.key,this.serialization=l.serialization||"compact"}static decode(l){let n,u=this;if("string"!=typeof l)throw new r("JWT must be a string");if(l.startsWith("{")){try{l=JSON.parse(l,()=>{})}catch(l){throw new r("Invalid JWT serialization")}l.signatures||l.recipients?l.serialization="json":l.serialization="flattened",n=new u(l,{filter:!1})}else try{let t="compact",r=l.split("."),i=r.length;if(3!==i&&5!==i)throw new Error("Malformed JWT");let o=JSON.parse(e.decode(r[0]));if(3===i){n=new u({type:"JWS",segments:r,header:o,payload:JSON.parse(e.decode(r[1])),signature:r[2],serialization:t},{filter:!1})}}catch(l){throw new r("Invalid JWT compact serialization")}return n}static encode(l,n,u){return new o(l,n).encode(u)}static async verify(l,n){let u=o.decode(n);return u.key=l,u.verify().then(l=>u)}isJWE(){return!!this.header.enc}resolveKeys(l){let n,u,e=this.header.kid;if(Array.isArray(l)&&(n=l),l.keys&&(n=l.keys),l.keys||"object"!=typeof l||(n=[l]),!n)throw new r("Invalid JWK argument");return u=e?n.find(l=>l.kid===e):n.find(l=>"sig"===l.use),!!u&&(this.key=u.cryptoKey,!0)}async encode(){let l=this;return this.isJWE()?JWE.encrypt(l):t.sign(l)}async verify(){return t.verify(this)}}l.exports=o},function(l,n,u){(function(n){const e=u(7),t=u(2),{crypto:r,JWT:i}=u(4),o=u(9),{URL:s}=u(6);class a{static create(l,u,i){const{provider:c,defaults:f,registration:h}=l;let p,d,y,g;return Promise.resolve().then(()=>(e(c.configuration,"RelyingParty provider OpenID Configuration is missing"),e(f.authenticate,"RelyingParty default authentication parameters are missing"),e(h,"RelyingParty client registration is missing"),p=c.configuration.issuer,d=c.configuration.authorization_endpoint,y={client_id:h.client_id},g=Object.assign(f.authenticate,y,u),e(p,"Missing issuer in provider OpenID Configuration"),e(d,"Missing authorization_endpoint in provider OpenID Configuration"),e(g.scope,"Missing scope parameter in authentication request"),e(g.response_type,"Missing response_type parameter in authentication request"),e(g.client_id,"Missing client_id parameter in authentication request"),e(g.redirect_uri,"Missing redirect_uri parameter in authentication request"),g.state=Array.from(r.getRandomValues(new Uint8Array(16))),g.nonce=Array.from(r.getRandomValues(new Uint8Array(16))),Promise.all([r.subtle.digest({name:"SHA-256"},new Uint8Array(g.state)),r.subtle.digest({name:"SHA-256"},new Uint8Array(g.nonce))]))).then(l=>{let u=t(n.from(l[0])),e=t(n.from(l[1]));i[`${p}/requestHistory/${u}`]=JSON.stringify(g),g.state=u,g.nonce=e}).then(()=>a.generateSessionKeys()).then(l=>{a.storeSessionKeys(l,g,i)}).then(()=>{if(c.configuration.request_parameter_supported)return a.encodeRequestParams(g).then(l=>{g=l})}).then(()=>{let l=new s(d);return l.search=o.encode(g),l.href})}static generateSessionKeys(){return r.subtle.generateKey({name:"RSASSA-PKCS1-v1_5",modulusLength:2048,publicExponent:new Uint8Array([1,0,1]),hash:{name:"SHA-256"}},!0,["sign","verify"]).then(l=>Promise.all([r.subtle.exportKey("jwk",l.publicKey),r.subtle.exportKey("jwk",l.privateKey)])).then(l=>{let[n,u]=l;return{public:n,private:u}})}static storeSessionKeys(l,n,u){u["oidc.session.privateKey"]=JSON.stringify(l.private),n.key=l.public}static encodeRequestParams(l){const n=["scope","client_id","response_type","state"],u=Object.keys(l).filter(l=>!n.includes(l));let e={};return u.forEach(n=>{e[n]=l[n]}),new i({header:{alg:"none"},payload:e},{filter:!1}).encode().then(n=>({scope:l.scope,client_id:l.client_id,response_type:l.response_type,request:n,state:l.state}))}}l.exports=a}).call(this,u(1).Buffer)},function(l,n,u){(function(n,e){const{URL:t}=u(6),r=u(7),{crypto:i}=u(4),o=u(2),s=u(5),a=s.Headers?s.Headers:n.Headers,c=u(9),f=u(52),h=u(53),p=u(10),d=u(54);class y{constructor({rp:l,redirect:n,body:u,session:e,mode:t,params:r={}}){this.rp=l,this.redirect=n,this.body=u,this.session=e,this.mode=t,this.params=r}static validateResponse(l){return Promise.resolve(l).then(this.parseResponse).then(this.errorResponse).then(this.matchRequest).then(this.validateStateParam).then(this.validateResponseMode).then(this.validateResponseParams).then(this.exchangeAuthorizationCode).then(this.validateIDToken).then(h.fromAuthResponse)}static parseResponse(l){let{redirect:n,body:u}=l;if(n&&u||!n&&!u)throw new d(400,"Invalid response mode");if(n){let u=new t(n),{search:e,hash:r}=u;if(e&&r||!e&&!r)throw new d(400,"Invalid response mode");e&&(l.params=c.decode(e.substring(1)),l.mode="query"),r&&(l.params=c.decode(r.substring(1)),l.mode="fragment")}return u&&(l.params=c.decode(u),l.mode="form_post"),l}static errorResponse(l){const n=l.params.error;if(n){const u={};u.error=n,u.error_description=l.params.error_description,u.error_uri=l.params.error_uri,u.state=l.params.state;const e=new Error("AuthenticationResponse error: "+n);throw e.info=u,e}return l}static matchRequest(l){let{rp:n,params:u,session:e}=l,t=u.state,r=n.provider.configuration.issuer;if(!t)throw new Error("Missing state parameter in authentication response");let i=e[`${r}/requestHistory/${t}`];if(!i)throw new Error("Mismatching state parameter in authentication response");return l.request=JSON.parse(i),l}static validateStateParam(l){let n=new Uint8Array(l.request.state),u=l.params.state;return i.subtle.digest({name:"SHA-256"},n).then(n=>{if(u!==o(e.from(n)))throw new Error("Mismatching state parameter in authentication response");return l})}static validateResponseMode(l){if("code"!==l.request.response_type&&"query"===l.mode)throw new Error("Invalid response mode");return l}static validateResponseParams(l){let{request:n,params:u}=l,e=n.response_type.split(" ");return e.includes("code")&&r(u.code,"Missing authorization code in authentication response"),e.includes("id_token")&&r(u.id_token,"Missing id_token in authentication response"),e.includes("token")&&(r(u.access_token,"Missing access_token in authentication response"),r(u.token_type,"Missing token_type in authentication response")),l}static exchangeAuthorizationCode(l){let{rp:n,params:u,request:t}=l,i=u.code;if(!i||"code"!==t.response_type)return Promise.resolve(l);let{provider:o,registration:f}=n,h=f.client_id,d=f.client_secret;if(!d)return Promise.reject(new Error("Client cannot exchange authorization code because it is not a confidential client"));let y=o.configuration.token_endpoint,g=new a({"Content-Type":"application/x-www-form-urlencoded"}),w={grant_type:"authorization_code",code:i,redirect_uri:t.redirect_uri},m=f.token_endpoint_auth_method||"client_secret_basic";if("client_secret_basic"===m){let l=new e(`${h}:${d}`).toString("base64");g.set("Authorization","Basic "+l)}"client_secret_post"===m&&(w.client_id=h,w.client_secret=d);let v=c.encode(w);return s(y,{method:"POST",headers:g,body:v}).then(p("Error exchanging authorization code")).then(l=>l.json()).then(n=>(r(n.access_token,"Missing access_token in token response"),r(n.token_type,"Missing token_type in token response"),r(n.id_token,"Missing id_token in token response"),l.params=Object.assign(l.params,n),l))}static validateIDToken(l){return l.params.id_token?Promise.resolve(l).then(y.decryptIDToken).then(y.decodeIDToken).then(y.validateIssuer).then(y.validateAudience).then(y.resolveKeys).then(y.verifySignature).then(y.validateExpires).then(y.verifyNonce).then(y.validateAcr).then(y.validateAuthTime).then(y.validateAccessTokenHash).then(y.validateAuthorizationCodeHash):Promise.resolve(l)}static decryptIDToken(l){return Promise.resolve(l)}static decodeIDToken(l){let n=l.params.id_token;try{l.decoded=f.decode(n)}catch(l){const u=new d(400,"Error decoding ID Token");throw u.cause=l,u.info={id_token:n},u}return l}static validateIssuer(l){let n=l.rp.provider.configuration;if(l.decoded.payload.iss!==n.issuer)throw new Error("Mismatching issuer in ID Token");return l}static validateAudience(l){let n=l.rp.registration,{aud:u,azp:e}=l.decoded.payload;if("string"==typeof u&&u!==n.client_id)throw new Error("Mismatching audience in id_token");if(Array.isArray(u)&&!u.includes(n.client_id))throw new Error("Mismatching audience in id_token");if(Array.isArray(u)&&!e)throw new Error("Missing azp claim in id_token");if(e&&e!==n.client_id)throw new Error("Mismatching azp claim in id_token");return l}static resolveKeys(l){let n=l.rp,u=n.provider,e=l.decoded,t=!1;return Promise.resolve(u.jwks).then(l=>l||(t=!0,n.jwks())).then(u=>{if(e.resolveKeys(u))return Promise.resolve(l);if(!t)return n.jwks().then(n=>{if(e.resolveKeys(n))return Promise.resolve(l);throw new Error("Cannot resolve signing key for ID Token")});throw new Error("Cannot resolve signing key for ID Token")})}static verifySignature(l){let n=l.decoded.header.alg,u=l.rp.registration.id_token_signed_response_alg||"RS256";if(n!==u)throw new Error("Expected ID Token to be signed with "+u);return l.decoded.verify().then(n=>{if(!n)throw new Error("Invalid ID Token signature");return l})}static validateExpires(l){if(l.decoded.payload.exp<=Math.floor(Date.now()/1e3))throw new Error("Expired ID Token");return l}static verifyNonce(l){let n=new Uint8Array(l.request.nonce),u=l.decoded.payload.nonce;if(!u)throw new Error("Missing nonce in ID Token");return i.subtle.digest({name:"SHA-256"},n).then(n=>{if(u!==o(e.from(n)))throw new Error("Mismatching nonce in ID Token");return l})}static validateAcr(l){return l}static validateAuthTime(l){return l}static validateAccessTokenHash(l){return l}static validateAuthorizationCodeHash(l){return l}}l.exports=y}).call(this,u(3),u(1).Buffer)},function(l,n,u){const{JWT:e}=u(4),t=["iss","sub","aud","exp","iat"];class r{constructor({iss:l,sub:n,aud:u,exp:e,iat:t,nbf:r,jti:i,auth_time:o,nonce:s,acr:a,amr:c}={}){this.iss=l,this.sub=n,this.aud=u,this.exp=e,this.iat=t,this.nbf=r,this.jti=i,this.auth_time=o,this.nonce=s,this.acr=a,this.amr=c}validate(){let l,n=!0;try{for(const l of t)if(!this[l])throw n=!1,new Error(`Required claim ${l} is missing.`)}catch(n){l=n}return{valid:n,error:l}}}l.exports=class extends e{constructor(l={}){super(l),this.payload=new r(l.payload)}validate(){const l=this.payload.validate();if(!l.valid)return l;return{valid:!0,error:void 0}}},l.exports.TokenClaimsSet=r},function(l,n,u){"use strict";const e=u(5),t=u(10),r=u(11);class i{constructor(l){this.credentialType=l.credentialType||"access_token",this.issuer=l.issuer,this.authorization=l.authorization||{},this.sessionKey=l.sessionKey,this.idClaims=l.idClaims,this.accessClaims=l.accessClaims}static from(l){return new i(l)}static fromAuthResponse(l){const n=u(14);let e=l.decoded&&l.decoded.payload||{},{rp:t}=l,r=t.registration,o={credentialType:(t.defaults.authenticate||{}).credential_type||t.defaults.popToken?"pop_token":"access_token",sessionKey:l.session[n.SESSION_PRIVATE_KEY],issuer:e.iss,idClaims:e,authorization:{client_id:r.client_id,access_token:l.params.access_token,id_token:l.params.id_token,refresh_token:l.params.refresh_token}};return i.from(o)}get fetch(){return(l,n)=>Promise.resolve().then(()=>this.hasCredentials()?this.fetchWithCredentials(l,n):e(l,n)).then(t("Error while fetching resource"))}bearerTokenFor(l){switch(this.credentialType){case"pop_token":return r.issueFor(l,this);default:return Promise.resolve(this.authorization[this.credentialType])}}hasCredentials(){switch(this.credentialType){case"pop_token":return!!this.authorization.id_token;default:return!!this.authorization[this.credentialType]}}fetchWithCredentials(l,n={}){return n.headers=n.headers||{},this.bearerTokenFor(l).then(u=>(n.headers.authorization="Bearer "+u,e(l,n)))}}l.exports=i},function(l,n,u){n=l.exports=i;var e=u(55),t=u(56),r=n;function i(l,n,u){if("string"==typeof l&&(l=r[l]),"number"!=typeof l)throw new TypeError("Non-numeric HTTP code");"object"==typeof n&&null!=n&&(u=n,n=null),e.call(this,n||t[l],u),this.code=l}for(var o in i.prototype=Object.create(e.prototype,{constructor:{value:i,configurable:!0,writable:!0}}),i.prototype.name="HttpError",Object.defineProperties(i.prototype,{statusCode:s("code"),statusMessage:s("message"),status:{configurable:!0,get:function(){return this.code},set:function(l){Object.defineProperty(this,"status",{value:l,configurable:!0,enumerable:!0,writable:!0})}}}),i.prototype.toString=function(){return this.name+": "+this.code+" "+this.message},t){n[t[o].replace("'","").replace(/[- ]/g,"_").toUpperCase()]=+o}function s(l){return{configurable:!0,get:function(){return this[l]},set:function(n){return this[l]=n}}}},function(l,n){var u=Object.hasOwnProperty,e=Object.getPrototypeOf,t=Error.captureStackTrace;function r(l,n){if(l&&"object"==typeof l?(n=l,l=void 0):this.message=l,n)for(var r in n)this[r]=n[r];u.call(this,"name")||(this.name=u.call(e(this),"name")?this.name:this.constructor.name),t&&!("stack"in this)&&t(this,this.constructor)}l.exports=r,r.prototype=Object.create(Error.prototype,{constructor:{value:r,configurable:!0,writable:!0}}),r.prototype.name="StandardError"},function(l){l.exports=JSON.parse('{"100":"Continue","101":"Switching Protocols","102":"Processing","200":"OK","201":"Created","202":"Accepted","203":"Non-Authoritative Information","204":"No Content","205":"Reset Content","206":"Partial Content","207":"Multi-Status","208":"Already Reported","226":"IM Used","300":"Multiple Choices","301":"Moved Permanently","302":"Found","303":"See Other","304":"Not Modified","305":"Use Proxy","307":"Temporary Redirect","308":"Permanent Redirect","400":"Bad Request","401":"Unauthorized","402":"Payment Required","403":"Forbidden","404":"Not Found","405":"Method Not Allowed","406":"Not Acceptable","407":"Proxy Authentication Required","408":"Request Timeout","409":"Conflict","410":"Gone","411":"Length Required","412":"Precondition Failed","413":"Payload Too Large","414":"URI Too Long","415":"Unsupported Media Type","416":"Range Not Satisfiable","417":"Expectation Failed","418":"I\'m a teapot","421":"Misdirected Request","422":"Unprocessable Entity","423":"Locked","424":"Failed Dependency","425":"Unordered Collection","426":"Upgrade Required","428":"Precondition Required","429":"Too Many Requests","431":"Request Header Fields Too Large","500":"Internal Server Error","501":"Not Implemented","502":"Bad Gateway","503":"Service Unavailable","504":"Gateway Timeout","505":"HTTP Version Not Supported","506":"Variant Also Negotiates","507":"Insufficient Storage","508":"Loop Detected","509":"Bandwidth Limit Exceeded","510":"Not Extended","511":"Network Authentication Required"}')},function(l,n,u){"use strict";u.r(n);var e=u(0),t=u.n(e),r=u(24),i=u.n(r);u(5);function o(){return"undefined"!=typeof window?window.location:{href:"https://example.org/",pathname:"/",origin:"example.org"}}const s=()=>o().href,a=l=>("string"!=typeof l&&(l="url"in l?l.url:l.toString()),new URL(l,s()).toString()),c="solid-auth-client";class f{constructor(l,n,u){t()(this,"_clientWindow",void 0),t()(this,"_clientOrigin",void 0),t()(this,"_handler",void 0),t()(this,"_messageListener",void 0),this._clientWindow=l,this._clientOrigin=n,this._handler=u,this._messageListener=l=>this._handleMessage(l)}async _handleMessage({data:l,origin:n}){if(n!==this._clientOrigin)return void console.warn("solid-auth-client is listening to ".concat(this._clientOrigin," ")+"so ignored a message received from ".concat(n,"."));const u=l&&l[c];if(u&&u.method){const{id:l,method:n,args:e}=u,t=await this._handler(n,...e);this._clientWindow.postMessage({[c]:{id:l,ret:t}},this._clientOrigin)}}start(){window.addEventListener("message",this._messageListener)}stop(){window.removeEventListener("message",this._messageListener)}}const h=()=>{const l="undefined"!=typeof window&&"localStorage"in window;return n=l?window.localStorage:y(),{getItem:l=>Promise.resolve(n.getItem(l)),setItem:(l,u)=>Promise.resolve(n.setItem(l,u)),removeItem:l=>Promise.resolve(n.removeItem(l))};var n};async function p(l){let n,u;try{n=await l.getItem("solid-auth-client"),u=JSON.parse(n||"{}")}catch(l){console.warn("Could not deserialize data:",n),console.error(l),u={}}return u}async function d(l,n){const u=n(await p(l));return await l.setItem("solid-auth-client",JSON.stringify(u)),u}const y=()=>{const l={};return{getItem:n=>void 0===l[n]?null:l[n],setItem:(n,u)=>{l[n]=u},removeItem:n=>{delete l[n]}}};function g(l,n){var u=Object.keys(l);if(Object.getOwnPropertySymbols){var e=Object.getOwnPropertySymbols(l);n&&(e=e.filter((function(n){return Object.getOwnPropertyDescriptor(l,n).enumerable}))),u.push.apply(u,e)}return u}function w(l){for(var n=1;nl.startsWith("clientName#")).forEach(([l,n])=>t[l.replace("clientName#","client_name#")]=n);const r={logo_uri:n.logoUri,contacts:n.contacts,client_name:n.clientName},i=j(j({issuer:l,grant_types:["implicit"],redirect_uris:[e],response_types:["id_token token"],scope:"openid profile"},t),r),o={defaults:{authenticate:{redirect_uri:e,response_type:"id_token token",display:"page",scope:["openid"]}},store:u};return E.a.register(l,i,o)}(l,n),await async function(l,n,u){return await d(l,l=>j(j({},l),{},{rpConfig:u})),u}(n.storage,0,u));return u}(l,n);return await async function(l){await d(l,l=>j(j({},l),{},{appHashFragment:window.location.hash}))}(n.storage),async function(l,{callbackUri:n,storage:u}){const e=await p(u),t=await l.createRequest({redirect_uri:n},e);return await d(u,()=>e),(l=>{o().href=l})(t)}(u,n)}catch(l){return console.warn("Error logging in with WebID-OIDC"),console.error(l),null}}async function x(l=h()){try{const n=await R(l);if(!n)return null;const u=s();if(!/#(.*&)?access_token=/.test(u))return null;window.location.hash="",await async function(l){await d(l,l=>{let{appHashFragment:n=""}=l,u=b()(l,["appHashFragment"]);return window.location.hash=n,u})}(l);const e=await p(l),t=await n.validateResponse(u,e);return t?j(j({},t),{},{webId:t.idClaims.sub,idp:t.issuer}):null}catch(l){return console.warn("Error finding a WebID-OIDC session"),console.error(l),null}}async function R(l){const n=await p(l),{rpConfig:u}=n;return u?(u.store=l,E.a.from(u)):null}async function T(l,n,u,e){const t=(e?e.headers:u.headers)||{},r=await O.a.issueFor(a(u),l);return t.authorization="Bearer ".concat(r),n(u,j(j({},e),{},{credentials:"include",headers:t}))}function C(l,n){var u=Object.keys(l);if(Object.getOwnPropertySymbols){var e=Object.getOwnPropertySymbols(l);n&&(e=e.filter((function(n){return Object.getOwnPropertyDescriptor(l,n).enumerable}))),u.push.apply(u,e)}return u}function U(l){for(var n=1;n{if(function(l){if(401!==l.status)return!1;const n=l.headers.get("www-authenticate");if(!n)return!1;const u=_.parse(n);return"Bearer"===u.scheme&&u.params&&"openid webid"===u.params.scope}(n)){const{host:u}=new URL(n.url);await function(l){return async({url:n,requiresAuth:u})=>{await d(l,l=>U(U({},l),{},{hosts:U(U({},l.hosts),{},{[n]:{requiresAuth:u}})}))}}(l)({url:u,requiresAuth:!0})}}}function B(l,n){var u=Object.keys(l);if(Object.getOwnPropertySymbols){var e=Object.getOwnPropertySymbols(l);n&&(e=e.filter((function(n){return Object.getOwnPropertyDescriptor(l,n).enumerable}))),u.push.apply(u,e)}return u}function L(l){for(var n=1;n{const{host:u}=new URL(n),e=await m(l);if(e&&u===new URL(e.idp).host)return{url:u,requiresAuth:!0};const{hosts:t}=await p(l);return t&&t[u]}}(l)(a(n));return null!=u&&u.requiresAuth}function D(l,n,u){return new Promise((e,t)=>{const r=new f(n,(i=u.popupUri||"",new URL(i).origin),function(l,{popupUri:n,callbackUri:u},e){return async(t,...r)=>{switch(t){case"getAppOrigin":return window.location.origin;case"storage/getItem":return l.getItem(...r);case"storage/setItem":return l.setItem(...r);case"storage/removeItem":return l.removeItem(...r);case"getLoginOptions":return{popupUri:n,callbackUri:u};case"foundSession":e(...r)}}}(l,u,l=>{r.stop(),e(l)}));var i;r.start()})}function K(l,n){var u=Object.keys(l);if(Object.getOwnPropertySymbols){var e=Object.getOwnPropertySymbols(l);n&&(e=e.filter((function(n){return Object.getOwnPropertyDescriptor(l,n).enumerable}))),u.push.apply(u,e)}return u}function q(l){for(var n=1;n{n[u]=l});else for(const u in l)n[u]=l[u];return n}(e.headers);e=L(L({},e),{},{headers:l})}const t=await m(l);if(!t)return n(u,e);if(await M(l,u))return T(t,n,u,e);let r=await n(u,e);return 401===r.status&&(await I(l)(r),await M(l,u)&&(r=T(t,n,u,e))),r}(h(),H,l,n)}login(l,n){return P(l,n=q(q({},N(o().origin+o().pathname)),n))}async popupLogin(l){l=q(q({},N()),l),/https?:/.test(l.popupUri)||(l.popupUri=new URL(l.popupUri||"/.well-known/solid/login",window.location).toString()),l.callbackUri||(l.callbackUri=l.popupUri);const n=function(l){const n=window.screenX+(window.innerWidth-650)/2,u=window.screenY+(window.innerHeight-400)/2,e="width=".concat(650,",height=").concat(400,",left=").concat(n,",top=").concat(u);return window.open(l,"solid-auth-client",e)}(l.popupUri),u=await D(l.storage,n,l);return this.emit("login",u),this.emit("session",u),u}async currentSession(l=h()){let n=this._pendingSession||await m(l);if(!n){try{this._pendingSession=x(l),n=await this._pendingSession}catch(l){console.error(l)}n&&(await function(l){return async n=>(await d(l,l=>w(w({},l),{},{session:n}))).session}(l)(n),this.emit("login",n),this.emit("session",n)),delete this._pendingSession}return n}async trackSession(l){l(await this.currentSession()),this.on("session",l)}stopTrackSession(l){this.removeListener("session",l)}async logout(l=h()){if(await m(l)){try{await async function(l,n){const u=await R(l);if(u)try{await u.logout();try{await n("/.well-known/solid/logout",{credentials:"include"})}catch(l){console.info("Couldn't find /.well-known/solid/logout, this is harmless.")}}catch(l){console.warn("Error logging out of the WebID-OIDC session"),console.error(l)}}(l,H),this.emit("logout"),this.emit("session",null)}catch(l){console.warn("Error logging out:"),console.error(l)}await async function(l){await d(l,l=>w(w({},l),{},{session:null}))}(l)}}}function N(l){return{callbackUri:l?l.split("#")[0]:"",popupUri:"",storage:h()}}const F=new z;n.default=F;if(Object.getOwnPropertyNames(z.prototype).forEach(l=>{const n=F[l];"function"==typeof n&&(F[l]=n.bind(F))}),"undefined"!=typeof window)if("SolidAuthClient"in window)console.warn("Caution: multiple versions of solid-auth-client active.");else{let l=!1;Object.defineProperty(window,"SolidAuthClient",{enumerable:!0,get:()=>(l||(l=!0,console.warn("window.SolidAuthClient has been deprecated."),console.warn("Please use window.solid.auth instead.")),F)})}}]).default})); //# sourceMappingURL=solid-auth-client.bundle.js.map \ No newline at end of file diff --git a/build/solid-auth-client.bundle.js.map b/build/solid-auth-client.bundle.js.map index 8e9b096..9a01b1e 100644 --- a/build/solid-auth-client.bundle.js.map +++ b/build/solid-auth-client.bundle.js.map @@ -1 +1 @@ -{"version":3,"sources":["webpack://solid.auth/webpack/universalModuleDefinition","webpack://solid.auth/webpack/bootstrap","webpack://solid.auth/./node_modules/@babel/runtime/helpers/defineProperty.js","webpack://solid.auth/./node_modules/@trust/json-document/lib/index.js","webpack://solid.auth/./node_modules/base64url/index.js","webpack://solid.auth/./node_modules/@solid/jose/lib/index.js","webpack://solid.auth/./node_modules/buffer/index.js","webpack://solid.auth/(webpack)/buildin/global.js","webpack://solid.auth/external \"window\"","webpack://solid.auth/external \"fetch\"","webpack://solid.auth/external \"crypto\"","webpack://solid.auth/./node_modules/@solid/jose/lib/schemas/JWKSchema.js","webpack://solid.auth/./node_modules/assert/assert.js","webpack://solid.auth/./node_modules/@trust/json-document/lib/JSONPointer.js","webpack://solid.auth/./node_modules/@solid/jose/lib/jose/JWA.js","webpack://solid.auth/./node_modules/@solid/oidc-rp/src/FormUrlEncoded.js","webpack://solid.auth/./node_modules/@solid/oidc-rp/src/onHttpError.js","webpack://solid.auth/./node_modules/@solid/oidc-rp/src/index.js","webpack://solid.auth/./node_modules/auth-header/dist/util.js","webpack://solid.auth/./node_modules/@solid/oidc-rp/src/RelyingParty.js","webpack://solid.auth/./node_modules/@trust/json-document/lib/Formats.js","webpack://solid.auth/./node_modules/@trust/json-document/lib/Initializer.js","webpack://solid.auth/./node_modules/@trust/json-document/lib/JSONPatch.js","webpack://solid.auth/./node_modules/@trust/json-document/lib/Validator.js","webpack://solid.auth/./node_modules/@solid/jose/lib/text-encoder/index.js","webpack://solid.auth/./node_modules/@solid/jose/lib/errors/NotSupportedError.js","webpack://solid.auth/./node_modules/@solid/jose/lib/errors/index.js","webpack://solid.auth/./node_modules/@solid/jose/lib/errors/DataError.js","webpack://solid.auth/./node_modules/@solid/jose/lib/jose/JWK.js","webpack://solid.auth/./node_modules/@solid/jose/lib/schemas/JWKSetSchema.js","webpack://solid.auth/./node_modules/@solid/jose/lib/schemas/JWTSchema.js","webpack://solid.auth/./node_modules/@solid/jose/lib/schemas/Base64URLSchema.js","webpack://solid.auth/./node_modules/@solid/jose/lib/schemas/JWTClaimsSetSchema.js","webpack://solid.auth/./node_modules/@solid/jose/lib/schemas/JOSEHeaderSchema.js","webpack://solid.auth/./node_modules/@solid/jose/lib/jose/JWS.js","webpack://solid.auth/./node_modules/events/events.js","webpack://solid.auth/./node_modules/@babel/runtime/helpers/objectWithoutProperties.js","webpack://solid.auth/./node_modules/auth-header/dist/index.js","webpack://solid.auth/./node_modules/@solid/oidc-rp/lib/PoPToken.js","webpack://solid.auth/./node_modules/@babel/runtime/helpers/objectWithoutPropertiesLoose.js","webpack://solid.auth/./node_modules/auth-header/dist/format.js","webpack://solid.auth/./node_modules/auth-header/dist/parse.js","webpack://solid.auth/./node_modules/object-assign/index.js","webpack://solid.auth/./node_modules/util/util.js","webpack://solid.auth/./node_modules/process/browser.js","webpack://solid.auth/./node_modules/util/support/isBufferBrowser.js","webpack://solid.auth/./node_modules/util/node_modules/inherits/inherits_browser.js","webpack://solid.auth/./node_modules/@trust/json-document/lib/JSONDocument.js","webpack://solid.auth/./node_modules/@trust/json-document/lib/JSONMapping.js","webpack://solid.auth/./node_modules/@trust/json-document/lib/JSONSchema.js","webpack://solid.auth/./node_modules/base64url/dist/base64url.js","webpack://solid.auth/./node_modules/base64-js/index.js","webpack://solid.auth/./node_modules/ieee754/index.js","webpack://solid.auth/./node_modules/isarray/index.js","webpack://solid.auth/./node_modules/base64url/dist/pad-string.js","webpack://solid.auth/./node_modules/@solid/jose/lib/algorithms/index.js","webpack://solid.auth/./node_modules/@solid/jose/lib/algorithms/NONE.js","webpack://solid.auth/./node_modules/@solid/jose/lib/algorithms/HMAC.js","webpack://solid.auth/external \"TextEncoder\"","webpack://solid.auth/./node_modules/@solid/jose/lib/algorithms/RSASSA-PKCS1-v1_5.js","webpack://solid.auth/./node_modules/@solid/jose/lib/algorithms/SupportedAlgorithms.js","webpack://solid.auth/./node_modules/@solid/jose/lib/formats/index.js","webpack://solid.auth/./node_modules/@solid/jose/lib/jose/JWKSet.js","webpack://solid.auth/./node_modules/@solid/jose/lib/jose/JWT.js","webpack://solid.auth/./node_modules/@solid/oidc-rp/src/AuthenticationRequest.js","webpack://solid.auth/./node_modules/@solid/oidc-rp/src/AuthenticationResponse.js","webpack://solid.auth/./node_modules/@solid/oidc-rp/src/IDToken.js","webpack://solid.auth/./node_modules/@solid/oidc-rp/src/IDTokenSchema.js","webpack://solid.auth/./node_modules/@solid/oidc-rp/src/Session.js","webpack://solid.auth/./node_modules/@solid/oidc-rp/src/PoPToken.js","webpack://solid.auth/./node_modules/standard-http-error/index.js","webpack://solid.auth/./node_modules/standard-error/index.js","webpack://solid.auth/./node_modules/@solid/oidc-rp/src/RelyingPartySchema.js","webpack://solid.auth/./src/url-util.js","webpack://solid.auth/./src/ipc.js","webpack://solid.auth/./src/storage.js","webpack://solid.auth/./src/session.js","webpack://solid.auth/./src/webid-oidc.js","webpack://solid.auth/./src/host.js","webpack://solid.auth/./src/authn-fetch.js","webpack://solid.auth/./src/popup.js","webpack://solid.auth/./src/solid-auth-client.js","webpack://solid.auth/./src/index.js"],"names":["root","factory","exports","module","require","define","amd","window","__WEBPACK_EXTERNAL_MODULE__6__","__WEBPACK_EXTERNAL_MODULE__7__","__WEBPACK_EXTERNAL_MODULE__8__","__WEBPACK_EXTERNAL_MODULE__56__","installedModules","__webpack_require__","moduleId","i","l","modules","call","m","c","d","name","getter","o","Object","defineProperty","enumerable","get","r","Symbol","toStringTag","value","t","mode","__esModule","ns","create","key","bind","n","object","property","prototype","hasOwnProperty","p","s","obj","configurable","writable","Formats","Initializer","JSONDocument","JSONMapping","JSONPatch","JSONPointer","JSONSchema","Validator","default","JWA","JWK","JWKSet","JWT","JWS","Base64URLSchema","JOSEHeaderSchema","JWKSchema","JWKSetSchema","JWTClaimsSetSchema","JWTSchema","base64","ieee754","isArray","kMaxLength","Buffer","TYPED_ARRAY_SUPPORT","createBuffer","that","length","RangeError","Uint8Array","__proto__","arg","encodingOrOffset","this","Error","allocUnsafe","from","TypeError","ArrayBuffer","array","byteOffset","byteLength","undefined","fromArrayLike","fromArrayBuffer","string","encoding","isEncoding","actual","write","slice","fromString","isBuffer","len","checked","copy","buffer","val","type","data","fromObject","assertSize","size","toString","isView","loweredCase","utf8ToBytes","base64ToBytes","toLowerCase","slowToString","start","end","hexSlice","utf8Slice","asciiSlice","latin1Slice","base64Slice","utf16leSlice","swap","b","bidirectionalIndexOf","dir","isNaN","arrayIndexOf","indexOf","lastIndexOf","arr","indexSize","arrLength","valLength","String","read","buf","readUInt16BE","foundIndex","found","j","hexWrite","offset","Number","remaining","strLen","parsed","parseInt","substr","utf8Write","blitBuffer","asciiWrite","str","byteArray","push","charCodeAt","asciiToBytes","latin1Write","base64Write","ucs2Write","units","hi","lo","utf16leToBytes","fromByteArray","Math","min","res","secondByte","thirdByte","fourthByte","tempCodePoint","firstByte","codePoint","bytesPerSequence","codePoints","MAX_ARGUMENTS_LENGTH","fromCharCode","apply","decodeCodePointsArray","SlowBuffer","alloc","INSPECT_MAX_BYTES","global","foo","subarray","e","typedArraySupport","poolSize","_augment","species","fill","allocUnsafeSlow","_isBuffer","compare","a","x","y","concat","list","pos","swap16","swap32","swap64","arguments","equals","inspect","max","match","join","target","thisStart","thisEnd","thisCopy","targetCopy","includes","isFinite","toJSON","Array","_arr","ret","out","toHex","bytes","checkOffset","ext","checkInt","objectWriteUInt16","littleEndian","objectWriteUInt32","checkIEEE754","writeFloat","noAssert","writeDouble","newBuf","sliceLen","readUIntLE","mul","readUIntBE","readUInt8","readUInt16LE","readUInt32LE","readUInt32BE","readIntLE","pow","readIntBE","readInt8","readInt16LE","readInt16BE","readInt32LE","readInt32BE","readFloatLE","readFloatBE","readDoubleLE","readDoubleBE","writeUIntLE","writeUIntBE","writeUInt8","floor","writeUInt16LE","writeUInt16BE","writeUInt32LE","writeUInt32BE","writeIntLE","limit","sub","writeIntBE","writeInt8","writeInt16LE","writeInt16BE","writeInt32LE","writeInt32BE","writeFloatLE","writeFloatBE","writeDoubleLE","writeDoubleBE","targetStart","set","code","INVALID_BASE64_RE","Infinity","leadSurrogate","toByteArray","trim","replace","stringtrim","base64clean","src","dst","g","Function","BASE64_REGEXP","properties","kty","enum","use","key_ops","items","alg","kid","x5u","x5c","x5t","objectAssign","util","hasOwn","pSlice","functionsHaveNames","pToString","arrbuf","DataView","assert","ok","regex","getName","func","isFunction","truncate","something","rawname","fail","expected","message","operator","stackStartFunction","AssertionError","_deepEqual","strict","memos","isDate","getTime","isRegExp","source","multiline","lastIndex","ignoreCase","Float32Array","Float64Array","actualIndex","actualVisitedObjects","isPrimitive","getPrototypeOf","aIsArgs","isArguments","bIsArgs","ka","objectKeys","kb","sort","objEquiv","expectedException","test","isPrototypeOf","_throws","shouldThrow","block","error","_tryBlock","userProvidedMessage","isUnexpectedException","isError","options","self","generatedMessage","captureStackTrace","err","stack","fn_name","idx","next_line","substring","inherits","equal","notEqual","deepEqual","deepStrictEqual","notDeepEqual","notDeepStrictEqual","strictEqual","notStrictEqual","throws","doesNotThrow","ifError","keys","_createClass","defineProperties","props","descriptor","Constructor","protoProps","staticProps","THROW","expr","instance","_classCallCheck","tokens","charAt","parseURIFragmentIdentifier","parseJSONString","split","map","unescape","escape","decodeURIComponent","_this","token","encodeURIComponent","current","splice","supportedAlgorithms","NotSupportedError","normalizedAlgorithm","normalize","Promise","reject","sign","signature","verify","importKey","pairs","forEach","pair","response","status","errorMessage","statusText","statusCode","unquote","quote","isScheme","isToken","fetch","URL","Headers","AuthenticationRequest","AuthenticationResponse","RelyingPartySchema","onHttpError","FormUrlEncoded","RelyingParty","rp","validation","validate","valid","JSON","stringify","jwks","provider","importKeys","then","issuer","registration","url","defaults","assign","store","resolve","discover","register","pathname","json","configuration","registration_endpoint","uri","method","headers","params","body","serialize","jwks_uri","createRequest","session","validateResponse","redirect","authResponse","userinfo","userinfo_endpoint","access_token","logoutRequest","id_token_hint","post_logout_redirect_uri","state","end_session_endpoint","console","log","search","encode","href","logout","clearSession","credentials","SESSION_PRIVATE_KEY","popTokenFor","idToken","PoPToken","issueFor","DATETIME_REGEXP","URI_REGEXP","EMAIL_REGEXP","IPV4_REGEXP","IPV6_REGEXP","HOSTNAME_REGEXP","pattern","RegExp","format","formats","initialize","_typeof","iterator","constructor","schema","depth","level","declarations","member","item","declaration","index","additionalProperties","additionalItems","initializer","compile","_index","OPERATIONS","ops","operation","op","path","add","remove","pointer","indexCount","address","required","number","anyOf","allOf","not","oneOf","validations","keywords","filter","keyword","enumerated","conditions","subschema","validator","isRequired","segment","pop","patternValidations","additionalValidations","patternProperties","_schema","otherPropertiesCalled","otherProperties","minProperties","maxProperties","dependencies","dependency","_schema2","counter","minItems","maxItems","uniqueItems","minLength","maxLength","matcher","_schema3","minimum","exclusiveMinimum","_schema4","maximum","exclusiveMaximum","multipleOf","decimals","toFixed","TextEncoder","_Error","ReferenceError","_possibleConstructorReturn","subClass","superClass","setPrototypeOf","_inherits","DataError","_JSONDocument","jwk","segments","header","protected","unprotected","iv","aad","ciphertext","tag","recipients","encrypted_key","payload","signatures","verified","serialization","iss","aud","exp","nbf","iat","jti","typ","cty","jku","crit","enc","zip","_slicedToArray","_n","_d","_e","_s","_i","next","done","sliceIterator","base64url","jwt","_jwt$segments","ReflectOwnKeys","R","Reflect","ReflectApply","receiver","args","ownKeys","getOwnPropertySymbols","getOwnPropertyNames","NumberIsNaN","EventEmitter","init","_events","_eventsCount","_maxListeners","defaultMaxListeners","$getMaxListeners","_addListener","listener","prepend","events","existing","warning","newListener","emit","unshift","warned","w","emitter","count","warn","_onceWrap","fired","wrapFn","wrapped","removeListener","_listeners","unwrap","evlistener","unwrapListeners","arrayClone","listenerCount","setMaxListeners","getMaxListeners","doError","er","context","handler","listeners","addListener","on","prependListener","once","prependOnceListener","position","originalListener","shift","spliceOne","off","removeAllListeners","rawListeners","eventNames","objectWithoutPropertiesLoose","excluded","sourceSymbolKeys","propertyIsEnumerable","_format","_parse","_interopRequireDefault","_require2","_JWT","resourceServerUri","sessionKey","authorization","id_token","parse","importedSessionJwk","origin","client_id","issue","Date","now","token_type","cryptoKey","sourceKeys","_util","_toConsumableArray","arr2","_arrayWithoutHoles","iter","_iterableToArray","_nonIterableSpread","_arrayWithHoles","_iterableToArrayLimit","_nonIterableRest","build","reduce","prev","_ref","_ref2","values","transform","xxx","scheme","challenge","entries","_cur","cur","exec","parseProperties","propIsEnumerable","toObject","test1","test2","test3","letter","shouldUseNative","symbols","to","getOwnPropertyDescriptors","descriptors","getOwnPropertyDescriptor","formatRegExp","f","isString","objects","_","isNull","isObject","deprecate","fn","msg","process","noDeprecation","throwDeprecation","traceDeprecation","trace","debugEnviron","debugs","opts","ctx","seen","stylize","stylizeNoColor","colors","isBoolean","showHidden","_extend","isUndefined","customInspect","stylizeWithColor","formatValue","styleType","style","styles","recurseTimes","primitive","simple","isNumber","formatPrimitive","visibleKeys","hash","arrayToHash","formatError","output","base","braces","toUTCString","formatProperty","formatArray","numLinesEst","reduceToSingleString","desc","line","ar","re","objectToString","pad","debuglog","env","NODE_DEBUG","toUpperCase","pid","isNullOrUndefined","isSymbol","months","timestamp","time","getHours","getMinutes","getSeconds","getDate","getMonth","prop","kCustomPromisifiedSymbol","callbackifyOnRejected","reason","cb","newReason","promisify","original","promiseResolve","promiseReject","promise","custom","callbackify","callbackified","maybeCb","nextTick","rej","cachedSetTimeout","cachedClearTimeout","defaultSetTimout","defaultClearTimeout","runTimeout","fun","setTimeout","clearTimeout","currentQueue","queue","draining","queueIndex","cleanUpNextTick","drainQueue","timeout","run","marker","runClearTimeout","Item","noop","title","browser","argv","version","versions","binding","cwd","chdir","umask","ctor","superCtor","super_","TempCtor","alternate","patch","mapping","project","RECOVER","Map","right","left","_defineProperty","writeable","extender","result","pad_string_1","input","fromBase64","toBase64","decode","toBuffer","b64","lens","getLens","validLen","placeHoldersLen","tmp","Arr","_byteLength","curByte","revLookup","uint8","extraBytes","parts","len2","encodeChunk","lookup","num","isLE","mLen","nBytes","eLen","eMax","eBias","nBits","NaN","rt","abs","LN2","stringLength","diff","padLength","paddedStringLength","None","HMAC","RSASSA_PKCS1_v1_5","crypto","algorithm","subtle","bitlength","usages","operations","SupportedAlgorithms","argument","registeredAlgorithms","SyntaxError","imported","importing","all","find","isJWE","JWE","encrypt","startsWith","endpoint","client","authenticate","authorization_endpoint","scope","response_type","redirect_uri","getRandomValues","nonce","digest","digests","generateSessionKeys","sessionKeys","storeSessionKeys","request_parameter_supported","encodeRequestParams","encodedParams","generateKey","modulusLength","publicExponent","keyPair","exportKey","publicKey","privateKey","jwkPair","publicJwk","privateJwk","public","private","excludeParams","keysToEncode","requestParamCompact","request","IDToken","Session","HttpError","parseResponse","errorResponse","matchRequest","validateStateParam","validateResponseMode","validateResponseParams","exchangeAuthorizationCode","validateIDToken","fromAuthResponse","errorCode","errorParams","info","octets","encoded","expectedParams","id","secret","token_endpoint","bodyContents","authMethod","tokenResponse","decryptIDToken","decodeIDToken","validateIssuer","validateAudience","resolveKeys","verifySignature","validateExpires","verifyNonce","validateAcr","validateAuthTime","validateAccessTokenHash","validateAuthorizationCodeHash","decoded","decodeError","cause","azp","expectedAlgorithm","IDTokenSchema","extend","auth_time","acr","amr","credentialType","idClaims","accessClaims","popToken","refresh_token","hasCredentials","fetchWithCredentials","bearerTokenFor","DEFAULT_MAX_AGE","StandardError","STATUS_CODE_TO_NAME","STATUS_NAME_TO_CODE","alias","statusMessage","has","proto","display","getLocation","location","currentUrl","currentUrlNoParams","navigateTo","originOf","toUrlString","NAMESPACE","Server","clientWindow","clientOrigin","handle","_clientWindow","_clientOrigin","_handler","_messageListener","event","_handleMessage","req","postMessage","addEventListener","stop","removeEventListener","defaultStorage","storage","getItem","setItem","removeItem","asyncStorage","localStorage","memStorage","async","getData","serialized","updateStorage","update","newData","getSession","login","idp","getStoredRp","redirect_uris","callbackUri","clientNameI18n","supplementaryOptions","logo_uri","logoUri","contacts","client_name","clientName","grant_types","response_types","registerRp","rpConfig","storeRp","getRegisteredRp","appHashFragment","saveAppHashFragment","sendAuthRequest","currentSession","restoreAppHashFragment","storeData","webId","origHeaders","updateHostFromResponse","resp","wwwAuthHeader","auth","WebIdOidc","host","requiresAuth","hosts","saveHost","shouldShareCredentials","requestHost","getHost","obtainSession","popup","popupServer","popupUri","foundSessionCb","popupHandler","globalFetch","SolidAuthClient","authnFetch","defaultLoginOptions","screenX","innerWidth","top","screenY","innerHeight","settings","open","openIdpPopup","_pendingSession","saveSession","callback","stopTrackSession"],"mappings":"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","file":"solid-auth-client.bundle.js","sourcesContent":["(function webpackUniversalModuleDefinition(root, factory) {\n\tif(typeof exports === 'object' && typeof module === 'object')\n\t\tmodule.exports = factory(require(\"window\"), require(\"fetch\"), require(\"crypto\"), require(\"TextEncoder\"));\n\telse if(typeof define === 'function' && define.amd)\n\t\tdefine([\"window\", \"fetch\", \"crypto\", \"TextEncoder\"], factory);\n\telse if(typeof exports === 'object')\n\t\texports[\"auth\"] = factory(require(\"window\"), require(\"fetch\"), require(\"crypto\"), require(\"TextEncoder\"));\n\telse\n\t\troot[\"solid\"] = root[\"solid\"] || {}, root[\"solid\"][\"auth\"] = factory(root[\"window\"], root[\"fetch\"], root[\"crypto\"], root[\"TextEncoder\"]);\n})(window, function(__WEBPACK_EXTERNAL_MODULE__6__, __WEBPACK_EXTERNAL_MODULE__7__, __WEBPACK_EXTERNAL_MODULE__8__, __WEBPACK_EXTERNAL_MODULE__56__) {\nreturn "," \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 \t\t}\n \t\t// Create a new module (and put it into the cache)\n \t\tvar module = installedModules[moduleId] = {\n \t\t\ti: moduleId,\n \t\t\tl: false,\n \t\t\texports: {}\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.l = 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// define getter function for harmony exports\n \t__webpack_require__.d = function(exports, name, getter) {\n \t\tif(!__webpack_require__.o(exports, name)) {\n \t\t\tObject.defineProperty(exports, name, { enumerable: true, get: getter });\n \t\t}\n \t};\n\n \t// define __esModule on exports\n \t__webpack_require__.r = function(exports) {\n \t\tif(typeof Symbol !== 'undefined' && Symbol.toStringTag) {\n \t\t\tObject.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });\n \t\t}\n \t\tObject.defineProperty(exports, '__esModule', { value: true });\n \t};\n\n \t// create a fake namespace object\n \t// mode & 1: value is a module id, require it\n \t// mode & 2: merge all properties of value into the ns\n \t// mode & 4: return value when already ns object\n \t// mode & 8|1: behave like require\n \t__webpack_require__.t = function(value, mode) {\n \t\tif(mode & 1) value = __webpack_require__(value);\n \t\tif(mode & 8) return value;\n \t\tif((mode & 4) && typeof value === 'object' && value && value.__esModule) return value;\n \t\tvar ns = Object.create(null);\n \t\t__webpack_require__.r(ns);\n \t\tObject.defineProperty(ns, 'default', { enumerable: true, value: value });\n \t\tif(mode & 2 && typeof value != 'string') for(var key in value) __webpack_require__.d(ns, key, function(key) { return value[key]; }.bind(null, key));\n \t\treturn ns;\n \t};\n\n \t// getDefaultExport function for compatibility with non-harmony modules\n \t__webpack_require__.n = function(module) {\n \t\tvar getter = module && module.__esModule ?\n \t\t\tfunction getDefault() { return module['default']; } :\n \t\t\tfunction getModuleExports() { return module; };\n \t\t__webpack_require__.d(getter, 'a', getter);\n \t\treturn getter;\n \t};\n\n \t// Object.prototype.hasOwnProperty.call\n \t__webpack_require__.o = function(object, property) { return Object.prototype.hasOwnProperty.call(object, property); };\n\n \t// __webpack_public_path__\n \t__webpack_require__.p = \"\";\n\n\n \t// Load entry module and return exports\n \treturn __webpack_require__(__webpack_require__.s = 72);\n","function _defineProperty(obj, key, value) {\n if (key in obj) {\n Object.defineProperty(obj, key, {\n value: value,\n enumerable: true,\n configurable: true,\n writable: true\n });\n } else {\n obj[key] = value;\n }\n\n return obj;\n}\n\nmodule.exports = _defineProperty;","'use strict';\n\nmodule.exports = {\n Formats: require('./Formats'),\n Initializer: require('./Initializer'),\n JSONDocument: require('./JSONDocument'),\n JSONMapping: require('./JSONMapping'),\n JSONPatch: require('./JSONPatch'),\n JSONPointer: require('./JSONPointer'),\n JSONSchema: require('./JSONSchema'),\n Validator: require('./Validator')\n};","module.exports = require('./dist/base64url').default;\nmodule.exports.default = module.exports;\n","'use strict';\n\n/**\n * @module JSON Object Signing and Encryption (JOSE)\n */\nvar JWA = require('./jose/JWA');\nvar JWK = require('./jose/JWK');\nvar JWKSet = require('./jose/JWKSet');\nvar JWT = require('./jose/JWT');\nvar JWS = require('./jose/JWS');\nvar Base64URLSchema = require('./schemas/Base64URLSchema');\nvar JOSEHeaderSchema = require('./schemas/JOSEHeaderSchema');\nvar JWKSchema = require('./schemas/JWKSchema');\nvar JWKSetSchema = require('./schemas/JWKSetSchema');\nvar JWTClaimsSetSchema = require('./schemas/JWTClaimsSetSchema');\nvar JWTSchema = require('./schemas/JWTSchema');\n\n/**\n * Export\n */\nmodule.exports = {\n JWA: JWA,\n JWK: JWK,\n JWKSet: JWKSet,\n JWT: JWT,\n JWS: JWS,\n Base64URLSchema: Base64URLSchema,\n JOSEHeaderSchema: JOSEHeaderSchema,\n JWKSchema: JWKSchema,\n JWKSetSchema: JWKSetSchema,\n JWTClaimsSetSchema: JWTClaimsSetSchema,\n JWTSchema: JWTSchema\n};","/*!\n * The buffer module from node.js, for the browser.\n *\n * @author Feross Aboukhadijeh \n * @license MIT\n */\n/* eslint-disable no-proto */\n\n'use strict'\n\nvar base64 = require('base64-js')\nvar ieee754 = require('ieee754')\nvar isArray = require('isarray')\n\nexports.Buffer = Buffer\nexports.SlowBuffer = SlowBuffer\nexports.INSPECT_MAX_BYTES = 50\n\n/**\n * If `Buffer.TYPED_ARRAY_SUPPORT`:\n * === true Use Uint8Array implementation (fastest)\n * === false Use Object 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 * Due to various browser bugs, sometimes the Object implementation will be used even\n * when the browser supports typed arrays.\n *\n * Note:\n *\n * - Firefox 4-29 lacks support for adding new properties to `Uint8Array` instances,\n * See: https://bugzilla.mozilla.org/show_bug.cgi?id=695438.\n *\n * - Chrome 9-10 is missing the `TypedArray.prototype.subarray` function.\n *\n * - IE10 has a broken `TypedArray.prototype.subarray` function which returns arrays of\n * incorrect length in some situations.\n\n * We detect these buggy browsers and set `Buffer.TYPED_ARRAY_SUPPORT` to `false` so they\n * get the Object implementation, which is slower but behaves correctly.\n */\nBuffer.TYPED_ARRAY_SUPPORT = global.TYPED_ARRAY_SUPPORT !== undefined\n ? global.TYPED_ARRAY_SUPPORT\n : typedArraySupport()\n\n/*\n * Export kMaxLength after typed array support is determined.\n */\nexports.kMaxLength = kMaxLength()\n\nfunction typedArraySupport () {\n try {\n var arr = new Uint8Array(1)\n arr.__proto__ = {__proto__: Uint8Array.prototype, foo: function () { return 42 }}\n return arr.foo() === 42 && // typed array instances can be augmented\n typeof arr.subarray === 'function' && // chrome 9-10 lack `subarray`\n arr.subarray(1, 1).byteLength === 0 // ie10 has broken `subarray`\n } catch (e) {\n return false\n }\n}\n\nfunction kMaxLength () {\n return Buffer.TYPED_ARRAY_SUPPORT\n ? 0x7fffffff\n : 0x3fffffff\n}\n\nfunction createBuffer (that, length) {\n if (kMaxLength() < length) {\n throw new RangeError('Invalid typed array length')\n }\n if (Buffer.TYPED_ARRAY_SUPPORT) {\n // Return an augmented `Uint8Array` instance, for best performance\n that = new Uint8Array(length)\n that.__proto__ = Buffer.prototype\n } else {\n // Fallback: Return an object instance of the Buffer class\n if (that === null) {\n that = new Buffer(length)\n }\n that.length = length\n }\n\n return that\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 if (!Buffer.TYPED_ARRAY_SUPPORT && !(this instanceof Buffer)) {\n return new Buffer(arg, encodingOrOffset, length)\n }\n\n // Common case.\n if (typeof arg === 'number') {\n if (typeof encodingOrOffset === 'string') {\n throw new Error(\n 'If encoding is specified then the first argument must be a string'\n )\n }\n return allocUnsafe(this, arg)\n }\n return from(this, arg, encodingOrOffset, length)\n}\n\nBuffer.poolSize = 8192 // not used by this implementation\n\n// TODO: Legacy, not needed anymore. Remove in next major version.\nBuffer._augment = function (arr) {\n arr.__proto__ = Buffer.prototype\n return arr\n}\n\nfunction from (that, value, encodingOrOffset, length) {\n if (typeof value === 'number') {\n throw new TypeError('\"value\" argument must not be a number')\n }\n\n if (typeof ArrayBuffer !== 'undefined' && value instanceof ArrayBuffer) {\n return fromArrayBuffer(that, value, encodingOrOffset, length)\n }\n\n if (typeof value === 'string') {\n return fromString(that, value, encodingOrOffset)\n }\n\n return fromObject(that, value)\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(null, value, encodingOrOffset, length)\n}\n\nif (Buffer.TYPED_ARRAY_SUPPORT) {\n Buffer.prototype.__proto__ = Uint8Array.prototype\n Buffer.__proto__ = Uint8Array\n if (typeof Symbol !== 'undefined' && Symbol.species &&\n Buffer[Symbol.species] === Buffer) {\n // Fix subarray() in ES2016. See: https://github.com/feross/buffer/pull/97\n Object.defineProperty(Buffer, Symbol.species, {\n value: null,\n configurable: true\n })\n }\n}\n\nfunction assertSize (size) {\n if (typeof size !== 'number') {\n throw new TypeError('\"size\" argument must be a number')\n } else if (size < 0) {\n throw new RangeError('\"size\" argument must not be negative')\n }\n}\n\nfunction alloc (that, size, fill, encoding) {\n assertSize(size)\n if (size <= 0) {\n return createBuffer(that, 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 interpretted as a start offset.\n return typeof encoding === 'string'\n ? createBuffer(that, size).fill(fill, encoding)\n : createBuffer(that, size).fill(fill)\n }\n return createBuffer(that, 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(null, size, fill, encoding)\n}\n\nfunction allocUnsafe (that, size) {\n assertSize(size)\n that = createBuffer(that, size < 0 ? 0 : checked(size) | 0)\n if (!Buffer.TYPED_ARRAY_SUPPORT) {\n for (var i = 0; i < size; ++i) {\n that[i] = 0\n }\n }\n return that\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(null, 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(null, size)\n}\n\nfunction fromString (that, string, encoding) {\n if (typeof encoding !== 'string' || encoding === '') {\n encoding = 'utf8'\n }\n\n if (!Buffer.isEncoding(encoding)) {\n throw new TypeError('\"encoding\" must be a valid string encoding')\n }\n\n var length = byteLength(string, encoding) | 0\n that = createBuffer(that, length)\n\n var actual = that.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 that = that.slice(0, actual)\n }\n\n return that\n}\n\nfunction fromArrayLike (that, array) {\n var length = array.length < 0 ? 0 : checked(array.length) | 0\n that = createBuffer(that, length)\n for (var i = 0; i < length; i += 1) {\n that[i] = array[i] & 255\n }\n return that\n}\n\nfunction fromArrayBuffer (that, array, byteOffset, length) {\n array.byteLength // this throws if `array` is not a valid ArrayBuffer\n\n if (byteOffset < 0 || array.byteLength < byteOffset) {\n throw new RangeError('\\'offset\\' is out of bounds')\n }\n\n if (array.byteLength < byteOffset + (length || 0)) {\n throw new RangeError('\\'length\\' is out of bounds')\n }\n\n if (byteOffset === undefined && length === undefined) {\n array = new Uint8Array(array)\n } else if (length === undefined) {\n array = new Uint8Array(array, byteOffset)\n } else {\n array = new Uint8Array(array, byteOffset, length)\n }\n\n if (Buffer.TYPED_ARRAY_SUPPORT) {\n // Return an augmented `Uint8Array` instance, for best performance\n that = array\n that.__proto__ = Buffer.prototype\n } else {\n // Fallback: Return an object instance of the Buffer class\n that = fromArrayLike(that, array)\n }\n return that\n}\n\nfunction fromObject (that, obj) {\n if (Buffer.isBuffer(obj)) {\n var len = checked(obj.length) | 0\n that = createBuffer(that, len)\n\n if (that.length === 0) {\n return that\n }\n\n obj.copy(that, 0, 0, len)\n return that\n }\n\n if (obj) {\n if ((typeof ArrayBuffer !== 'undefined' &&\n obj.buffer instanceof ArrayBuffer) || 'length' in obj) {\n if (typeof obj.length !== 'number' || isnan(obj.length)) {\n return createBuffer(that, 0)\n }\n return fromArrayLike(that, obj)\n }\n\n if (obj.type === 'Buffer' && isArray(obj.data)) {\n return fromArrayLike(that, obj.data)\n }\n }\n\n throw new TypeError('First argument must be a string, Buffer, ArrayBuffer, Array, or array-like object.')\n}\n\nfunction checked (length) {\n // Note: cannot use `length < kMaxLength()` here because that fails when\n // length is NaN (which is otherwise coerced to zero.)\n if (length >= kMaxLength()) {\n throw new RangeError('Attempt to allocate Buffer larger than maximum ' +\n 'size: 0x' + kMaxLength().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)\n}\n\nBuffer.compare = function compare (a, b) {\n if (!Buffer.isBuffer(a) || !Buffer.isBuffer(b)) {\n throw new TypeError('Arguments must be Buffers')\n }\n\n if (a === b) return 0\n\n var x = a.length\n var y = b.length\n\n for (var 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 (!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 var 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 var buffer = Buffer.allocUnsafe(length)\n var pos = 0\n for (i = 0; i < list.length; ++i) {\n var buf = list[i]\n if (!Buffer.isBuffer(buf)) {\n throw new TypeError('\"list\" argument must be an Array of Buffers')\n }\n buf.copy(buffer, pos)\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 (typeof ArrayBuffer !== 'undefined' && typeof ArrayBuffer.isView === 'function' &&\n (ArrayBuffer.isView(string) || string instanceof ArrayBuffer)) {\n return string.byteLength\n }\n if (typeof string !== 'string') {\n string = '' + string\n }\n\n var len = string.length\n if (len === 0) return 0\n\n // Use a for loop to avoid recursion\n var 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 case undefined:\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) return utf8ToBytes(string).length // assume utf8\n encoding = ('' + encoding).toLowerCase()\n loweredCase = true\n }\n }\n}\nBuffer.byteLength = byteLength\n\nfunction slowToString (encoding, start, end) {\n var 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 coersion 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// The property is used by `Buffer.isBuffer` and `is-buffer` (in Safari 5-7) to detect\n// Buffer instances.\nBuffer.prototype._isBuffer = true\n\nfunction swap (b, n, m) {\n var i = b[n]\n b[n] = b[m]\n b[m] = i\n}\n\nBuffer.prototype.swap16 = function swap16 () {\n var len = this.length\n if (len % 2 !== 0) {\n throw new RangeError('Buffer size must be a multiple of 16-bits')\n }\n for (var i = 0; i < len; i += 2) {\n swap(this, i, i + 1)\n }\n return this\n}\n\nBuffer.prototype.swap32 = function swap32 () {\n var len = this.length\n if (len % 4 !== 0) {\n throw new RangeError('Buffer size must be a multiple of 32-bits')\n }\n for (var 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 var len = this.length\n if (len % 8 !== 0) {\n throw new RangeError('Buffer size must be a multiple of 64-bits')\n }\n for (var 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 var length = this.length | 0\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.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 var str = ''\n var max = exports.INSPECT_MAX_BYTES\n if (this.length > 0) {\n str = this.toString('hex', 0, max).match(/.{2}/g).join(' ')\n if (this.length > max) str += ' ... '\n }\n return ''\n}\n\nBuffer.prototype.compare = function compare (target, start, end, thisStart, thisEnd) {\n if (!Buffer.isBuffer(target)) {\n throw new TypeError('Argument must be a Buffer')\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 var x = thisEnd - thisStart\n var y = end - start\n var len = Math.min(x, y)\n\n var thisCopy = this.slice(thisStart, thisEnd)\n var targetCopy = target.slice(start, end)\n\n for (var 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 (isNaN(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 (Buffer.TYPED_ARRAY_SUPPORT &&\n 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 var indexSize = 1\n var arrLength = arr.length\n var 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 var i\n if (dir) {\n var 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 var found = true\n for (var 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 var 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 // must be an even number of digits\n var strLen = string.length\n if (strLen % 2 !== 0) throw new TypeError('Invalid hex string')\n\n if (length > strLen / 2) {\n length = strLen / 2\n }\n for (var i = 0; i < length; ++i) {\n var parsed = parseInt(string.substr(i * 2, 2), 16)\n if (isNaN(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 latin1Write (buf, string, offset, length) {\n return asciiWrite(buf, string, 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 // legacy write(string, encoding, offset, length) - remove in v0.13\n } else {\n throw new Error(\n 'Buffer.write(string, encoding, offset[, length]) is no longer supported'\n )\n }\n\n var 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 var 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 return asciiWrite(this, string, offset, length)\n\n case 'latin1':\n case 'binary':\n return latin1Write(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 var res = []\n\n var i = start\n while (i < end) {\n var firstByte = buf[i]\n var codePoint = null\n var bytesPerSequence = (firstByte > 0xEF) ? 4\n : (firstByte > 0xDF) ? 3\n : (firstByte > 0xBF) ? 2\n : 1\n\n if (i + bytesPerSequence <= end) {\n var 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\nvar MAX_ARGUMENTS_LENGTH = 0x1000\n\nfunction decodeCodePointsArray (codePoints) {\n var 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 var res = ''\n var 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 var ret = ''\n end = Math.min(buf.length, end)\n\n for (var i = start; i < end; ++i) {\n ret += String.fromCharCode(buf[i] & 0x7F)\n }\n return ret\n}\n\nfunction latin1Slice (buf, start, end) {\n var ret = ''\n end = Math.min(buf.length, end)\n\n for (var i = start; i < end; ++i) {\n ret += String.fromCharCode(buf[i])\n }\n return ret\n}\n\nfunction hexSlice (buf, start, end) {\n var len = buf.length\n\n if (!start || start < 0) start = 0\n if (!end || end < 0 || end > len) end = len\n\n var out = ''\n for (var i = start; i < end; ++i) {\n out += toHex(buf[i])\n }\n return out\n}\n\nfunction utf16leSlice (buf, start, end) {\n var bytes = buf.slice(start, end)\n var res = ''\n for (var i = 0; i < bytes.length; 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 var 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 var newBuf\n if (Buffer.TYPED_ARRAY_SUPPORT) {\n newBuf = this.subarray(start, end)\n newBuf.__proto__ = Buffer.prototype\n } else {\n var sliceLen = end - start\n newBuf = new Buffer(sliceLen, undefined)\n for (var i = 0; i < sliceLen; ++i) {\n newBuf[i] = this[i + start]\n }\n }\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 = function readUIntLE (offset, byteLength, noAssert) {\n offset = offset | 0\n byteLength = byteLength | 0\n if (!noAssert) checkOffset(offset, byteLength, this.length)\n\n var val = this[offset]\n var mul = 1\n var i = 0\n while (++i < byteLength && (mul *= 0x100)) {\n val += this[offset + i] * mul\n }\n\n return val\n}\n\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 var val = this[offset + --byteLength]\n var mul = 1\n while (byteLength > 0 && (mul *= 0x100)) {\n val += this[offset + --byteLength] * mul\n }\n\n return val\n}\n\nBuffer.prototype.readUInt8 = function readUInt8 (offset, noAssert) {\n if (!noAssert) checkOffset(offset, 1, this.length)\n return this[offset]\n}\n\nBuffer.prototype.readUInt16LE = function readUInt16LE (offset, noAssert) {\n if (!noAssert) checkOffset(offset, 2, this.length)\n return this[offset] | (this[offset + 1] << 8)\n}\n\nBuffer.prototype.readUInt16BE = function readUInt16BE (offset, noAssert) {\n if (!noAssert) checkOffset(offset, 2, this.length)\n return (this[offset] << 8) | this[offset + 1]\n}\n\nBuffer.prototype.readUInt32LE = function readUInt32LE (offset, noAssert) {\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 = function readUInt32BE (offset, noAssert) {\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.readIntLE = function readIntLE (offset, byteLength, noAssert) {\n offset = offset | 0\n byteLength = byteLength | 0\n if (!noAssert) checkOffset(offset, byteLength, this.length)\n\n var val = this[offset]\n var mul = 1\n var 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 var i = byteLength\n var mul = 1\n var 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 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 if (!noAssert) checkOffset(offset, 2, this.length)\n var val = this[offset] | (this[offset + 1] << 8)\n return (val & 0x8000) ? val | 0xFFFF0000 : val\n}\n\nBuffer.prototype.readInt16BE = function readInt16BE (offset, noAssert) {\n if (!noAssert) checkOffset(offset, 2, this.length)\n var val = this[offset + 1] | (this[offset] << 8)\n return (val & 0x8000) ? val | 0xFFFF0000 : val\n}\n\nBuffer.prototype.readInt32LE = function readInt32LE (offset, noAssert) {\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 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.readFloatLE = function readFloatLE (offset, noAssert) {\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 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 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 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 = function writeUIntLE (value, offset, byteLength, noAssert) {\n value = +value\n offset = offset | 0\n byteLength = byteLength | 0\n if (!noAssert) {\n var maxBytes = Math.pow(2, 8 * byteLength) - 1\n checkInt(this, value, offset, byteLength, maxBytes, 0)\n }\n\n var mul = 1\n var 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 = function writeUIntBE (value, offset, byteLength, noAssert) {\n value = +value\n offset = offset | 0\n byteLength = byteLength | 0\n if (!noAssert) {\n var maxBytes = Math.pow(2, 8 * byteLength) - 1\n checkInt(this, value, offset, byteLength, maxBytes, 0)\n }\n\n var i = byteLength - 1\n var 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 = function writeUInt8 (value, offset, noAssert) {\n value = +value\n offset = offset | 0\n if (!noAssert) checkInt(this, value, offset, 1, 0xff, 0)\n if (!Buffer.TYPED_ARRAY_SUPPORT) value = Math.floor(value)\n this[offset] = (value & 0xff)\n return offset + 1\n}\n\nfunction objectWriteUInt16 (buf, value, offset, littleEndian) {\n if (value < 0) value = 0xffff + value + 1\n for (var i = 0, j = Math.min(buf.length - offset, 2); i < j; ++i) {\n buf[offset + i] = (value & (0xff << (8 * (littleEndian ? i : 1 - i)))) >>>\n (littleEndian ? i : 1 - i) * 8\n }\n}\n\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 if (Buffer.TYPED_ARRAY_SUPPORT) {\n this[offset] = (value & 0xff)\n this[offset + 1] = (value >>> 8)\n } else {\n objectWriteUInt16(this, value, offset, true)\n }\n return offset + 2\n}\n\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 if (Buffer.TYPED_ARRAY_SUPPORT) {\n this[offset] = (value >>> 8)\n this[offset + 1] = (value & 0xff)\n } else {\n objectWriteUInt16(this, value, offset, false)\n }\n return offset + 2\n}\n\nfunction objectWriteUInt32 (buf, value, offset, littleEndian) {\n if (value < 0) value = 0xffffffff + value + 1\n for (var i = 0, j = Math.min(buf.length - offset, 4); i < j; ++i) {\n buf[offset + i] = (value >>> (littleEndian ? i : 3 - i) * 8) & 0xff\n }\n}\n\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 if (Buffer.TYPED_ARRAY_SUPPORT) {\n this[offset + 3] = (value >>> 24)\n this[offset + 2] = (value >>> 16)\n this[offset + 1] = (value >>> 8)\n this[offset] = (value & 0xff)\n } else {\n objectWriteUInt32(this, value, offset, true)\n }\n return offset + 4\n}\n\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 if (Buffer.TYPED_ARRAY_SUPPORT) {\n this[offset] = (value >>> 24)\n this[offset + 1] = (value >>> 16)\n this[offset + 2] = (value >>> 8)\n this[offset + 3] = (value & 0xff)\n } else {\n objectWriteUInt32(this, value, offset, false)\n }\n return offset + 4\n}\n\nBuffer.prototype.writeIntLE = function writeIntLE (value, offset, byteLength, noAssert) {\n value = +value\n offset = offset | 0\n if (!noAssert) {\n var limit = Math.pow(2, 8 * byteLength - 1)\n\n checkInt(this, value, offset, byteLength, limit - 1, -limit)\n }\n\n var i = 0\n var mul = 1\n var 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 var limit = Math.pow(2, 8 * byteLength - 1)\n\n checkInt(this, value, offset, byteLength, limit - 1, -limit)\n }\n\n var i = byteLength - 1\n var mul = 1\n var 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 (!Buffer.TYPED_ARRAY_SUPPORT) value = Math.floor(value)\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 if (Buffer.TYPED_ARRAY_SUPPORT) {\n this[offset] = (value & 0xff)\n this[offset + 1] = (value >>> 8)\n } else {\n objectWriteUInt16(this, value, offset, true)\n }\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 if (Buffer.TYPED_ARRAY_SUPPORT) {\n this[offset] = (value >>> 8)\n this[offset + 1] = (value & 0xff)\n } else {\n objectWriteUInt16(this, value, offset, false)\n }\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 if (Buffer.TYPED_ARRAY_SUPPORT) {\n this[offset] = (value & 0xff)\n this[offset + 1] = (value >>> 8)\n this[offset + 2] = (value >>> 16)\n this[offset + 3] = (value >>> 24)\n } else {\n objectWriteUInt32(this, value, offset, true)\n }\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 if (Buffer.TYPED_ARRAY_SUPPORT) {\n this[offset] = (value >>> 24)\n this[offset + 1] = (value >>> 16)\n this[offset + 2] = (value >>> 8)\n this[offset + 3] = (value & 0xff)\n } else {\n objectWriteUInt32(this, value, offset, false)\n }\n return offset + 4\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 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 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 (!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('sourceStart out of bounds')\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 var len = end - start\n var i\n\n if (this === target && start < targetStart && targetStart < end) {\n // descending copy from end\n for (i = len - 1; i >= 0; --i) {\n target[i + targetStart] = this[i + start]\n }\n } else if (len < 1000 || !Buffer.TYPED_ARRAY_SUPPORT) {\n // ascending copy from start\n for (i = 0; i < len; ++i) {\n target[i + targetStart] = this[i + start]\n }\n } else {\n Uint8Array.prototype.set.call(\n target,\n this.subarray(start, start + len),\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 (val.length === 1) {\n var code = val.charCodeAt(0)\n if (code < 256) {\n val = code\n }\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 } else if (typeof val === 'number') {\n val = val & 255\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 var i\n if (typeof val === 'number') {\n for (i = start; i < end; ++i) {\n this[i] = val\n }\n } else {\n var bytes = Buffer.isBuffer(val)\n ? val\n : utf8ToBytes(new Buffer(val, encoding).toString())\n var len = bytes.length\n for (i = 0; i < end - start; ++i) {\n this[i + start] = bytes[i % len]\n }\n }\n\n return this\n}\n\n// HELPER FUNCTIONS\n// ================\n\nvar INVALID_BASE64_RE = /[^+\\/0-9A-Za-z-_]/g\n\nfunction base64clean (str) {\n // Node strips out invalid characters like \\n and \\t from the string, base64-js does not\n str = stringtrim(str).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 stringtrim (str) {\n if (str.trim) return str.trim()\n return str.replace(/^\\s+|\\s+$/g, '')\n}\n\nfunction toHex (n) {\n if (n < 16) return '0' + n.toString(16)\n return n.toString(16)\n}\n\nfunction utf8ToBytes (string, units) {\n units = units || Infinity\n var codePoint\n var length = string.length\n var leadSurrogate = null\n var bytes = []\n\n for (var 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 var byteArray = []\n for (var 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 var c, hi, lo\n var byteArray = []\n for (var 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 for (var 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\nfunction isnan (val) {\n return val !== val // eslint-disable-line no-self-compare\n}\n","var g;\n\n// This works in non-strict mode\ng = (function() {\n\treturn this;\n})();\n\ntry {\n\t// This works if eval is allowed (see CSP)\n\tg = g || new Function(\"return this\")();\n} catch (e) {\n\t// This works if the window reference is available\n\tif (typeof window === \"object\") g = window;\n}\n\n// g can still be undefined, but nothing to do about it...\n// We return undefined, instead of nothing here, so it's\n// easier to handle this case. if(!global) { ...}\n\nmodule.exports = g;\n","module.exports = __WEBPACK_EXTERNAL_MODULE__6__;","module.exports = __WEBPACK_EXTERNAL_MODULE__7__;","module.exports = __WEBPACK_EXTERNAL_MODULE__8__;","'use strict';\n\n/**\n * Dependencies\n * @ignore\n */\n\nvar _require = require('@trust/json-document'),\n JSONSchema = _require.JSONSchema;\n\nvar _require2 = require('../formats'),\n BASE64_REGEXP = _require2.BASE64_REGEXP;\n\n/**\n * JWK Schema\n */\n\n\nvar JWKSchema = new JSONSchema({\n type: 'object',\n properties: {\n\n kty: {\n type: 'string',\n //format: 'case-sensitive',\n enum: ['RSA', 'EC', 'oct'] // other values MAY be used\n },\n\n use: {\n type: 'string',\n //format: 'case-sensitive',\n enum: ['sig', 'enc'] // other values MAY be used\n },\n\n key_ops: {\n type: 'array',\n //format: 'case-sensitive',\n items: {\n enum: ['sign', 'verify', 'encrypt', 'decrypt', 'wrapKey', 'unwrapKey', 'deriveKey', 'deriveBits'] // other values MAY be used\n }\n },\n\n alg: {\n type: 'string',\n //format: 'case-sensitive',\n enum: ['HS256', 'HS384', 'HS512', 'RS256', 'RS384', 'RS512', 'ES256', 'ES384', 'ES512', 'PS256', 'PS384', 'PS512', 'none'] // other values MAY be used\n },\n\n kid: {\n type: 'string'\n },\n\n x5u: {\n type: 'string'\n //format: 'url'\n },\n\n x5c: {\n type: 'array'\n //format: BASE64_REGEXP\n },\n\n x5t: {\n type: 'string'\n //format: BASE64_REGEXP\n }\n\n //'x5t#S256': {\n // type: 'string',\n // //format: BASE64_REGEXP\n //}\n }\n});\n\n/**\n * Export\n */\nmodule.exports = JWKSchema;","'use strict';\n\nvar objectAssign = require('object-assign');\n\n// compare and isBuffer taken from https://github.com/feross/buffer/blob/680e9e5e488f22aac27599a57dc844a6315928dd/index.js\n// original notice:\n\n/*!\n * The buffer module from node.js, for the browser.\n *\n * @author Feross Aboukhadijeh \n * @license MIT\n */\nfunction compare(a, b) {\n if (a === b) {\n return 0;\n }\n\n var x = a.length;\n var y = b.length;\n\n for (var 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) {\n return -1;\n }\n if (y < x) {\n return 1;\n }\n return 0;\n}\nfunction isBuffer(b) {\n if (global.Buffer && typeof global.Buffer.isBuffer === 'function') {\n return global.Buffer.isBuffer(b);\n }\n return !!(b != null && b._isBuffer);\n}\n\n// based on node assert, original notice:\n// NB: The URL to the CommonJS spec is kept just for tradition.\n// node-assert has evolved a lot since then, both in API and behavior.\n\n// http://wiki.commonjs.org/wiki/Unit_Testing/1.0\n//\n// THIS IS NOT TESTED NOR LIKELY TO WORK OUTSIDE V8!\n//\n// Originally from narwhal.js (http://narwhaljs.org)\n// Copyright (c) 2009 Thomas Robinson <280north.com>\n//\n// Permission is hereby granted, free of charge, to any person obtaining a copy\n// of this software and associated documentation files (the 'Software'), to\n// deal in the Software without restriction, including without limitation the\n// rights to use, copy, modify, merge, publish, distribute, sublicense, and/or\n// sell copies of the Software, and to permit persons to whom the Software is\n// furnished to do so, subject to the following conditions:\n//\n// The above copyright notice and this permission notice shall be included in\n// all copies or substantial portions of the Software.\n//\n// THE SOFTWARE IS PROVIDED 'AS IS', WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\n// AUTHORS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN\n// ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION\n// WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.\n\nvar util = require('util/');\nvar hasOwn = Object.prototype.hasOwnProperty;\nvar pSlice = Array.prototype.slice;\nvar functionsHaveNames = (function () {\n return function foo() {}.name === 'foo';\n}());\nfunction pToString (obj) {\n return Object.prototype.toString.call(obj);\n}\nfunction isView(arrbuf) {\n if (isBuffer(arrbuf)) {\n return false;\n }\n if (typeof global.ArrayBuffer !== 'function') {\n return false;\n }\n if (typeof ArrayBuffer.isView === 'function') {\n return ArrayBuffer.isView(arrbuf);\n }\n if (!arrbuf) {\n return false;\n }\n if (arrbuf instanceof DataView) {\n return true;\n }\n if (arrbuf.buffer && arrbuf.buffer instanceof ArrayBuffer) {\n return true;\n }\n return false;\n}\n// 1. The assert module provides functions that throw\n// AssertionError's when particular conditions are not met. The\n// assert module must conform to the following interface.\n\nvar assert = module.exports = ok;\n\n// 2. The AssertionError is defined in assert.\n// new assert.AssertionError({ message: message,\n// actual: actual,\n// expected: expected })\n\nvar regex = /\\s*function\\s+([^\\(\\s]*)\\s*/;\n// based on https://github.com/ljharb/function.prototype.name/blob/adeeeec8bfcc6068b187d7d9fb3d5bb1d3a30899/implementation.js\nfunction getName(func) {\n if (!util.isFunction(func)) {\n return;\n }\n if (functionsHaveNames) {\n return func.name;\n }\n var str = func.toString();\n var match = str.match(regex);\n return match && match[1];\n}\nassert.AssertionError = function AssertionError(options) {\n this.name = 'AssertionError';\n this.actual = options.actual;\n this.expected = options.expected;\n this.operator = options.operator;\n if (options.message) {\n this.message = options.message;\n this.generatedMessage = false;\n } else {\n this.message = getMessage(this);\n this.generatedMessage = true;\n }\n var stackStartFunction = options.stackStartFunction || fail;\n if (Error.captureStackTrace) {\n Error.captureStackTrace(this, stackStartFunction);\n } else {\n // non v8 browsers so we can have a stacktrace\n var err = new Error();\n if (err.stack) {\n var out = err.stack;\n\n // try to strip useless frames\n var fn_name = getName(stackStartFunction);\n var idx = out.indexOf('\\n' + fn_name);\n if (idx >= 0) {\n // once we have located the function frame\n // we need to strip out everything before it (and its line)\n var next_line = out.indexOf('\\n', idx + 1);\n out = out.substring(next_line + 1);\n }\n\n this.stack = out;\n }\n }\n};\n\n// assert.AssertionError instanceof Error\nutil.inherits(assert.AssertionError, Error);\n\nfunction truncate(s, n) {\n if (typeof s === 'string') {\n return s.length < n ? s : s.slice(0, n);\n } else {\n return s;\n }\n}\nfunction inspect(something) {\n if (functionsHaveNames || !util.isFunction(something)) {\n return util.inspect(something);\n }\n var rawname = getName(something);\n var name = rawname ? ': ' + rawname : '';\n return '[Function' + name + ']';\n}\nfunction getMessage(self) {\n return truncate(inspect(self.actual), 128) + ' ' +\n self.operator + ' ' +\n truncate(inspect(self.expected), 128);\n}\n\n// At present only the three keys mentioned above are used and\n// understood by the spec. Implementations or sub modules can pass\n// other keys to the AssertionError's constructor - they will be\n// ignored.\n\n// 3. All of the following functions must throw an AssertionError\n// when a corresponding condition is not met, with a message that\n// may be undefined if not provided. All assertion methods provide\n// both the actual and expected values to the assertion error for\n// display purposes.\n\nfunction fail(actual, expected, message, operator, stackStartFunction) {\n throw new assert.AssertionError({\n message: message,\n actual: actual,\n expected: expected,\n operator: operator,\n stackStartFunction: stackStartFunction\n });\n}\n\n// EXTENSION! allows for well behaved errors defined elsewhere.\nassert.fail = fail;\n\n// 4. Pure assertion tests whether a value is truthy, as determined\n// by !!guard.\n// assert.ok(guard, message_opt);\n// This statement is equivalent to assert.equal(true, !!guard,\n// message_opt);. To test strictly for the value true, use\n// assert.strictEqual(true, guard, message_opt);.\n\nfunction ok(value, message) {\n if (!value) fail(value, true, message, '==', assert.ok);\n}\nassert.ok = ok;\n\n// 5. The equality assertion tests shallow, coercive equality with\n// ==.\n// assert.equal(actual, expected, message_opt);\n\nassert.equal = function equal(actual, expected, message) {\n if (actual != expected) fail(actual, expected, message, '==', assert.equal);\n};\n\n// 6. The non-equality assertion tests for whether two objects are not equal\n// with != assert.notEqual(actual, expected, message_opt);\n\nassert.notEqual = function notEqual(actual, expected, message) {\n if (actual == expected) {\n fail(actual, expected, message, '!=', assert.notEqual);\n }\n};\n\n// 7. The equivalence assertion tests a deep equality relation.\n// assert.deepEqual(actual, expected, message_opt);\n\nassert.deepEqual = function deepEqual(actual, expected, message) {\n if (!_deepEqual(actual, expected, false)) {\n fail(actual, expected, message, 'deepEqual', assert.deepEqual);\n }\n};\n\nassert.deepStrictEqual = function deepStrictEqual(actual, expected, message) {\n if (!_deepEqual(actual, expected, true)) {\n fail(actual, expected, message, 'deepStrictEqual', assert.deepStrictEqual);\n }\n};\n\nfunction _deepEqual(actual, expected, strict, memos) {\n // 7.1. All identical values are equivalent, as determined by ===.\n if (actual === expected) {\n return true;\n } else if (isBuffer(actual) && isBuffer(expected)) {\n return compare(actual, expected) === 0;\n\n // 7.2. If the expected value is a Date object, the actual value is\n // equivalent if it is also a Date object that refers to the same time.\n } else if (util.isDate(actual) && util.isDate(expected)) {\n return actual.getTime() === expected.getTime();\n\n // 7.3 If the expected value is a RegExp object, the actual value is\n // equivalent if it is also a RegExp object with the same source and\n // properties (`global`, `multiline`, `lastIndex`, `ignoreCase`).\n } else if (util.isRegExp(actual) && util.isRegExp(expected)) {\n return actual.source === expected.source &&\n actual.global === expected.global &&\n actual.multiline === expected.multiline &&\n actual.lastIndex === expected.lastIndex &&\n actual.ignoreCase === expected.ignoreCase;\n\n // 7.4. Other pairs that do not both pass typeof value == 'object',\n // equivalence is determined by ==.\n } else if ((actual === null || typeof actual !== 'object') &&\n (expected === null || typeof expected !== 'object')) {\n return strict ? actual === expected : actual == expected;\n\n // If both values are instances of typed arrays, wrap their underlying\n // ArrayBuffers in a Buffer each to increase performance\n // This optimization requires the arrays to have the same type as checked by\n // Object.prototype.toString (aka pToString). Never perform binary\n // comparisons for Float*Arrays, though, since e.g. +0 === -0 but their\n // bit patterns are not identical.\n } else if (isView(actual) && isView(expected) &&\n pToString(actual) === pToString(expected) &&\n !(actual instanceof Float32Array ||\n actual instanceof Float64Array)) {\n return compare(new Uint8Array(actual.buffer),\n new Uint8Array(expected.buffer)) === 0;\n\n // 7.5 For all other Object pairs, including Array objects, equivalence is\n // determined by having the same number of owned properties (as verified\n // with Object.prototype.hasOwnProperty.call), the same set of keys\n // (although not necessarily the same order), equivalent values for every\n // corresponding key, and an identical 'prototype' property. Note: this\n // accounts for both named and indexed properties on Arrays.\n } else if (isBuffer(actual) !== isBuffer(expected)) {\n return false;\n } else {\n memos = memos || {actual: [], expected: []};\n\n var actualIndex = memos.actual.indexOf(actual);\n if (actualIndex !== -1) {\n if (actualIndex === memos.expected.indexOf(expected)) {\n return true;\n }\n }\n\n memos.actual.push(actual);\n memos.expected.push(expected);\n\n return objEquiv(actual, expected, strict, memos);\n }\n}\n\nfunction isArguments(object) {\n return Object.prototype.toString.call(object) == '[object Arguments]';\n}\n\nfunction objEquiv(a, b, strict, actualVisitedObjects) {\n if (a === null || a === undefined || b === null || b === undefined)\n return false;\n // if one is a primitive, the other must be same\n if (util.isPrimitive(a) || util.isPrimitive(b))\n return a === b;\n if (strict && Object.getPrototypeOf(a) !== Object.getPrototypeOf(b))\n return false;\n var aIsArgs = isArguments(a);\n var bIsArgs = isArguments(b);\n if ((aIsArgs && !bIsArgs) || (!aIsArgs && bIsArgs))\n return false;\n if (aIsArgs) {\n a = pSlice.call(a);\n b = pSlice.call(b);\n return _deepEqual(a, b, strict);\n }\n var ka = objectKeys(a);\n var kb = objectKeys(b);\n var key, i;\n // having the same number of owned properties (keys incorporates\n // hasOwnProperty)\n if (ka.length !== kb.length)\n return false;\n //the same set of keys (although not necessarily the same order),\n ka.sort();\n kb.sort();\n //~~~cheap key test\n for (i = ka.length - 1; i >= 0; i--) {\n if (ka[i] !== kb[i])\n return false;\n }\n //equivalent values for every corresponding key, and\n //~~~possibly expensive deep test\n for (i = ka.length - 1; i >= 0; i--) {\n key = ka[i];\n if (!_deepEqual(a[key], b[key], strict, actualVisitedObjects))\n return false;\n }\n return true;\n}\n\n// 8. The non-equivalence assertion tests for any deep inequality.\n// assert.notDeepEqual(actual, expected, message_opt);\n\nassert.notDeepEqual = function notDeepEqual(actual, expected, message) {\n if (_deepEqual(actual, expected, false)) {\n fail(actual, expected, message, 'notDeepEqual', assert.notDeepEqual);\n }\n};\n\nassert.notDeepStrictEqual = notDeepStrictEqual;\nfunction notDeepStrictEqual(actual, expected, message) {\n if (_deepEqual(actual, expected, true)) {\n fail(actual, expected, message, 'notDeepStrictEqual', notDeepStrictEqual);\n }\n}\n\n\n// 9. The strict equality assertion tests strict equality, as determined by ===.\n// assert.strictEqual(actual, expected, message_opt);\n\nassert.strictEqual = function strictEqual(actual, expected, message) {\n if (actual !== expected) {\n fail(actual, expected, message, '===', assert.strictEqual);\n }\n};\n\n// 10. The strict non-equality assertion tests for strict inequality, as\n// determined by !==. assert.notStrictEqual(actual, expected, message_opt);\n\nassert.notStrictEqual = function notStrictEqual(actual, expected, message) {\n if (actual === expected) {\n fail(actual, expected, message, '!==', assert.notStrictEqual);\n }\n};\n\nfunction expectedException(actual, expected) {\n if (!actual || !expected) {\n return false;\n }\n\n if (Object.prototype.toString.call(expected) == '[object RegExp]') {\n return expected.test(actual);\n }\n\n try {\n if (actual instanceof expected) {\n return true;\n }\n } catch (e) {\n // Ignore. The instanceof check doesn't work for arrow functions.\n }\n\n if (Error.isPrototypeOf(expected)) {\n return false;\n }\n\n return expected.call({}, actual) === true;\n}\n\nfunction _tryBlock(block) {\n var error;\n try {\n block();\n } catch (e) {\n error = e;\n }\n return error;\n}\n\nfunction _throws(shouldThrow, block, expected, message) {\n var actual;\n\n if (typeof block !== 'function') {\n throw new TypeError('\"block\" argument must be a function');\n }\n\n if (typeof expected === 'string') {\n message = expected;\n expected = null;\n }\n\n actual = _tryBlock(block);\n\n message = (expected && expected.name ? ' (' + expected.name + ').' : '.') +\n (message ? ' ' + message : '.');\n\n if (shouldThrow && !actual) {\n fail(actual, expected, 'Missing expected exception' + message);\n }\n\n var userProvidedMessage = typeof message === 'string';\n var isUnwantedException = !shouldThrow && util.isError(actual);\n var isUnexpectedException = !shouldThrow && actual && !expected;\n\n if ((isUnwantedException &&\n userProvidedMessage &&\n expectedException(actual, expected)) ||\n isUnexpectedException) {\n fail(actual, expected, 'Got unwanted exception' + message);\n }\n\n if ((shouldThrow && actual && expected &&\n !expectedException(actual, expected)) || (!shouldThrow && actual)) {\n throw actual;\n }\n}\n\n// 11. Expected to throw an error:\n// assert.throws(block, Error_opt, message_opt);\n\nassert.throws = function(block, /*optional*/error, /*optional*/message) {\n _throws(true, block, error, message);\n};\n\n// EXTENSION! This is annoying to write outside this module.\nassert.doesNotThrow = function(block, /*optional*/error, /*optional*/message) {\n _throws(false, block, error, message);\n};\n\nassert.ifError = function(err) { if (err) throw err; };\n\n// Expose a strict only variant of assert\nfunction strict(value, message) {\n if (!value) fail(value, true, message, '==', strict);\n}\nassert.strict = objectAssign(strict, assert, {\n equal: assert.strictEqual,\n deepEqual: assert.deepStrictEqual,\n notEqual: assert.notStrictEqual,\n notDeepEqual: assert.notDeepStrictEqual\n});\nassert.strict.strict = assert.strict;\n\nvar objectKeys = Object.keys || function (obj) {\n var keys = [];\n for (var key in obj) {\n if (hasOwn.call(obj, key)) keys.push(key);\n }\n return keys;\n};\n","'use strict';\n\n/**\n * Mode enumeration\n */\n\nvar _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nvar THROW = 0;\nvar RECOVER = 1;\nvar SILENT = 2;\n\n/**\n * JSONPointer\n *\n * @class\n * Implements RFC 6901: JavaScript Object Notation (JSON) Pointer\n * https://tools.ietf.org/html/rfc6901\n */\n\nvar JSONPointer = function () {\n\n /**\n * Constructor\n */\n function JSONPointer(expr, mode) {\n _classCallCheck(this, JSONPointer);\n\n this.expr = expr;\n this.mode = mode || THROW;\n this.tokens = expr && expr.charAt(0) === '#' ? this.parseURIFragmentIdentifier(expr) : this.parseJSONString(expr);\n }\n\n /**\n * Escape\n */\n\n\n _createClass(JSONPointer, [{\n key: 'escape',\n value: function escape(expr) {\n return expr.replace(/~/g, '~0').replace(/\\//g, '~1');\n }\n\n /**\n * Unescape\n */\n\n }, {\n key: 'unescape',\n value: function unescape(expr) {\n return expr.replace(/~1/g, '/').replace(/~0/g, '~');\n }\n\n /**\n * Parse\n */\n\n }, {\n key: 'parseJSONString',\n\n\n /**\n * Parse JSON String\n *\n * @description Parse an expression into a list of tokens\n * @param {string} expr\n * @returns {Array}\n */\n value: function parseJSONString(expr) {\n if (typeof expr !== 'string') {\n throw new Error('JSON Pointer must be a string');\n }\n\n if (expr === '') {\n return [];\n }\n\n if (expr.charAt(0) !== '/') {\n throw new Error('Invalid JSON Pointer');\n }\n\n if (expr === '/') {\n return [''];\n }\n\n return expr.substr(1).split('/').map(this.unescape);\n }\n\n /**\n * To JSON String\n *\n * @description Render a JSON string representation of a pointer\n * @returns {string}\n */\n\n }, {\n key: 'toJSONString',\n value: function toJSONString() {\n return '/' + this.tokens.map(this.escape).join('/');\n }\n\n /**\n * Parse URI Fragment Identifer\n */\n\n }, {\n key: 'parseURIFragmentIdentifier',\n value: function parseURIFragmentIdentifier(expr) {\n if (typeof expr !== 'string') {\n throw new Error('JSON Pointer must be a string');\n }\n\n if (expr.charAt(0) !== '#') {\n throw new Error('Invalid JSON Pointer URI Fragment Identifier');\n }\n\n return this.parseJSONString(decodeURIComponent(expr.substr(1)));\n }\n\n /**\n * To URI Fragment Identifier\n *\n * @description Render a URI Fragment Identifier representation of a pointer\n * @returns {string}\n */\n\n }, {\n key: 'toURIFragmentIdentifier',\n value: function toURIFragmentIdentifier() {\n var _this = this;\n\n var value = this.tokens.map(function (token) {\n return encodeURIComponent(_this.escape(token));\n }).join('/');\n\n return '#/' + value;\n }\n\n /**\n * Get\n *\n * @description Get a value from the source object referenced by the pointer\n * @param {Object} source\n * @returns {*}\n */\n\n }, {\n key: 'get',\n value: function get(source) {\n var current = source;\n var tokens = this.tokens;\n\n for (var i = 0; i < tokens.length; i++) {\n if (!current || current[tokens[i]] === undefined) {\n if (this.mode !== THROW) {\n return undefined;\n } else {\n throw new Error('Invalid JSON Pointer reference');\n }\n }\n\n current = current[tokens[i]];\n }\n\n return current;\n }\n\n /**\n * Add\n *\n * @description Set a value on a target object referenced by the pointer. Put\n * will insert an array element. To change an existing array elemnent, use\n * `pointer.set()`\n * @param {Object} target\n * @param {*} value\n */\n\n }, {\n key: 'add',\n value: function add(target, value) {\n var tokens = this.tokens;\n var current = target;\n\n // iterate through the tokens\n for (var i = 0; i < tokens.length; i++) {\n var token = tokens[i];\n\n // set the property on the target location\n if (i === tokens.length - 1) {\n if (token === '-') {\n current.push(value);\n } else if (Array.isArray(current)) {\n current.splice(token, 0, value);\n } else if (value !== undefined) {\n current[token] = value;\n }\n\n // handle missing target location based on \"mode\"\n } else if (!current[token]) {\n switch (this.mode) {\n case THROW:\n throw new Error('Invalid JSON Pointer reference');\n\n case RECOVER:\n current = current[token] = parseInt(token) ? [] : {};\n break;\n\n case SILENT:\n return;\n\n default:\n throw new Error('Invalid pointer mode');\n }\n\n // reference the next object in the path\n } else {\n current = current[token];\n }\n }\n }\n\n /**\n * Replace\n *\n * @description Set a value on a target object referenced by the pointer. Set will\n * overwrite an existing array element at the target location.\n * @param {Object} target\n * @param {*} value\n */\n\n }, {\n key: 'replace',\n value: function replace(target, value) {\n var tokens = this.tokens;\n var current = target;\n\n for (var i = 0; i < tokens.length; i++) {\n var token = tokens[i];\n\n if (i === tokens.length - 1) {\n current[token] = value;\n } else if (!current[token]) {\n current = current[token] = parseInt(token) ? [] : {};\n } else {\n current = current[token];\n }\n }\n }\n\n /**\n * Del\n *\n * - if this is an array it should splice the value out\n */\n\n }, {\n key: 'remove',\n value: function remove(target) {\n var tokens = this.tokens;\n var current = target;\n\n for (var i = 0; i < tokens.length; i++) {\n var token = tokens[i];\n\n if (current === undefined || current[token] === undefined) {\n return undefined;\n } else if (Array.isArray(current)) {\n current.splice(token, 1);\n return undefined;\n } else if (i === tokens.length - 1) {\n delete current[token];\n }\n\n current = current[token];\n }\n\n // delete from the target\n }\n }], [{\n key: 'parse',\n value: function parse(expr) {\n return new JSONPointer(expr);\n }\n }]);\n\n return JSONPointer;\n}();\n\n/**\n * Exports\n */\n\n\nmodule.exports = JSONPointer;","'use strict';\n\nvar _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\n/**\n * Dependencies\n *\n * TODO\n * - switch between Node.js webcrypto package and browser implementation\n */\nvar base64url = require('base64url');\nvar supportedAlgorithms = require('../algorithms');\n\nvar _require = require('../errors'),\n NotSupportedError = _require.NotSupportedError;\n\n/**\n * JWA\n * https://tools.ietf.org/html/rfc7518\n */\n\n\nvar JWA = function () {\n function JWA() {\n _classCallCheck(this, JWA);\n }\n\n _createClass(JWA, null, [{\n key: 'sign',\n\n\n /**\n * Sign\n *\n * @description\n * Create a digital signature.\n *\n * @param {string} alg\n * @param {CryptoKey} key\n * @param {string|Buffer} data\n *\n * @return {Promise}\n */\n value: function sign(alg, key, data) {\n // normalize the algorithm\n var normalizedAlgorithm = supportedAlgorithms.normalize('sign', alg);\n\n // validate algorithm is supported\n if (normalizedAlgorithm instanceof Error) {\n return Promise.reject(new NotSupportedError(alg));\n }\n\n // validate type of key\n // TODO\n // - is the key suitable for the algorithm?\n // - does that get validated in webcrypto?\n //if (key instanceof CryptoKey) {\n // return Promise.reject(new InvalidKeyError())\n //}\n\n // sign the data\n return normalizedAlgorithm.sign(key, data);\n }\n\n /**\n * Verify\n *\n * @description\n * Verify a digital signature.\n *\n * @param {string} alg\n * @param {CryptoKey} privateKey\n * @param {string|Buffer} signature\n * @param {string|Buffer} data\n *\n * @return {Promise}\n */\n\n }, {\n key: 'verify',\n value: function verify(alg, key, signature, data) {\n var normalizedAlgorithm = supportedAlgorithms.normalize('verify', alg);\n\n if (normalizedAlgorithm instanceof Error) {\n return Promise.reject(new NotSupportedError(alg));\n }\n\n // TODO\n // validate publicKey\n\n // verify the signature\n return normalizedAlgorithm.verify(key, signature, data);\n }\n\n /**\n * Encrypt\n */\n\n /**\n * Decrypt\n */\n\n /**\n * Import\n */\n\n }, {\n key: 'importKey',\n value: function importKey(key) {\n var normalizedAlgorithm = supportedAlgorithms.normalize('importKey', key.alg);\n return normalizedAlgorithm.importKey(key);\n }\n }]);\n\n return JWA;\n}();\n\n/**\n * Export\n */\n\n\nmodule.exports = JWA;","/**\n * Dependencies\n */\n\n/**\n * FormUrlEncoded\n */\nclass FormUrlEncoded {\n\n /**\n * Encode\n *\n * @description\n * Represent an object as x-www-form-urlencoded string.\n *\n * @param {Object} data\n * @returns {string}\n */\n static encode (data) {\n let pairs = []\n\n Object.keys(data).forEach(function (key) {\n pairs.push(encodeURIComponent(key) + '=' + encodeURIComponent(data[key]))\n })\n\n return pairs.join('&')\n }\n\n /**\n * Decode\n *\n * @description\n * Parse a x-www-form-urlencoded into an object.\n *\n * @param {string} data\n * @returns {Object}\n */\n static decode (data) {\n let obj = {}\n\n data.split('&').forEach(function (property) {\n let pair = property.split('=')\n let key = decodeURIComponent(pair[0])\n let val = decodeURIComponent(pair[1])\n\n obj[key] = val\n })\n\n return obj\n }\n}\n\n/**\n * Export\n */\nmodule.exports = FormUrlEncoded\n","'use strict'\n\n/**\n * Throws an error when a fetch response status code indicates a 400 or 500\n * HTTP error. (The whatwg fetch api does not normally reject on http error\n * responses).\n *\n * Usage:\n *\n * ```\n * return fetch(url)\n * .then(onHttpError('Error while fetching resource')\n * .catch(err => console.log(err))\n *\n * // -> 'Error while fetching resource: 404 Not Found' error\n * // if a 404 response is encountered\n * ```\n *\n * @param [message] {string} Optional error message to clarify context\n *\n * @throws {Error} For http status codes > 300\n *\n * @return {Object} fetch response object (passed through if no error)\n */\nfunction onHttpError (message = 'fetch error') {\n return (response) => {\n if (response.status >= 200 && response.status < 300) {\n return response\n }\n\n let errorMessage = `${message}: ${response.status} ${response.statusText}`\n let error = new Error(errorMessage)\n error.response = response\n error.statusCode = response.status\n throw error\n }\n}\n\nmodule.exports = onHttpError\n","'use strict'\n\nmodule.exports = require('./RelyingParty')\n","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.unquote = exports.quote = exports.isScheme = exports.isToken = void 0;\nvar token = /^[^\\u0000-\\u001F\\u007F()<>@,;:\\\\\"/?={}\\[\\]\\u0020\\u0009]+$/;\n\nvar isToken = function isToken(str) {\n return typeof str === 'string' && token.test(str);\n};\n\nexports.isToken = isToken;\nvar isScheme = isToken;\nexports.isScheme = isScheme;\n\nvar quote = function quote(str) {\n return `\"${str.replace(/\"/g, '\\\\\"')}\"`;\n};\n\nexports.quote = quote;\n\nvar unquote = function unquote(str) {\n return str.substr(1, str.length - 2).replace(/\\\\\"/g, '\"');\n};\n\nexports.unquote = unquote;\n//# sourceMappingURL=util.js.map","/**\n * Dependencies\n */\nconst assert = require('assert')\nconst fetch = require('node-fetch')\nconst { URL } = require('whatwg-url')\nconst Headers = fetch.Headers ? fetch.Headers : global.Headers\nconst {JSONDocument} = require('@trust/json-document')\nconst {JWKSet} = require('@solid/jose')\nconst AuthenticationRequest = require('./AuthenticationRequest')\nconst AuthenticationResponse = require('./AuthenticationResponse')\nconst RelyingPartySchema = require('./RelyingPartySchema')\nconst onHttpError = require('./onHttpError')\nconst FormUrlEncoded = require('./FormUrlEncoded')\n\n/**\n * RelyingParty\n *\n * @class\n * Client interface for OpenID Connect Relying Party.\n *\n * @example\n * let client = RelyingParty({\n * provider: {\n * name: 'Anvil Research, Inc.',\n * url: 'https://forge.anvil.io'\n * // configuration\n * // jwks\n * },\n * defaults: {\n * popToken: false,\n * authenticate: {\n * response_type: 'code',\n * display: 'popup',\n * scope: 'openid profile email'\n * },\n * register: {\n * client_name: 'Example',\n * client_uri: 'https://example.com',\n * logo_uri: 'https://example.com/assets/logo.png',\n * redirect_uris: ['https://app.example.com/callback'],\n * response_types: ['code', 'code id_token token'],\n * grant_types: ['authorization_code'],\n * default_max_age: 7200,\n * post_logout_redirect_uris: ['https://app.example.com']\n * },\n * },\n * registration: {\n * // if you have it saved somewhere\n * },\n * store: localStorage || req.session\n * })\n *\n * client.discover() => Promise\n * client.jwks() => Promise\n * client.authenticate()\n * client.authenticateUri()\n * client.validateResponse(uri) => Promise\n * client.userinfo() => Promise\n * client.logout()\n */\nclass RelyingParty extends JSONDocument {\n\n /**\n * Schema\n */\n static get schema () {\n return RelyingPartySchema\n }\n\n /**\n * from\n *\n * @description\n * Create a RelyingParty instance from a previously registered client.\n *\n * @param {Object} data\n * @returns {Promise}\n */\n static from (data) {\n let rp = new RelyingParty(data)\n let validation = rp.validate()\n\n // schema validation\n if (!validation.valid) {\n return Promise.reject(new Error(JSON.stringify(validation)))\n }\n\n let jwks = rp.provider.jwks\n\n // request the JWK Set if missing\n if (!jwks) {\n return rp.jwks().then(() => rp)\n }\n\n // otherwise import the JWK Set to webcrypto\n return JWKSet.importKeys(jwks).then(jwks => {\n rp.provider.jwks = jwks\n return rp\n })\n }\n\n /**\n * register\n *\n * @param issuer {string} Provider URL\n * @param registration {Object} Client dynamic registration options\n * @param options {Object}\n * @param options.defaults\n * @param [options.store] {Session|Storage}\n * @returns {Promise} RelyingParty instance, registered.\n */\n static register (issuer, registration, options) {\n let rp = new RelyingParty({\n provider: { url: issuer },\n defaults: Object.assign({}, options.defaults),\n store: options.store\n })\n\n return Promise.resolve()\n .then(() => rp.discover())\n .then(() => rp.jwks())\n .then(() => rp.register(registration))\n .then(() => rp)\n }\n\n /**\n * Discover\n *\n * @description Fetches the issuer's OpenID Configuration.\n * @returns {Promise} Resolves with the provider configuration response\n */\n discover () {\n try {\n let issuer = this.provider.url\n\n assert(issuer, 'RelyingParty provider must define \"url\"')\n\n let url = new URL(issuer)\n url.pathname = '.well-known/openid-configuration'\n\n return fetch(url.toString())\n .then(onHttpError('Error fetching openid configuration'))\n .then(response => {\n return response.json().then(json => this.provider.configuration = json)\n })\n\n } catch (error) {\n return Promise.reject(error)\n }\n }\n\n /**\n * Register\n *\n * @description Register's a client with provider as a Relying Party\n *\n * @param options {Object}\n * @returns {Promise} Resolves with the registration response object\n */\n register (options) {\n try {\n let configuration = this.provider.configuration\n\n assert(configuration, 'OpenID Configuration is not initialized.')\n assert(configuration.registration_endpoint, 'OpenID Configuration is missing registration_endpoint.')\n\n let uri = configuration.registration_endpoint\n let method = 'post'\n let headers = new Headers({ 'Content-Type': 'application/json' })\n let params = this.defaults.register\n let body = JSON.stringify(Object.assign({}, params, options))\n\n return fetch(uri, {method, headers, body})\n .then(onHttpError('Error registering client'))\n .then(response => {\n return response.json().then(json => this.registration = json)\n })\n\n } catch (error) {\n return Promise.reject(error)\n }\n }\n\n serialize () {\n return JSON.stringify(this)\n }\n\n /**\n * jwks\n *\n * @description Promises the issuer's JWK Set.\n * @returns {Promise}\n */\n jwks () {\n try {\n let configuration = this.provider.configuration\n\n assert(configuration, 'OpenID Configuration is not initialized.')\n assert(configuration.jwks_uri, 'OpenID Configuration is missing jwks_uri.')\n\n let uri = configuration.jwks_uri\n\n return fetch(uri)\n .then(onHttpError('Error resolving provider keys'))\n .then(response => {\n return response\n .json()\n .then(json => JWKSet.importKeys(json))\n .then(jwks => this.provider.jwks = jwks)\n })\n\n } catch (error) {\n return Promise.reject(error)\n }\n }\n\n /**\n * createRequest\n *\n * @param options {Object} Authn request options hashmap\n * @param options.redirect_uri {string}\n * @param options.response_type {string} e.g. 'code' or 'id_token token'\n * @param session {Session|Storage} req.session or localStorage\n * @returns {Promise} Authn request URL\n */\n createRequest (options, session) {\n return AuthenticationRequest.create(this, options, session || this.store)\n }\n\n /**\n * Validate Response\n *\n * @param response {string} req.query or req.body.text\n * @param session {Session|Storage} req.session or localStorage or similar\n *\n * @returns {Promise}\n */\n validateResponse (response, session = this.store) {\n let options\n\n if (response.match(/^http(s?):\\/\\//)) {\n options = { rp: this, redirect: response, session }\n } else {\n options = { rp: this, body: response, session }\n }\n\n const authResponse = new AuthenticationResponse(options)\n\n return AuthenticationResponse.validateResponse(authResponse)\n }\n\n /**\n * userinfo\n *\n * @description Promises the authenticated user's claims.\n * @returns {Promise}\n */\n userinfo () {\n try {\n let configuration = this.provider.configuration\n\n assert(configuration, 'OpenID Configuration is not initialized.')\n assert(configuration.userinfo_endpoint, 'OpenID Configuration is missing userinfo_endpoint.')\n\n let uri = configuration.userinfo_endpoint\n let access_token = this.store.access_token\n\n assert(access_token, 'Missing access token.')\n\n let headers = new Headers({\n 'Content-Type': 'application/json',\n 'Authorization': `Bearer ${access_token}`\n })\n\n return fetch(uri, {headers})\n .then(onHttpError('Error fetching userinfo'))\n .then(response => response.json())\n\n } catch (error) {\n return Promise.reject(error)\n }\n }\n\n /**\n * logoutRequest\n *\n * Composes and returns the logout request URI, based on the OP's\n * `end_session_endpoint`, with appropriate parameters.\n *\n * Note: Calling client code has the responsibility to clear the local\n * session state (for example, by calling `rp.clearSession()`). In addition,\n * some IdPs (such as Google) may not provide an `end_session_endpoint`,\n * in which case, this method will return null.\n *\n * @see https://openid.net/specs/openid-connect-session-1_0.html#RPLogout\n *\n * @throws {Error} If provider config is not initialized\n *\n * @throws {Error} If `post_logout_redirect_uri` was provided without a\n * corresponding `id_token_hint`\n *\n * @param [options={}] {object}\n *\n * @param [options.id_token_hint] {string} RECOMMENDED.\n * Previously issued ID Token passed to the logout endpoint as\n * a hint about the End-User's current authenticated session with the\n * Client. This is used as an indication of the identity of the End-User\n * that the RP is requesting be logged out by the OP. The OP *need not* be\n * listed as an audience of the ID Token when it is used as an\n * `id_token_hint` value.\n *\n * @param [options.post_logout_redirect_uri] {string} OPTIONAL. URL to which\n * the RP is requesting that the End-User's User Agent be redirected after\n * a logout has been performed. The value MUST have been previously\n * registered with the OP, either using the `post_logout_redirect_uris`\n * Registration parameter or via another mechanism. If supplied, the OP\n * SHOULD honor this request following the logout.\n *\n * Note: The requirement to validate the uri for previous registration means\n * that, in practice, the `id_token_hint` is REQUIRED if\n * `post_logout_redirect_uri` is used. Otherwise, the OP has no way to get\n * the `client_id` to load the saved client registration, to validate the\n * uri. The only way it can get it is by decoding the `id_token_hint`.\n *\n * @param [options.state] {string} OPTIONAL. Opaque value used by the RP to\n * maintain state between the logout request and the callback to the\n * endpoint specified by the `post_logout_redirect_uri` query parameter. If\n * included in the logout request, the OP passes this value back to the RP\n * using the `state` query parameter when redirecting the User Agent back to\n * the RP.\n *\n * TODO: In the future, consider adding `response_mode` param, for the OP to\n * determine how to return the `state` back the RP.\n * @see http://openid.net/specs/oauth-v2-multiple-response-types-1_0.html#ResponseModes\n *\n * TODO: Handle special cases for popular providers (Google, MSFT)\n *\n * @returns {string|null} Logout uri (or null if no end_session_endpoint was\n * provided in the IdP config)\n */\n logoutRequest (options = {}) {\n const { id_token_hint, post_logout_redirect_uri, state } = options\n let configuration\n\n assert(this.provider, 'OpenID Configuration is not initialized')\n configuration = this.provider.configuration\n assert(configuration, 'OpenID Configuration is not initialized')\n\n if (!configuration.end_session_endpoint) {\n console.log(`OpenId Configuration for ` +\n `${configuration.issuer} is missing end_session_endpoint`)\n return null\n }\n\n if (post_logout_redirect_uri && !id_token_hint) {\n throw new Error('id_token_hint is required when using post_logout_redirect_uri')\n }\n\n const params = {}\n\n if (id_token_hint) {\n params.id_token_hint = id_token_hint\n }\n if (post_logout_redirect_uri) {\n params.post_logout_redirect_uri = post_logout_redirect_uri\n }\n if (state) {\n params.state = state\n }\n\n const url = new URL(configuration.end_session_endpoint)\n url.search = FormUrlEncoded.encode(params)\n\n return url.href\n }\n\n /**\n * Logout\n *\n * @deprecated\n *\n * TODO: Add deprecation warnings, then remove. Client code should\n * use `logoutRequest()` instead\n *\n * @returns {Promise}\n */\n logout () {\n let configuration\n try {\n assert(this.provider, 'OpenID Configuration is not initialized.')\n configuration = this.provider.configuration\n assert(configuration, 'OpenID Configuration is not initialized.')\n assert(configuration.end_session_endpoint,\n 'OpenID Configuration is missing end_session_endpoint.')\n } catch (error) {\n return Promise.reject(error)\n }\n\n if (!configuration.end_session_endpoint) {\n this.clearSession()\n return Promise.resolve(undefined)\n }\n\n let uri = configuration.end_session_endpoint\n let method = 'get'\n\n return fetch(uri, {method, credentials: 'include'})\n .then(onHttpError('Error logging out'))\n .then(() => this.clearSession())\n\n // TODO: Validate `frontchannel_logout_uri` if necessary\n /**\n * frontchannel_logout_uri - OPTIONAL. RP URL that will cause the RP to log\n * itself out when rendered in an iframe by the OP.\n *\n * An `iss` (issuer) query parameter and a `sid`\n * (session ID) query parameter MAY be included by the OP to enable the RP\n * to validate the request and to determine which of the potentially\n * multiple sessions is to be logged out. If a sid (session ID) query\n * parameter is included, an iss (issuer) query parameter MUST also be\n * included.\n * @see https://openid.net/specs/openid-connect-frontchannel-1_0.html#RPLogout\n */\n }\n\n clearSession () {\n let session = this.store\n\n if (!session) { return }\n\n delete session[SESSION_PRIVATE_KEY]\n }\n\n /**\n * @param uri {string} Target Resource Server URI\n * @param idToken {IDToken} ID Token to be embedded in the PoP token\n *\n * @returns {Promise}\n */\n popTokenFor (uri, idToken) {\n return PoPToken.issueFor(uri, idToken)\n }\n}\n\nconst SESSION_PRIVATE_KEY = 'oidc.session.privateKey'\n\nRelyingParty.SESSION_PRIVATE_KEY = SESSION_PRIVATE_KEY\n\nmodule.exports = RelyingParty\n","'use strict';\n\n/**\n * JSON Schema Formats\n *\n * TODO\n * Is there a good way to express these over multiple lines with comments\n * for easier debugging and auditing?\n */\n\nvar _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nvar DATETIME_REGEXP = /^\\d\\d\\d\\d-[0-1]\\d-[0-3]\\d[t\\s][0-2]\\d:[0-5]\\d:[0-5]\\d(?:\\.\\d+)?(?:z|[+-]\\d\\d:\\d\\d)$/i;\nvar URI_REGEXP = /^(?:[a-z][a-z0-9+-.]*)?(?:\\:|\\/)\\/?[^\\s]*$/i;\nvar EMAIL_REGEXP = /^[a-z0-9.!#$%&'*+\\/=?^_`{|}~-]+@[a-z0-9](?:[a-z0-9-]{0,61}[a-z0-9])?(?:\\.[a-z0-9](?:[a-z0-9-]{0,61}[a-z0-9])?)*$/i;\nvar IPV4_REGEXP = /^(?:(?:25[0-5]|2[0-4]\\d|[01]?\\d\\d?)\\.){3}(?:25[0-5]|2[0-4]\\d|[01]?\\d\\d?)$/;\nvar IPV6_REGEXP = /^\\s*(?:(?:(?:[0-9a-f]{1,4}:){7}(?:[0-9a-f]{1,4}|:))|(?:(?:[0-9a-f]{1,4}:){6}(?::[0-9a-f]{1,4}|(?:(?:25[0-5]|2[0-4]\\d|1\\d\\d|[1-9]?\\d)(?:\\.(?:25[0-5]|2[0-4]\\d|1\\d\\d|[1-9]?\\d)){3})|:))|(?:(?:[0-9a-f]{1,4}:){5}(?:(?:(?::[0-9a-f]{1,4}){1,2})|:(?:(?:25[0-5]|2[0-4]\\d|1\\d\\d|[1-9]?\\d)(?:\\.(?:25[0-5]|2[0-4]\\d|1\\d\\d|[1-9]?\\d)){3})|:))|(?:(?:[0-9a-f]{1,4}:){4}(?:(?:(?::[0-9a-f]{1,4}){1,3})|(?:(?::[0-9a-f]{1,4})?:(?:(?:25[0-5]|2[0-4]\\d|1\\d\\d|[1-9]?\\d)(?:\\.(?:25[0-5]|2[0-4]\\d|1\\d\\d|[1-9]?\\d)){3}))|:))|(?:(?:[0-9a-f]{1,4}:){3}(?:(?:(?::[0-9a-f]{1,4}){1,4})|(?:(?::[0-9a-f]{1,4}){0,2}:(?:(?:25[0-5]|2[0-4]\\d|1\\d\\d|[1-9]?\\d)(?:\\.(?:25[0-5]|2[0-4]\\d|1\\d\\d|[1-9]?\\d)){3}))|:))|(?:(?:[0-9a-f]{1,4}:){2}(?:(?:(?::[0-9a-f]{1,4}){1,5})|(?:(?::[0-9a-f]{1,4}){0,3}:(?:(?:25[0-5]|2[0-4]\\d|1\\d\\d|[1-9]?\\d)(?:\\.(?:25[0-5]|2[0-4]\\d|1\\d\\d|[1-9]?\\d)){3}))|:))|(?:(?:[0-9a-f]{1,4}:){1}(?:(?:(?::[0-9a-f]{1,4}){1,6})|(?:(?::[0-9a-f]{1,4}){0,4}:(?:(?:25[0-5]|2[0-4]\\d|1\\d\\d|[1-9]?\\d)(?:\\.(?:25[0-5]|2[0-4]\\d|1\\d\\d|[1-9]?\\d)){3}))|:))|(?::(?:(?:(?::[0-9a-f]{1,4}){1,7})|(?:(?::[0-9a-f]{1,4}){0,5}:(?:(?:25[0-5]|2[0-4]\\d|1\\d\\d|[1-9]?\\d)(?:\\.(?:25[0-5]|2[0-4]\\d|1\\d\\d|[1-9]?\\d)){3}))|:)))(?:%.+)?\\s*$/i;\nvar HOSTNAME_REGEXP = /^[a-z](?:(?:[-0-9a-z]{0,61})?[0-9a-z])?(\\.[a-z](?:(?:[-0-9a-z]{0,61})?[0-9a-z])?)*$/i;\n\n/**\n * Formats\n */\n\nvar Formats = function () {\n function Formats() {\n _classCallCheck(this, Formats);\n }\n\n _createClass(Formats, [{\n key: 'register',\n\n\n /**\n * Register\n *\n * @description\n * Register a new mapping from named format to RegExp instance\n *\n * TODO\n * We can do some extra validation of the RegExp to\n * ensure it's the acceptable subset of RegExps allowed\n * by JSON Schema.\n *\n * @param {string} name\n * @param {RegExp} pattern\n * @returns {RegExp}\n */\n value: function register(name, pattern) {\n // verify name is a string\n if (typeof name !== 'string') {\n throw new Error('Format name must be a string');\n }\n\n // cast a string to RegExp\n if (typeof pattern === 'string') {\n pattern = new RegExp(pattern);\n }\n\n return this[name] = pattern;\n }\n\n /**\n * Resolve\n *\n * @description\n * Given a format name, return the corresponding registered validation. In the\n * event a format is not registered, throw an error.\n *\n * @param {string} name\n * @returns {RegExp}\n */\n\n }, {\n key: 'resolve',\n value: function resolve(name) {\n var format = this[name];\n\n if (!format) {\n throw new Error('Unknown JSON Schema format.');\n }\n\n return format;\n }\n\n /**\n * Test\n *\n * @description\n * Test that a value conforms to a format.\n *\n * @param {string} name\n * @param {string} value\n * @returns {Boolean}\n */\n\n }, {\n key: 'test',\n value: function test(name, value) {\n var format = this.resolve(name);\n return format.test(value);\n }\n }], [{\n key: 'initialize',\n\n\n /**\n * Initialize\n *\n * @description\n * Create a new Formats instance and register default formats\n *\n * @returns {Formats}\n */\n value: function initialize() {\n var formats = new Formats();\n formats.register('date-time', DATETIME_REGEXP);\n formats.register('uri', URI_REGEXP);\n formats.register('email', EMAIL_REGEXP);\n formats.register('ipv4', IPV4_REGEXP);\n formats.register('ipv6', IPV6_REGEXP);\n formats.register('hostname', HOSTNAME_REGEXP);\n return formats;\n }\n }]);\n\n return Formats;\n}();\n\n/**\n * Export\n */\n\n\nmodule.exports = Formats.initialize();","'use strict';\n\n/**\n * Initializer\n */\n\nvar _typeof = typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\" ? function (obj) { return typeof obj; } : function (obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; };\n\nvar _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nvar Initializer = function () {\n\n /**\n * constructor\n */\n function Initializer(schema, options) {\n _classCallCheck(this, Initializer);\n\n Object.assign(this, options || {});\n this.root = this.root || this;\n\n this.root.depth = this.root.depth || 1;\n\n if (this.level > this.root.depth) {\n this.root.depth = this.level;\n }\n\n this.level = this.level || 0;\n this.schema = schema;\n }\n\n /**\n * compile (static)\n */\n\n\n _createClass(Initializer, [{\n key: 'compile',\n\n\n /**\n * compile\n */\n value: function compile() {\n var root = this.root,\n depth = this.depth,\n level = this.level;\n\n var declarations = '';\n var body = '';\n\n // traverse the schema and generate code\n body += this.default();\n body += this.properties();\n //body += this.additionalProperties()\n body += this.items();\n //body += this.additionalItems()\n\n\n // value\n body += this.member();\n body += this.item();\n\n // after traversing the schema\n // generate the variable declarations\n if (root === this) {\n for (var i = 1; i <= this.root.depth; i++) {\n declarations += this.declaration(i);\n }\n\n return '\\n options = options || {}\\n\\n if (options.filter === false) {\\n Object.assign(target, JSON.parse(JSON.stringify(source)))\\n }\\n\\n ' + declarations + '\\n ' + body + '\\n ';\n }\n\n return body;\n }\n\n /**\n * declaration\n */\n\n }, {\n key: 'declaration',\n value: function declaration(level) {\n return '\\n var target' + level + '\\n var source' + level + '\\n var count' + level + '\\n ';\n }\n\n /**\n * default\n */\n\n }, {\n key: 'default',\n value: function _default() {\n var schema = this.schema,\n level = this.level,\n key = this.key,\n index = this.index;\n var value = schema.default; // rename default to value because it's a keyword and syntax highlighter breaks\n\n var block = '';\n\n if (schema.hasOwnProperty('default')) {\n\n if (key) {\n block += '\\n target' + level + '[\\'' + key + '\\'] = ' + JSON.stringify(value) + '\\n ';\n }\n\n if (index) {\n block += '\\n target' + level + '[' + index + '] = ' + JSON.stringify(value) + '\\n ';\n }\n\n if (level > 1) {\n block += '\\n count' + level + '++\\n ';\n }\n\n block = '\\n if (options.defaults !== false) {\\n ' + block + '\\n }\\n ';\n }\n\n return block;\n }\n\n /**\n * member\n */\n\n }, {\n key: 'member',\n value: function member() {\n var schema = this.schema,\n root = this.root,\n level = this.level,\n key = this.key;\n var properties = schema.properties,\n additionalProperties = schema.additionalProperties,\n items = schema.items,\n additionalItems = schema.additionalItems;\n\n var block = '';\n\n // `key` tells us to treat this subschema as an object member vs an array item\n // and the absence of the other values here indicates we are dealing with a\n // primitive value\n if (key && !properties && !additionalProperties && !items && !additionalItems) {\n\n // first generate the assignment statement\n block += '\\n target' + level + '[\\'' + key + '\\'] = source' + level + '[\\'' + key + '\\']\\n ';\n\n // for nested container objects, add the counter incrementing statement\n if (level > 1) {\n block += '\\n count' + level + '++\\n ';\n }\n\n // wrap the foregoing in a check for presence on the source\n block = '\\n if (source' + level + '.hasOwnProperty(\\'' + key + '\\')) {\\n ' + block + '\\n }\\n ';\n }\n\n return block;\n }\n\n /**\n * item\n */\n\n }, {\n key: 'item',\n value: function item() {\n var schema = this.schema,\n root = this.root,\n level = this.level,\n index = this.index;\n var properties = schema.properties,\n additionalProperties = schema.additionalProperties,\n items = schema.items,\n additionalItems = schema.additionalItems;\n\n var block = '';\n\n if (index && !properties && !additionalProperties && !items && !additionalItems) {\n\n block += '\\n target' + level + '[' + index + '] = source' + level + '[' + index + ']\\n ';\n\n if (level > 1) {\n block += '\\n count' + level + '++\\n ';\n }\n\n block = '\\n if (' + index + ' < len) {\\n ' + block + '\\n }\\n ';\n }\n\n return block;\n }\n\n /**\n * properties\n */\n\n }, {\n key: 'properties',\n value: function properties() {\n var schema = this.schema,\n root = this.root,\n level = this.level,\n key = this.key,\n index = this.index;\n var properties = schema.properties;\n\n var block = '';\n\n if (properties) {\n Object.keys(properties).forEach(function (key) {\n var subschema = properties[key];\n var initializer = new Initializer(subschema, { key: key, root: root, level: level + 1 });\n\n block += initializer.compile();\n });\n\n // root-level properties boilerplate\n if (root === this) {\n block = '\\n if (typeof source === \\'object\\' && source !== null && !Array.isArray(source)) {\\n if (typeof target !== \\'object\\') {\\n throw new Error(\\'?\\')\\n }\\n\\n source1 = source\\n target1 = target\\n count1 = 0\\n\\n ' + block + '\\n }\\n ';\n\n // nested properties boilerplate\n } else {\n\n if (index) {\n block = '\\n if (' + index + ' < source' + level + '.length || typeof source' + level + '[' + index + '] === \\'object\\') {\\n\\n source' + (level + 1) + ' = source' + level + '[' + index + '] || {}\\n count' + (level + 1) + ' = 0\\n\\n if (' + index + ' < target' + level + '.length || typeof target' + level + '[' + index + '] !== \\'object\\') {\\n target' + (level + 1) + ' = {}\\n if (' + index + ' < source' + level + '.length) {\\n count' + (level + 1) + '++\\n }\\n } else {\\n target' + (level + 1) + ' = target' + level + '[' + index + ']\\n }\\n\\n ' + block + '\\n\\n if (count' + (level + 1) + ' > 0) {\\n target' + level + '[' + index + '] = target' + (level + 1) + '\\n count' + level + '++\\n }\\n\\n } else {\\n target' + level + '[' + index + '] = source' + level + '[' + index + ']\\n count' + level + '++\\n }\\n ';\n }\n\n if (key) {\n block = '\\n if ((typeof source' + level + '[\\'' + key + '\\'] === \\'object\\'\\n && source' + level + '[\\'' + key + '\\'] !== null\\n && !Array.isArray(source' + level + '[\\'' + key + '\\']))\\n || !source' + level + '.hasOwnProperty(\\'' + key + '\\')) {\\n\\n source' + (level + 1) + ' = source' + level + '[\\'' + key + '\\'] || {}\\n count' + (level + 1) + ' = 0\\n\\n if (!target' + level + '.hasOwnProperty(\\'' + key + '\\')\\n || typeof target' + level + '[\\'' + key + '\\'] !== \\'object\\'\\n || target' + level + '[\\'' + key + '\\'] === null\\n || Array.isArray(target' + level + '[\\'' + key + '\\'])) {\\n target' + (level + 1) + ' = {}\\n if (source' + level + '.hasOwnProperty(\\'' + key + '\\')) {\\n count' + (level + 1) + '++\\n }\\n } else {\\n target' + (level + 1) + ' = target' + level + '[\\'' + key + '\\']\\n count' + (level + 1) + '++\\n }\\n\\n ' + block + '\\n\\n if (count' + (level + 1) + ' > 0) {\\n target' + level + '[\\'' + key + '\\'] = target' + (level + 1) + '\\n count' + level + '++\\n }\\n\\n } else {\\n target' + level + '[\\'' + key + '\\'] = source' + level + '[\\'' + key + '\\']\\n count' + level + '++\\n }\\n ';\n }\n }\n }\n\n return block;\n }\n\n /**\n *\n */\n\n }, {\n key: 'additionalProperties',\n value: function additionalProperties() {}\n\n /**\n * items\n */\n\n }, {\n key: 'items',\n value: function items() {\n var schema = this.schema,\n root = this.root,\n level = this.level,\n key = this.key,\n index = this.index;\n var items = schema.items;\n\n var block = '';\n\n if (items) {\n\n if (Array.isArray(items)) {\n // TODO\n //\n //\n //\n //\n //\n // ...\n\n } else if ((typeof items === 'undefined' ? 'undefined' : _typeof(items)) === 'object' && items !== null) {\n var _index = 'i' + (level + 1);\n var initializer = new Initializer(items, { index: _index, root: root, level: level + 1 });\n\n block += '\\n var sLen = source' + (level + 1) + '.length || 0\\n var tLen = target' + (level + 1) + '.length || 0\\n var len = 0\\n\\n if (sLen > len) { len = sLen }\\n // THIS IS WRONG, CAUSED SIMPLE ARRAY INIT TO FAIL (OVERWRITE\\n // EXISTING TARGET VALUES WITH UNDEFINED WHEN SOURCE IS SHORTER THAN\\n // TARGET). LEAVING HERE UNTIL WE FINISH TESTING AND SEE WHY IT MIGHT\\n // HAVE BEEN HERE IN THE FIRST PLACE.\\n //\\n // if (tLen > len) { len = tLen }\\n\\n for (var ' + _index + ' = 0; ' + _index + ' < len; ' + _index + '++) {\\n ' + initializer.compile() + '\\n }\\n ';\n }\n\n // root-level properties boilerplate\n if (root === this) {\n block = '\\n if (Array.isArray(source)) {\\n if (!Array.isArray(target)) {\\n throw new Error(\\'?\\')\\n }\\n\\n source1 = source\\n target1 = target\\n\\n ' + block + '\\n }\\n ';\n\n // nested properties boilerplate\n } else {\n block = '\\n if (Array.isArray(source' + level + '[\\'' + key + '\\']) || !source' + level + '.hasOwnProperty(\\'' + key + '\\')) {\\n\\n source' + (level + 1) + ' = source' + level + '[\\'' + key + '\\'] || []\\n count' + (level + 1) + ' = 0\\n\\n if (!target' + level + '.hasOwnProperty(\\'' + key + '\\') || !Array.isArray(target' + level + '[\\'' + key + '\\'])) {\\n target' + (level + 1) + ' = []\\n if (source' + level + '.hasOwnProperty(\\'' + key + '\\')) {\\n count' + (level + 1) + '++\\n }\\n\\n } else {\\n target' + (level + 1) + ' = target' + level + '[\\'' + key + '\\']\\n count' + (level + 1) + '++\\n }\\n\\n ' + block + '\\n\\n if (count' + (level + 1) + ' > 0) {\\n target' + level + '[\\'' + key + '\\'] = target' + (level + 1) + '\\n count' + level + '++\\n }\\n\\n } else {\\n target' + level + '[\\'' + key + '\\'] = source' + level + '[\\'' + key + '\\']\\n count' + level + '++\\n }\\n ';\n }\n }\n\n return block;\n }\n\n /**\n *\n */\n\n }, {\n key: 'additionalItems',\n value: function additionalItems() {}\n }], [{\n key: 'compile',\n value: function compile(schema) {\n var initializer = new Initializer(schema);\n var block = initializer.compile();\n\n //console.log(beautify(block))\n try {\n return new Function('target', 'source', 'options', block);\n } catch (e) {\n console.log(e, e.stack);\n }\n }\n }]);\n\n return Initializer;\n}();\n\nmodule.exports = Initializer;","'use strict';\n\n/**\n * Module dependencies\n * @ignore\n */\n\nvar _typeof = typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\" ? function (obj) { return typeof obj; } : function (obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; };\n\nvar _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nvar JSONPointer = require('./JSONPointer');\n\n/**\n * Modes\n */\nvar THROW = 0;\nvar RECOVER = 1;\nvar SILENT = 2;\n\n/**\n * Operations list\n */\nvar OPERATIONS = ['add', 'remove', 'replace', 'move', 'copy', 'test'];\n\n/**\n * Patch\n *\n * @class\n * Implements RFC 6902: JavaScript Object Notation (JSON) Patch\n * https://tools.ietf.org/html/rfc6902\n */\n\nvar JSONPatch = function () {\n\n /**\n * Constructor\n *\n * @param {Array} ops\n */\n function JSONPatch(ops) {\n _classCallCheck(this, JSONPatch);\n\n this.ops = ops || [];\n }\n\n /**\n * Apply\n *\n * @todo handle errors/roll back\n * @todo protect properties that are private in the schema\n * @todo map JSON Pointers real property names\n *\n * @param {Object} target\n */\n\n\n _createClass(JSONPatch, [{\n key: 'apply',\n value: function apply(target) {\n var _this = this;\n\n this.ops.forEach(function (operation) {\n var op = operation.op;\n\n if (!op) {\n throw new Error('Missing \"op\" in JSON Patch operation');\n }\n\n if (OPERATIONS.indexOf(op) === -1) {\n throw new Error('Invalid \"op\" in JSON Patch operation');\n }\n\n if (!operation.path) {\n throw new Error('Missing \"path\" in JSON Patch operation');\n }\n\n _this[op](operation, target);\n });\n }\n\n /**\n * Add\n *\n * @param {Object} op\n * @param {Object} target\n */\n\n }, {\n key: 'add',\n value: function add(op, target) {\n if (op.value === undefined) {\n throw new Error('Missing \"value\" in JSON Patch add operation');\n }\n\n var pointer = new JSONPointer(op.path, SILENT);\n pointer.add(target, op.value);\n }\n\n /**\n * Remove\n *\n * @param {Object} op\n * @param {Object} target\n */\n\n }, {\n key: 'remove',\n value: function remove(op, target) {\n var pointer = new JSONPointer(op.path);\n pointer.remove(target);\n }\n\n /**\n * Replace\n *\n * @param {Object} op\n * @param {Object} target\n */\n\n }, {\n key: 'replace',\n value: function replace(op, target) {\n if (op.value === undefined) {\n throw new Error('Missing \"value\" in JSON Patch replace operation');\n }\n\n var pointer = new JSONPointer(op.path);\n pointer.replace(target, op.value);\n }\n\n /**\n * Move\n *\n * @param {Object} op\n * @param {Object} target\n */\n\n }, {\n key: 'move',\n value: function move(op, target) {\n if (op.from === undefined) {\n throw new Error('Missing \"from\" in JSON Patch move operation');\n }\n\n if (op.path.match(new RegExp('^' + op.from))) {\n throw new Error('Invalid \"from\" in JSON Patch move operation');\n }\n\n var pointer = new JSONPointer(op.path);\n var from = new JSONPointer(op.from);\n var value = from.get(target);\n\n from.remove(target);\n pointer.add(target, value);\n }\n\n /**\n * Copy\n *\n * @param {Object} op\n * @param {Object} target\n */\n\n }, {\n key: 'copy',\n value: function copy(op, target) {\n if (op.from === undefined) {\n throw new Error('Missing \"from\" in JSON Patch copy operation');\n }\n\n var pointer = new JSONPointer(op.path);\n var from = new JSONPointer(op.from);\n var value = from.get(target);\n\n pointer.add(target, value);\n }\n\n /**\n * Test\n *\n * @param {Object} op\n * @param {Object} target\n */\n\n }, {\n key: 'test',\n value: function test(op, target) {\n if (op.value === undefined) {\n throw new Error('Missing \"value\" in JSON Patch test operation');\n }\n\n var pointer = new JSONPointer(op.path);\n var value = pointer.get(target);\n\n switch (_typeof(op.value)) {\n //case 'string':\n //case 'number':\n //case 'boolean':\n // if (value !== op.value) {\n // throw new Error('Mismatching JSON Patch test value')\n // }\n default:\n if (value !== op.value) {\n throw new Error('Mismatching JSON Patch test value');\n }\n }\n }\n }]);\n\n return JSONPatch;\n}();\n\n/**\n * Exports\n */\n\n\nmodule.exports = JSONPatch;","'use strict';\n\n/**\n * Module dependencies\n * @ignore\n */\n\nvar _typeof = typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\" ? function (obj) { return typeof obj; } : function (obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; };\n\nvar _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nvar formats = require('./Formats');\n\n/**\n * For variable iterator counter\n *\n * @type {number}\n */\nvar indexCount = 0;\n\n/**\n * Validator\n *\n * Compile an object describing a JSON Schema into a validation function.\n */\n\nvar Validator = function () {\n _createClass(Validator, null, [{\n key: 'compile',\n\n\n /**\n * Compile (static)\n *\n * @description\n * Compile an object describing a JSON Schema into a validation function.\n *\n * @param {Object} schema\n * @returns {Function}\n */\n value: function compile(schema) {\n var validator = new Validator(schema);\n\n var body = '\\n // \"cursor\"\\n let value = data\\n let container\\n let stack = []\\n let top = -1\\n\\n // error state\\n let valid = true\\n let errors = []\\n\\n // complex schema state\\n let initialValidity\\n let anyValid\\n let notValid\\n let countOfValid\\n let initialErrorCount\\n let accumulatedErrorCount\\n\\n // validation code\\n ' + validator.compile() + '\\n\\n // validation result\\n return {\\n valid,\\n errors\\n }\\n ';\n\n return new Function('data', body);\n }\n\n /**\n * Return current iterator index counter and increase value\n *\n * @returns {number}\n */\n\n }, {\n key: 'counter',\n get: function get() {\n return indexCount++;\n }\n\n /**\n * Constructor\n *\n * @param {Object} schema - object representation of a schema\n * @param {string} options - compilation options\n */\n\n }]);\n\n function Validator(schema) {\n var options = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n\n _classCallCheck(this, Validator);\n\n // assign schema to this\n this.schema = schema;\n\n // assign all options to this\n Object.assign(this, options);\n\n // ensure address is defined\n if (!this.address) {\n this.address = '';\n }\n\n // ensure require is boolean\n if (this.require !== true) {\n this.require = false;\n }\n }\n\n /**\n * Compile\n *\n * @description\n * The instance compile method is \"dumb\". It only sequences invocation of\n * more specific compilation methods. It generates code to\n *\n * - read a value from input\n * - validate type(s) of input\n * - validate constraints described by various schema keywords\n *\n * Conditional logic related to code generation is pushed downsteam to\n * type-specific methods.\n */\n\n\n _createClass(Validator, [{\n key: 'compile',\n value: function compile() {\n var block = '';\n\n if (this.require) {\n block += this.required();\n }\n\n // type validation\n block += this.type();\n\n // type specific validation generators\n // null and boolean are covered by this.type()\n // integer should be covered by number and this.type()\n block += this.array();\n block += this.number();\n block += this.object();\n block += this.string();\n\n // non-type-specific validation generators\n block += this.enum();\n block += this.anyOf();\n block += this.allOf();\n block += this.not();\n block += this.oneOf();\n\n return block;\n }\n\n /**\n * push\n */\n\n }, {\n key: 'push',\n value: function push() {\n return '\\n stack.push(value)\\n container = value\\n top++\\n ';\n }\n\n /**\n * pop\n */\n\n }, {\n key: 'pop',\n value: function pop() {\n return '\\n if (stack.length > 1) {\\n top--\\n stack.pop()\\n }\\n\\n value = container = stack[top]\\n ';\n }\n\n /**\n * type\n *\n * @description\n * > An instance matches successfully if its primitive type is one of the\n * > types defined by keyword. Recall: \"number\" includes \"integer\".\n * > JSON Schema Validation Section 5.5.2\n *\n * @returns {string}\n */\n\n }, {\n key: 'type',\n value: function type() {\n var type = this.schema.type,\n address = this.address;\n\n var block = '';\n\n if (type) {\n var types = Array.isArray(type) ? type : [type];\n var conditions = types.map(function (type) {\n // TODO: can we make a mapping object for this to clean it up?\n if (type === 'array') return '!Array.isArray(value)';\n if (type === 'boolean') return 'typeof value !== \\'boolean\\'';\n if (type === 'integer') return '!Number.isInteger(value)';\n if (type === 'null') return 'value !== null';\n if (type === 'number') return 'typeof value !== \\'number\\'';\n if (type === 'object') return '(typeof value !== \\'object\\' || Array.isArray(value) || value === null)';\n if (type === 'string') return 'typeof value !== \\'string\\'';\n }).join(' && ');\n\n block += '\\n // ' + address + ' type checking\\n if (value !== undefined && ' + conditions + ') {\\n valid = false\\n errors.push({\\n keyword: \\'type\\',\\n message: \\'invalid type\\'\\n })\\n }\\n ';\n }\n\n return block;\n }\n\n /**\n * Type-specific validations\n *\n * Type checking is optional in JSON Schema, and a schema can allow\n * multiple types. Generated code needs to apply type-specific validations\n * only to appropriate values, and ignore everything else. Type validation\n * itself is handled separately from other validation keywords.\n *\n * The methods `array`, `number`, `object`, `string` generate type-specific\n * validation code blocks, wrapped in a conditional such that they will\n * only be applied to values of that type.\n *\n * For example, the `number` method, given the schema\n *\n * { minimum: 3 }\n *\n * will generate\n *\n * if (typeof value === 'number') {\n * if (value < 3) {\n * valid = false\n * errors.push({ message: '...' })\n * }\n * }\n *\n * Integer values are also numbers, and are validated the same as numbers\n * other than the type validation itself. Therefore no `integer` method is\n * needed.\n */\n\n /**\n * array\n *\n * @description\n * Invoke methods for array-specific keywords and wrap resulting code in\n * type-checking conditional so that any resulting validations are only\n * applied to array values.\n *\n * @returns {string}\n */\n\n }, {\n key: 'array',\n value: function array() {\n var keywords = ['additionalItems', 'items', 'minItems', 'maxItems', 'uniqueItems'];\n var validations = this.validations(keywords);\n var block = '';\n\n if (validations.length > 0) {\n block += '\\n /**\\n * Array validations\\n */\\n if (Array.isArray(value)) {\\n ' + validations + '\\n }\\n ';\n }\n\n return block;\n }\n\n /**\n * number\n *\n * @description\n * Invoke methods for number-specific keywords and wrap resulting code in\n * type-checking conditional so that any resulting validations are only\n * applied to number values.\n *\n * @returns {string}\n */\n\n }, {\n key: 'number',\n value: function number() {\n var keywords = ['minimum', 'maximum', 'multipleOf'];\n var validations = this.validations(keywords);\n var block = '';\n\n if (validations.length > 0) {\n block += '\\n /**\\n * Number validations\\n */\\n if (typeof value === \\'number\\') {\\n ' + validations + '\\n }\\n ';\n }\n\n return block;\n }\n\n /**\n * object\n *\n * @description\n * Invoke methods for object-specific keywords and wrap resulting code in\n * type-checking conditional so that any resulting validations are only\n * applied to object values.\n *\n * @returns {string}\n */\n\n }, {\n key: 'object',\n value: function object() {\n var keywords = ['maxProperties', 'minProperties', 'additionalProperties', 'properties', 'patternProperties', 'dependencies', 'schemaDependencies', 'propertyDependencies'];\n var validations = this.validations(keywords);\n var block = '';\n\n if (validations.length > 0) {\n block += '\\n /**\\n * Object validations\\n */\\n if (typeof value === \\'object\\' && value !== null && !Array.isArray(value)) {\\n ' + validations + '\\n }\\n ';\n }\n\n return block;\n }\n\n /**\n * string\n *\n * @description\n * Invoke methods for string-specific keywords and wrap resulting code in\n * type-checking conditional so that any resulting validations are only\n * applied to string values.\n *\n * @returns {string}\n */\n\n }, {\n key: 'string',\n value: function string() {\n var keywords = ['maxLength', 'minLength', 'pattern', 'format'];\n var validations = this.validations(keywords);\n var block = '';\n\n if (validations.length > 0) {\n block += '\\n /**\\n * String validations\\n */\\n if (typeof value === \\'string\\') {\\n ' + validations + '\\n }\\n ';\n }\n\n return block;\n }\n\n /**\n * validations\n *\n * @description\n * Iterate over an array of keywords and invoke code generator methods\n * for each. Concatenate the results together and return. Used by \"type\"\n * methods such as this.array() and this.string()\n *\n * @param {Array} keywords\n * @returns {string}\n */\n\n }, {\n key: 'validations',\n value: function validations(keywords) {\n var _this = this;\n\n var schema = this.schema;\n\n var block = '';\n\n var constraints = Object.keys(schema).filter(function (key) {\n return keywords.indexOf(key) !== -1;\n });\n\n constraints.forEach(function (keyword) {\n block += _this[keyword]();\n });\n\n return block;\n }\n\n /**\n * enum\n *\n * @description\n * > An instance validates successfully against this keyword if its value\n * > is equal to one of the elements in this keyword's array value.\n * > JSON Schema Validation Section 5.5.1\n *\n * @returns {string}\n */\n\n }, {\n key: 'enum',\n value: function _enum() {\n var enumerated = this.schema.enum,\n address = this.address;\n\n var conditions = ['value !== undefined'];\n var block = '';\n\n if (enumerated) {\n enumerated.forEach(function (value) {\n switch (typeof value === 'undefined' ? 'undefined' : _typeof(value)) {\n case 'boolean':\n conditions.push('value !== ' + value);\n break;\n\n case 'number':\n conditions.push('value !== ' + value);\n break;\n\n case 'string':\n conditions.push('value !== \"' + value + '\"');\n break;\n\n case 'object':\n if (value === null) {\n conditions.push('value !== null');\n } else {\n conditions.push('\\'' + JSON.stringify(value) + '\\' !== JSON.stringify(value)');\n }\n break;\n\n default:\n throw new Error('Things are not well in the land of enum');\n\n }\n });\n\n block += '\\n /**\\n * Validate \"' + address + '\" enum\\n */\\n if (' + conditions.join(' && ') + ') {\\n valid = false\\n errors.push({\\n keyword: \\'enum\\',\\n message: JSON.stringify(value) + \\' is not an enumerated value\\'\\n })\\n }\\n ';\n }\n\n return block;\n }\n\n /**\n * anyOf\n *\n * @description\n * > An instance validates successfully against this keyword if it\n * > validates successfully against at least one schema defined by this\n * > keyword's value.\n * > JSON Schema Validation Section 5.5.4\n *\n * @returns {string}\n */\n\n }, {\n key: 'anyOf',\n value: function anyOf() {\n var anyOf = this.schema.anyOf,\n address = this.address;\n\n var block = '';\n\n if (Array.isArray(anyOf)) {\n block += '\\n initialValidity = valid\\n initialErrorCount = errors.length\\n anyValid = false\\n ';\n\n anyOf.forEach(function (subschema) {\n var validator = new Validator(subschema, { address: address });\n block += '\\n accumulatedErrorCount = errors.length\\n ' + validator.compile() + '\\n if (accumulatedErrorCount === errors.length) {\\n anyValid = true\\n }\\n ';\n });\n\n block += '\\n if (anyValid === true) {\\n valid = initialValidity\\n errors = errors.slice(0, initialErrorCount)\\n }\\n ';\n }\n\n return block;\n }\n\n /**\n * allOf\n *\n * @description\n * > An instance validates successfully against this keyword if it\n * > validates successfully against all schemas defined by this keyword's\n * > value.\n * > JSON Schema Validation Section 5.5.3\n *\n * @returns {string}\n */\n\n }, {\n key: 'allOf',\n value: function allOf() {\n var allOf = this.schema.allOf,\n address = this.address;\n\n var block = '';\n\n if (Array.isArray(allOf)) {\n allOf.forEach(function (subschema) {\n var validator = new Validator(subschema, { address: address });\n block += '\\n ' + validator.compile() + '\\n ';\n });\n }\n\n return block;\n }\n\n /**\n * oneOf\n *\n * @description\n * > An instance validates successfully against this keyword if it\n * > validates successfully against exactly one schema defined by this\n * > keyword's value.\n * > JSON Schema Validation Section 5.5.5\n *\n * @returns {string}\n */\n\n }, {\n key: 'oneOf',\n value: function oneOf() {\n var oneOf = this.schema.oneOf,\n address = this.address;\n\n var block = '';\n\n if (Array.isArray(oneOf)) {\n block += '\\n /**\\n * Validate ' + address + ' oneOf\\n */\\n initialValidity = valid\\n initialErrorCount = errors.length\\n countOfValid = 0\\n ';\n\n oneOf.forEach(function (subschema) {\n var validator = new Validator(subschema, { address: address });\n block += '\\n accumulatedErrorCount = errors.length\\n ' + validator.compile() + '\\n if (accumulatedErrorCount === errors.length) {\\n countOfValid += 1\\n }\\n ';\n });\n\n block += '\\n if (countOfValid === 1) {\\n valid = initialValidity\\n errors = errors.slice(0, initialErrorCount)\\n } else {\\n valid = false\\n errors.push({\\n keyword: \\'oneOf\\',\\n message: \\'what is a reasonable error message for this case?\\'\\n })\\n }\\n ';\n }\n\n return block;\n }\n\n /**\n * not\n *\n * @description\n * > An instance is valid against this keyword if it fails to validate\n * > successfully against the schema defined by this keyword.\n * > JSON Schema Validation Section 5.5.6\n *\n * @returns {string}\n */\n\n }, {\n key: 'not',\n value: function not() {\n var not = this.schema.not,\n address = this.address;\n\n var block = '';\n\n if ((typeof not === 'undefined' ? 'undefined' : _typeof(not)) === 'object' && not !== null && !Array.isArray(not)) {\n var subschema = not;\n var validator = new Validator(subschema, { address: address });\n\n block += '\\n /**\\n * NOT\\n */\\n if (value !== undefined) {\\n initialValidity = valid\\n initialErrorCount = errors.length\\n notValid = true\\n\\n accumulatedErrorCount = errors.length\\n\\n ' + validator.compile() + '\\n\\n if (accumulatedErrorCount === errors.length) {\\n notValid = false\\n }\\n\\n if (notValid === true) {\\n valid = initialValidity\\n errors = errors.slice(0, initialErrorCount)\\n } else {\\n valid = false\\n errors = errors.slice(0, initialErrorCount)\\n errors.push({\\n keyword: \\'not\\',\\n message: \\'hmm...\\'\\n })\\n }\\n }\\n ';\n }\n\n return block;\n }\n\n /**\n * properties\n *\n * @description\n * Iterate over the `properties` schema property if it is an object. For each\n * key, initialize a new Validator for the subschema represented by the property\n * value and invoke compile. Append the result of compiling each subschema to\n * the block of code being generated.\n *\n * @returns {string}\n */\n\n }, {\n key: 'properties',\n value: function properties() {\n var schema = this.schema,\n address = this.address;\n var properties = schema.properties,\n required = schema.required;\n\n var block = this.push();\n\n // ensure the value of \"required\" schema property is an array\n required = Array.isArray(required) ? required : [];\n\n if ((typeof properties === 'undefined' ? 'undefined' : _typeof(properties)) === 'object') {\n Object.keys(properties).forEach(function (key) {\n var subschema = properties[key];\n var isRequired = required.indexOf(key) !== -1;\n // TODO\n // how should we be calculating these things? should be json pointer?\n // needs a separate function\n var pointer = [address, key].filter(function (segment) {\n return !!segment;\n }).join('.');\n var validation = new Validator(subschema, { address: pointer, require: isRequired });\n\n // read the value\n block += '\\n value = container[\\'' + key + '\\']\\n ';\n\n block += validation.compile();\n });\n }\n\n block += this.pop();\n\n return block;\n }\n\n /**\n * Other Properties\n *\n * @description\n * This method is not for a keyword. It wraps validations for\n * patternProperties and additionalProperties in a single iteration over\n * an object-type value's properties.\n *\n * It should only be invoked once for a given subschema.\n *\n * @returns {string}\n */\n\n }, {\n key: 'otherProperties',\n value: function otherProperties() {\n return '\\n /**\\n * Validate Other Properties\\n */\\n ' + this.push() + '\\n\\n for (let key in container) {\\n value = container[key]\\n matched = false\\n\\n ' + this.patternValidations() + '\\n ' + this.additionalValidations() + '\\n }\\n\\n ' + this.pop() + '\\n ';\n }\n\n /**\n * Pattern Validations\n *\n * @description\n * Generate validation code from a subschema for properties matching a\n * regular expression.\n *\n * @returns {string}\n */\n\n }, {\n key: 'patternValidations',\n value: function patternValidations() {\n var patternProperties = this.schema.patternProperties;\n\n var block = '';\n\n if ((typeof patternProperties === 'undefined' ? 'undefined' : _typeof(patternProperties)) === 'object') {\n Object.keys(patternProperties).forEach(function (pattern) {\n var subschema = patternProperties[pattern];\n var validator = new Validator(subschema);\n block += '\\n if (key.match(\\'' + pattern + '\\')) {\\n matched = true\\n ' + validator.compile() + '\\n }\\n ';\n });\n }\n\n return block;\n }\n\n /**\n * Additional Validations\n *\n * @description\n * Generate validation code, either from a subschema for properties not\n * defined in the schema, or to disallow properties not defined in the\n * schema.\n *\n * @returns {string}\n */\n\n }, {\n key: 'additionalValidations',\n value: function additionalValidations() {\n var _schema = this.schema,\n properties = _schema.properties,\n additionalProperties = _schema.additionalProperties,\n address = this.address;\n\n var validations = '';\n var block = '';\n\n // catch additional unmatched properties\n var conditions = ['matched !== true'];\n\n // ignore defined properties\n Object.keys(properties || {}).forEach(function (key) {\n conditions.push('key !== \\'' + key + '\\'');\n });\n\n // validate additional properties\n if ((typeof additionalProperties === 'undefined' ? 'undefined' : _typeof(additionalProperties)) === 'object') {\n var subschema = additionalProperties;\n var validator = new Validator(subschema, { address: address + '[APKey]' });\n block += '\\n // validate additional properties\\n if (' + conditions.join(' && ') + ') {\\n ' + validator.compile() + '\\n }\\n ';\n }\n\n // error for additional properties\n if (additionalProperties === false) {\n block += '\\n // validate non-presence of additional properties\\n if (' + conditions.join(' && ') + ') {\\n valid = false\\n errors.push({\\n keyword: \\'additionalProperties\\',\\n message: key + \\' is not a defined property\\'\\n })\\n }\\n ';\n }\n\n return block;\n }\n\n /**\n * patternProperties\n *\n * @description\n * Generate validation code for properties matching a pattern\n * defined by the property name (key), which must be a string\n * representing a valid regular expression.\n *\n * @returns {string}\n */\n\n }, {\n key: 'patternProperties',\n value: function patternProperties() {\n var block = '';\n\n if (!this.otherPropertiesCalled) {\n this.otherPropertiesCalled = true;\n block += this.otherProperties();\n }\n\n return block;\n }\n\n /**\n * additionalProperties\n *\n * @description\n * Generate validation code for additional properties not defined\n * in the schema, or disallow additional properties if the value of\n * `additionalProperties` in the schema is `false`.\n *\n * @returns {string}\n */\n\n }, {\n key: 'additionalProperties',\n value: function additionalProperties() {\n var block = '';\n\n if (!this.otherPropertiesCalled) {\n this.otherPropertiesCalled = true;\n block += this.otherProperties();\n }\n\n return block;\n }\n\n /**\n * minProperties\n *\n * @description\n * > An object instance is valid against \"minProperties\" if its number of\n * > properties is greater than, or equal to, the value of this keyword.\n * > JSON Schema Validation Section 5.4.2\n *\n * @returns {string}\n */\n\n }, {\n key: 'minProperties',\n value: function minProperties() {\n var minProperties = this.schema.minProperties,\n address = this.address;\n\n\n return '\\n // ' + address + ' min properties\\n if (Object.keys(value).length < ' + minProperties + ') {\\n valid = false\\n errors.push({\\n keyword: \\'minProperties\\',\\n message: \\'too few properties\\'\\n })\\n }\\n ';\n }\n\n /**\n * maxProperties\n *\n * @description\n * > An object instance is valid against \"maxProperties\" if its number of\n * > properties is less than, or equal to, the value of this keyword.\n * > JSON Schema Validation Section 5.4.1\n *\n * @returns {string}\n */\n\n }, {\n key: 'maxProperties',\n value: function maxProperties() {\n var maxProperties = this.schema.maxProperties,\n address = this.address;\n\n\n return '\\n // ' + address + ' max properties\\n if (Object.keys(value).length > ' + maxProperties + ') {\\n valid = false\\n errors.push({\\n keyword: \\'maxProperties\\',\\n message: \\'too many properties\\'\\n })\\n }\\n ';\n }\n\n /**\n * Dependencies\n *\n * @description\n * > For all (name, schema) pair of schema dependencies, if the instance has\n * > a property by this name, then it must also validate successfully against\n * > the schema.\n * >\n * > Note that this is the instance itself which must validate successfully,\n * > not the value associated with the property name.\n * >\n * > For each (name, propertyset) pair of property dependencies, if the\n * > instance has a property by this name, then it must also have properties\n * > with the same names as propertyset.\n * > JSON Schema Validation Section 5.4.5.2\n *\n * @returns {string}\n */\n\n }, {\n key: 'dependencies',\n value: function dependencies() {\n var dependencies = this.schema.dependencies,\n address = this.address;\n\n\n var block = this.push();\n\n if ((typeof dependencies === 'undefined' ? 'undefined' : _typeof(dependencies)) === 'object') {\n Object.keys(dependencies).forEach(function (key) {\n var dependency = dependencies[key];\n var conditions = [];\n\n if (Array.isArray(dependency)) {\n dependency.forEach(function (item) {\n conditions.push('container[\\'' + item + '\\'] === undefined');\n });\n\n block += '\\n if (container[\\'' + key + '\\'] !== undefined && (' + conditions.join(' || ') + ')) {\\n valid = false\\n errors.push({\\n keyword: \\'dependencies\\',\\n message: \\'unmet dependencies\\'\\n })\\n }\\n ';\n } else if ((typeof dependency === 'undefined' ? 'undefined' : _typeof(dependency)) === 'object') {\n var subschema = dependency;\n var validator = new Validator(subschema, { address: address });\n\n block += '\\n if (container[\\'' + key + '\\'] !== undefined) {\\n ' + validator.compile() + '\\n }\\n ';\n }\n });\n }\n\n block += this.pop();\n\n return block;\n }\n\n /**\n * Required\n *\n * @description\n * > An object instance is valid against this keyword if its property set\n * > contains all elements in this keyword's array value.\n * > JSON Schema Validation Section 5.4.3\n *\n * @returns {string}\n */\n\n }, {\n key: 'required',\n value: function required() {\n var properties = this.schema.properties,\n address = this.address;\n\n var block = '';\n\n block += '\\n // validate ' + address + ' presence\\n if (value === undefined) {\\n valid = false\\n errors.push({\\n keyword: \\'required\\',\\n message: \\'is required\\'\\n })\\n }\\n ';\n\n return block;\n }\n\n /**\n * additionalItems\n *\n * @description\n * > Successful validation of an array instance with regards to these two\n * > keywords is determined as follows: if \"items\" is not present, or its\n * > value is an object, validation of the instance always succeeds,\n * > regardless of the value of \"additionalItems\"; if the value of\n * > \"additionalItems\" is boolean value true or an object, validation of\n * > the instance always succeeds; if the value of \"additionalItems\" is\n * > boolean value false and the value of \"items\" is an array, the\n * > instance is valid if its size is less than, or equal to, the size\n * > of \"items\".\n * > JSON Schema Validation Section 5.3.1\n *\n * @returns {string}\n */\n\n }, {\n key: 'additionalItems',\n value: function additionalItems() {\n var _schema2 = this.schema,\n items = _schema2.items,\n additionalItems = _schema2.additionalItems,\n address = this.address;\n\n var block = '';\n\n if (additionalItems === false && Array.isArray(items)) {\n block += '\\n // don\\'t allow additional items\\n if (value.length > ' + items.length + ') {\\n valid = false\\n errors.push({\\n keyword: \\'additionalItems\\',\\n message: \\'additional items not allowed\\'\\n })\\n }\\n ';\n }\n\n if ((typeof additionalItems === 'undefined' ? 'undefined' : _typeof(additionalItems)) === 'object' && additionalItems !== null && Array.isArray(items)) {\n var subschema = additionalItems;\n var validator = new Validator(subschema);\n var counter = Validator.counter;\n\n block += '\\n // additional items\\n ' + this.push() + '\\n\\n for (var i' + counter + ' = ' + items.length + '; i' + counter + ' <= container.length; i' + counter + '++) {\\n value = container[i' + counter + ']\\n ' + validator.compile() + '\\n }\\n\\n ' + this.pop() + '\\n ';\n }\n\n return block;\n }\n\n /**\n * Items\n *\n * @description\n * > Successful validation of an array instance with regards to these two\n * > keywords is determined as follows: if \"items\" is not present, or its\n * > value is an object, validation of the instance always succeeds,\n * > regardless of the value of \"additionalItems\"; if the value of\n * > \"additionalItems\" is boolean value true or an object, validation of\n * > the instance always succeeds; if the value of \"additionalItems\" is\n * > boolean value false and the value of \"items\" is an array, the\n * > instance is valid if its size is less than, or equal to, the size\n * > of \"items\".\n * > JSON Schema Validation Section 5.3.1\n *\n * Code to generate\n *\n * // this outer conditional is generated by this.array()\n * if (Array.isArray(value) {\n * let parent = value\n * for (let i = 0; i < parent.length; i++) {\n * value = parent[i]\n * // other validation code depending on value here\n * }\n * value = parent\n * }\n *\n *\n * @returns {string}\n */\n\n }, {\n key: 'items',\n value: function items() {\n var items = this.schema.items,\n address = this.address;\n\n var block = '';\n\n // if items is an array\n if (Array.isArray(items)) {\n block += this.push();\n\n items.forEach(function (item, index) {\n var subschema = item;\n var validator = new Validator(subschema, { address: address + '[' + index + ']' });\n\n block += '\\n // item #' + index + '\\n value = container[' + index + ']\\n ' + validator.compile() + '\\n ';\n });\n\n block += this.pop();\n\n // if items is an object\n } else if ((typeof items === 'undefined' ? 'undefined' : _typeof(items)) === 'object' && items !== null) {\n var subschema = items;\n var validator = new Validator(subschema);\n var counter = Validator.counter;\n\n block += '\\n // items\\n ' + this.push() + '\\n\\n for (var i' + counter + ' = 0; i' + counter + ' < container.length; i' + counter + '++) {\\n // read array element\\n value = container[i' + counter + ']\\n ' + validator.compile() + '\\n }\\n\\n ' + this.pop() + '\\n ';\n }\n\n return block;\n }\n\n /**\n * minItems\n *\n * @description\n * > An array instance is valid against \"minItems\" if its size is greater\n * > than, or equal to, the value of this keyword.\n * > JSON Schema Validation Section 5.3.3\n *\n * @returns {string}\n */\n\n }, {\n key: 'minItems',\n value: function minItems() {\n var minItems = this.schema.minItems,\n address = this.address;\n\n\n return '\\n // ' + address + ' min items\\n if (value.length < ' + minItems + ') {\\n valid = false\\n errors.push({\\n keyword: \\'minItems\\',\\n message: \\'too few properties\\'\\n })\\n }\\n ';\n }\n\n /**\n * maxItems\n *\n * @description\n * > An array instance is valid against \"maxItems\" if its size is less\n * > than, or equal to, the value of this keyword.\n * > JSON Schema Validation Section 5.3.2\n *\n * @returns {string}\n */\n\n }, {\n key: 'maxItems',\n value: function maxItems() {\n var maxItems = this.schema.maxItems,\n address = this.address;\n\n\n return '\\n // ' + address + ' max items\\n if (value.length > ' + maxItems + ') {\\n valid = false\\n errors.push({\\n keyword: \\'maxItems\\',\\n message: \\'too many properties\\'\\n })\\n }\\n ';\n }\n\n /**\n * uniqueItems\n *\n * @description\n * > If this keyword has boolean value false, the instance validates\n * > successfully. If it has boolean value true, the instance validates\n * > successfully if all of its elements are unique.\n * > JSON Schema Validation Section 5.3.4\n *\n * TODO\n * optimize\n *\n * @returns {string}\n */\n\n }, {\n key: 'uniqueItems',\n value: function uniqueItems() {\n var uniqueItems = this.schema.uniqueItems,\n address = this.address;\n\n var block = '';\n\n if (uniqueItems === true) {\n block += '\\n // validate ' + address + ' unique items\\n let values = value.map(v => JSON.stringify(v)) // TODO: optimize\\n let set = new Set(values)\\n if (values.length !== set.size) {\\n valid = false\\n errors.push({\\n keyword: \\'uniqueItems\\',\\n message: \\'items must be unique\\'\\n })\\n }\\n ';\n }\n\n return block;\n }\n\n /**\n * minLength\n *\n * @description\n * > A string instance is valid against this keyword if its length is\n * > greater than, or equal to, the value of this keyword. The length of\n * > a string instance is defined as the number of its characters as\n * > defined by RFC 4627 [RFC4627].\n * > JSON Schema Validation Section 5.2.2\n *\n * @returns {string}\n */\n\n }, {\n key: 'minLength',\n value: function minLength() {\n var minLength = this.schema.minLength,\n address = this.address;\n\n\n return '\\n // ' + address + ' validate minLength\\n if (Array.from(value).length < ' + minLength + ') {\\n valid = false\\n errors.push({\\n keyword: \\'minLength\\',\\n message: \\'too short\\'\\n })\\n }\\n ';\n }\n\n /**\n * maxLength\n *\n * @description\n * > A string instance is valid against this keyword if its length is less\n * > than, or equal to, the value of this keyword. The length of a string\n * > instance is defined as the number of its characters as defined by\n * > RFC 4627 [RFC4627].\n * > JSON Schema Validation Section 5.2.1\n *\n * @returns {string}\n */\n\n }, {\n key: 'maxLength',\n value: function maxLength() {\n var maxLength = this.schema.maxLength,\n address = this.address;\n\n\n return '\\n // ' + address + ' validate maxLength\\n if (Array.from(value).length > ' + maxLength + ') {\\n valid = false\\n errors.push({\\n keyword: \\'maxLength\\',\\n message: \\'too long\\'\\n })\\n }\\n ';\n }\n\n /**\n * Pattern\n *\n * @description\n * > A string instance is considered valid if the regular expression\n * > matches the instance successfully.\n * > JSON Schema Validation Section 5.2.3\n *\n * @returns {string}\n */\n\n }, {\n key: 'pattern',\n value: function pattern() {\n var pattern = this.schema.pattern,\n address = this.address;\n\n\n if (pattern) {\n return '\\n // ' + address + ' validate pattern\\n if (!value.match(new RegExp(\\'' + pattern + '\\'))) {\\n valid = false\\n errors.push({\\n keyword: \\'pattern\\',\\n message: \\'does not match the required pattern\\'\\n })\\n }\\n ';\n }\n }\n\n /**\n * Format\n *\n * @description\n * > Structural validation alone may be insufficient to validate that\n * > an instance meets all the requirements of an application. The\n * > \"format\" keyword is defined to allow interoperable semantic\n * > validation for a fixed subset of values which are accurately\n * > described by authoritative resources, be they RFCs or other\n * > external specifications.\n * > JSON Schema Validation Section 7.1\n *\n * @returns {string}\n */\n\n }, {\n key: 'format',\n value: function format() {\n var format = this.schema.format,\n address = this.address;\n\n var matcher = formats.resolve(format);\n\n if (matcher) {\n return '\\n // ' + address + ' validate format\\n if (!value.match(' + matcher + ')) {\\n valid = false\\n errors.push({\\n keyword: \\'format\\',\\n message: \\'is not \"' + format + '\" format\\'\\n })\\n }\\n ';\n }\n }\n\n /**\n * Minimum\n *\n * @description\n * > Successful validation depends on the presence and value of\n * > \"exclusiveMinimum\": if \"exclusiveMinimum\" is not present, or has\n * > boolean value false, then the instance is valid if it is greater\n * > than, or equal to, the value of \"minimum\"; if \"exclusiveMinimum\" is\n * > present and has boolean value true, the instance is valid if it is\n * > strictly greater than the value of \"minimum\".\n * > JSON Schema Validation Section 5.1.3\n *\n * @returns {string}\n */\n\n }, {\n key: 'minimum',\n value: function minimum() {\n var _schema3 = this.schema,\n minimum = _schema3.minimum,\n exclusiveMinimum = _schema3.exclusiveMinimum,\n address = this.address;\n\n var operator = exclusiveMinimum === true ? '<=' : '<';\n\n return '\\n // ' + address + ' validate minimum\\n if (value ' + operator + ' ' + minimum + ') {\\n valid = false\\n errors.push({\\n keyword: \\'minimum\\',\\n message: \\'too small\\'\\n })\\n }\\n ';\n }\n\n /**\n * Maximum\n *\n * @description\n * > Successful validation depends on the presence and value of\n * > \"exclusiveMaximum\": if \"exclusiveMaximum\" is not present, or has\n * > boolean value false, then the instance is valid if it is lower than,\n * > or equal to, the value of \"maximum\"; if \"exclusiveMaximum\" has\n * > boolean value true, the instance is valid if it is strictly lower\n * > than the value of \"maximum\".\n * > JSON Schema Validation Section 5.1.2\n *\n * @returns {string}\n */\n\n }, {\n key: 'maximum',\n value: function maximum() {\n var _schema4 = this.schema,\n maximum = _schema4.maximum,\n exclusiveMaximum = _schema4.exclusiveMaximum,\n address = this.address;\n\n var operator = exclusiveMaximum === true ? '>=' : '>';\n\n return '\\n // ' + address + ' validate maximum\\n if (value ' + operator + ' ' + maximum + ') {\\n valid = false\\n errors.push({\\n keyword: \\'maximum\\',\\n message: \\'too large\\'\\n })\\n }\\n ';\n }\n\n /**\n * multipleOf\n *\n * @description\n * > A numeric instance is valid against \"multipleOf\" if the result of\n * > the division of the instance by this keyword's value is an integer.\n * > JSON Schema Validation Section 5.1.1\n *\n * @returns {string}\n */\n\n }, {\n key: 'multipleOf',\n value: function multipleOf() {\n var multipleOf = this.schema.multipleOf;\n\n var block = '';\n\n if (typeof multipleOf === 'number') {\n var length = multipleOf.toString().length;\n var decimals = length - multipleOf.toFixed(0).length - 1;\n var pow = decimals > 0 ? Math.pow(10, decimals) : 1;\n var condition = void 0;\n\n if (decimals > 0) {\n condition = '(value * ' + pow + ') % ' + multipleOf * pow + ' !== 0';\n } else {\n condition = 'value % ' + multipleOf + ' !== 0';\n }\n\n block += '\\n if (' + condition + ') {\\n valid = false\\n errors.push({\\n keyword: \\'multipleOf\\',\\n message: \\'must be a multiple of ' + multipleOf + '\\'\\n })\\n }\\n ';\n }\n\n return block;\n }\n }]);\n\n return Validator;\n}();\n\n/**\n * Export\n */\n\n\nmodule.exports = Validator;","'use strict';\n\nvar TextEncoder = global.TextEncoder ? global.TextEncoder // browser\n: require('text-encoding').TextEncoder; // node shim\nmodule.exports = TextEncoder;","\"use strict\";\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return call && (typeof call === \"object\" || typeof call === \"function\") ? call : self; }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function, not \" + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; }\n\n/**\n * NotSupportedError\n */\nvar NotSupportedError = function (_Error) {\n _inherits(NotSupportedError, _Error);\n\n function NotSupportedError(alg) {\n _classCallCheck(this, NotSupportedError);\n\n var _this = _possibleConstructorReturn(this, (NotSupportedError.__proto__ || Object.getPrototypeOf(NotSupportedError)).call(this));\n\n _this.message = alg + \" is not a supported algorithm\";\n return _this;\n }\n\n return NotSupportedError;\n}(Error);\n\n/**\n * Export\n */\n\n\nmodule.exports = NotSupportedError;","'use strict';\n\nmodule.exports = {\n DataError: require('./DataError'),\n NotSupportedError: require('./NotSupportedError')\n};","\"use strict\";\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return call && (typeof call === \"object\" || typeof call === \"function\") ? call : self; }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function, not \" + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; }\n\n/**\n * DataError\n */\nvar DataError = function (_Error) {\n _inherits(DataError, _Error);\n\n function DataError(message) {\n _classCallCheck(this, DataError);\n\n return _possibleConstructorReturn(this, (DataError.__proto__ || Object.getPrototypeOf(DataError)).call(this, message));\n }\n\n return DataError;\n}(Error);\n\n/**\n * Export\n */\n\n\nmodule.exports = DataError;","'use strict';\n\n/**\n * Dependencies\n * @ignore\n */\n\nvar _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return call && (typeof call === \"object\" || typeof call === \"function\") ? call : self; }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function, not \" + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; }\n\nvar _require = require('@trust/json-document'),\n JSONDocument = _require.JSONDocument;\n\nvar JWKSchema = require('../schemas/JWKSchema');\nvar JWA = require('./JWA');\n\n/**\n * JWK Class\n */\n\nvar JWK = function (_JSONDocument) {\n _inherits(JWK, _JSONDocument);\n\n function JWK() {\n _classCallCheck(this, JWK);\n\n return _possibleConstructorReturn(this, (JWK.__proto__ || Object.getPrototypeOf(JWK)).apply(this, arguments));\n }\n\n _createClass(JWK, null, [{\n key: 'importKey',\n\n\n /**\n * importKey\n *\n * TODO:\n * - should this be on JWA?\n */\n value: function importKey(jwk) {\n return JWA.importKey(jwk);\n }\n }, {\n key: 'schema',\n\n\n /**\n * Schema\n */\n get: function get() {\n return JWKSchema;\n }\n }]);\n\n return JWK;\n}(JSONDocument);\n\n/**\n * Export\n */\n\n\nmodule.exports = JWK;","'use strict';\n\n/**\n * Dependencies\n */\n\nvar _require = require('@trust/json-document'),\n JSONSchema = _require.JSONSchema;\n\nvar JWKSchema = require('./JWKSchema');\n\n/**\n * JWKSetSchema\n */\nvar JWKSetSchema = new JSONSchema({\n type: 'object',\n properties: {\n keys: {\n type: 'array',\n items: JWKSchema\n }\n }\n});\n\n/**\n * Export\n */\nmodule.exports = JWKSetSchema;","'use strict';\n\n/**\n * Dependencies\n */\nvar Base64URLSchema = require('./Base64URLSchema');\nvar JWTClaimsSetSchema = require('./JWTClaimsSetSchema');\nvar JOSEHeaderSchema = require('./JOSEHeaderSchema');\n\nvar _require = require('@trust/json-document'),\n JSONSchema = _require.JSONSchema;\n\n/**\n * JWTSchema\n *\n * @description\n * This schema represents all the things a deserialized JWT can be, i.e.,\n * either a JWS or JWE, and any serialization of them. Validation of well-\n * formedness for a given serialization is accomplished at the time of\n * encoding.\n */\n\n\nvar JWTSchema = new JSONSchema({\n type: 'object',\n properties: {\n\n /**\n * type\n */\n type: {\n type: 'string',\n enum: ['JWS', 'JWE']\n },\n\n /**\n * segments\n */\n segments: {\n type: 'array'\n },\n\n /**\n * header\n */\n header: JOSEHeaderSchema,\n\n /**\n * protected\n */\n protected: JOSEHeaderSchema,\n\n /**\n * unprotected\n */\n unprotected: JOSEHeaderSchema,\n\n /**\n * iv\n */\n iv: Base64URLSchema,\n\n /**\n * aad\n */\n aad: Base64URLSchema,\n\n /**\n * ciphertext\n */\n ciphertext: Base64URLSchema,\n\n /**\n * tag\n */\n tag: Base64URLSchema,\n\n /**\n * recipients\n */\n recipients: {\n type: 'array',\n items: {\n type: 'object',\n properties: {\n header: JOSEHeaderSchema,\n encrypted_key: Base64URLSchema\n }\n }\n },\n\n /**\n * payload\n */\n payload: JWTClaimsSetSchema,\n\n /**\n * signatures\n */\n signatures: {\n type: 'array',\n items: {\n type: 'object',\n properties: {\n protected: JOSEHeaderSchema,\n header: JOSEHeaderSchema,\n signature: Base64URLSchema,\n key: { type: 'object' }\n }\n }\n },\n\n /**\n * signature\n */\n signature: Base64URLSchema,\n\n /**\n * verified\n */\n verified: {\n type: 'boolean',\n default: false\n },\n\n /**\n * key\n */\n key: {\n type: 'object'\n },\n\n /**\n * serialization\n */\n serialization: {\n type: 'string',\n enum: ['compact', 'json', 'flattened'],\n default: 'compact'\n }\n }\n});\n\n/**\n * Export\n */\nmodule.exports = JWTSchema;","'use strict';\n\n/**\n * Dependencies\n */\nvar _require = require('@trust/json-document'),\n JSONSchema = _require.JSONSchema;\n\n/**\n * Base64URLSchema\n */\n\n\nvar Base64URLSchema = new JSONSchema({\n type: 'string',\n format: 'base64url'\n});\n\n/**\n * Export\n */\nmodule.exports = Base64URLSchema;","'use strict';\n\n/**\n * Dependencies\n */\nvar _require = require('@trust/json-document'),\n JSONSchema = _require.JSONSchema;\n\n/**\n * JWTClaimsSetSchema\n *\n * JSON Web Token (JWT)\n * https://tools.ietf.org/html/rfc7519#section-4\n *\n * 4. JWT Claims\n *\n * The JWT Claims Set represents a JSON object whose members are the\n * claims conveyed by the JWT. The Claim Names within a JWT Claims Set\n * MUST be unique; JWT parsers MUST either reject JWTs with duplicate\n * Claim Names or use a JSON parser that returns only the lexically last\n * duplicate member name, as specified in Section 15.12 (\"The JSON\n * Object\") of ECMAScript 5.1 [ECMAScript].\n *\n * The set of claims that a JWT must contain to be considered valid is\n * context dependent and is outside the scope of this specification.\n * Specific applications of JWTs will require implementations to\n * understand and process some claims in particular ways. However, in\n * the absence of such requirements, all claims that are not understood\n * by implementations MUST be ignored.\n *\n * There are three classes of JWT Claim Names: Registered Claim Names,\n * Public Claim Names, and Private Claim Names.\n */\n\n\nvar JWTClaimsSetSchema = new JSONSchema({\n properties: {\n\n /**\n * JSON Web Token (JWT)\n * https://tools.ietf.org/html/rfc7519#section-4.1\n *\n * 4.1. Registered Claim Names\n *\n * The following Claim Names are registered in the IANA \"JSON Web Token\n * Claims\" registry established by Section 10.1. None of the claims\n * defined below are intended to be mandatory to use or implement in all\n * cases, but rather they provide a starting point for a set of useful,\n * interoperable claims. Applications using JWTs should define which\n * specific claims they use and when they are required or optional. All\n * the names are short because a core goal of JWTs is for the\n * representation to be compact.\n */\n\n /**\n * iss\n *\n * JSON Web Token (JWT)\n * https://tools.ietf.org/html/rfc7519#section-4.1.1\n *\n * 4.1.1. \"iss\" (Issuer) Claim\n *\n * The \"iss\" (issuer) claim identifies the principal that issued the\n * JWT. The processing of this claim is generally application specific.\n * The \"iss\" value is a case-sensitive string containing a StringOrURI\n * value. Use of this claim is OPTIONAL.\n */\n iss: {\n type: 'string',\n format: 'StringOrURI'\n },\n\n /**\n * sub\n *\n * JSON Web Token (JWT)\n * https://tools.ietf.org/html/rfc7519#section-4.1.2\n *\n * 4.1.2. \"sub\" (Subject) Claim\n *\n * The \"sub\" (subject) claim identifies the principal that is the\n * subject of the JWT. The claims in a JWT are normally statements\n * about the subject. The subject value MUST either be scoped to be\n * locally unique in the context of the issuer or be globally unique.\n * The processing of this claim is generally application specific. The\n * \"sub\" value is a case-sensitive string containing a StringOrURI\n * value. Use of this claim is OPTIONAL.\n */\n sub: {\n type: 'string',\n format: 'StringOrURI'\n },\n\n /**\n * aud\n *\n * JSON Web Token (JWT)\n * https://tools.ietf.org/html/rfc7519#section-4.1.3\n *\n * 4.1.3. \"aud\" (Audience) Claim\n *\n * The \"aud\" (audience) claim identifies the recipients that the JWT is\n * intended for. Each principal intended to process the JWT MUST\n * identify itself with a value in the audience claim. If the principal\n * processing the claim does not identify itself with a value in the\n * \"aud\" claim when this claim is present, then the JWT MUST be\n * rejected. In the general case, the \"aud\" value is an array of case-\n * sensitive strings, each containing a StringOrURI value. In the\n * special case when the JWT has one audience, the \"aud\" value MAY be a\n * single case-sensitive string containing a StringOrURI value. The\n * interpretation of audience values is generally application specific.\n * Use of this claim is OPTIONAL.\n */\n aud: {\n type: ['array', 'string'],\n format: 'StringOrURI',\n items: {\n format: 'StringOrURI'\n }\n },\n\n /**\n * exp\n *\n * JSON Web Token (JWT)\n * https://tools.ietf.org/html/rfc7519#section-4.1.4\n *\n * 4.1.4. \"exp\" (Expiration Time) Claim\n *\n * The \"exp\" (expiration time) claim identifies the expiration time on\n * or after which the JWT MUST NOT be accepted for processing. The\n * processing of the \"exp\" claim requires that the current date/time\n * MUST be before the expiration date/time listed in the \"exp\" claim.\n *\n * Implementers MAY provide for some small leeway, usually no more than\n * a few minutes, to account for clock skew. Its value MUST be a number\n * containing a NumericDate value. Use of this claim is OPTIONAL.\n *\n */\n exp: {\n type: 'number',\n format: 'NumericDate'\n },\n\n /**\n * nbf\n *\n * JSON Web Token (JWT)\n * https://tools.ietf.org/html/rfc7519#section-4.1.5\n *\n * 4.1.5. \"nbf\" (Not Before) Claim\n *\n * The \"nbf\" (not before) claim identifies the time before which the JWT\n * MUST NOT be accepted for processing. The processing of the \"nbf\"\n * claim requires that the current date/time MUST be after or equal to\n * the not-before date/time listed in the \"nbf\" claim. Implementers MAY\n * provide for some small leeway, usually no more than a few minutes, to\n * account for clock skew. Its value MUST be a number containing a\n * NumericDate value. Use of this claim is OPTIONAL.\n */\n nbf: {\n type: 'number',\n format: 'NumericDate'\n },\n\n /**\n * iat\n *\n * JSON Web Token (JWT)\n * https://tools.ietf.org/html/rfc7519#section-4.1.6\n *\n * 4.1.6. \"iat\" (Issued At) Claim\n *\n * The \"iat\" (issued at) claim identifies the time at which the JWT was\n * issued. This claim can be used to determine the age of the JWT. Its\n * value MUST be a number containing a NumericDate value. Use of this\n * claim is OPTIONAL.\n */\n iat: {\n type: 'number',\n format: 'NumericDate'\n },\n\n /**\n * jti\n *\n * JSON Web Token (JWT)\n * https://tools.ietf.org/html/rfc7519#section-4.1.7\n *\n * 4.1.7. \"jti\" (JWT ID) Claim\n *\n * The \"jti\" (JWT ID) claim provides a unique identifier for the JWT.\n * The identifier value MUST be assigned in a manner that ensures that\n * there is a negligible probability that the same value will be\n * accidentally assigned to a different data object; if the application\n * uses multiple issuers, collisions MUST be prevented among values\n * produced by different issuers as well. The \"jti\" claim can be used\n * to prevent the JWT from being replayed. The \"jti\" value is a case-\n * sensitive string. Use of this claim is OPTIONAL.\n */\n jti: {\n type: 'string'\n }\n }\n});\n\n/**\n * Export\n */\nmodule.exports = JWTClaimsSetSchema;","'use strict';\n\n/**\n * Dependencies\n */\nvar JWKSchema = require('./JWKSchema');\n\nvar _require = require('@trust/json-document'),\n JSONSchema = _require.JSONSchema;\n\n/**\n * JOSEHeaderSchema\n *\n * JSON Web Token (JWT)\n * https://tools.ietf.org/html/rfc7519#section-5\n *\n * 5. JOSE Header\n *\n * For a JWT object, the members of the JSON object represented by the\n * JOSE Header describe the cryptographic operations applied to the JWT\n * and optionally, additional properties of the JWT. Depending upon\n * whether the JWT is a JWS or JWE, the corresponding rules for the JOSE\n * Header values apply.\n */\n\n\nvar JOSEHeaderSchema = new JSONSchema({\n type: 'object',\n properties: {\n\n /**\n * typ\n *\n * JSON Web Token (JWT)\n * https://tools.ietf.org/html/rfc7519#section-5.1\n *\n * 5.1. \"typ\" (Type) Header Parameter\n *\n * The \"typ\" (type) Header Parameter defined by [JWS] and [JWE] is used\n * by JWT applications to declare the media type [IANA.MediaTypes] of\n * this complete JWT. This is intended for use by the JWT application\n * when values that are not JWTs could also be present in an application\n * data structure that can contain a JWT object; the application can use\n * this value to disambiguate among the different kinds of objects that\n * might be present. It will typically not be used by applications when\n * it is already known that the object is a JWT. This parameter is\n * ignored by JWT implementations; any processing of this parameter is\n * performed by the JWT application. If present, it is RECOMMENDED that\n * its value be \"JWT\" to indicate that this object is a JWT. While\n * media type names are not case sensitive, it is RECOMMENDED that \"JWT\"\n * always be spelled using uppercase characters for compatibility with\n * legacy implementations. Use of this Header Parameter is OPTIONAL.\n *\n * JSON Web Signature (JWS)\n * https://tools.ietf.org/html/rfc7515#section-4.1.9\n *\n * 4.1.9. \"typ\" (Type) Header Parameter\n *\n * The \"typ\" (type) Header Parameter is used by JWS applications to\n * declare the media type [IANA.MediaTypes] of this complete JWS. This\n * is intended for use by the application when more than one kind of\n * object could be present in an application data structure that can\n * contain a JWS; the application can use this value to disambiguate\n * among the different kinds of objects that might be present. It will\n * typically not be used by applications when the kind of object is\n * already known. This parameter is ignored by JWS implementations; any\n * processing of this parameter is performed by the JWS application.\n * Use of this Header Parameter is OPTIONAL.\n *\n * Per RFC 2045 [RFC2045], all media type values, subtype values, and\n * parameter names are case insensitive. However, parameter values are\n * case sensitive unless otherwise specified for the specific parameter.\n *\n * To keep messages compact in common situations, it is RECOMMENDED that\n * producers omit an \"application/\" prefix of a media type value in a\n * \"typ\" Header Parameter when no other '/' appears in the media type\n * value. A recipient using the media type value MUST treat it as if\n * \"application/\" were prepended to any \"typ\" value not containing a\n * '/'. For instance, a \"typ\" value of \"example\" SHOULD be used to\n * represent the \"application/example\" media type, whereas the media\n * type \"application/example;part=\"1/2\"\" cannot be shortened to\n * \"example;part=\"1/2\"\".\n *\n * The \"typ\" value \"JOSE\" can be used by applications to indicate that\n * this object is a JWS or JWE using the JWS Compact Serialization or\n * the JWE Compact Serialization. The \"typ\" value \"JOSE+JSON\" can be\n * used by applications to indicate that this object is a JWS or JWE\n * using the JWS JSON Serialization or the JWE JSON Serialization.\n * Other type values can also be used by applications.\n *\n * JSON Web Encryption (JWE)\n * https://tools.ietf.org/html/rfc7516#section-4.1.11\n *\n * 4.1.11. \"typ\" (Type) Header Parameter\n *\n * This parameter has the same meaning, syntax, and processing rules as\n * the \"typ\" Header Parameter defined in Section 4.1.9 of [JWS], except\n * that the type is that of this complete JWE.\n */\n typ: {\n type: 'string'\n },\n\n /**\n * cty\n *\n * JSON Web Token (JWT)\n * https://tools.ietf.org/html/rfc7519#section-5.2\n *\n * 5.2. \"cty\" (Content Type) Header Parameter\n *\n * The \"cty\" (content type) Header Parameter defined by [JWS] and [JWE]\n * is used by this specification to convey structural information about\n * the JWT.\n *\n * In the normal case in which nested signing or encryption operations\n * are not employed, the use of this Header Parameter is NOT\n * RECOMMENDED. In the case that nested signing or encryption is\n * employed, this Header Parameter MUST be present; in this case, the\n * value MUST be \"JWT\", to indicate that a Nested JWT is carried in this\n * JWT. While media type names are not case sensitive, it is\n * RECOMMENDED that \"JWT\" always be spelled using uppercase characters\n * for compatibility with legacy implementations. See Appendix A.2 for\n * an example of a Nested JWT.\n *\n *\n * JSON Web Signature (JWS)\n * https://tools.ietf.org/html/rfc7515#section-4.1.10\n *\n * 4.1.10. \"cty\" (Content Type) Header Parameter\n *\n * The \"cty\" (content type) Header Parameter is used by JWS applications\n * to declare the media type [IANA.MediaTypes] of the secured content\n * (the payload). This is intended for use by the application when more\n * than one kind of object could be present in the JWS Payload; the\n * application can use this value to disambiguate among the different\n * kinds of objects that might be present. It will typically not be\n * used by applications when the kind of object is already known. This\n * parameter is ignored by JWS implementations; any processing of this\n * parameter is performed by the JWS application. Use of this Header\n * Parameter is OPTIONAL.\n *\n * Per RFC 2045 [RFC2045], all media type values, subtype values, and\n * parameter names are case insensitive. However, parameter values are\n * case sensitive unless otherwise specified for the specific parameter.\n *\n * To keep messages compact in common situations, it is RECOMMENDED that\n * producers omit an \"application/\" prefix of a media type value in a\n * \"cty\" Header Parameter when no other '/' appears in the media type\n * value. A recipient using the media type value MUST treat it as if\n * \"application/\" were prepended to any \"cty\" value not containing a\n * '/'. For instance, a \"cty\" value of \"example\" SHOULD be used to\n * represent the \"application/example\" media type, whereas the media\n * type \"application/example;part=\"1/2\"\" cannot be shortened to\n * \"example;part=\"1/2\"\".\n *\n * JSON Web Encryption (JWE)\n * https://tools.ietf.org/html/rfc7516#section-4.1.12\n *\n * 4.1.12. \"cty\" (Content Type) Header Parameter\n *\n * This parameter has the same meaning, syntax, and processing rules as\n * the \"cty\" Header Parameter defined in Section 4.1.10 of [JWS], except\n * that the type is that of the secured content (the plaintext).\n */\n cty: {\n type: 'string',\n enum: ['JWT']\n },\n\n /**\n * alg\n *\n * JSON Web Signature (JWS)\n * https://tools.ietf.org/html/rfc7515#section-4.1.1\n *\n * 4.1.1. \"alg\" (Algorithm) Header Parameter\n *\n * The \"alg\" (algorithm) Header Parameter identifies the cryptographic\n * algorithm used to secure the JWS. The JWS Signature value is not\n * valid if the \"alg\" value does not represent a supported algorithm or\n * if there is not a key for use with that algorithm associated with the\n * party that digitally signed or MACed the content. \"alg\" values\n * should either be registered in the IANA \"JSON Web Signature and\n * Encryption Algorithms\" registry established by [JWA] or be a value\n * that contains a Collision-Resistant Name. The \"alg\" value is a case-\n * sensitive ASCII string containing a StringOrURI value. This Header\n * Parameter MUST be present and MUST be understood and processed by\n * implementations.\n *\n * A list of defined \"alg\" values for this use can be found in the IANA\n * \"JSON Web Signature and Encryption Algorithms\" registry established\n * by [JWA]; the initial contents of this registry are the values\n * defined in Section 3.1 of [JWA].\n *\n * JSON Web Encryption (JWE)\n * https://tools.ietf.org/html/rfc7516#section-4.1.1\n *\n * 4.1.1. \"alg\" (Algorithm) Header Parameter\n *\n * This parameter has the same meaning, syntax, and processing rules as\n * the \"alg\" Header Parameter defined in Section 4.1.1 of [JWS], except\n * that the Header Parameter identifies the cryptographic algorithm used\n * to encrypt or determine the value of the CEK. The encrypted content\n * is not usable if the \"alg\" value does not represent a supported\n * algorithm, or if the recipient does not have a key that can be used\n * with that algorithm.\n *\n * A list of defined \"alg\" values for this use can be found in the IANA\n * \"JSON Web Signature and Encryption Algorithms\" registry established\n * by [JWA]; the initial contents of this registry are the values\n * defined in Section 4.1 of [JWA].\n */\n alg: {\n type: 'string',\n format: 'StringOrURI'\n },\n\n /**\n * jku\n *\n * JSON Web Signature (JWS)\n * https://tools.ietf.org/html/rfc7515#section-4.1.2\n *\n * 4.1.2. \"jku\" (JWK Set URL) Header Parameter (JWS)\n *\n * The \"jku\" (JWK Set URL) Header Parameter is a URI [RFC3986] that\n * refers to a resource for a set of JSON-encoded public keys, one of\n * which corresponds to the key used to digitally sign the JWS. The\n * keys MUST be encoded as a JWK Set [JWK]. The protocol used to\n * acquire the resource MUST provide integrity protection; an HTTP GET\n * request to retrieve the JWK Set MUST use Transport Layer Security\n * (TLS) [RFC2818] [RFC5246]; and the identity of the server MUST be\n * validated, as per Section 6 of RFC 6125 [RFC6125]. Also, see\n * Section 8 on TLS requirements. Use of this Header Parameter is\n * OPTIONAL.\n *\n * JSON Web Encryption (JWE)\n * https://tools.ietf.org/html/rfc7516#section-4.1.4\n *\n * 4.1.4. \"jku\" (JWK Set URL) Header Parameter (JWE)\n *\n * This parameter has the same meaning, syntax, and processing rules as\n * the \"jku\" Header Parameter defined in Section 4.1.2 of [JWS], except\n * that the JWK Set resource contains the public key to which the JWE\n * was encrypted; this can be used to determine the private key needed\n * to decrypt the JWE.\n */\n jku: {\n type: 'string',\n format: 'URI'\n },\n\n /**\n * jwk\n *\n * JSON Web Signature (JWS)\n * https://tools.ietf.org/html/rfc7515#section-4.1.3\n *\n * 4.1.3. \"jwk\" (JSON Web Key) Header Parameter\n *\n * The \"jwk\" (JSON Web Key) Header Parameter is the public key that\n * corresponds to the key used to digitally sign the JWS. This key is\n * represented as a JSON Web Key [JWK]. Use of this Header Parameter is\n * OPTIONAL.\n *\n * JSON Web Encryption (JWE)\n * https://tools.ietf.org/html/rfc7516#section-4.1.5\n *\n * 4.1.5. \"jwk\" (JSON Web Key) Header Parameter\n *\n * This parameter has the same meaning, syntax, and processing rules as\n * the \"jwk\" Header Parameter defined in Section 4.1.3 of [JWS], except\n * that the key is the public key to which the JWE was encrypted; this\n * can be used to determine the private key needed to decrypt the JWE.\n */\n //jwk: JWKSchema,\n\n /**\n * kid\n *\n * JSON Web Signature (JWS)\n * https://tools.ietf.org/html/rfc7515#section-4.1.4\n *\n * 4.1.4. \"kid\" (Key ID) Header Parameter\n *\n * The \"kid\" (key ID) Header Parameter is a hint indicating which key\n * was used to secure the JWS. This parameter allows originators to\n * explicitly signal a change of key to recipients. The structure of\n * the \"kid\" value is unspecified. Its value MUST be a case-sensitive\n * string. Use of this Header Parameter is OPTIONAL.\n *\n * When used with a JWK, the \"kid\" value is used to match a JWK \"kid\"\n * parameter value.\n *\n *\n * JSON Web Encryption (JWE)\n * https://tools.ietf.org/html/rfc7516#section-4.1.6\n *\n * 4.1.6. \"kid\" (Key ID) Header Parameter\n *\n * This parameter has the same meaning, syntax, and processing rules as\n * the \"kid\" Header Parameter defined in Section 4.1.4 of [JWS], except\n * that the key hint references the public key to which the JWE was\n * encrypted; this can be used to determine the private key needed to\n * decrypt the JWE. This parameter allows originators to explicitly\n * signal a change of key to JWE recipients.\n */\n kid: {\n type: 'string'\n },\n\n /**\n * x5u\n *\n * JSON Web Signature (JWS)\n * https://tools.ietf.org/html/rfc7515#section-4.1.5\n *\n * 4.1.5. \"x5u\" (X.509 URL) Header Parameter\n *\n * The \"x5u\" (X.509 URL) Header Parameter is a URI [RFC3986] that refers\n * to a resource for the X.509 public key certificate or certificate\n * chain [RFC5280] corresponding to the key used to digitally sign the\n * JWS. The identified resource MUST provide a representation of the\n * certificate or certificate chain that conforms to RFC 5280 [RFC5280]\n * in PEM-encoded form, with each certificate delimited as specified in\n * Section 6.1 of RFC 4945 [RFC4945]. The certificate containing the\n * public key corresponding to the key used to digitally sign the JWS\n * MUST be the first certificate. This MAY be followed by additional\n * certificates, with each subsequent certificate being the one used to\n * certify the previous one. The protocol used to acquire the resource\n * MUST provide integrity protection; an HTTP GET request to retrieve\n * the certificate MUST use TLS [RFC2818] [RFC5246]; and the identity of\n * the server MUST be validated, as per Section 6 of RFC 6125 [RFC6125].\n * Also, see Section 8 on TLS requirements. Use of this Header\n * Parameter is OPTIONAL.\n *\n * JSON Web Encryption (JWE)\n * https://tools.ietf.org/html/rfc7516#section-4.1.7\n *\n * 4.1.7. \"x5u\" (X.509 URL) Header Parameter\n *\n * This parameter has the same meaning, syntax, and processing rules as\n * the \"x5u\" Header Parameter defined in Section 4.1.5 of [JWS], except\n * that the X.509 public key certificate or certificate chain [RFC5280]\n * contains the public key to which the JWE was encrypted; this can be\n * used to determine the private key needed to decrypt the JWE.\n */\n x5u: {\n type: 'string',\n format: 'URI'\n },\n\n /**\n * x5c\n *\n * JSON Web Signature (JWS)\n * https://tools.ietf.org/html/rfc7515#section-4.1.6\n *\n * 4.1.6. \"x5c\" (X.509 Certificate Chain) Header Parameter\n *\n * The \"x5c\" (X.509 certificate chain) Header Parameter contains the\n * X.509 public key certificate or certificate chain [RFC5280]\n * corresponding to the key used to digitally sign the JWS. The\n * certificate or certificate chain is represented as a JSON array of\n * certificate value strings. Each string in the array is a\n * base64-encoded (Section 4 of [RFC4648] -- not base64url-encoded) DER\n * [ITU.X690.2008] PKIX certificate value. The certificate containing\n * the public key corresponding to the key used to digitally sign the\n * JWS MUST be the first certificate. This MAY be followed by\n * additional certificates, with each subsequent certificate being the\n * one used to certify the previous one. The recipient MUST validate\n * the certificate chain according to RFC 5280 [RFC5280] and consider\n * the certificate or certificate chain to be invalid if any validation\n * failure occurs. Use of this Header Parameter is OPTIONAL.\n *\n * JSON Web Encryption (JWE)\n * https://tools.ietf.org/html/rfc7516#section-4.1.8\n *\n * 4.1.8. \"x5c\" (X.509 Certificate Chain) Header Parameter\n *\n * This parameter has the same meaning, syntax, and processing rules as\n * the \"x5c\" Header Parameter defined in Section 4.1.6 of [JWS], except\n * that the X.509 public key certificate or certificate chain [RFC5280]\n * contains the public key to which the JWE was encrypted; this can be\n * used to determine the private key needed to decrypt the JWE.\n */\n x5c: {\n type: 'array',\n items: {\n type: 'string',\n format: 'base64'\n }\n },\n\n /**\n * x5t\n *\n * JSON Web Signature (JWS)\n * https://tools.ietf.org/html/rfc7515#section-4.1.7\n *\n * 4.1.7. \"x5t\" (X.509 Certificate SHA-1 Thumbprint) Header Parameter\n *\n * The \"x5t\" (X.509 certificate SHA-1 thumbprint) Header Parameter is a\n * base64url-encoded SHA-1 thumbprint (a.k.a. digest) of the DER\n * encoding of the X.509 certificate [RFC5280] corresponding to the key\n * used to digitally sign the JWS. Note that certificate thumbprints\n * are also sometimes known as certificate fingerprints. Use of this\n * Header Parameter is OPTIONAL.\n *\n * JSON Web Encryption (JWE)\n * https://tools.ietf.org/html/rfc7516#section-4.1.9\n *\n * 4.1.9. \"x5t\" (X.509 Certificate SHA-1 Thumbprint) Header Parameter\n *\n * This parameter has the same meaning, syntax, and processing rules as\n * the \"x5t\" Header Parameter defined in Section 4.1.7 of [JWS], except\n * that the certificate referenced by the thumbprint contains the public\n * key to which the JWE was encrypted; this can be used to determine the\n * private key needed to decrypt the JWE. Note that certificate\n * thumbprints are also sometimes known as certificate fingerprints.\n */\n x5t: {\n type: 'string',\n format: 'base64url'\n },\n\n /**\n * x5t#S256\n *\n * JSON Web Signature (JWS)\n * https://tools.ietf.org/html/rfc7515#section-4.1.8\n *\n * 4.1.8. \"x5t#S256\" (X.509 Certificate SHA-256 Thumbprint) Header\n * Parameter\n *\n * The \"x5t#S256\" (X.509 certificate SHA-256 thumbprint) Header\n * Parameter is a base64url-encoded SHA-256 thumbprint (a.k.a. digest)\n * of the DER encoding of the X.509 certificate [RFC5280] corresponding\n * to the key used to digitally sign the JWS. Note that certificate\n * thumbprints are also sometimes known as certificate fingerprints.\n * Use of this Header Parameter is OPTIONAL.\n *\n *\n * JSON Web Encryption (JWE)\n * https://tools.ietf.org/html/rfc7516#section-4.1.10\n *\n * 4.1.10. \"x5t#S256\" (X.509 Certificate SHA-256 Thumbprint) Header\n * Parameter\n *\n * This parameter has the same meaning, syntax, and processing rules as\n * the \"x5t#S256\" Header Parameter defined in Section 4.1.8 of [JWS],\n * except that the certificate referenced by the thumbprint contains the\n * public key to which the JWE was encrypted; this can be used to\n * determine the private key needed to decrypt the JWE. Note that\n * certificate thumbprints are also sometimes known as certificate\n * fingerprints.\n */\n //'x5t#S256': {\n // type: 'string',\n // format: 'base64url'\n //},\n\n /**\n * crit\n *\n * JSON Web Signature (JWS)\n * https://tools.ietf.org/html/rfc7515#section-4.1.11\n *\n * 4.1.11. \"crit\" (Critical) Header Parameter\n *\n * The \"crit\" (critical) Header Parameter indicates that extensions to\n * this specification and/or [JWA] are being used that MUST be\n * understood and processed. Its value is an array listing the Header\n * Parameter names present in the JOSE Header that use those extensions.\n * If any of the listed extension Header Parameters are not understood\n * and supported by the recipient, then the JWS is invalid. Producers\n * MUST NOT include Header Parameter names defined by this specification\n * or [JWA] for use with JWS, duplicate names, or names that do not\n * occur as Header Parameter names within the JOSE Header in the \"crit\"\n * list. Producers MUST NOT use the empty list \"[]\" as the \"crit\"\n * value. Recipients MAY consider the JWS to be invalid if the critical\n * list contains any Header Parameter names defined by this\n * specification or [JWA] for use with JWS or if any other constraints\n * on its use are violated. When used, this Header Parameter MUST be\n * integrity protected; therefore, it MUST occur only within the JWS\n * Protected Header. Use of this Header Parameter is OPTIONAL. This\n * Header Parameter MUST be understood and processed by implementations.\n *\n * An example use, along with a hypothetical \"exp\" (expiration time)\n * field is:\n *\n * {\"alg\":\"ES256\",\n * \"crit\":[\"exp\"],\n * \"exp\":1363284000\n * }\n *\n * JSON Web Encryption (JWE)\n * https://tools.ietf.org/html/rfc7516#section-4.1.13\n *\n * 4.1.13. \"crit\" (Critical) Header Parameter\n *\n * This parameter has the same meaning, syntax, and processing rules as\n * the \"crit\" Header Parameter defined in Section 4.1.11 of [JWS],\n * except that Header Parameters for a JWE are being referred to, rather\n * than Header Parameters for a JWS.\n */\n crit: {\n type: 'array',\n items: {\n type: 'string'\n },\n minItems: 1\n },\n\n /**\n * enc\n *\n * JSON Web Encryption (JWE)\n * https://tools.ietf.org/html/rfc7516#section-4.1.2\n *\n * 4.1.2. \"enc\" (Encryption Algorithm) Header Parameter\n *\n * The \"enc\" (encryption algorithm) Header Parameter identifies the\n * content encryption algorithm used to perform authenticated encryption\n * on the plaintext to produce the ciphertext and the Authentication\n * Tag. This algorithm MUST be an AEAD algorithm with a specified key\n * length. The encrypted content is not usable if the \"enc\" value does\n * not represent a supported algorithm. \"enc\" values should either be\n * registered in the IANA \"JSON Web Signature and Encryption Algorithms\"\n * registry established by [JWA] or be a value that contains a\n * Collision-Resistant Name. The \"enc\" value is a case-sensitive ASCII\n * string containing a StringOrURI value. This Header Parameter MUST be\n * present and MUST be understood and processed by implementations.\n *\n * A list of defined \"enc\" values for this use can be found in the IANA\n * \"JSON Web Signature and Encryption Algorithms\" registry established\n * by [JWA]; the initial contents of this registry are the values\n * defined in Section 5.1 of [JWA].\n */\n enc: {\n type: 'string',\n format: 'StringOrURI'\n },\n\n /**\n * zip\n *\n * JSON Web Encryption (JWE)\n * https://tools.ietf.org/html/rfc7516#section-4.1.3\n *\n * 4.1.3. \"zip\" (Compression Algorithm) Header Parameter\n *\n * The \"zip\" (compression algorithm) applied to the plaintext before\n * encryption, if any. The \"zip\" value defined by this specification\n * is:\n *\n * o \"DEF\" - Compression with the DEFLATE [RFC1951] algorithm\n *\n * Other values MAY be used. Compression algorithm values can be\n * registered in the IANA \"JSON Web Encryption Compression Algorithms\"\n * registry established by [JWA]. The \"zip\" value is a case-sensitive\n * string. If no \"zip\" parameter is present, no compression is applied\n * to the plaintext before encryption. When used, this Header Parameter\n * MUST be integrity protected; therefore, it MUST occur only within the\n * JWE Protected Header. Use of this Header Parameter is OPTIONAL.\n * This Header Parameter MUST be understood and processed by\n * implementations.\n */\n zip: {\n type: 'string'\n }\n }\n});\n\n/**\n * Export\n */\nmodule.exports = JOSEHeaderSchema;","'use strict';\n\nvar _slicedToArray = function () { function sliceIterator(arr, i) { var _arr = []; var _n = true; var _d = false; var _e = undefined; try { for (var _i = arr[Symbol.iterator](), _s; !(_n = (_s = _i.next()).done); _n = true) { _arr.push(_s.value); if (i && _arr.length === i) break; } } catch (err) { _d = true; _e = err; } finally { try { if (!_n && _i[\"return\"]) _i[\"return\"](); } finally { if (_d) throw _e; } } return _arr; } return function (arr, i) { if (Array.isArray(arr)) { return arr; } else if (Symbol.iterator in Object(arr)) { return sliceIterator(arr, i); } else { throw new TypeError(\"Invalid attempt to destructure non-iterable instance\"); } }; }();\n\nvar _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\n/**\n * Dependencies\n */\nvar base64url = require('base64url');\nvar JWA = require('./JWA');\n\nvar _require = require('../errors'),\n DataError = _require.DataError;\n\n/**\n * JWS\n */\n\n\nvar JWS = function () {\n function JWS() {\n _classCallCheck(this, JWS);\n }\n\n _createClass(JWS, null, [{\n key: 'sign',\n\n\n /**\n * sign\n *\n * @description\n * Encode a JWT instance\n *\n * @param {Object} token\n * @returns {Promise}\n */\n value: function sign(token) {\n var payload = base64url(JSON.stringify(token.payload));\n\n // compact serialization\n if (token.serialization === 'compact') {\n var key = token.key,\n alg = token.header.alg;\n\n var header = base64url(JSON.stringify(token.header));\n var data = header + '.' + payload;\n\n return JWA.sign(alg, key, data).then(function (signature) {\n return data + '.' + signature;\n });\n }\n\n // JSON serialization\n if (token.serialization === 'json') {}\n\n // Flattened serialization\n if (token.serialization === 'flattened') {}\n\n return Promise.reject(new DataError('Unsupported serialization'));\n }\n\n /**\n * verify\n */\n\n }, {\n key: 'verify',\n value: function verify(jwt) {\n // multiple signatures\n if (jwt.signatures) {\n // ...\n }\n\n var key = jwt.key,\n signature = jwt.signature,\n alg = jwt.header.alg;\n\n // one signature\n\n if (jwt.signature) {\n var _jwt$segments = _slicedToArray(jwt.segments, 2),\n header = _jwt$segments[0],\n payload = _jwt$segments[1];\n\n var data = header + '.' + payload;\n\n if (alg === 'none') {\n return Promise.reject(new DataError('Signature provided to verify with alg: none'));\n }\n\n return JWA.verify(alg, key, signature, data).then(function (verified) {\n jwt.verified = verified;\n return verified;\n });\n }\n\n if (alg === 'none') {\n if (!key && !signature) {\n jwt.verified = true;\n\n return Promise.resolve(true);\n }\n\n if (key) {\n return Promise.reject(new DataError('Key provided to verify signature with alg: none'));\n }\n }\n\n // no signatures to verify\n return Promise.reject(new DataError('Missing signature(s)'));\n }\n }]);\n\n return JWS;\n}();\n\n/**\n * Export\n */\n\n\nmodule.exports = JWS;","// 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'use strict';\n\nvar R = typeof Reflect === 'object' ? Reflect : null\nvar ReflectApply = R && typeof R.apply === 'function'\n ? R.apply\n : function ReflectApply(target, receiver, args) {\n return Function.prototype.apply.call(target, receiver, args);\n }\n\nvar ReflectOwnKeys\nif (R && typeof R.ownKeys === 'function') {\n ReflectOwnKeys = R.ownKeys\n} else if (Object.getOwnPropertySymbols) {\n ReflectOwnKeys = function ReflectOwnKeys(target) {\n return Object.getOwnPropertyNames(target)\n .concat(Object.getOwnPropertySymbols(target));\n };\n} else {\n ReflectOwnKeys = function ReflectOwnKeys(target) {\n return Object.getOwnPropertyNames(target);\n };\n}\n\nfunction ProcessEmitWarning(warning) {\n if (console && console.warn) console.warn(warning);\n}\n\nvar NumberIsNaN = Number.isNaN || function NumberIsNaN(value) {\n return value !== value;\n}\n\nfunction EventEmitter() {\n EventEmitter.init.call(this);\n}\nmodule.exports = EventEmitter;\n\n// Backwards-compat with node 0.10.x\nEventEmitter.EventEmitter = EventEmitter;\n\nEventEmitter.prototype._events = undefined;\nEventEmitter.prototype._eventsCount = 0;\nEventEmitter.prototype._maxListeners = undefined;\n\n// By default EventEmitters will print a warning if more than 10 listeners are\n// added to it. This is a useful default which helps finding memory leaks.\nvar defaultMaxListeners = 10;\n\nObject.defineProperty(EventEmitter, 'defaultMaxListeners', {\n enumerable: true,\n get: function() {\n return defaultMaxListeners;\n },\n set: function(arg) {\n if (typeof arg !== 'number' || arg < 0 || NumberIsNaN(arg)) {\n throw new RangeError('The value of \"defaultMaxListeners\" is out of range. It must be a non-negative number. Received ' + arg + '.');\n }\n defaultMaxListeners = arg;\n }\n});\n\nEventEmitter.init = function() {\n\n if (this._events === undefined ||\n this._events === Object.getPrototypeOf(this)._events) {\n this._events = Object.create(null);\n this._eventsCount = 0;\n }\n\n this._maxListeners = this._maxListeners || undefined;\n};\n\n// Obviously not all Emitters should be limited to 10. This function allows\n// that to be increased. Set to zero for unlimited.\nEventEmitter.prototype.setMaxListeners = function setMaxListeners(n) {\n if (typeof n !== 'number' || n < 0 || NumberIsNaN(n)) {\n throw new RangeError('The value of \"n\" is out of range. It must be a non-negative number. Received ' + n + '.');\n }\n this._maxListeners = n;\n return this;\n};\n\nfunction $getMaxListeners(that) {\n if (that._maxListeners === undefined)\n return EventEmitter.defaultMaxListeners;\n return that._maxListeners;\n}\n\nEventEmitter.prototype.getMaxListeners = function getMaxListeners() {\n return $getMaxListeners(this);\n};\n\nEventEmitter.prototype.emit = function emit(type) {\n var args = [];\n for (var i = 1; i < arguments.length; i++) args.push(arguments[i]);\n var doError = (type === 'error');\n\n var events = this._events;\n if (events !== undefined)\n doError = (doError && events.error === undefined);\n else if (!doError)\n return false;\n\n // If there is no 'error' event listener then throw.\n if (doError) {\n var er;\n if (args.length > 0)\n er = args[0];\n if (er instanceof Error) {\n // Note: The comments on the `throw` lines are intentional, they show\n // up in Node's output if this results in an unhandled exception.\n throw er; // Unhandled 'error' event\n }\n // At least give some kind of context to the user\n var err = new Error('Unhandled error.' + (er ? ' (' + er.message + ')' : ''));\n err.context = er;\n throw err; // Unhandled 'error' event\n }\n\n var handler = events[type];\n\n if (handler === undefined)\n return false;\n\n if (typeof handler === 'function') {\n ReflectApply(handler, this, args);\n } else {\n var len = handler.length;\n var listeners = arrayClone(handler, len);\n for (var i = 0; i < len; ++i)\n ReflectApply(listeners[i], this, args);\n }\n\n return true;\n};\n\nfunction _addListener(target, type, listener, prepend) {\n var m;\n var events;\n var existing;\n\n if (typeof listener !== 'function') {\n throw new TypeError('The \"listener\" argument must be of type Function. Received type ' + typeof listener);\n }\n\n events = target._events;\n if (events === undefined) {\n events = target._events = Object.create(null);\n target._eventsCount = 0;\n } else {\n // To avoid recursion in the case that type === \"newListener\"! Before\n // adding it to the listeners, first emit \"newListener\".\n if (events.newListener !== undefined) {\n target.emit('newListener', type,\n listener.listener ? listener.listener : listener);\n\n // Re-assign `events` because a newListener handler could have caused the\n // this._events to be assigned to a new object\n events = target._events;\n }\n existing = events[type];\n }\n\n if (existing === undefined) {\n // Optimize the case of one listener. Don't need the extra array object.\n existing = events[type] = listener;\n ++target._eventsCount;\n } else {\n if (typeof existing === 'function') {\n // Adding the second element, need to change to array.\n existing = events[type] =\n prepend ? [listener, existing] : [existing, listener];\n // If we've already got an array, just append.\n } else if (prepend) {\n existing.unshift(listener);\n } else {\n existing.push(listener);\n }\n\n // Check for listener leak\n m = $getMaxListeners(target);\n if (m > 0 && existing.length > m && !existing.warned) {\n existing.warned = true;\n // No error code for this since it is a Warning\n // eslint-disable-next-line no-restricted-syntax\n var w = new Error('Possible EventEmitter memory leak detected. ' +\n existing.length + ' ' + String(type) + ' listeners ' +\n 'added. Use emitter.setMaxListeners() to ' +\n 'increase limit');\n w.name = 'MaxListenersExceededWarning';\n w.emitter = target;\n w.type = type;\n w.count = existing.length;\n ProcessEmitWarning(w);\n }\n }\n\n return target;\n}\n\nEventEmitter.prototype.addListener = function addListener(type, listener) {\n return _addListener(this, type, listener, false);\n};\n\nEventEmitter.prototype.on = EventEmitter.prototype.addListener;\n\nEventEmitter.prototype.prependListener =\n function prependListener(type, listener) {\n return _addListener(this, type, listener, true);\n };\n\nfunction onceWrapper() {\n var args = [];\n for (var i = 0; i < arguments.length; i++) args.push(arguments[i]);\n if (!this.fired) {\n this.target.removeListener(this.type, this.wrapFn);\n this.fired = true;\n ReflectApply(this.listener, this.target, args);\n }\n}\n\nfunction _onceWrap(target, type, listener) {\n var state = { fired: false, wrapFn: undefined, target: target, type: type, listener: listener };\n var wrapped = onceWrapper.bind(state);\n wrapped.listener = listener;\n state.wrapFn = wrapped;\n return wrapped;\n}\n\nEventEmitter.prototype.once = function once(type, listener) {\n if (typeof listener !== 'function') {\n throw new TypeError('The \"listener\" argument must be of type Function. Received type ' + typeof listener);\n }\n this.on(type, _onceWrap(this, type, listener));\n return this;\n};\n\nEventEmitter.prototype.prependOnceListener =\n function prependOnceListener(type, listener) {\n if (typeof listener !== 'function') {\n throw new TypeError('The \"listener\" argument must be of type Function. Received type ' + typeof listener);\n }\n this.prependListener(type, _onceWrap(this, type, listener));\n return this;\n };\n\n// Emits a 'removeListener' event if and only if the listener was removed.\nEventEmitter.prototype.removeListener =\n function removeListener(type, listener) {\n var list, events, position, i, originalListener;\n\n if (typeof listener !== 'function') {\n throw new TypeError('The \"listener\" argument must be of type Function. Received type ' + typeof listener);\n }\n\n events = this._events;\n if (events === undefined)\n return this;\n\n list = events[type];\n if (list === undefined)\n return this;\n\n if (list === listener || list.listener === listener) {\n if (--this._eventsCount === 0)\n this._events = Object.create(null);\n else {\n delete events[type];\n if (events.removeListener)\n this.emit('removeListener', type, list.listener || listener);\n }\n } else if (typeof list !== 'function') {\n position = -1;\n\n for (i = list.length - 1; i >= 0; i--) {\n if (list[i] === listener || list[i].listener === listener) {\n originalListener = list[i].listener;\n position = i;\n break;\n }\n }\n\n if (position < 0)\n return this;\n\n if (position === 0)\n list.shift();\n else {\n spliceOne(list, position);\n }\n\n if (list.length === 1)\n events[type] = list[0];\n\n if (events.removeListener !== undefined)\n this.emit('removeListener', type, originalListener || listener);\n }\n\n return this;\n };\n\nEventEmitter.prototype.off = EventEmitter.prototype.removeListener;\n\nEventEmitter.prototype.removeAllListeners =\n function removeAllListeners(type) {\n var listeners, events, i;\n\n events = this._events;\n if (events === undefined)\n return this;\n\n // not listening for removeListener, no need to emit\n if (events.removeListener === undefined) {\n if (arguments.length === 0) {\n this._events = Object.create(null);\n this._eventsCount = 0;\n } else if (events[type] !== undefined) {\n if (--this._eventsCount === 0)\n this._events = Object.create(null);\n else\n delete events[type];\n }\n return this;\n }\n\n // emit removeListener for all listeners on all events\n if (arguments.length === 0) {\n var keys = Object.keys(events);\n var key;\n for (i = 0; i < keys.length; ++i) {\n key = keys[i];\n if (key === 'removeListener') continue;\n this.removeAllListeners(key);\n }\n this.removeAllListeners('removeListener');\n this._events = Object.create(null);\n this._eventsCount = 0;\n return this;\n }\n\n listeners = events[type];\n\n if (typeof listeners === 'function') {\n this.removeListener(type, listeners);\n } else if (listeners !== undefined) {\n // LIFO order\n for (i = listeners.length - 1; i >= 0; i--) {\n this.removeListener(type, listeners[i]);\n }\n }\n\n return this;\n };\n\nfunction _listeners(target, type, unwrap) {\n var events = target._events;\n\n if (events === undefined)\n return [];\n\n var evlistener = events[type];\n if (evlistener === undefined)\n return [];\n\n if (typeof evlistener === 'function')\n return unwrap ? [evlistener.listener || evlistener] : [evlistener];\n\n return unwrap ?\n unwrapListeners(evlistener) : arrayClone(evlistener, evlistener.length);\n}\n\nEventEmitter.prototype.listeners = function listeners(type) {\n return _listeners(this, type, true);\n};\n\nEventEmitter.prototype.rawListeners = function rawListeners(type) {\n return _listeners(this, type, false);\n};\n\nEventEmitter.listenerCount = function(emitter, type) {\n if (typeof emitter.listenerCount === 'function') {\n return emitter.listenerCount(type);\n } else {\n return listenerCount.call(emitter, type);\n }\n};\n\nEventEmitter.prototype.listenerCount = listenerCount;\nfunction listenerCount(type) {\n var events = this._events;\n\n if (events !== undefined) {\n var evlistener = events[type];\n\n if (typeof evlistener === 'function') {\n return 1;\n } else if (evlistener !== undefined) {\n return evlistener.length;\n }\n }\n\n return 0;\n}\n\nEventEmitter.prototype.eventNames = function eventNames() {\n return this._eventsCount > 0 ? ReflectOwnKeys(this._events) : [];\n};\n\nfunction arrayClone(arr, n) {\n var copy = new Array(n);\n for (var i = 0; i < n; ++i)\n copy[i] = arr[i];\n return copy;\n}\n\nfunction spliceOne(list, index) {\n for (; index + 1 < list.length; index++)\n list[index] = list[index + 1];\n list.pop();\n}\n\nfunction unwrapListeners(arr) {\n var ret = new Array(arr.length);\n for (var i = 0; i < ret.length; ++i) {\n ret[i] = arr[i].listener || arr[i];\n }\n return ret;\n}\n","var objectWithoutPropertiesLoose = require(\"./objectWithoutPropertiesLoose\");\n\nfunction _objectWithoutProperties(source, excluded) {\n if (source == null) return {};\n var target = objectWithoutPropertiesLoose(source, excluded);\n var key, i;\n\n if (Object.getOwnPropertySymbols) {\n var sourceSymbolKeys = Object.getOwnPropertySymbols(source);\n\n for (i = 0; i < sourceSymbolKeys.length; i++) {\n key = sourceSymbolKeys[i];\n if (excluded.indexOf(key) >= 0) continue;\n if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue;\n target[key] = source[key];\n }\n }\n\n return target;\n}\n\nmodule.exports = _objectWithoutProperties;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nObject.defineProperty(exports, \"format\", {\n enumerable: true,\n get: function get() {\n return _format.default;\n }\n});\nObject.defineProperty(exports, \"parse\", {\n enumerable: true,\n get: function get() {\n return _parse.default;\n }\n});\n\nvar _format = _interopRequireDefault(require(\"./format\"));\n\nvar _parse = _interopRequireDefault(require(\"./parse\"));\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n//# sourceMappingURL=index.js.map","'use strict';\n\nvar _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return call && (typeof call === \"object\" || typeof call === \"function\") ? call : self; }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function, not \" + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; }\n\nvar _require = require('whatwg-url'),\n URL = _require.URL;\n\nvar _require2 = require('@solid/jose'),\n JWT = _require2.JWT,\n JWK = _require2.JWK;\n\nvar DEFAULT_MAX_AGE = 3600; // Default token expiration, in seconds\n\nvar PoPToken = function (_JWT) {\n _inherits(PoPToken, _JWT);\n\n function PoPToken() {\n _classCallCheck(this, PoPToken);\n\n return _possibleConstructorReturn(this, (PoPToken.__proto__ || Object.getPrototypeOf(PoPToken)).apply(this, arguments));\n }\n\n _createClass(PoPToken, null, [{\n key: 'issueFor',\n\n /**\n * @param resourceServerUri {string} RS URI for which this token is intended\n *\n * @param session {Session}\n * @param session.sessionKey {string}\n * @param session.authorization.client_id {string}\n * @param session.authorization.id_token {string}\n *\n * @returns {Promise} PoPToken, encoded as compact JWT\n */\n value: function issueFor(resourceServerUri, session) {\n if (!resourceServerUri) {\n throw new Error('Cannot issue PoPToken - missing resource server URI');\n }\n\n if (!session.sessionKey) {\n throw new Error('Cannot issue PoPToken - missing session key');\n }\n\n if (!session.authorization.id_token) {\n throw new Error('Cannot issue PoPToken - missing id token');\n }\n\n var jwk = JSON.parse(session.sessionKey);\n\n return JWK.importKey(jwk).then(function (importedSessionJwk) {\n var options = {\n aud: new URL(resourceServerUri).origin,\n key: importedSessionJwk,\n iss: session.authorization.client_id,\n id_token: session.authorization.id_token\n };\n\n return PoPToken.issue(options);\n }).then(function (jwt) {\n return jwt.encode();\n });\n }\n\n /**\n * issue\n *\n * @param options {Object}\n * @param options.iss {string} Token issuer (RP client_id)\n * @param options.aud {string|Array} Audience for the token\n * (such as the Resource Server url)\n * @param options.key {JWK} Proof of Possession (private) signing key, see\n * https://tools.ietf.org/html/rfc7800#section-3.1\n *\n * @param options.id_token {string} JWT compact encoded ID Token\n *\n * Optional:\n * @param [options.iat] {number} Issued at timestamp (in seconds)\n * @param [options.max] {number} Max token lifetime in seconds\n *\n * @returns {PoPToken} Proof of Possession Token (JWT instance)\n */\n\n }, {\n key: 'issue',\n value: function issue(options) {\n var aud = options.aud,\n iss = options.iss,\n key = options.key;\n\n\n var alg = key.alg;\n var iat = options.iat || Math.floor(Date.now() / 1000);\n var max = options.max || DEFAULT_MAX_AGE;\n\n var exp = iat + max; // token expiration\n\n var header = { alg: alg };\n var payload = { iss: iss, aud: aud, exp: exp, iat: iat, id_token: options.id_token, token_type: 'pop' };\n\n var jwt = new PoPToken({ header: header, payload: payload, key: key.cryptoKey }, { filter: false });\n\n return jwt;\n }\n }]);\n\n return PoPToken;\n}(JWT);\n\nmodule.exports = PoPToken;","function _objectWithoutPropertiesLoose(source, excluded) {\n if (source == null) return {};\n var target = {};\n var sourceKeys = Object.keys(source);\n var key, i;\n\n for (i = 0; i < sourceKeys.length; i++) {\n key = sourceKeys[i];\n if (excluded.indexOf(key) >= 0) continue;\n target[key] = source[key];\n }\n\n return target;\n}\n\nmodule.exports = _objectWithoutPropertiesLoose;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = void 0;\n\nvar _util = require(\"./util\");\n\nfunction _toConsumableArray(arr) { return _arrayWithoutHoles(arr) || _iterableToArray(arr) || _nonIterableSpread(); }\n\nfunction _nonIterableSpread() { throw new TypeError(\"Invalid attempt to spread non-iterable instance\"); }\n\nfunction _iterableToArray(iter) { if (Symbol.iterator in Object(iter) || Object.prototype.toString.call(iter) === \"[object Arguments]\") return Array.from(iter); }\n\nfunction _arrayWithoutHoles(arr) { if (Array.isArray(arr)) { for (var i = 0, arr2 = new Array(arr.length); i < arr.length; i++) { arr2[i] = arr[i]; } return arr2; } }\n\nfunction _slicedToArray(arr, i) { return _arrayWithHoles(arr) || _iterableToArrayLimit(arr, i) || _nonIterableRest(); }\n\nfunction _nonIterableRest() { throw new TypeError(\"Invalid attempt to destructure non-iterable instance\"); }\n\nfunction _iterableToArrayLimit(arr, i) { var _arr = []; var _n = true; var _d = false; var _e = undefined; try { for (var _i = arr[Symbol.iterator](), _s; !(_n = (_s = _i.next()).done); _n = true) { _arr.push(_s.value); if (i && _arr.length === i) break; } } catch (err) { _d = true; _e = err; } finally { try { if (!_n && _i[\"return\"] != null) _i[\"return\"](); } finally { if (_d) throw _e; } } return _arr; }\n\nfunction _arrayWithHoles(arr) { if (Array.isArray(arr)) return arr; }\n\nvar xxx = function xxx(key) {\n return function (value) {\n return `${key}=${value && !(0, _util.isToken)(value) ? (0, _util.quote)(value) : value}`;\n };\n};\n\nvar build = function build(params) {\n return params.reduce(function (prev, _ref) {\n var _ref2 = _slicedToArray(_ref, 2),\n key = _ref2[0],\n values = _ref2[1];\n\n var transform = xxx(key);\n\n if (!(0, _util.isToken)(key)) {\n throw new TypeError();\n }\n\n if (Array.isArray(values)) {\n return _toConsumableArray(prev).concat(_toConsumableArray(values.map(transform)));\n }\n\n return _toConsumableArray(prev).concat([transform(values)]);\n }, []);\n};\n\nvar challenge = function challenge(params, options) {\n if (Array.isArray(params)) {\n return build(params);\n } else if (typeof params === 'object') {\n var entries = params;\n return challenge(Object.keys(params).map(function (key) {\n return [key, entries[key]];\n }), options);\n }\n\n throw new TypeError();\n};\n\nvar _default = function _default(scheme, token, params) {\n var obj = typeof scheme === 'string' ? {\n scheme,\n token,\n params\n } : scheme;\n\n if (typeof obj !== 'object') {\n throw new TypeError();\n } else if (!(0, _util.isScheme)(obj.scheme)) {\n throw new TypeError('Invalid scheme.');\n }\n\n return [obj.scheme].concat(_toConsumableArray(typeof obj.token !== 'undefined' ? [obj.token] : []), _toConsumableArray(typeof obj.params !== 'undefined' ? challenge(obj.params) : [])).join(' ');\n};\n\nexports.default = _default;\n//# sourceMappingURL=format.js.map","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = void 0;\n\nvar _util = require(\"./util\");\n\n// lol dis\nvar body = /((?:[a-zA-Z0-9._~+\\/-]+=*(?:\\s+|$))|[^\\u0000-\\u001F\\u007F()<>@,;:\\\\\"/?={}\\[\\]\\u0020\\u0009]+)(?:=([^\\\\\"=\\s,]+|\"(?:[^\"\\\\]|\\\\.)*\"))?/g; // eslint-disable-line\n\nvar normalize = function normalize(prev, _cur) {\n // Fixup quoted strings and tokens with spaces around them\n var cur = _cur.charAt(0) === '\"' ? (0, _util.unquote)(_cur) : _cur.trim(); // Marshal\n\n if (Array.isArray(prev)) {\n return prev.concat(cur);\n } else if (typeof prev === 'string') {\n return [prev, cur];\n }\n\n return cur;\n};\n\nvar parseProperties = function parseProperties(scheme, string) {\n var token = null;\n var params = {}; // eslint-disable-next-line no-constant-condition\n\n while (true) {\n var res = body.exec(string);\n\n if (res === null) {\n break;\n }\n\n if (res[2]) {\n params[res[1]] = normalize(params[res[1]], res[2]);\n } else {\n token = normalize(token, res[1]);\n }\n }\n\n return {\n scheme,\n params,\n token\n };\n};\n\nvar _default = function _default(str) {\n if (typeof str !== 'string') {\n throw new TypeError('Header value must be a string.');\n }\n\n var start = str.indexOf(' ');\n var scheme = str.substr(0, start);\n\n if (!(0, _util.isScheme)(scheme)) {\n throw new TypeError(`Invalid scheme ${scheme}`);\n }\n\n return parseProperties(scheme, str.substr(start));\n};\n\nexports.default = _default;\n//# sourceMappingURL=parse.js.map","/*\nobject-assign\n(c) Sindre Sorhus\n@license MIT\n*/\n\n'use strict';\n/* eslint-disable no-unused-vars */\nvar getOwnPropertySymbols = Object.getOwnPropertySymbols;\nvar hasOwnProperty = Object.prototype.hasOwnProperty;\nvar propIsEnumerable = Object.prototype.propertyIsEnumerable;\n\nfunction toObject(val) {\n\tif (val === null || val === undefined) {\n\t\tthrow new TypeError('Object.assign cannot be called with null or undefined');\n\t}\n\n\treturn Object(val);\n}\n\nfunction shouldUseNative() {\n\ttry {\n\t\tif (!Object.assign) {\n\t\t\treturn false;\n\t\t}\n\n\t\t// Detect buggy property enumeration order in older V8 versions.\n\n\t\t// https://bugs.chromium.org/p/v8/issues/detail?id=4118\n\t\tvar test1 = new String('abc'); // eslint-disable-line no-new-wrappers\n\t\ttest1[5] = 'de';\n\t\tif (Object.getOwnPropertyNames(test1)[0] === '5') {\n\t\t\treturn false;\n\t\t}\n\n\t\t// https://bugs.chromium.org/p/v8/issues/detail?id=3056\n\t\tvar test2 = {};\n\t\tfor (var i = 0; i < 10; i++) {\n\t\t\ttest2['_' + String.fromCharCode(i)] = i;\n\t\t}\n\t\tvar order2 = Object.getOwnPropertyNames(test2).map(function (n) {\n\t\t\treturn test2[n];\n\t\t});\n\t\tif (order2.join('') !== '0123456789') {\n\t\t\treturn false;\n\t\t}\n\n\t\t// https://bugs.chromium.org/p/v8/issues/detail?id=3056\n\t\tvar test3 = {};\n\t\t'abcdefghijklmnopqrst'.split('').forEach(function (letter) {\n\t\t\ttest3[letter] = letter;\n\t\t});\n\t\tif (Object.keys(Object.assign({}, test3)).join('') !==\n\t\t\t\t'abcdefghijklmnopqrst') {\n\t\t\treturn false;\n\t\t}\n\n\t\treturn true;\n\t} catch (err) {\n\t\t// We don't expect any of the above to throw, but better to be safe.\n\t\treturn false;\n\t}\n}\n\nmodule.exports = shouldUseNative() ? Object.assign : function (target, source) {\n\tvar from;\n\tvar to = toObject(target);\n\tvar symbols;\n\n\tfor (var s = 1; s < arguments.length; s++) {\n\t\tfrom = Object(arguments[s]);\n\n\t\tfor (var key in from) {\n\t\t\tif (hasOwnProperty.call(from, key)) {\n\t\t\t\tto[key] = from[key];\n\t\t\t}\n\t\t}\n\n\t\tif (getOwnPropertySymbols) {\n\t\t\tsymbols = getOwnPropertySymbols(from);\n\t\t\tfor (var i = 0; i < symbols.length; i++) {\n\t\t\t\tif (propIsEnumerable.call(from, symbols[i])) {\n\t\t\t\t\tto[symbols[i]] = from[symbols[i]];\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n\n\treturn to;\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\nvar getOwnPropertyDescriptors = Object.getOwnPropertyDescriptors ||\n function getOwnPropertyDescriptors(obj) {\n var keys = Object.keys(obj);\n var descriptors = {};\n for (var i = 0; i < keys.length; i++) {\n descriptors[keys[i]] = Object.getOwnPropertyDescriptor(obj, keys[i]);\n }\n return descriptors;\n };\n\nvar formatRegExp = /%[sdj%]/g;\nexports.format = function(f) {\n if (!isString(f)) {\n var objects = [];\n for (var i = 0; i < arguments.length; i++) {\n objects.push(inspect(arguments[i]));\n }\n return objects.join(' ');\n }\n\n var i = 1;\n var args = arguments;\n var len = args.length;\n var str = String(f).replace(formatRegExp, function(x) {\n if (x === '%%') return '%';\n if (i >= len) return x;\n switch (x) {\n case '%s': return String(args[i++]);\n case '%d': return Number(args[i++]);\n case '%j':\n try {\n return JSON.stringify(args[i++]);\n } catch (_) {\n return '[Circular]';\n }\n default:\n return x;\n }\n });\n for (var x = args[i]; i < len; x = args[++i]) {\n if (isNull(x) || !isObject(x)) {\n str += ' ' + x;\n } else {\n str += ' ' + inspect(x);\n }\n }\n return str;\n};\n\n\n// Mark that a method should not be used.\n// Returns a modified function which warns once by default.\n// If --no-deprecation is set, then it is a no-op.\nexports.deprecate = function(fn, msg) {\n if (typeof process !== 'undefined' && process.noDeprecation === true) {\n return fn;\n }\n\n // Allow for deprecating things in the process of starting up.\n if (typeof process === 'undefined') {\n return function() {\n return exports.deprecate(fn, msg).apply(this, arguments);\n };\n }\n\n var warned = false;\n function deprecated() {\n if (!warned) {\n if (process.throwDeprecation) {\n throw new Error(msg);\n } else if (process.traceDeprecation) {\n console.trace(msg);\n } else {\n console.error(msg);\n }\n warned = true;\n }\n return fn.apply(this, arguments);\n }\n\n return deprecated;\n};\n\n\nvar debugs = {};\nvar debugEnviron;\nexports.debuglog = function(set) {\n if (isUndefined(debugEnviron))\n debugEnviron = process.env.NODE_DEBUG || '';\n set = set.toUpperCase();\n if (!debugs[set]) {\n if (new RegExp('\\\\b' + set + '\\\\b', 'i').test(debugEnviron)) {\n var pid = process.pid;\n debugs[set] = function() {\n var msg = exports.format.apply(exports, arguments);\n console.error('%s %d: %s', set, pid, msg);\n };\n } else {\n debugs[set] = function() {};\n }\n }\n return debugs[set];\n};\n\n\n/**\n * Echos the value of a value. Trys to print the value out\n * in the best way possible given the different types.\n *\n * @param {Object} obj The object to print out.\n * @param {Object} opts Optional options object that alters the output.\n */\n/* legacy: obj, showHidden, depth, colors*/\nfunction inspect(obj, opts) {\n // default options\n var ctx = {\n seen: [],\n stylize: stylizeNoColor\n };\n // legacy...\n if (arguments.length >= 3) ctx.depth = arguments[2];\n if (arguments.length >= 4) ctx.colors = arguments[3];\n if (isBoolean(opts)) {\n // legacy...\n ctx.showHidden = opts;\n } else if (opts) {\n // got an \"options\" object\n exports._extend(ctx, opts);\n }\n // set default options\n if (isUndefined(ctx.showHidden)) ctx.showHidden = false;\n if (isUndefined(ctx.depth)) ctx.depth = 2;\n if (isUndefined(ctx.colors)) ctx.colors = false;\n if (isUndefined(ctx.customInspect)) ctx.customInspect = true;\n if (ctx.colors) ctx.stylize = stylizeWithColor;\n return formatValue(ctx, obj, ctx.depth);\n}\nexports.inspect = inspect;\n\n\n// http://en.wikipedia.org/wiki/ANSI_escape_code#graphics\ninspect.colors = {\n 'bold' : [1, 22],\n 'italic' : [3, 23],\n 'underline' : [4, 24],\n 'inverse' : [7, 27],\n 'white' : [37, 39],\n 'grey' : [90, 39],\n 'black' : [30, 39],\n 'blue' : [34, 39],\n 'cyan' : [36, 39],\n 'green' : [32, 39],\n 'magenta' : [35, 39],\n 'red' : [31, 39],\n 'yellow' : [33, 39]\n};\n\n// Don't use 'blue' not visible on cmd.exe\ninspect.styles = {\n 'special': 'cyan',\n 'number': 'yellow',\n 'boolean': 'yellow',\n 'undefined': 'grey',\n 'null': 'bold',\n 'string': 'green',\n 'date': 'magenta',\n // \"name\": intentionally not styling\n 'regexp': 'red'\n};\n\n\nfunction stylizeWithColor(str, styleType) {\n var style = inspect.styles[styleType];\n\n if (style) {\n return '\\u001b[' + inspect.colors[style][0] + 'm' + str +\n '\\u001b[' + inspect.colors[style][1] + 'm';\n } else {\n return str;\n }\n}\n\n\nfunction stylizeNoColor(str, styleType) {\n return str;\n}\n\n\nfunction arrayToHash(array) {\n var hash = {};\n\n array.forEach(function(val, idx) {\n hash[val] = true;\n });\n\n return hash;\n}\n\n\nfunction formatValue(ctx, value, recurseTimes) {\n // Provide a hook for user-specified inspect functions.\n // Check that value is an object with an inspect function on it\n if (ctx.customInspect &&\n value &&\n isFunction(value.inspect) &&\n // Filter out the util module, it's inspect function is special\n value.inspect !== exports.inspect &&\n // Also filter out any prototype objects using the circular check.\n !(value.constructor && value.constructor.prototype === value)) {\n var ret = value.inspect(recurseTimes, ctx);\n if (!isString(ret)) {\n ret = formatValue(ctx, ret, recurseTimes);\n }\n return ret;\n }\n\n // Primitive types cannot have properties\n var primitive = formatPrimitive(ctx, value);\n if (primitive) {\n return primitive;\n }\n\n // Look up the keys of the object.\n var keys = Object.keys(value);\n var visibleKeys = arrayToHash(keys);\n\n if (ctx.showHidden) {\n keys = Object.getOwnPropertyNames(value);\n }\n\n // IE doesn't make error fields non-enumerable\n // http://msdn.microsoft.com/en-us/library/ie/dww52sbt(v=vs.94).aspx\n if (isError(value)\n && (keys.indexOf('message') >= 0 || keys.indexOf('description') >= 0)) {\n return formatError(value);\n }\n\n // Some type of object without properties can be shortcutted.\n if (keys.length === 0) {\n if (isFunction(value)) {\n var name = value.name ? ': ' + value.name : '';\n return ctx.stylize('[Function' + name + ']', 'special');\n }\n if (isRegExp(value)) {\n return ctx.stylize(RegExp.prototype.toString.call(value), 'regexp');\n }\n if (isDate(value)) {\n return ctx.stylize(Date.prototype.toString.call(value), 'date');\n }\n if (isError(value)) {\n return formatError(value);\n }\n }\n\n var base = '', array = false, braces = ['{', '}'];\n\n // Make Array say that they are Array\n if (isArray(value)) {\n array = true;\n braces = ['[', ']'];\n }\n\n // Make functions say that they are functions\n if (isFunction(value)) {\n var n = value.name ? ': ' + value.name : '';\n base = ' [Function' + n + ']';\n }\n\n // Make RegExps say that they are RegExps\n if (isRegExp(value)) {\n base = ' ' + RegExp.prototype.toString.call(value);\n }\n\n // Make dates with properties first say the date\n if (isDate(value)) {\n base = ' ' + Date.prototype.toUTCString.call(value);\n }\n\n // Make error with message first say the error\n if (isError(value)) {\n base = ' ' + formatError(value);\n }\n\n if (keys.length === 0 && (!array || value.length == 0)) {\n return braces[0] + base + braces[1];\n }\n\n if (recurseTimes < 0) {\n if (isRegExp(value)) {\n return ctx.stylize(RegExp.prototype.toString.call(value), 'regexp');\n } else {\n return ctx.stylize('[Object]', 'special');\n }\n }\n\n ctx.seen.push(value);\n\n var output;\n if (array) {\n output = formatArray(ctx, value, recurseTimes, visibleKeys, keys);\n } else {\n output = keys.map(function(key) {\n return formatProperty(ctx, value, recurseTimes, visibleKeys, key, array);\n });\n }\n\n ctx.seen.pop();\n\n return reduceToSingleString(output, base, braces);\n}\n\n\nfunction formatPrimitive(ctx, value) {\n if (isUndefined(value))\n return ctx.stylize('undefined', 'undefined');\n if (isString(value)) {\n var simple = '\\'' + JSON.stringify(value).replace(/^\"|\"$/g, '')\n .replace(/'/g, \"\\\\'\")\n .replace(/\\\\\"/g, '\"') + '\\'';\n return ctx.stylize(simple, 'string');\n }\n if (isNumber(value))\n return ctx.stylize('' + value, 'number');\n if (isBoolean(value))\n return ctx.stylize('' + value, 'boolean');\n // For some reason typeof null is \"object\", so special case here.\n if (isNull(value))\n return ctx.stylize('null', 'null');\n}\n\n\nfunction formatError(value) {\n return '[' + Error.prototype.toString.call(value) + ']';\n}\n\n\nfunction formatArray(ctx, value, recurseTimes, visibleKeys, keys) {\n var output = [];\n for (var i = 0, l = value.length; i < l; ++i) {\n if (hasOwnProperty(value, String(i))) {\n output.push(formatProperty(ctx, value, recurseTimes, visibleKeys,\n String(i), true));\n } else {\n output.push('');\n }\n }\n keys.forEach(function(key) {\n if (!key.match(/^\\d+$/)) {\n output.push(formatProperty(ctx, value, recurseTimes, visibleKeys,\n key, true));\n }\n });\n return output;\n}\n\n\nfunction formatProperty(ctx, value, recurseTimes, visibleKeys, key, array) {\n var name, str, desc;\n desc = Object.getOwnPropertyDescriptor(value, key) || { value: value[key] };\n if (desc.get) {\n if (desc.set) {\n str = ctx.stylize('[Getter/Setter]', 'special');\n } else {\n str = ctx.stylize('[Getter]', 'special');\n }\n } else {\n if (desc.set) {\n str = ctx.stylize('[Setter]', 'special');\n }\n }\n if (!hasOwnProperty(visibleKeys, key)) {\n name = '[' + key + ']';\n }\n if (!str) {\n if (ctx.seen.indexOf(desc.value) < 0) {\n if (isNull(recurseTimes)) {\n str = formatValue(ctx, desc.value, null);\n } else {\n str = formatValue(ctx, desc.value, recurseTimes - 1);\n }\n if (str.indexOf('\\n') > -1) {\n if (array) {\n str = str.split('\\n').map(function(line) {\n return ' ' + line;\n }).join('\\n').substr(2);\n } else {\n str = '\\n' + str.split('\\n').map(function(line) {\n return ' ' + line;\n }).join('\\n');\n }\n }\n } else {\n str = ctx.stylize('[Circular]', 'special');\n }\n }\n if (isUndefined(name)) {\n if (array && key.match(/^\\d+$/)) {\n return str;\n }\n name = JSON.stringify('' + key);\n if (name.match(/^\"([a-zA-Z_][a-zA-Z_0-9]*)\"$/)) {\n name = name.substr(1, name.length - 2);\n name = ctx.stylize(name, 'name');\n } else {\n name = name.replace(/'/g, \"\\\\'\")\n .replace(/\\\\\"/g, '\"')\n .replace(/(^\"|\"$)/g, \"'\");\n name = ctx.stylize(name, 'string');\n }\n }\n\n return name + ': ' + str;\n}\n\n\nfunction reduceToSingleString(output, base, braces) {\n var numLinesEst = 0;\n var length = output.reduce(function(prev, cur) {\n numLinesEst++;\n if (cur.indexOf('\\n') >= 0) numLinesEst++;\n return prev + cur.replace(/\\u001b\\[\\d\\d?m/g, '').length + 1;\n }, 0);\n\n if (length > 60) {\n return braces[0] +\n (base === '' ? '' : base + '\\n ') +\n ' ' +\n output.join(',\\n ') +\n ' ' +\n braces[1];\n }\n\n return braces[0] + base + ' ' + output.join(', ') + ' ' + braces[1];\n}\n\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()`.\nfunction isArray(ar) {\n return Array.isArray(ar);\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 isObject(re) && 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 isObject(d) && objectToString(d) === '[object Date]';\n}\nexports.isDate = isDate;\n\nfunction isError(e) {\n return isObject(e) &&\n (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('./support/isBuffer');\n\nfunction objectToString(o) {\n return Object.prototype.toString.call(o);\n}\n\n\nfunction pad(n) {\n return n < 10 ? '0' + n.toString(10) : n.toString(10);\n}\n\n\nvar months = ['Jan', 'Feb', 'Mar', 'Apr', 'May', 'Jun', 'Jul', 'Aug', 'Sep',\n 'Oct', 'Nov', 'Dec'];\n\n// 26 Feb 16:19:34\nfunction timestamp() {\n var d = new Date();\n var time = [pad(d.getHours()),\n pad(d.getMinutes()),\n pad(d.getSeconds())].join(':');\n return [d.getDate(), months[d.getMonth()], time].join(' ');\n}\n\n\n// log is just a thin wrapper to console.log that prepends a timestamp\nexports.log = function() {\n console.log('%s - %s', timestamp(), exports.format.apply(exports, arguments));\n};\n\n\n/**\n * Inherit the prototype methods from one constructor into another.\n *\n * The Function.prototype.inherits from lang.js rewritten as a standalone\n * function (not on Function.prototype). NOTE: If this file is to be loaded\n * during bootstrapping this function needs to be rewritten using some native\n * functions as prototype setup using normal JavaScript does not work as\n * expected during bootstrapping (see mirror.js in r114903).\n *\n * @param {function} ctor Constructor function which needs to inherit the\n * prototype.\n * @param {function} superCtor Constructor function to inherit prototype from.\n */\nexports.inherits = require('inherits');\n\nexports._extend = function(origin, add) {\n // Don't do anything if add isn't an object\n if (!add || !isObject(add)) return origin;\n\n var keys = Object.keys(add);\n var i = keys.length;\n while (i--) {\n origin[keys[i]] = add[keys[i]];\n }\n return origin;\n};\n\nfunction hasOwnProperty(obj, prop) {\n return Object.prototype.hasOwnProperty.call(obj, prop);\n}\n\nvar kCustomPromisifiedSymbol = typeof Symbol !== 'undefined' ? Symbol('util.promisify.custom') : undefined;\n\nexports.promisify = function promisify(original) {\n if (typeof original !== 'function')\n throw new TypeError('The \"original\" argument must be of type Function');\n\n if (kCustomPromisifiedSymbol && original[kCustomPromisifiedSymbol]) {\n var fn = original[kCustomPromisifiedSymbol];\n if (typeof fn !== 'function') {\n throw new TypeError('The \"util.promisify.custom\" argument must be of type Function');\n }\n Object.defineProperty(fn, kCustomPromisifiedSymbol, {\n value: fn, enumerable: false, writable: false, configurable: true\n });\n return fn;\n }\n\n function fn() {\n var promiseResolve, promiseReject;\n var promise = new Promise(function (resolve, reject) {\n promiseResolve = resolve;\n promiseReject = reject;\n });\n\n var args = [];\n for (var i = 0; i < arguments.length; i++) {\n args.push(arguments[i]);\n }\n args.push(function (err, value) {\n if (err) {\n promiseReject(err);\n } else {\n promiseResolve(value);\n }\n });\n\n try {\n original.apply(this, args);\n } catch (err) {\n promiseReject(err);\n }\n\n return promise;\n }\n\n Object.setPrototypeOf(fn, Object.getPrototypeOf(original));\n\n if (kCustomPromisifiedSymbol) Object.defineProperty(fn, kCustomPromisifiedSymbol, {\n value: fn, enumerable: false, writable: false, configurable: true\n });\n return Object.defineProperties(\n fn,\n getOwnPropertyDescriptors(original)\n );\n}\n\nexports.promisify.custom = kCustomPromisifiedSymbol\n\nfunction callbackifyOnRejected(reason, cb) {\n // `!reason` guard inspired by bluebird (Ref: https://goo.gl/t5IS6M).\n // Because `null` is a special error value in callbacks which means \"no error\n // occurred\", we error-wrap so the callback consumer can distinguish between\n // \"the promise rejected with null\" or \"the promise fulfilled with undefined\".\n if (!reason) {\n var newReason = new Error('Promise was rejected with a falsy value');\n newReason.reason = reason;\n reason = newReason;\n }\n return cb(reason);\n}\n\nfunction callbackify(original) {\n if (typeof original !== 'function') {\n throw new TypeError('The \"original\" argument must be of type Function');\n }\n\n // We DO NOT return the promise as it gives the user a false sense that\n // the promise is actually somehow related to the callback's execution\n // and that the callback throwing will reject the promise.\n function callbackified() {\n var args = [];\n for (var i = 0; i < arguments.length; i++) {\n args.push(arguments[i]);\n }\n\n var maybeCb = args.pop();\n if (typeof maybeCb !== 'function') {\n throw new TypeError('The last argument must be of type Function');\n }\n var self = this;\n var cb = function() {\n return maybeCb.apply(self, arguments);\n };\n // In true node style we process the callback on `nextTick` with all the\n // implications (stack, `uncaughtException`, `async_hooks`)\n original.apply(this, args)\n .then(function(ret) { process.nextTick(cb, null, ret) },\n function(rej) { process.nextTick(callbackifyOnRejected, rej, cb) });\n }\n\n Object.setPrototypeOf(callbackified, Object.getPrototypeOf(original));\n Object.defineProperties(callbackified,\n getOwnPropertyDescriptors(original));\n return callbackified;\n}\nexports.callbackify = callbackify;\n","// shim for using process in browser\nvar process = module.exports = {};\n\n// cached from whatever global is present so that test runners that stub it\n// don't break things. But we need to wrap it in a try catch in case it is\n// wrapped in strict mode code which doesn't define any globals. It's inside a\n// function because try/catches deoptimize in certain engines.\n\nvar cachedSetTimeout;\nvar cachedClearTimeout;\n\nfunction defaultSetTimout() {\n throw new Error('setTimeout has not been defined');\n}\nfunction defaultClearTimeout () {\n throw new Error('clearTimeout has not been defined');\n}\n(function () {\n try {\n if (typeof setTimeout === 'function') {\n cachedSetTimeout = setTimeout;\n } else {\n cachedSetTimeout = defaultSetTimout;\n }\n } catch (e) {\n cachedSetTimeout = defaultSetTimout;\n }\n try {\n if (typeof clearTimeout === 'function') {\n cachedClearTimeout = clearTimeout;\n } else {\n cachedClearTimeout = defaultClearTimeout;\n }\n } catch (e) {\n cachedClearTimeout = defaultClearTimeout;\n }\n} ())\nfunction runTimeout(fun) {\n if (cachedSetTimeout === setTimeout) {\n //normal enviroments in sane situations\n return setTimeout(fun, 0);\n }\n // if setTimeout wasn't available but was latter defined\n if ((cachedSetTimeout === defaultSetTimout || !cachedSetTimeout) && setTimeout) {\n cachedSetTimeout = setTimeout;\n return setTimeout(fun, 0);\n }\n try {\n // when when somebody has screwed with setTimeout but no I.E. maddness\n return cachedSetTimeout(fun, 0);\n } catch(e){\n try {\n // When we are in I.E. but the script has been evaled so I.E. doesn't trust the global object when called normally\n return cachedSetTimeout.call(null, fun, 0);\n } catch(e){\n // same as above but when it's a version of I.E. that must have the global object for 'this', hopfully our context correct otherwise it will throw a global error\n return cachedSetTimeout.call(this, fun, 0);\n }\n }\n\n\n}\nfunction runClearTimeout(marker) {\n if (cachedClearTimeout === clearTimeout) {\n //normal enviroments in sane situations\n return clearTimeout(marker);\n }\n // if clearTimeout wasn't available but was latter defined\n if ((cachedClearTimeout === defaultClearTimeout || !cachedClearTimeout) && clearTimeout) {\n cachedClearTimeout = clearTimeout;\n return clearTimeout(marker);\n }\n try {\n // when when somebody has screwed with setTimeout but no I.E. maddness\n return cachedClearTimeout(marker);\n } catch (e){\n try {\n // When we are in I.E. but the script has been evaled so I.E. doesn't trust the global object when called normally\n return cachedClearTimeout.call(null, marker);\n } catch (e){\n // same as above but when it's a version of I.E. that must have the global object for 'this', hopfully our context correct otherwise it will throw a global error.\n // Some versions of I.E. have different rules for clearTimeout vs setTimeout\n return cachedClearTimeout.call(this, marker);\n }\n }\n\n\n\n}\nvar queue = [];\nvar draining = false;\nvar currentQueue;\nvar queueIndex = -1;\n\nfunction cleanUpNextTick() {\n if (!draining || !currentQueue) {\n return;\n }\n draining = false;\n if (currentQueue.length) {\n queue = currentQueue.concat(queue);\n } else {\n queueIndex = -1;\n }\n if (queue.length) {\n drainQueue();\n }\n}\n\nfunction drainQueue() {\n if (draining) {\n return;\n }\n var timeout = runTimeout(cleanUpNextTick);\n draining = true;\n\n var len = queue.length;\n while(len) {\n currentQueue = queue;\n queue = [];\n while (++queueIndex < len) {\n if (currentQueue) {\n currentQueue[queueIndex].run();\n }\n }\n queueIndex = -1;\n len = queue.length;\n }\n currentQueue = null;\n draining = false;\n runClearTimeout(timeout);\n}\n\nprocess.nextTick = function (fun) {\n var args = new Array(arguments.length - 1);\n if (arguments.length > 1) {\n for (var i = 1; i < arguments.length; i++) {\n args[i - 1] = arguments[i];\n }\n }\n queue.push(new Item(fun, args));\n if (queue.length === 1 && !draining) {\n runTimeout(drainQueue);\n }\n};\n\n// v8 likes predictible objects\nfunction Item(fun, array) {\n this.fun = fun;\n this.array = array;\n}\nItem.prototype.run = function () {\n this.fun.apply(null, this.array);\n};\nprocess.title = 'browser';\nprocess.browser = true;\nprocess.env = {};\nprocess.argv = [];\nprocess.version = ''; // empty string to avoid regexp issues\nprocess.versions = {};\n\nfunction noop() {}\n\nprocess.on = noop;\nprocess.addListener = noop;\nprocess.once = noop;\nprocess.off = noop;\nprocess.removeListener = noop;\nprocess.removeAllListeners = noop;\nprocess.emit = noop;\nprocess.prependListener = noop;\nprocess.prependOnceListener = noop;\n\nprocess.listeners = function (name) { return [] }\n\nprocess.binding = function (name) {\n throw new Error('process.binding is not supported');\n};\n\nprocess.cwd = function () { return '/' };\nprocess.chdir = function (dir) {\n throw new Error('process.chdir is not supported');\n};\nprocess.umask = function() { return 0; };\n","module.exports = function isBuffer(arg) {\n return arg && typeof arg === 'object'\n && typeof arg.copy === 'function'\n && typeof arg.fill === 'function'\n && typeof arg.readUInt8 === 'function';\n}","if (typeof Object.create === 'function') {\n // implementation from standard node.js 'util' module\n module.exports = function inherits(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} else {\n // old school shim for old browsers\n module.exports = function inherits(ctor, superCtor) {\n ctor.super_ = superCtor\n var TempCtor = function () {}\n TempCtor.prototype = superCtor.prototype\n ctor.prototype = new TempCtor()\n ctor.prototype.constructor = ctor\n }\n}\n","'use strict';\n\n/**\n * Module dependencies\n * @ignore\n */\n\nvar _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nvar JSONPatch = require('./JSONPatch');\n\n/**\n * JSONDocument\n *\n * @class\n * JSONDocument is a high level interface that binds together all other features of\n * this package and provides the principle method of data modeling.\n */\n\nvar JSONDocument = function () {\n _createClass(JSONDocument, null, [{\n key: 'schema',\n\n\n /**\n * Schema\n */\n get: function get() {\n throw new Error('Schema must be defined by classes extending JSONDocument');\n }\n\n /**\n * Constructor\n *\n * @param {Object} data\n * @param {Object} options\n */\n\n }]);\n\n function JSONDocument() {\n var data = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};\n var options = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n\n _classCallCheck(this, JSONDocument);\n\n this.initialize(data, options);\n }\n\n /**\n * Initialize\n *\n * @param {Object} data\n * @param {Object} options\n */\n\n\n _createClass(JSONDocument, [{\n key: 'initialize',\n value: function initialize() {\n var data = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};\n var options = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n var schema = this.constructor.schema;\n\n schema.initialize(this, data, options);\n }\n\n /**\n * Validate\n *\n * @param {JSONSchema} alternate - OPTIONAL alternate schema\n * @returns {Object}\n */\n\n }, {\n key: 'validate',\n value: function validate(alternate) {\n var schema = this.constructor.schema;\n\n return (alternate || schema).validate(this);\n }\n\n /**\n * Patch\n *\n * @param {Array} ops\n */\n\n }, {\n key: 'patch',\n value: function patch(ops) {\n var patch = new JSONPatch(ops);\n patch.apply(this);\n }\n\n /**\n * Select\n */\n\n }, {\n key: 'select',\n value: function select() {}\n\n /**\n * Project\n *\n * @description\n * Given a mapping, return an object projected from the current instance.\n *\n * @example\n * let schema = new JSONSchema({\n * properties: {\n * foo: { type: 'Array' }\n * }\n * })\n *\n * let mapping = new JSONMapping({\n * '/foo/0': '/bar/baz'\n * })\n *\n * class FooTracker extends JSONDocument {\n * static get schema () { return schema }\n * }\n *\n * let instance = new FooTracker({ foo: ['qux'] })\n * instance.project(mapping)\n * // => { bar: { baz: 'qux' } }\n *\n * @param {JSONMapping} mapping\n * @return {Object}\n */\n\n }, {\n key: 'project',\n value: function project(mapping) {\n return mapping.project(this);\n }\n\n /**\n * Serialize\n *\n * @param {Object} object\n * @returns {string}\n */\n\n }], [{\n key: 'serialize',\n value: function serialize(object) {\n return JSON.stringify(object);\n }\n\n /**\n * Deserialize\n *\n * @param {string} data\n * @return {*}\n */\n\n }, {\n key: 'deserialize',\n value: function deserialize(data) {\n try {\n return JSON.parse(data);\n } catch (e) {\n throw new Error('Failed to parse JSON');\n }\n }\n }]);\n\n return JSONDocument;\n}();\n\n/**\n * Export\n */\n\n\nmodule.exports = JSONDocument;","'use strict';\n\n/**\n * Module dependencies\n * @ignore\n */\n\nvar _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nvar JSONPointer = require('./JSONPointer');\n\n/**\n * JSONPointer mode\n */\nvar RECOVER = 1;\n\n/**\n * JSONMapping\n *\n * @class\n * Defines a means to declaratively translate between object\n * representations using JSON Pointer syntax.\n */\n\nvar JSONMapping = function () {\n\n /**\n * Constructor\n *\n * @description Translate pointers from JSON Strings into Pointer objects\n * @param {Object} mapping\n */\n function JSONMapping(mapping) {\n var _this = this;\n\n _classCallCheck(this, JSONMapping);\n\n Object.defineProperty(this, 'mapping', {\n enumerable: false,\n value: new Map()\n });\n\n Object.keys(mapping).forEach(function (key) {\n var value = mapping[key];\n _this.mapping.set(new JSONPointer(key, RECOVER), new JSONPointer(value, RECOVER));\n });\n }\n\n /**\n * Map\n *\n * @description Assign values from source to target by reading the mapping\n * from right to left.\n * @param {Object} target\n * @param {Object} source\n */\n\n\n _createClass(JSONMapping, [{\n key: 'map',\n value: function map(target, source) {\n this.mapping.forEach(function (right, left) {\n left.add(target, right.get(source));\n });\n }\n\n /**\n * Project\n *\n * @description Assign values from source to target by reading the mapping\n * from left to right.\n * @param {Object} source\n * @param {Object} target\n */\n\n }, {\n key: 'project',\n value: function project(source, target) {\n this.mapping.forEach(function (right, left) {\n right.add(target, left.get(source));\n });\n }\n }]);\n\n return JSONMapping;\n}();\n\n/**\n * Exports\n */\n\n\nmodule.exports = JSONMapping;","'use strict';\n\n/**\n * Module dependencies\n * @ignore\n */\n\nvar _typeof = typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\" ? function (obj) { return typeof obj; } : function (obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; };\n\nvar _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();\n\nfunction _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nvar Initializer = require('./Initializer');\nvar Validator = require('./Validator');\n\n/**\n * JSONSchema\n *\n * @class\n * Compiles JSON Schema documents to an object with object initialization\n * and validation methods.\n */\n\nvar JSONSchema = function () {\n\n /**\n * Constructor\n *\n * @param {Object} schema\n */\n function JSONSchema(schema) {\n _classCallCheck(this, JSONSchema);\n\n // TODO: optionally parse JSON string?\n Object.assign(this, schema);\n\n // add schema-derived initialize and validate methods\n Object.defineProperties(this, {\n initialize: {\n enumerable: false,\n writeable: false,\n value: Initializer.compile(schema)\n },\n validate: {\n enumerable: false,\n writeable: false,\n value: Validator.compile(schema)\n }\n });\n }\n\n /**\n * Extend\n *\n * @description\n * ...\n * Dear future,\n *\n * This function was meticulously plagiarized from some curious amalgam of\n * stackoverflow posts whilst dozing off at my keyboard, too deprived of REM-\n * sleep to recurse unassisted. If it sucks, you have only yourself to blame.\n *\n * Goodnight.\n *\n * @param {Object} schema\n * @returns {JSONSchema}\n */\n\n\n _createClass(JSONSchema, [{\n key: 'extend',\n value: function extend(schema) {\n function isObject(data) {\n return data && (typeof data === 'undefined' ? 'undefined' : _typeof(data)) === 'object' && data !== null && !Array.isArray(data);\n }\n\n function extender(target, source) {\n var result = Object.assign({}, target);\n if (isObject(target) && isObject(source)) {\n Object.keys(source).forEach(function (key) {\n if (isObject(source[key])) {\n if (!(key in target)) {\n Object.assign(result, _defineProperty({}, key, source[key]));\n } else {\n result[key] = extender(target[key], source[key]);\n }\n } else {\n Object.assign(result, _defineProperty({}, key, source[key]));\n }\n });\n }\n return result;\n }\n\n var descriptor = extender(this, schema);\n return new JSONSchema(descriptor);\n }\n }]);\n\n return JSONSchema;\n}();\n\n/**\n * Export\n */\n\n\nmodule.exports = JSONSchema;","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nvar pad_string_1 = require(\"./pad-string\");\nfunction encode(input, encoding) {\n if (encoding === void 0) { encoding = \"utf8\"; }\n if (Buffer.isBuffer(input)) {\n return fromBase64(input.toString(\"base64\"));\n }\n return fromBase64(Buffer.from(input, encoding).toString(\"base64\"));\n}\n;\nfunction decode(base64url, encoding) {\n if (encoding === void 0) { encoding = \"utf8\"; }\n return Buffer.from(toBase64(base64url), \"base64\").toString(encoding);\n}\nfunction toBase64(base64url) {\n base64url = base64url.toString();\n return pad_string_1.default(base64url)\n .replace(/\\-/g, \"+\")\n .replace(/_/g, \"/\");\n}\nfunction fromBase64(base64) {\n return base64\n .replace(/=/g, \"\")\n .replace(/\\+/g, \"-\")\n .replace(/\\//g, \"_\");\n}\nfunction toBuffer(base64url) {\n return Buffer.from(toBase64(base64url), \"base64\");\n}\nvar base64url = encode;\nbase64url.encode = encode;\nbase64url.decode = decode;\nbase64url.toBase64 = toBase64;\nbase64url.fromBase64 = fromBase64;\nbase64url.toBuffer = toBuffer;\nexports.default = base64url;\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(\n uint8, i, (i + maxChunkLength) > len2 ? len2 : (i + maxChunkLength)\n ))\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","exports.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","var toString = {}.toString;\n\nmodule.exports = Array.isArray || function (arr) {\n return toString.call(arr) == '[object Array]';\n};\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nfunction padString(input) {\n var segmentLength = 4;\n var stringLength = input.length;\n var diff = stringLength % segmentLength;\n if (!diff) {\n return input;\n }\n var position = stringLength;\n var padLength = segmentLength - diff;\n var paddedStringLength = stringLength + padLength;\n var buffer = Buffer.alloc(paddedStringLength);\n buffer.write(input);\n while (padLength--) {\n buffer.write(\"=\", position++);\n }\n return buffer.toString();\n}\nexports.default = padString;\n","'use strict';\n\n/**\n * Local dependencies\n */\nvar None = require('./NONE');\nvar HMAC = require('./HMAC');\nvar RSASSA_PKCS1_v1_5 = require('./RSASSA-PKCS1-v1_5');\nvar SupportedAlgorithms = require('./SupportedAlgorithms');\n\n/**\n * Register Supported Algorithms\n */\nvar supportedAlgorithms = new SupportedAlgorithms();\n\n/**\n * Sign\n */\nsupportedAlgorithms.define('HS256', 'sign', new HMAC({\n name: 'HMAC',\n hash: {\n name: 'SHA-256'\n }\n}));\n\nsupportedAlgorithms.define('HS384', 'sign', new HMAC({\n name: 'HMAC',\n hash: {\n name: 'SHA-384'\n }\n}));\n\nsupportedAlgorithms.define('HS512', 'sign', new HMAC({\n name: 'HMAC',\n hash: {\n name: 'SHA-512'\n }\n}));\n\nsupportedAlgorithms.define('RS256', 'sign', new RSASSA_PKCS1_v1_5({\n name: 'RSASSA-PKCS1-v1_5',\n hash: {\n name: 'SHA-256'\n }\n}));\n\nsupportedAlgorithms.define('RS384', 'sign', new RSASSA_PKCS1_v1_5({\n name: 'RSASSA-PKCS1-v1_5',\n hash: {\n name: 'SHA-384'\n }\n}));\n\nsupportedAlgorithms.define('RS512', 'sign', new RSASSA_PKCS1_v1_5({\n name: 'RSASSA-PKCS1-v1_5',\n hash: {\n name: 'SHA-512'\n }\n}));\n//supportedAlgorithms.define('ES256', 'sign', {})\n//supportedAlgorithms.define('ES384', 'sign', {})\n//supportedAlgorithms.define('ES512', 'sign', {})\n//supportedAlgorithms.define('PS256', 'sign', {})\n//supportedAlgorithms.define('PS384', 'sign', {})\n//supportedAlgorithms.define('PS512', 'sign', {})\n\nsupportedAlgorithms.define('none', 'sign', new None({\n // nothing goes here\n}));\n\n/**\n * Verify\n */\nsupportedAlgorithms.define('HS256', 'verify', new HMAC({\n name: 'HMAC',\n hash: {\n name: 'SHA-256'\n }\n}));\n\nsupportedAlgorithms.define('HS384', 'verify', new HMAC({\n name: 'HMAC',\n hash: {\n name: 'SHA-384'\n }\n}));\n\nsupportedAlgorithms.define('HS512', 'verify', new HMAC({\n name: 'HMAC',\n hash: {\n name: 'SHA-512'\n }\n}));\n\nsupportedAlgorithms.define('RS256', 'verify', new RSASSA_PKCS1_v1_5({\n name: 'RSASSA-PKCS1-v1_5',\n hash: {\n name: 'SHA-256'\n }\n}));\n\nsupportedAlgorithms.define('RS384', 'verify', new RSASSA_PKCS1_v1_5({\n name: 'RSASSA-PKCS1-v1_5',\n hash: {\n name: 'SHA-384'\n }\n}));\n\nsupportedAlgorithms.define('RS512', 'verify', new RSASSA_PKCS1_v1_5({\n name: 'RSASSA-PKCS1-v1_5',\n hash: {\n name: 'SHA-512'\n }\n}));\n//supportedAlgorithms.define('ES256', 'verify', {})\n//supportedAlgorithms.define('ES384', 'verify', {})\n//supportedAlgorithms.define('ES512', 'verify', {})\n//supportedAlgorithms.define('PS256', 'verify', {})\n//supportedAlgorithms.define('PS384', 'verify', {})\n//supportedAlgorithms.define('PS512', 'verify', {})\n\nsupportedAlgorithms.define('none', 'verify', new None({\n // nothing goes here\n}));\n\nsupportedAlgorithms.define('RS256', 'importKey', new RSASSA_PKCS1_v1_5({\n name: 'RSASSA-PKCS1-v1_5',\n hash: {\n name: 'SHA-256'\n }\n}));\n\nsupportedAlgorithms.define('RS384', 'importKey', new RSASSA_PKCS1_v1_5({\n name: 'RSASSA-PKCS1-v1_5',\n hash: {\n name: 'SHA-384'\n }\n}));\n\nsupportedAlgorithms.define('RS512', 'importKey', new RSASSA_PKCS1_v1_5({\n name: 'RSASSA-PKCS1-v1_5',\n hash: {\n name: 'SHA-512'\n }\n}));\n\n/**\n * Export\n */\nmodule.exports = supportedAlgorithms;","'use strict';\n\nvar _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\n/**\n * None\n */\nvar None = function () {\n function None() {\n _classCallCheck(this, None);\n }\n\n _createClass(None, [{\n key: 'sign',\n\n /**\n * sign\n */\n value: function sign() {\n return Promise.resolve('');\n }\n\n /**\n * verify\n */\n\n }, {\n key: 'verify',\n value: function verify() {\n // this will never get called. but you looked.\n }\n }]);\n\n return None;\n}();\n\n/**\n * Export\n */\n\n\nmodule.exports = None;","'use strict';\n\n/**\n * Dependencies\n * @ignore\n */\n\nvar _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nvar base64url = require('base64url');\nvar crypto = require('@trust/webcrypto');\nvar TextEncoder = require('../text-encoder');\n\n/**\n * HMAC with SHA-2 Functions\n */\n\nvar HMAC = function () {\n\n /**\n * Constructor\n *\n * @param {string} bitlength\n */\n function HMAC(params) {\n _classCallCheck(this, HMAC);\n\n this.params = params;\n }\n\n /**\n * Sign\n *\n * @description\n * Generate a hash-based message authentication code for a\n * given input and key. Enforce the key length is equal to\n * or greater than the bitlength.\n *\n * @param {CryptoKey} key\n * @param {string} data\n *\n * @returns {string}\n */\n\n\n _createClass(HMAC, [{\n key: 'sign',\n value: function sign(key, data) {\n var algorithm = this.params;\n\n // TODO: validate key length\n\n data = new TextEncoder().encode(data);\n\n return crypto.subtle.sign(algorithm, key, data).then(function (signature) {\n return base64url(Buffer.from(signature));\n });\n }\n\n /**\n * Verify\n *\n * @description\n * Verify a digital signature for a given input and private key.\n *\n * @param {CryptoKey} key\n * @param {string} signature\n * @param {string} data\n *\n * @returns {Boolean}\n */\n\n }, {\n key: 'verify',\n value: function verify(key, signature, data) {\n var algorithm = this.params;\n\n if (typeof signature === 'string') {\n signature = Uint8Array.from(base64url.toBuffer(signature));\n }\n\n if (typeof data === 'string') {\n data = new TextEncoder().encode(data);\n }\n\n return crypto.subtle.verify(algorithm, key, signature, data);\n }\n\n /**\n * Assert Sufficient Key Length\n *\n * @description Assert that the key length is sufficient\n * @param {string} key\n */\n\n }, {\n key: 'assertSufficientKeyLength',\n value: function assertSufficientKeyLength(key) {\n if (key.length < this.bitlength) {\n throw new Error('The key is too short.');\n }\n }\n }]);\n\n return HMAC;\n}();\n\n/**\n * Export\n */\n\n\nmodule.exports = HMAC;","module.exports = __WEBPACK_EXTERNAL_MODULE__56__;","'use strict';\n\n/**\n * Dependencies\n * @ignore\n */\n\nvar _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nvar base64url = require('base64url');\nvar crypto = require('@trust/webcrypto');\nvar TextEncoder = require('../text-encoder');\n\n/**\n * RSASSA-PKCS1-v1_5\n */\n\nvar RSASSA_PKCS1_v1_5 = function () {\n\n /**\n * constructor\n *\n * @param {string} bitlength\n */\n function RSASSA_PKCS1_v1_5(params) {\n _classCallCheck(this, RSASSA_PKCS1_v1_5);\n\n this.params = params;\n }\n\n /**\n * sign\n *\n * @description\n * Generate a digital signature for a given input and private key.\n *\n * @param {CryptoKey} key\n * @param {BufferSource} data\n *\n * @returns {Promise}\n */\n\n\n _createClass(RSASSA_PKCS1_v1_5, [{\n key: 'sign',\n value: function sign(key, data) {\n var algorithm = this.params;\n\n // TODO\n //if (!this.sufficientKeySize()) {\n // return Promise.reject(\n // new Error(\n // 'A key size of 2048 bits or larger must be used with RSASSA-PKCS1-v1_5'\n // )\n // )\n //}\n\n data = new TextEncoder().encode(data);\n\n return crypto.subtle.sign(algorithm, key, data).then(function (signature) {\n return base64url(Buffer.from(signature));\n });\n }\n\n /**\n * verify\n *\n * @description\n * Verify a digital signature for a given input and private key.\n *\n * @param {CryptoKey} key\n * @param {BufferSource} signature\n * @param {BufferSource} data\n *\n * @returns {Promise}\n */\n\n }, {\n key: 'verify',\n value: function verify(key, signature, data) {\n var algorithm = this.params;\n\n if (typeof signature === 'string') {\n signature = Uint8Array.from(base64url.toBuffer(signature));\n }\n\n if (typeof data === 'string') {\n data = new TextEncoder().encode(data);\n }\n // ...\n\n return crypto.subtle.verify(algorithm, key, signature, data);\n }\n\n /**\n * importKey\n *\n * @param {JWK} key\n * @returns {Promise}\n */\n\n }, {\n key: 'importKey',\n value: function importKey(key) {\n var jwk = Object.assign({}, key);\n var algorithm = this.params;\n var usages = key['key_ops'] || [];\n\n if (key.use === 'sig') {\n usages.push('verify');\n }\n\n if (key.use === 'enc') {\n // TODO: handle encryption keys\n return Promise.resolve(key);\n }\n\n if (key.key_ops) {\n usages = key.key_ops;\n }\n\n return crypto.subtle.importKey('jwk', jwk, algorithm, true, usages).then(function (cryptoKey) {\n Object.defineProperty(jwk, 'cryptoKey', {\n enumerable: false,\n value: cryptoKey\n });\n\n return jwk;\n });\n }\n }]);\n\n return RSASSA_PKCS1_v1_5;\n}();\n\n/**\n * Export\n */\n\n\nmodule.exports = RSASSA_PKCS1_v1_5;","'use strict';\n\nvar _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\n/**\n * Dependencies\n */\nvar NotSupportedError = require('../errors/NotSupportedError');\n\n/**\n * Operations\n */\nvar operations = ['sign', 'verify', 'encrypt', 'decrypt', 'importKey'];\n\n/**\n * SupportedAlgorithms\n */\n\nvar SupportedAlgorithms = function () {\n\n /**\n * constructor\n */\n function SupportedAlgorithms() {\n var _this = this;\n\n _classCallCheck(this, SupportedAlgorithms);\n\n operations.forEach(function (op) {\n _this[op] = {};\n });\n }\n\n /**\n * Supported Operations\n */\n\n\n _createClass(SupportedAlgorithms, [{\n key: 'define',\n\n\n /**\n * define\n *\n * @description\n * Register Web Crypto API algorithm parameter for an algorithm\n * and operation.\n *\n * @param {string} alg\n * @param {string} op\n * @param {Object} argument\n */\n value: function define(alg, op, argument) {\n var registeredAlgorithms = this[op];\n registeredAlgorithms[alg] = argument;\n }\n\n /**\n * normalize\n *\n * @description\n * Map JWA alg name to Web Crypto API algorithm parameter\n *\n * @param {string} op\n * @param {Object} alg\n *\n * @returns {Object}\n */\n\n }, {\n key: 'normalize',\n value: function normalize(op, alg) {\n var registeredAlgorithms = this[op];\n\n if (!registeredAlgorithms) {\n return new SyntaxError(); // what kind of error should this be?\n }\n\n var argument = registeredAlgorithms[alg];\n\n if (!argument) {\n return new NotSupportedError(alg);\n }\n\n return argument;\n }\n }], [{\n key: 'operations',\n get: function get() {\n return operations;\n }\n }]);\n\n return SupportedAlgorithms;\n}();\n\n/**\n * Export\n */\n\n\nmodule.exports = SupportedAlgorithms;","'use strict';\n\n/**\n * Package dependencies\n */\nvar _require = require('@trust/json-document'),\n Formats = _require.Formats;\n\n/**\n * Format extensions\n */\n\n\nFormats.register('StringOrURI', new RegExp());\nFormats.register('NumericDate', new RegExp());\nFormats.register('URI', new RegExp());\nFormats.register('url', new RegExp());\nFormats.register('base64', new RegExp());\nFormats.register('base64url', new RegExp());\nFormats.register('MediaType', new RegExp());","'use strict';\n\n/**\n * Dependencies\n */\n\nvar _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return call && (typeof call === \"object\" || typeof call === \"function\") ? call : self; }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function, not \" + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; }\n\nvar _require = require('@trust/json-document'),\n JSONDocument = _require.JSONDocument;\n\nvar JWKSetSchema = require('../schemas/JWKSetSchema');\nvar JWK = require('./JWK');\n\n/**\n * JWKSet\n *\n * @class\n * JWKSet represents a JSON Web Key Set as described in Section 5 of RFC 7517:\n * https://tools.ietf.org/html/rfc7517#section-5\n */\n\nvar JWKSet = function (_JSONDocument) {\n _inherits(JWKSet, _JSONDocument);\n\n function JWKSet() {\n _classCallCheck(this, JWKSet);\n\n return _possibleConstructorReturn(this, (JWKSet.__proto__ || Object.getPrototypeOf(JWKSet)).apply(this, arguments));\n }\n\n _createClass(JWKSet, null, [{\n key: 'importKeys',\n\n\n /**\n * importKeys\n */\n value: function importKeys(jwks) {\n var validation = this.schema.validate(jwks);\n\n if (!validation.valid) {\n return Promise.reject(new Error('Invalid JWKSet: ' + JSON.stringify(validation, null, 2)));\n }\n\n if (!jwks.keys) {\n return Promise.reject(new Error('Cannot import JWKSet: keys property is empty'));\n }\n\n var imported = void 0,\n importing = void 0;\n\n try {\n imported = new JWKSet(jwks);\n importing = jwks.keys.map(function (key) {\n return JWK.importKey(key);\n });\n } catch (err) {\n return Promise.reject(err);\n }\n\n return Promise.all(importing).then(function (keys) {\n imported.keys = keys;\n return imported;\n });\n }\n }, {\n key: 'schema',\n\n\n /**\n * schema\n */\n get: function get() {\n return JWKSetSchema;\n }\n }]);\n\n return JWKSet;\n}(JSONDocument);\n\n/**\n * Export\n */\n\n\nmodule.exports = JWKSet;","'use strict';\n\nvar _typeof = typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\" ? function (obj) { return typeof obj; } : function (obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; };\n\nvar _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return call && (typeof call === \"object\" || typeof call === \"function\") ? call : self; }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function, not \" + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; }\n\n/**\n * Dependencies\n */\nvar base64url = require('base64url');\n\nvar _require = require('@trust/json-document'),\n JSONDocument = _require.JSONDocument;\n\nvar JWTSchema = require('../schemas/JWTSchema');\nvar JWS = require('./JWS');\nvar DataError = require('../errors/DataError');\n\n/**\n * JWT\n */\n\nvar JWT = function (_JSONDocument) {\n _inherits(JWT, _JSONDocument);\n\n function JWT() {\n _classCallCheck(this, JWT);\n\n return _possibleConstructorReturn(this, (JWT.__proto__ || Object.getPrototypeOf(JWT)).apply(this, arguments));\n }\n\n _createClass(JWT, [{\n key: 'isJWE',\n\n\n /**\n * isJWE\n */\n value: function isJWE() {\n return !!this.header.enc;\n }\n\n /**\n * resolveKeys\n */\n\n }, {\n key: 'resolveKeys',\n value: function resolveKeys(jwks) {\n var kid = this.header.kid;\n var keys = void 0,\n match = void 0;\n\n // treat an array as the \"keys\" property of a JWK Set\n if (Array.isArray(jwks)) {\n keys = jwks;\n }\n\n // presence of keys indicates object is a JWK Set\n if (jwks.keys) {\n keys = jwks.keys;\n }\n\n // wrap a plain object they is not a JWK Set in Array\n if (!jwks.keys && (typeof jwks === 'undefined' ? 'undefined' : _typeof(jwks)) === 'object') {\n keys = [jwks];\n }\n\n // ensure there are keys to search\n if (!keys) {\n throw new DataError('Invalid JWK argument');\n }\n\n // match by \"kid\" or \"use\" header\n if (kid) {\n match = keys.find(function (jwk) {\n return jwk.kid === kid;\n });\n } else {\n match = keys.find(function (jwk) {\n return jwk.use === 'sig';\n });\n }\n\n // assign matching key to JWT and return a boolean\n if (match) {\n this.key = match.cryptoKey;\n return true;\n } else {\n return false;\n }\n }\n\n /**\n * encode\n *\n * @description\n * Encode a JWT instance\n *\n * @returns {Promise}\n */\n\n }, {\n key: 'encode',\n value: function encode() {\n // validate\n var validation = this.validate();\n\n if (!validation.valid) {\n return Promise.reject(validation);\n }\n\n var token = this;\n\n if (this.isJWE()) {\n return JWE.encrypt(token);\n } else {\n return JWS.sign(token);\n }\n }\n\n /**\n * verify\n *\n * @description\n * Verify a decoded JWT instance\n *\n * @returns {Promise}\n */\n\n }, {\n key: 'verify',\n value: function verify() {\n var validation = this.validate();\n\n if (!validation.valid) {\n return Promise.reject(validation);\n }\n\n return JWS.verify(this);\n }\n }], [{\n key: 'decode',\n\n\n /**\n * decode\n *\n * @description\n * Decode a JSON Web Token\n *\n * @param {string} data\n * @returns {JWT}\n */\n value: function decode(data) {\n var ExtendedJWT = this;\n var jwt = void 0;\n\n if (typeof data !== 'string') {\n throw new DataError('JWT must be a string');\n }\n\n // JSON of Flattened JSON Serialization\n if (data.startsWith('{')) {\n try {\n data = JSON.parse(data, function () {});\n } catch (error) {\n throw new DataError('Invalid JWT serialization');\n }\n\n if (data.signatures || data.recipients) {\n data.serialization = 'json';\n } else {\n data.serialization = 'flattened';\n }\n\n jwt = new ExtendedJWT(data, { filter: false });\n\n // Compact Serialization\n } else {\n try {\n var serialization = 'compact';\n var segments = data.split('.');\n var length = segments.length;\n\n if (length !== 3 && length !== 5) {\n throw new Error('Malformed JWT');\n }\n\n var header = JSON.parse(base64url.decode(segments[0]));\n\n // JSON Web Signature\n if (length === 3) {\n var type = 'JWS';\n var payload = JSON.parse(base64url.decode(segments[1]));\n var signature = segments[2];\n\n jwt = new ExtendedJWT({ type: type, segments: segments, header: header, payload: payload, signature: signature, serialization: serialization }, { filter: false });\n }\n\n // JSON Web Encryption\n if (length === 5) {\n //let type = 'JWE'\n //let [protected, encryption_key, iv, ciphertext, tag] = segments\n\n //jwt = new ExtendedJWT({\n // type,\n // protected: base64url.decode(JSON.parse(protected)),\n // encryption_key,\n // iv,\n // ciphertext,\n // tag,\n // serialization\n //})\n }\n } catch (error) {\n throw new DataError('Invalid JWT compact serialization');\n }\n }\n\n return jwt;\n }\n\n /**\n * encode\n *\n * @description\n * Encode a JSON Web Token\n *\n * @param {Object} header\n * @param {Object} payload\n * @param {CryptoKey} key\n *\n * @returns {Promise}\n */\n\n }, {\n key: 'encode',\n value: function encode(header, payload, key) {\n var jwt = new JWT(header, payload);\n return jwt.encode(key);\n }\n\n /**\n * verify\n *\n * @description\n *\n * @param {CryptoKey} key\n * @param {string} token\n *\n * @returns {Promise}\n */\n\n }, {\n key: 'verify',\n value: function verify(key, token) {\n var jwt = JWT.decode(token);\n jwt.key = key;\n return jwt.verify().then(function (verified) {\n return jwt;\n });\n }\n }, {\n key: 'schema',\n\n\n /**\n * schema\n */\n get: function get() {\n return JWTSchema;\n }\n }]);\n\n return JWT;\n}(JSONDocument);\n\n/**\n * Export\n */\n\n\nmodule.exports = JWT;","/**\n * Dependencies\n */\nconst assert = require('assert')\nconst base64url = require('base64url')\nconst crypto = require('@trust/webcrypto')\nconst { JWT } = require('@solid/jose')\nconst FormUrlEncoded = require('./FormUrlEncoded')\nconst { URL } = require('whatwg-url')\n\n/**\n * Authentication Request\n */\nclass AuthenticationRequest {\n /**\n * create\n *\n * @description\n * Create a new authentication request with generated state and nonce,\n * validate presence of required parameters, serialize the request data and\n * persist it to the session, and return a promise for an authentication\n * request URI.\n *\n * @param {RelyingParty} rp – instance of RelyingParty\n * @param {Object} options - optional request parameters\n * @param {Object} session – reference to localStorage or other session object\n *\n * @returns {Promise}\n */\n static create (rp, options, session) {\n const {provider, defaults, registration} = rp\n\n let issuer, endpoint, client, params\n\n return Promise.resolve()\n .then(() => {\n // validate presence of OP configuration, RP client registration,\n // and default parameters\n assert(provider.configuration,\n 'RelyingParty provider OpenID Configuration is missing')\n\n assert(defaults.authenticate,\n 'RelyingParty default authentication parameters are missing')\n\n assert(registration,\n 'RelyingParty client registration is missing')\n\n // define basic elements of the request\n issuer = provider.configuration.issuer\n endpoint = provider.configuration.authorization_endpoint\n client = { client_id: registration.client_id}\n params = Object.assign(defaults.authenticate, client, options)\n\n // validate presence of required configuration and parameters\n assert(issuer,\n 'Missing issuer in provider OpenID Configuration')\n\n assert(endpoint,\n 'Missing authorization_endpoint in provider OpenID Configuration')\n\n assert(params.scope,\n 'Missing scope parameter in authentication request')\n\n assert(params.response_type,\n 'Missing response_type parameter in authentication request')\n\n assert(params.client_id,\n 'Missing client_id parameter in authentication request')\n\n assert(params.redirect_uri,\n 'Missing redirect_uri parameter in authentication request')\n\n // generate state and nonce random octets\n params.state = Array.from(crypto.getRandomValues(new Uint8Array(16)))\n params.nonce = Array.from(crypto.getRandomValues(new Uint8Array(16)))\n\n // hash the state and nonce parameter values\n return Promise.all([\n crypto.subtle.digest({ name: 'SHA-256' }, new Uint8Array(params.state)),\n crypto.subtle.digest({ name: 'SHA-256' }, new Uint8Array(params.nonce))\n ])\n })\n\n // serialize the request with original values, store in session by\n // encoded state param, and replace state/nonce octets with encoded\n // digests\n .then(digests => {\n let state = base64url(Buffer.from(digests[0]))\n let nonce = base64url(Buffer.from(digests[1]))\n let key = `${issuer}/requestHistory/${state}`\n\n // store the request params for response validation\n // with serialized octet values for state and nonce\n session[key] = JSON.stringify(params)\n\n // replace state and nonce octets with base64url encoded digests\n params.state = state\n params.nonce = nonce\n })\n\n .then(() => AuthenticationRequest.generateSessionKeys())\n\n .then(sessionKeys => {\n AuthenticationRequest.storeSessionKeys(sessionKeys, params, session)\n })\n\n // optionally encode a JWT with the request parameters\n // and replace params with `{ request: }\n .then(() => {\n if (provider.configuration.request_parameter_supported) {\n return AuthenticationRequest.encodeRequestParams(params)\n\n .then(encodedParams => { params = encodedParams })\n }\n })\n\n // render the request URI and terminate the algorithm\n .then(() => {\n let url = new URL(endpoint)\n url.search = FormUrlEncoded.encode(params)\n\n return url.href\n })\n }\n\n static generateSessionKeys () {\n return crypto.subtle.generateKey(\n {\n name: \"RSASSA-PKCS1-v1_5\",\n modulusLength: 2048,\n publicExponent: new Uint8Array([0x01, 0x00, 0x01]),\n hash: { name: \"SHA-256\" },\n },\n true,\n [\"sign\", \"verify\"]\n )\n .then((keyPair) => {\n // returns a keypair object\n return Promise.all([\n crypto.subtle.exportKey('jwk', keyPair.publicKey),\n crypto.subtle.exportKey('jwk', keyPair.privateKey)\n ])\n })\n .then(jwkPair => {\n let [ publicJwk, privateJwk ] = jwkPair\n\n return { public: publicJwk, private: privateJwk }\n })\n }\n\n static storeSessionKeys (sessionKeys, params, session) {\n // store the private one in session, public one goes into params\n session['oidc.session.privateKey'] = JSON.stringify(sessionKeys.private)\n params.key = sessionKeys.public\n }\n\n static encodeRequestParams (params) {\n const excludeParams = ['scope', 'client_id', 'response_type', 'state']\n\n const keysToEncode = Object.keys(params).filter(key => !excludeParams.includes(key))\n\n let payload = {}\n\n keysToEncode.forEach(key => {\n payload[key] = params[key]\n })\n\n let requestParamJwt = new JWT({\n header: { alg: 'none' },\n payload\n }, { filter: false })\n\n return requestParamJwt.encode()\n .then(requestParamCompact => {\n let newParams = {\n scope: params['scope'],\n client_id: params['client_id'],\n response_type: params['response_type'],\n request: requestParamCompact,\n state: params['state']\n }\n\n return newParams\n })\n }\n}\n\n/**\n * Export\n */\nmodule.exports = AuthenticationRequest\n","/**\n * Dependencies\n */\nconst { URL } = require('whatwg-url')\nconst assert = require('assert')\nconst crypto = require('@trust/webcrypto')\nconst base64url = require('base64url')\nconst fetch = require('node-fetch')\nconst Headers = fetch.Headers ? fetch.Headers : global.Headers\nconst FormUrlEncoded = require('./FormUrlEncoded')\nconst IDToken = require('./IDToken')\nconst Session = require('./Session')\nconst onHttpError = require('./onHttpError')\nconst HttpError = require('standard-http-error')\n\n/**\n * AuthenticationResponse\n */\nclass AuthenticationResponse {\n /**\n * @param rp {RelyingParty}\n * @param [redirect] {string} req.query\n * @param [body] {string} req.body.text\n * @param session {Session|Storage} req.session or localStorage or similar\n * @param params {object} hashmap\n * @param mode {string} 'query'/'fragment'/'form_post',\n * determined in `parseResponse()`\n */\n constructor ({rp, redirect, body, session, mode, params = {}}) {\n this.rp = rp\n this.redirect = redirect\n this.body = body\n this.session = session\n this.mode = mode\n this.params = params\n }\n\n /**\n * validateResponse\n *\n * @description\n * Authentication response validation.\n *\n * @param {string|Object} response\n *\n * @returns {Promise}\n */\n static validateResponse (response) {\n return Promise.resolve(response)\n .then(this.parseResponse)\n .then(this.errorResponse)\n .then(this.matchRequest)\n .then(this.validateStateParam)\n .then(this.validateResponseMode)\n .then(this.validateResponseParams)\n .then(this.exchangeAuthorizationCode)\n .then(this.validateIDToken)\n .then(Session.fromAuthResponse)\n }\n\n /**\n * parseResponse\n *\n * @param {object} response\n *\n * @returns {object}\n */\n static parseResponse (response) {\n let {redirect, body} = response\n\n // response must be either a redirect uri or request body, but not both\n if ((redirect && body) || (!redirect && !body)) {\n throw new HttpError(400, 'Invalid response mode')\n }\n\n // parse redirect uri\n if (redirect) {\n let url = new URL(redirect)\n let {search, hash} = url\n\n if ((search && hash) || (!search && !hash)) {\n throw new HttpError(400, 'Invalid response mode')\n }\n\n if (search) {\n response.params = FormUrlEncoded.decode(search.substring(1))\n response.mode = 'query'\n }\n\n if (hash) {\n response.params = FormUrlEncoded.decode(hash.substring(1))\n response.mode = 'fragment'\n }\n }\n\n // parse request form body\n if (body) {\n response.params = FormUrlEncoded.decode(body)\n response.mode = 'form_post'\n }\n\n return response\n }\n\n /**\n * errorResponse\n *\n * @param {AuthenticationResponse} response\n *\n * @throws {Error} If response params include the OAuth2 'error' param,\n * throws an error based on it.\n *\n * @returns {AuthenticationResponse} Chainable\n *\n * @todo Figure out HTTP status code (typically 400, 401 or 403)\n * based on the OAuth2/OIDC `error` code, probably using an external library\n */\n static errorResponse (response) {\n const errorCode = response.params.error\n\n if (errorCode) {\n const errorParams = {}\n errorParams['error'] = errorCode\n errorParams['error_description'] = response.params['error_description']\n errorParams['error_uri'] = response.params['error_uri']\n errorParams['state'] = response.params['state']\n\n const error = new Error(`AuthenticationResponse error: ${errorCode}`)\n error.info = errorParams\n throw error\n }\n\n return response\n }\n\n /**\n * matchRequest\n *\n * @param {Object} response\n * @returns {Promise}\n */\n static matchRequest (response) {\n let {rp, params, session} = response\n let state = params.state\n let issuer = rp.provider.configuration.issuer\n\n if (!state) {\n throw new Error(\n 'Missing state parameter in authentication response')\n }\n\n let key = `${issuer}/requestHistory/${state}`\n let request = session[key]\n\n if (!request) {\n throw new Error(\n 'Mismatching state parameter in authentication response')\n }\n\n response.request = JSON.parse(request)\n return response\n }\n\n /**\n * validateStateParam\n *\n * @param {Object} response\n * @returns {Promise}\n */\n static validateStateParam (response) {\n let octets = new Uint8Array(response.request.state)\n let encoded = response.params.state\n\n return crypto.subtle.digest({ name: 'SHA-256' }, octets).then(digest => {\n if (encoded !== base64url(Buffer.from(digest))) {\n throw new Error(\n 'Mismatching state parameter in authentication response')\n }\n\n return response\n })\n }\n\n /**\n * validateResponseMode\n *\n * @param {Object} response\n * @returns {Promise}\n */\n static validateResponseMode (response) {\n if (response.request.response_type !== 'code' && response.mode === 'query') {\n throw new Error('Invalid response mode')\n }\n\n return response\n }\n\n /**\n * validateResponseParams\n *\n * @param {Object} response\n * @returns {Promise}\n */\n static validateResponseParams (response) {\n let {request, params} = response\n let expectedParams = request.response_type.split(' ')\n\n if (expectedParams.includes('code')) {\n assert(params.code,\n 'Missing authorization code in authentication response')\n // TODO assert novelty of code\n }\n\n if (expectedParams.includes('id_token')) {\n assert(params.id_token,\n 'Missing id_token in authentication response')\n }\n\n if (expectedParams.includes('token')) {\n assert(params.access_token,\n 'Missing access_token in authentication response')\n\n assert(params.token_type,\n 'Missing token_type in authentication response')\n }\n\n return response\n }\n\n /**\n * exchangeAuthorizationCode\n *\n * @param {Object} response\n * @returns {Promise} response object\n */\n static exchangeAuthorizationCode (response) {\n let {rp, params, request} = response\n let code = params.code\n\n // only exchange the authorization code when the response type is \"code\"\n if (!code || request['response_type'] !== 'code') {\n return Promise.resolve(response)\n }\n\n let {provider, registration} = rp\n let id = registration['client_id']\n let secret = registration['client_secret']\n\n // verify the client is not public\n if (!secret) {\n return Promise.reject(new Error(\n 'Client cannot exchange authorization code because ' +\n 'it is not a confidential client'))\n }\n\n // initialize token request arguments\n let endpoint = provider.configuration.token_endpoint\n let method = 'POST'\n\n // initialize headers\n let headers = new Headers({\n 'Content-Type': 'application/x-www-form-urlencoded'\n })\n\n // initialize the token request parameters\n let bodyContents = {\n 'grant_type': 'authorization_code',\n 'code': code,\n 'redirect_uri': request['redirect_uri']\n }\n\n // determine client authentication method\n let authMethod = registration['token_endpoint_auth_method']\n || 'client_secret_basic'\n\n // client secret basic authentication\n if (authMethod === 'client_secret_basic') {\n let credentials = new Buffer(`${id}:${secret}`).toString('base64')\n headers.set('Authorization', `Basic ${credentials}`)\n }\n\n // client secret post authentication\n if (authMethod === 'client_secret_post') {\n bodyContents['client_id'] = id\n bodyContents['client_secret'] = secret\n }\n\n let body = FormUrlEncoded.encode(bodyContents)\n\n // TODO\n // client_secret_jwt authentication\n // private_key_jwt\n\n // make the token request\n\n return fetch(endpoint, {method, headers, body})\n .then(onHttpError('Error exchanging authorization code'))\n .then(tokenResponse => tokenResponse.json())\n .then(tokenResponse => {\n assert(tokenResponse['access_token'],\n 'Missing access_token in token response')\n\n assert(tokenResponse['token_type'],\n 'Missing token_type in token response')\n\n assert(tokenResponse['id_token'],\n 'Missing id_token in token response')\n\n // anything else?\n\n // IS THIS THE RIGHT THING TO DO HERE?\n response.params = Object.assign(response.params, tokenResponse)\n return response\n })\n }\n\n\n /**\n * validateIDToken\n *\n * @param {Object} response\n * @returns {Promise}\n */\n static validateIDToken (response) {\n // only validate the ID Token if present in the response\n if (!response.params.id_token) {\n return Promise.resolve(response)\n }\n\n return Promise.resolve(response)\n .then(AuthenticationResponse.decryptIDToken)\n .then(AuthenticationResponse.decodeIDToken)\n .then(AuthenticationResponse.validateIssuer)\n .then(AuthenticationResponse.validateAudience)\n .then(AuthenticationResponse.resolveKeys)\n .then(AuthenticationResponse.verifySignature)\n .then(AuthenticationResponse.validateExpires)\n .then(AuthenticationResponse.verifyNonce)\n .then(AuthenticationResponse.validateAcr)\n .then(AuthenticationResponse.validateAuthTime)\n .then(AuthenticationResponse.validateAccessTokenHash)\n .then(AuthenticationResponse.validateAuthorizationCodeHash)\n }\n\n /**\n * decryptIDToken\n *\n * @param {Object} response\n * @returns {Promise}\n */\n static decryptIDToken (response) {\n // TODO\n return Promise.resolve(response)\n }\n\n /**\n * decodeIDToken\n *\n * Note: If the `id_token` is not present in params, this method does not\n * get called (short-circuited in `validateIDToken()`).\n *\n * @param response {AuthenticationResponse}\n * @param response.params {object}\n * @param [response.params.id_token] {string} IDToken encoded as a JWT\n *\n * @returns {AuthenticationResponse} Chainable\n */\n static decodeIDToken (response) {\n let jwt = response.params.id_token\n\n try {\n response.decoded = IDToken.decode(jwt)\n } catch (decodeError) {\n const error = new HttpError(400, 'Error decoding ID Token')\n error.cause = decodeError\n error.info = { id_token: jwt }\n throw error\n }\n\n return response\n }\n\n\n /**\n * validateIssuer\n *\n * @param {Object} response\n * @returns {Promise}\n */\n static validateIssuer (response) {\n let configuration = response.rp.provider.configuration\n let payload = response.decoded.payload\n\n // validate issuer of token matches this relying party's provider\n if (payload.iss !== configuration.issuer) {\n throw new Error('Mismatching issuer in ID Token')\n }\n\n return response\n }\n\n /**\n * validateAudience\n *\n * @param {Object} response\n * @returns {Promise}\n */\n static validateAudience (response) {\n let registration = response.rp.registration\n let {aud, azp} = response.decoded.payload\n\n // validate audience includes this relying party\n if (typeof aud === 'string' && aud !== registration['client_id']) {\n throw new Error('Mismatching audience in id_token')\n }\n\n // validate audience includes this relying party\n if (Array.isArray(aud) && !aud.includes(registration['client_id'])) {\n throw new Error('Mismatching audience in id_token')\n }\n\n // validate authorized party is present if required\n if (Array.isArray(aud) && !azp) {\n throw new Error('Missing azp claim in id_token')\n }\n\n // validate authorized party is this relying party\n if (azp && azp !== registration['client_id']) {\n throw new Error('Mismatching azp claim in id_token')\n }\n\n return response\n }\n\n\n /**\n * resolveKeys\n *\n * @param {Object} response\n * @returns {Promise}\n */\n static resolveKeys (response) {\n let rp = response.rp\n let provider = rp.provider\n let decoded = response.decoded\n\n return Promise.resolve(provider.jwks)\n\n .then(jwks => jwks ? jwks : rp.jwks())\n\n .then(jwks => {\n if (decoded.resolveKeys(jwks)) {\n return Promise.resolve(response)\n } else {\n throw new Error('Cannot resolve signing key for ID Token')\n }\n })\n }\n\n /**\n * verifySignature\n *\n * @param {Object} response\n * @returns {Promise}\n */\n static verifySignature (response) {\n let alg = response.decoded.header.alg\n let registration = response.rp.registration\n let expectedAlgorithm = registration['id_token_signed_response_alg'] || 'RS256'\n\n // validate signing algorithm matches expectation\n if (alg !== expectedAlgorithm) {\n throw new Error(\n `Expected ID Token to be signed with ${expectedAlgorithm}`)\n }\n\n return response.decoded.verify().then(verified => {\n if (!verified) {\n throw new Error('Invalid ID Token signature')\n }\n\n return response\n })\n }\n\n /**\n * validateExpires\n *\n * @param {Object} response\n * @returns {Promise}\n */\n static validateExpires (response) {\n let exp = response.decoded.payload.exp\n\n // validate expiration of token\n if (exp <= Math.floor(Date.now() / 1000)) {\n throw new Error('Expired ID Token')\n }\n\n return response\n }\n\n /**\n * verifyNonce\n *\n * @param {Object} response\n * @returns {Promise}\n */\n static verifyNonce (response) {\n let octets = new Uint8Array(response.request.nonce)\n let nonce = response.decoded.payload.nonce\n\n if (!nonce) {\n throw new Error('Missing nonce in ID Token')\n }\n\n return crypto.subtle.digest({ name: 'SHA-256' }, octets).then(digest => {\n if (nonce !== base64url(Buffer.from(digest))) {\n throw new Error('Mismatching nonce in ID Token')\n }\n\n return response\n })\n }\n\n /**\n * validateAcr\n *\n * @param {Object} response\n * @returns {Object}\n */\n static validateAcr (response) {\n // TODO\n return response\n }\n\n /**\n * validateAuthTime\n *\n * @param {Object} response\n * @returns {Promise}\n */\n static validateAuthTime (response) {\n // TODO\n return response\n }\n\n /**\n * validateAccessTokenHash\n *\n * @param {Object} response\n * @returns {Promise}\n */\n static validateAccessTokenHash (response) {\n // TODO\n return response\n }\n\n /**\n * validateAuthorizationCodeHash\n *\n * @param {Object} response\n * @returns {Promise}\n */\n static validateAuthorizationCodeHash (response) {\n // TODO\n return response\n }\n}\n\n/**\n * Export\n */\nmodule.exports = AuthenticationResponse\n","/**\n * Local dependencies\n */\nconst {JWT} = require('@solid/jose')\nconst IDTokenSchema = require('./IDTokenSchema')\n\n/**\n * IDToken\n */\nclass IDToken extends JWT {\n\n /**\n * Schema\n */\n static get schema () {\n return IDTokenSchema\n }\n}\n\n/**\n * Export\n */\nmodule.exports = IDToken\n","/**\n * Local dependencies\n */\nconst {JWTSchema} = require('@solid/jose')\n\n/**\n * IDToken Schema\n */\nconst IDTokenSchema = JWTSchema.extend({\n properties: {\n\n /**\n * header\n * http://openid.net/specs/openid-connect-core-1_0.html#IDToken\n * ID Tokens SHOULD NOT use the JWS or JWE x5u, x5c, jku, or jwk Header\n * Parameter fields. Instead, references to keys used are communicated in\n * advance using Discovery and Registration parameters, per Section 10.\n */\n header: {\n //not: { required: ['x5u', 'x5c', 'jku', 'jwk'] }\n },\n\n /**\n * payload\n */\n payload: {\n properties: {\n\n /**\n * iss\n *\n * REQUIRED. Issuer Identifier for the Issuer of the response.\n * The iss value is a case sensitive URL using the https scheme\n * that contains scheme, host, and optionally, port number and\n * path components and no query or fragment components.\n */\n iss: { type: 'string', format: 'url' },\n\n /**\n * sub\n *\n * REQUIRED. Subject Identifier. A locally unique and never\n * reassigned identifier within the Issuer for the End-User, which\n * is intended to be consumed by the Client, e.g., 24400320 or\n * AItOawmwtWwcT0k51BayewNvutrJUqsvl6qs7A4. It MUST NOT exceed 255\n * ASCII characters in length. The sub value is a case sensitive\n * string.\n */\n sub: { type: 'string', maxLength: 255 },\n\n /**\n * aud\n *\n * REQUIRED. Audience(s) that this ID Token is intended for. It\n * MUST contain the OAuth 2.0 client_id of the Relying Party as an\n * audience value. It MAY also contain identifiers for other audiences.\n * In the general case, the aud value is an array of case sensitive\n * strings. In the common special case when there is one audience,\n * the aud value MAY be a single case sensitive string.\n */\n // inherited from JWTClaimsSetSchema\n\n /**\n * exp\n *\n * REQUIRED. Expiration time on or after which the ID Token MUST NOT\n * be accepted for processing. The processing of this parameter\n * requires that the current date/time MUST be before the expiration\n * date/time listed in the value. Implementers MAY provide for some\n * small leeway, usually no more than a few minutes, to account for\n * clock skew. Its value is a JSON number representing the number of\n * seconds from 1970-01-01T0:0:0Z as measured in UTC until the\n * date/time. See RFC 3339 [RFC3339] for details regarding date/times\n * in general and UTC in particular.\n */\n // inherited from JWTClaimsSetSchema\n\n /**\n * iat\n *\n * REQUIRED. Time at which the JWT was issued. Its value is a\n * JSON number representing the number of seconds from\n * 1970-01-01T0:0:0Z as measured in UTC until the date/time.\n */\n // inherited from JWTClaimsSetSchema\n\n /**\n * auth_time\n *\n * Time when the End-User authentication occurred. Its value is a\n * JSON number representing the number of seconds from\n * 1970-01-01T0:0:0Z as measured in UTC until the date/time. When a\n * max_age request is made or when auth_time is requested as an\n * Essential Claim, then this Claim is REQUIRED; otherwise, its\n * inclusion is OPTIONAL. (The auth_time Claim semantically\n * corresponds to the OpenID 2.0 PAPE [OpenID.PAPE] auth_time\n * response parameter.)\n */\n auth_time: { type: 'integer', format: 'NumericDate' },\n\n /**\n * nonce\n *\n * String value used to associate a Client session with an ID Token,\n * and to mitigate replay attacks. The value is passed through\n * unmodified from the Authentication Request to the ID Token. If\n * present in the ID Token, Clients MUST verify that the nonce Claim\n * Value is equal to the value of the nonce parameter sent in the\n * Authentication Request. If present in the Authentication Request,\n * Authorization Servers MUST include a nonce Claim in the ID Token\n * with the Claim Value being the nonce value sent in the\n * Authentication Request. Authorization Servers SHOULD perform no\n * other processing on nonce values used. The nonce value is a case\n * sensitive string.\n */\n nonce: { type: 'string' },\n\n /**\n * acr\n *\n * OPTIONAL. Authentication Context Class Reference. String\n * specifying an Authentication Context Class Reference value that\n * identifies the Authentication Context Class that the authentication\n * performed satisfied. The value \"0\" indicates the End-User\n * authentication did not meet the requirements of ISO/IEC 29115\n * [ISO29115] level 1. Authentication using a long-lived browser\n * cookie, for instance, is one example where the use of \"level 0\" is\n * appropriate. Authentications with level 0 SHOULD NOT be used to\n * authorize access to any resource of any monetary value. (This\n * corresponds to the OpenID 2.0 PAPE [OpenID.PAPE] nist_auth_level\n * 0.) An absolute URI or an RFC 6711 [RFC6711] registered name\n * SHOULD be used as the acr value; registered names MUST NOT be used\n * with a different meaning than that which is registered. Parties\n * using this claim will need to agree upon the meanings of the\n * values used, which may be context-specific. The acr value is a\n * case sensitive string.\n */\n acr: { type: 'string' },\n\n /**\n * amr\n * OPTIONAL. Authentication Methods References. JSON array of strings\n * that are identifiers for authentication methods used in the\n * authentication. For instance, values might indicate that both\n * password and OTP authentication methods were used. The definition\n * of particular values to be used in the amr Claim is beyond the\n * scope of this specification. Parties using this claim will need to\n * agree upon the meanings of the values used, which may be context-\n * specific. The amr value is an array of case sensitive strings.\n */\n amr: { type: 'array', items: { type: 'string' } },\n\n /**\n * azp\n * OPTIONAL. Authorized party - the party to which the ID Token was\n * issued. If present, it MUST contain the OAuth 2.0 Client ID of this\n * party. This Claim is only needed when the ID Token has a single\n * audience value and that audience is different than the authorized\n * party. It MAY be included even when the authorized party is the\n * same as the sole audience. The azp value is a case sensitive string\n * containing a StringOrURI value.\n */\n azp: { type: 'string', format: 'StringOrURI' }\n },\n\n /**\n * Required Claims\n */\n required: ['iss', 'sub', 'aud', 'exp', 'iat']\n }\n }\n})\n\n/**\n * Export\n */\nmodule.exports = IDTokenSchema\n","'use strict'\n\nconst fetch = require('node-fetch')\nconst onHttpError = require('./onHttpError')\nconst PoPToken = require('./PoPToken')\n\nclass Session {\n /**\n * @param options {Object}\n *\n * @param options.credentialType {string} 'access_token' or 'pop_token'\n *\n * @param options.issuer {string} Identity provider (issuer of ID/Access Token)\n *\n * @param options.authorization {object}\n * @param options.authorization.client_id {string} OIDC/OAuth2 client id\n * @param [options.authorization.id_token] {string} Compact-serialized id_token param\n * @param [options.authorization.access_token] {string} Compact-serialized access_token param\n * @param [options.authorization.refresh_token] {string} Compact-serialized refresh_token\n *\n * @param [options.sessionKey] {string} Serialized client session key generated\n * during the Authentication Request, used to issue PoPTokens\n *\n * @param [options.idClaims] {object} Decoded/verified ID Token JWT payload\n *\n * @param [options.accessClaims] {object} Decoded/verified Access Token JWT payload\n */\n constructor (options) {\n this.credentialType = options.credentialType || 'access_token'\n\n this.issuer = options.issuer\n\n this.authorization = options.authorization || {}\n\n this.sessionKey = options.sessionKey\n\n this.idClaims = options.idClaims\n this.accessClaims = options.accessClaims\n }\n\n static from (options) {\n return new Session(options)\n }\n\n /**\n * @param response {AuthenticationResponse}\n *\n * @returns {Session} RelyingParty Session object\n */\n static fromAuthResponse (response) {\n const RelyingParty = require('./RelyingParty') // import here due to circular dep\n\n let idClaims = response.decoded && response.decoded.payload || {}\n\n let { rp } = response\n\n let registration = rp.registration\n let rpAuthOptions = rp.defaults.authenticate || {}\n\n let credentialType = rpAuthOptions['credential_type'] ||\n rp.defaults.popToken ? 'pop_token' : 'access_token'\n\n let sessionKey = response.session[RelyingParty.SESSION_PRIVATE_KEY]\n\n let options = {\n credentialType,\n sessionKey,\n issuer: idClaims.iss,\n idClaims,\n authorization: {\n client_id: registration['client_id'],\n access_token: response.params['access_token'],\n id_token: response.params['id_token'],\n refresh_token: response.params['refresh_token']\n }\n }\n\n return Session.from(options)\n }\n\n /**\n * Authenticated fetch() getter\n *\n * @returns {function}\n */\n get fetch () {\n /**\n * fetch() function signature\n *\n * @param url {RequestInfo|string}\n * @param options {object}\n *\n * @returns {Function>}\n */\n return (url, options) => {\n return Promise.resolve()\n\n .then(() => {\n if (this.hasCredentials()) {\n return this.fetchWithCredentials(url, options)\n } else {\n return fetch(url, options)\n }\n })\n\n .then(onHttpError('Error while fetching resource'))\n }\n }\n\n /**\n * bearerTokenFor\n *\n * @param url {string}\n *\n * @returns {Promise}\n */\n bearerTokenFor (url) {\n switch (this.credentialType) {\n case 'pop_token':\n return PoPToken.issueFor(url, this)\n\n default: // 'access_token' etc\n return Promise.resolve(this.authorization[this.credentialType])\n }\n }\n\n /**\n * hasCredentials\n *\n * @returns {boolean}\n */\n hasCredentials () {\n switch (this.credentialType) {\n case 'pop_token':\n return !!this.authorization['id_token']\n\n default: // 'access_token' etc\n return !!this.authorization[this.credentialType]\n }\n }\n\n /**\n * fetchWithCredentials\n *\n * @param url {RequestInfo|string}\n * @param options {object}\n *\n * @returns {Promise}\n */\n fetchWithCredentials (url, options = {}) {\n options.headers = options.headers || {}\n\n return this.bearerTokenFor(url)\n\n .then(token => {\n options.headers.authorization = `Bearer ${token}`\n\n return fetch(url, options)\n })\n }\n}\n\nmodule.exports = Session\n","'use strict'\n\nconst { URL } = require('whatwg-url')\nconst {JWT, JWK} = require('@solid/jose')\n\nconst DEFAULT_MAX_AGE = 3600 // Default token expiration, in seconds\n\nclass PoPToken extends JWT {\n /**\n * @param resourceServerUri {string} RS URI for which this token is intended\n *\n * @param session {Session}\n * @param session.sessionKey {string}\n * @param session.authorization.client_id {string}\n * @param session.authorization.id_token {string}\n *\n * @returns {Promise} PoPToken, encoded as compact JWT\n */\n static issueFor (resourceServerUri, session) {\n if (!resourceServerUri) {\n throw new Error('Cannot issue PoPToken - missing resource server URI')\n }\n\n if (!session.sessionKey) {\n throw new Error('Cannot issue PoPToken - missing session key')\n }\n\n if (!session.authorization.id_token) {\n throw new Error('Cannot issue PoPToken - missing id token')\n }\n\n let jwk = JSON.parse(session.sessionKey)\n\n return JWK.importKey(jwk)\n .then(importedSessionJwk => {\n let options = {\n aud: (new URL(resourceServerUri)).origin,\n key: importedSessionJwk,\n iss: session.authorization.client_id,\n id_token: session.authorization.id_token\n }\n\n return PoPToken.issue(options)\n })\n .then(jwt => {\n return jwt.encode()\n })\n }\n\n /**\n * issue\n *\n * @param options {Object}\n * @param options.iss {string} Token issuer (RP client_id)\n * @param options.aud {string|Array} Audience for the token\n * (such as the Resource Server url)\n * @param options.key {JWK} Proof of Possession (private) signing key, see\n * https://tools.ietf.org/html/rfc7800#section-3.1\n *\n * @param options.id_token {string} JWT compact encoded ID Token\n *\n * Optional:\n * @param [options.iat] {number} Issued at timestamp (in seconds)\n * @param [options.max] {number} Max token lifetime in seconds\n *\n * @returns {PoPToken} Proof of Possession Token (JWT instance)\n */\n static issue (options) {\n let { aud, iss, key } = options\n\n let alg = key.alg\n let iat = options.iat || Math.floor(Date.now() / 1000)\n let max = options.max || DEFAULT_MAX_AGE\n\n let exp = iat + max // token expiration\n\n let header = { alg }\n let payload = { iss, aud, exp, iat, id_token: options.id_token, token_type: 'pop' }\n\n let jwt = new PoPToken({ header, payload, key: key.cryptoKey }, { filter: false })\n\n return jwt\n }\n}\n\nmodule.exports = PoPToken\n","exports = module.exports = HttpError\nvar StandardError = require(\"standard-error\")\nvar STATUS_CODE_TO_NAME = require(\"./codes\")\nvar STATUS_NAME_TO_CODE = exports\n\nfunction HttpError(code, msg, props) {\n if (typeof code == \"string\") code = STATUS_NAME_TO_CODE[code]\n if (typeof code != \"number\") throw new TypeError(\"Non-numeric HTTP code\")\n if (typeof msg == \"object\" && msg != null) { props = msg; msg = null }\n StandardError.call(this, msg || STATUS_CODE_TO_NAME[code], props)\n this.code = code\n}\n\nHttpError.prototype = Object.create(StandardError.prototype, {\n constructor: {value: HttpError, configurable: true, writable: true}\n})\n\n// Set name explicitly for when the code gets minified.\nHttpError.prototype.name = \"HttpError\"\n\nObject.defineProperties(HttpError.prototype, {\n statusCode: alias(\"code\"),\n statusMessage: alias(\"message\"),\n\n status: {\n configurable: true,\n get: function() { return this.code },\n set: function(value) {\n Object.defineProperty(this, \"status\", {\n value: value, configurable: true, enumerable: true, writable: true\n })\n }\n }\n})\n\nHttpError.prototype.toString = function() {\n return this.name + \": \" + this.code + \" \" + this.message\n}\n\nfor (var code in STATUS_CODE_TO_NAME) {\n var name = STATUS_CODE_TO_NAME[code]\n exports[name.replace(\"'\", \"\").replace(/[- ]/g, \"_\").toUpperCase()] = +code\n}\n\nfunction alias(name) {\n return {\n configurable: true,\n get: function() { return this[name] },\n set: function(value) { return this[name] = value }\n }\n}\n","var has = Object.hasOwnProperty\nvar proto = Object.getPrototypeOf\nvar trace = Error.captureStackTrace\nmodule.exports = StandardError\n\nfunction StandardError(msg, props) {\n // Let all properties be enumerable for easier serialization.\n if (msg && typeof msg == \"object\") props = msg, msg = undefined\n else this.message = msg\n\n // Name has to be an own property (or on the prototype a single step up) for\n // the stack to be printed with the correct name.\n if (props) for (var key in props) this[key] = props[key]\n if (!has.call(this, \"name\"))\n this.name = has.call(proto(this), \"name\")? this.name : this.constructor.name\n\n if (trace && !(\"stack\" in this)) trace(this, this.constructor)\n}\n\nStandardError.prototype = Object.create(Error.prototype, {\n constructor: {value: StandardError, configurable: true, writable: true}\n})\n\n// Set name explicitly for when the code gets minified.\nStandardError.prototype.name = \"StandardError\"\n","/**\n * Dependencies\n */\nconst {JSONSchema} = require('@trust/json-document')\n\n/**\n * RelyingParty Schema\n *\n * This schema initializes and verifies Relying Party client configuration.\n * RelyingParty objects can be persisted and rehydrated. By encapsulating this data in\n * it's own class, it's possible to have multiple RP configurations running\n * simultaneously.\n */\nconst RelyingPartySchema = new JSONSchema({\n type: 'object',\n properties: {\n\n /**\n * provider\n *\n * Information about the provider, including issuer URL, human readable name,\n * and any configuration or provider metadata retrieved from the OP.\n */\n provider: {\n type: 'object',\n properties: {\n name: { type: 'string' },\n url: { type: 'string', format: 'uri' },\n // NOTE:\n // OpenID Configuration (discovery response) and JSON Web Keys Set for an\n // issuer can be cached here. However the cache should not be persisted or\n // relied upon.\n //\n configuration: {}, // .well-known/openid-configuration\n jwks: {} // /jwks\n },\n required: ['url']\n },\n\n /**\n * defaults\n *\n * Default request parameters for authentication and dynamic registration requests.\n * These values can be extended or overridden via arguments to the respective\n * request methods.\n *\n * These are part of the relying party client configuration and can be serialized\n * and persisted.\n */\n defaults: {\n type: 'object',\n properties: {\n\n /**\n * Use Proof of Possession token semantics for the ID Token\n */\n popToken: {\n type: 'boolean',\n default: false\n },\n\n /**\n * Default authentication request parameters\n */\n authenticate: {\n type: 'object',\n properties: {\n redirect_uri: {\n type: 'string',\n format: 'uri'\n },\n response_type: {\n type: 'string',\n default: 'id_token token', // browser detection\n enum: [\n 'code',\n 'token',\n 'id_token token',\n 'id_token token code'\n ]\n },\n display: {\n type: 'string',\n default: 'page',\n enum: [\n 'page',\n 'popup'\n ]\n },\n scope: {\n type: ['string', 'array'],\n default: ['openid']\n }\n }\n },\n\n /**\n * Default client registration parameters\n */\n register: {}\n }\n },\n\n /**\n * registration\n *\n * This is the client registration response from dynamic registration. It should\n * always reflect the client configuration on the openid provider. A client access\n * token is stored here\n */\n registration: {},// ClientMetadataSchema\n\n /**\n * store\n */\n store: {\n type: 'object',\n default: {}\n }\n }\n})\n\n/**\n * Export\n */\nmodule.exports = RelyingPartySchema\n","// @flow\n/* eslint-env browser */\n\nfunction getLocation() {\n return typeof window !== 'undefined'\n ? window.location\n : { href: 'https://example.org/', pathname: '/', origin: 'example.org' }\n}\n\nexport const currentUrl = (): string => getLocation().href\n\nexport const currentUrlNoParams = (): string =>\n getLocation().origin + getLocation().pathname\n\nexport const navigateTo = (url: string) => {\n getLocation().href = url\n}\n\nexport const originOf = (url: string): string => new URL(url).origin\n\nexport const toUrlString = (url: any): string => {\n if (typeof url !== 'string') {\n url = 'url' in url ? url.url : url.toString()\n }\n return new URL(url, currentUrl()).toString()\n}\n","// @flow\n\n/*\n This module describes a simple IPC interface for communicating between browser windows.\n window.postMessage() is the transport interface, and a request/response interface\n is defined on top of it as follows:\n\n const request = {\n 'solid-auth-client': {\n id: 1234,\n method: 'doSomethingPlease',\n args: [ 'one', 'two', 'three' ]\n }\n }\n\n const response = {\n 'solid-auth-client': {\n id: 1234,\n ret: 'the_value'\n }\n }\n*/\n\ntype handler = (string, ...args: any[]) => ?Promise\n\nconst NAMESPACE = 'solid-auth-client'\n\n/**\n * Receives and handles remote procedure calls.\n */\nexport class Server {\n _clientWindow: window\n _clientOrigin: string\n _handler: handler\n _messageListener: MessageEvent => Promise\n\n constructor(clientWindow: window, clientOrigin: string, handle: handler) {\n this._clientWindow = clientWindow\n this._clientOrigin = clientOrigin\n this._handler = handle\n this._messageListener = event => this._handleMessage(event)\n }\n\n async _handleMessage({ data, origin }: MessageEvent) {\n // Ensure we can post to the origin\n if (origin !== this._clientOrigin) {\n console.warn(\n `solid-auth-client is listening to ${this._clientOrigin} ` +\n `so ignored a message received from ${origin}.`\n )\n return\n }\n\n // Parse the request and send it to the handler\n const req = data && (data: any)[NAMESPACE]\n if (req && req.method) {\n const { id, method, args } = (req: any)\n const ret = await this._handler(method, ...args)\n this._clientWindow.postMessage(\n { [NAMESPACE]: { id, ret } },\n this._clientOrigin\n )\n }\n }\n\n start() {\n window.addEventListener('message', this._messageListener)\n }\n\n stop() {\n window.removeEventListener('message', this._messageListener)\n }\n}\n\n/**\n * Makes remote procedure calls.\n */\nexport class Client {\n _serverWindow: window\n _serverOrigin: string\n\n constructor(serverWindow: window, serverOrigin: string) {\n this._serverWindow = serverWindow\n this._serverOrigin = serverOrigin\n }\n\n request(method: string, ...args: any[]): Promise {\n // Send the request as a message to the server window\n const id = Math.random()\n this._serverWindow.postMessage(\n { [NAMESPACE]: { id, method, args } },\n this._serverOrigin\n )\n\n // Create a promise that resolves to the request's return value\n return new Promise((resolve, reject) => {\n // Listen for responses to the request\n window.addEventListener('message', responseListener)\n\n // Cancel if the response takes too long\n const timeout = setTimeout(() => {\n reject(new Error('Could not connect to main window.'))\n window.removeEventListener('message', responseListener)\n }, 2000)\n\n // Processes a possible response to the request\n function responseListener({ data }) {\n const resp = data && data[NAMESPACE]\n if (resp && resp.id === id && resp.hasOwnProperty('ret')) {\n resolve(resp.ret)\n clearTimeout(timeout)\n window.removeEventListener('message', responseListener)\n }\n }\n })\n }\n}\n","// @flow\nimport { Client } from './ipc'\n\nexport const NAMESPACE = 'solid-auth-client'\n\nexport interface AsyncStorage {\n getItem(key: string): Promise;\n setItem(key: string, val: string): Promise;\n removeItem(key: string): Promise;\n}\n\nexport type Storage = Storage | AsyncStorage\n\nexport const defaultStorage = () => {\n const hasLocalStorage =\n typeof window !== 'undefined' && 'localStorage' in window\n return asyncStorage(hasLocalStorage ? window.localStorage : memStorage())\n}\n\n/**\n * Gets the deserialized stored data\n */\nexport async function getData(store: Storage): Promise {\n let serialized\n let data\n try {\n serialized = await store.getItem(NAMESPACE)\n data = JSON.parse(serialized || '{}')\n } catch (e) {\n console.warn('Could not deserialize data:', serialized)\n console.error(e)\n data = {}\n }\n return data\n}\n\n/**\n * Updates a Storage object without mutating its intermediate representation.\n */\nexport async function updateStorage(\n store: Storage,\n update: Object => Object\n): Promise {\n const currentData = await getData(store)\n const newData = update(currentData)\n await store.setItem(NAMESPACE, JSON.stringify(newData))\n return newData\n}\n\n/**\n * Takes a synchronous storage interface and wraps it with an async interface.\n */\nexport function asyncStorage(storage: Storage): AsyncStorage {\n return {\n getItem: (key: string): Promise => {\n return Promise.resolve(storage.getItem(key))\n },\n\n setItem: (key: string, val: string): Promise => {\n return Promise.resolve(storage.setItem(key, val))\n },\n\n removeItem: (key: string): Promise => {\n return Promise.resolve(storage.removeItem(key))\n }\n }\n}\n\nexport const memStorage = (): Storage => {\n const store = {}\n return {\n getItem: (key: string): ?string => {\n if (typeof store[key] === 'undefined') return null\n return store[key]\n },\n setItem: (key: string, val: string): void => {\n store[key] = val\n },\n removeItem: (key: string): void => {\n delete store[key]\n }\n }\n}\n\nexport function ipcStorage(client: Client): AsyncStorage {\n return {\n getItem: (key: string): Promise =>\n client.request('storage/getItem', key),\n\n setItem: (key: string, val: string): Promise =>\n client.request('storage/setItem', key, val),\n\n removeItem: (key: string): Promise =>\n client.request('storage/removeItem', key)\n }\n}\n","// @flow\n\nimport type { AsyncStorage } from './storage'\nimport { getData, updateStorage } from './storage'\n\nexport type webIdOidcSession = {\n idp: string,\n webId: string,\n accessToken: string,\n idToken: string,\n clientId: string,\n sessionKey: string\n}\n\nexport type Session = webIdOidcSession\n\nexport async function getSession(storage: AsyncStorage): Promise {\n const data = await getData(storage)\n return data.session || null\n}\n\nexport function saveSession(\n storage: AsyncStorage\n): (session: Session) => Promise {\n return async session => {\n const data = await updateStorage(storage, data => ({ ...data, session }))\n return data.session\n }\n}\n\nexport async function clearSession(storage: AsyncStorage): Promise {\n await updateStorage(storage, data => ({ ...data, session: null }))\n}\n","// @flow\n/* global Response */\nimport * as authorization from 'auth-header'\nimport RelyingParty from '@solid/oidc-rp'\nimport PoPToken from '@solid/oidc-rp/lib/PoPToken'\n\nimport type { loginOptions } from './solid-auth-client'\nimport { currentUrl, navigateTo, toUrlString } from './url-util'\nimport type { webIdOidcSession } from './session'\nimport type { AsyncStorage } from './storage'\nimport { defaultStorage, getData, updateStorage } from './storage'\n\nexport async function login(\n idp: string,\n options: loginOptions\n): Promise {\n try {\n const rp = await getRegisteredRp(idp, options)\n await saveAppHashFragment(options.storage)\n return sendAuthRequest(rp, options)\n } catch (err) {\n console.warn('Error logging in with WebID-OIDC')\n console.error(err)\n return null\n }\n}\n\nexport async function currentSession(\n storage: AsyncStorage = defaultStorage()\n): Promise {\n try {\n // Obtain the Relying Party\n const rp = await getStoredRp(storage)\n if (!rp) {\n return null\n }\n\n // Obtain and clear the OIDC URL fragment\n const url = currentUrl()\n if (!/#(.*&)?access_token=/.test(url)) {\n return null\n }\n window.location.hash = ''\n await restoreAppHashFragment(storage)\n\n // Obtain a session from the Relying Party\n const storeData = await getData(storage)\n const session = await rp.validateResponse(url, storeData)\n if (!session) {\n return null\n }\n return {\n ...session,\n webId: session.idClaims.sub,\n idp: session.issuer\n }\n } catch (err) {\n console.warn('Error finding a WebID-OIDC session')\n console.error(err)\n return null\n }\n}\n\nexport async function logout(\n storage: AsyncStorage,\n fetch: Function\n): Promise {\n const rp = await getStoredRp(storage)\n if (rp) {\n try {\n // First log out from the IDP\n await rp.logout()\n // Then, log out from the RP\n try {\n await fetch('/.well-known/solid/logout', { credentials: 'include' })\n } catch (e) {\n // Ignore errors for when we are not on a Solid pod\n }\n } catch (err) {\n console.warn('Error logging out of the WebID-OIDC session')\n console.error(err)\n }\n }\n}\n\nexport async function getRegisteredRp(\n idp: string,\n options: loginOptions\n): Promise {\n // To reuse a possible previous RP,\n // it be for the same IDP and redirect URI\n let rp = await getStoredRp(options.storage)\n if (\n !rp ||\n rp.provider.url !== idp ||\n !rp.registration.redirect_uris.includes(options.callbackUri)\n ) {\n // Register a new RP\n rp = await registerRp(idp, options)\n await storeRp(options.storage, idp, rp)\n }\n return rp\n}\n\nasync function getStoredRp(storage: AsyncStorage): Promise {\n const data = await getData(storage)\n const { rpConfig } = data\n if (rpConfig) {\n rpConfig.store = storage\n return RelyingParty.from(rpConfig)\n } else {\n return null\n }\n}\n\nasync function storeRp(\n storage: AsyncStorage,\n idp: string,\n rp: RelyingParty\n): Promise {\n await updateStorage(storage, data => ({\n ...data,\n rpConfig: rp\n }))\n return rp\n}\n\nfunction registerRp(idp: string, opts: loginOptions): Promise {\n const { storage, callbackUri } = opts\n const responseType = 'id_token token'\n\n const clientNameI18n = {}\n Object.entries(opts)\n .filter(([key, _]) => key.startsWith('clientName#'))\n .forEach(\n ([key, value]) =>\n (clientNameI18n[key.replace('clientName#', 'client_name#')] = value)\n )\n\n const supplementaryOptions = {\n logo_uri: opts.logoUri,\n contacts: opts.contacts,\n client_name: opts.clientName\n }\n\n const registration = {\n issuer: idp,\n grant_types: ['implicit'],\n redirect_uris: [callbackUri],\n response_types: [responseType],\n scope: 'openid profile',\n ...clientNameI18n,\n ...supplementaryOptions\n }\n\n const options = {\n defaults: {\n authenticate: {\n redirect_uri: callbackUri,\n response_type: responseType\n }\n },\n store: storage\n }\n\n return RelyingParty.register(idp, registration, options)\n}\n\nasync function sendAuthRequest(\n rp: RelyingParty,\n { callbackUri, storage }: loginOptions\n): Promise {\n const data = await getData(storage)\n const url = await rp.createRequest({ redirect_uri: callbackUri }, data)\n await updateStorage(storage, () => data)\n return navigateTo(url)\n}\n\nasync function saveAppHashFragment(store: AsyncStorage): Promise {\n await updateStorage(store, data => ({\n ...data,\n appHashFragment: window.location.hash\n }))\n}\n\nasync function restoreAppHashFragment(store: AsyncStorage): Promise {\n await updateStorage(store, ({ appHashFragment = '', ...data }) => {\n window.location.hash = appHashFragment\n return data\n })\n}\n\n/**\n * Answers whether a HTTP response requires WebID-OIDC authentication.\n */\nexport function requiresAuth(resp: Response): boolean {\n if (resp.status !== 401) {\n return false\n }\n const wwwAuthHeader = resp.headers.get('www-authenticate')\n if (!wwwAuthHeader) {\n return false\n }\n const auth = authorization.parse(wwwAuthHeader)\n return (\n auth.scheme === 'Bearer' &&\n auth.params &&\n auth.params.scope === 'openid webid'\n )\n}\n\n/**\n * Fetches a resource, providing the WebID-OIDC ID Token as authentication.\n * Assumes that the resource has requested those tokens in a previous response.\n */\nexport async function fetchWithCredentials(\n session: webIdOidcSession,\n fetch: Function,\n input: any,\n options?: RequestOptions\n): Promise {\n // Create a copy of the headers\n const headers = {}\n const origHeaders = options ? options.headers : input.headers\n if (origHeaders) {\n const entries =\n typeof origHeaders.entries === 'function'\n ? origHeaders.entries()\n : Object.entries(origHeaders)\n for (const [name, value] of entries) {\n headers[name] = value\n }\n }\n\n // Add Authorization header\n const popToken = await PoPToken.issueFor(toUrlString(input), session)\n headers.authorization = `Bearer ${popToken}`\n return fetch(input, { ...options, credentials: 'include', headers })\n}\n","// @flow\n/* globalRequest, Response, URL */\nimport { getSession } from './session'\nimport type { AsyncStorage } from './storage'\nimport { getData, updateStorage } from './storage'\nimport * as WebIdOidc from './webid-oidc'\n\nexport type host = {\n url: string,\n requiresAuth: boolean\n}\n\nexport function getHost(storage: AsyncStorage): string => Promise {\n return async url => {\n const { host } = new URL(url)\n const session = await getSession(storage)\n if (session && host === new URL(session.idp).host) {\n return { url: host, requiresAuth: true }\n }\n const { hosts } = await getData(storage)\n return hosts && hosts[host]\n }\n}\n\nexport function saveHost(storage: AsyncStorage): host => Promise {\n return async ({ url, requiresAuth }) => {\n await updateStorage(storage, data => ({\n ...data,\n hosts: {\n ...data.hosts,\n [url]: { requiresAuth }\n }\n }))\n }\n}\n\nexport function updateHostFromResponse(\n storage: AsyncStorage\n): Response => Promise {\n return async resp => {\n if (WebIdOidc.requiresAuth(resp)) {\n const { host } = new URL(resp.url)\n await saveHost(storage)({ url: host, requiresAuth: true })\n }\n }\n}\n","// @flow\nimport 'isomorphic-fetch'\n\nimport { toUrlString } from './url-util'\nimport { getHost, updateHostFromResponse } from './host'\nimport { getSession } from './session'\nimport type { AsyncStorage } from './storage'\nimport { fetchWithCredentials } from './webid-oidc'\n\nexport async function authnFetch(\n storage: AsyncStorage,\n fetch: Function,\n input: RequestInfo,\n options?: RequestOptions\n): Promise {\n // If not authenticated, perform a regular fetch\n const session = await getSession(storage)\n if (!session) {\n return fetch(input, options)\n }\n\n // If we know the server expects credentials, send them\n if (await shouldShareCredentials(storage, input)) {\n return fetchWithCredentials(session, fetch, input, options)\n }\n\n // If we don't know for sure, try a regular fetch first\n let resp = await fetch(input, options)\n\n // If the server then requests credentials, send them\n if (resp.status === 401) {\n await updateHostFromResponse(storage)(resp)\n if (await shouldShareCredentials(storage, input)) {\n resp = fetchWithCredentials(session, fetch, input, options)\n }\n }\n return resp\n}\n\nasync function shouldShareCredentials(\n storage: AsyncStorage,\n input: RequestInfo\n): Promise {\n const requestHost = await getHost(storage)(toUrlString(input))\n return requestHost != null && requestHost.requiresAuth\n}\n","// @flow\nimport type { loginOptions } from './solid-auth-client'\nimport { Server } from './ipc'\nimport type { Session } from './session'\nimport type { AsyncStorage } from './storage'\nimport { originOf } from './url-util'\n\nexport function openIdpPopup(popupUri: string): window {\n const width = 650\n const height = 400\n const left = window.screenX + (window.innerWidth - width) / 2\n const top = window.screenY + (window.innerHeight - height) / 2\n const settings = `width=${width},height=${height},left=${left},top=${top}`\n return window.open(popupUri, 'solid-auth-client', settings)\n}\n\nexport function obtainSession(\n store: AsyncStorage,\n popup: window,\n options: loginOptions\n): Promise {\n return new Promise((resolve, reject) => {\n const popupServer = new Server(\n popup,\n originOf(options.popupUri || ''),\n popupHandler(store, options, (session: Session) => {\n popupServer.stop()\n resolve(session)\n })\n )\n popupServer.start()\n })\n}\n\nexport function popupHandler(\n store: AsyncStorage,\n { popupUri, callbackUri }: loginOptions,\n foundSessionCb: Session => void\n) {\n return async (method: string, ...args: any[]) => {\n switch (method) {\n // Origin\n case 'getAppOrigin':\n return window.location.origin\n\n // Storage\n case 'storage/getItem':\n return store.getItem(...args)\n case 'storage/setItem':\n return store.setItem(...args)\n case 'storage/removeItem':\n return store.removeItem(...args)\n\n // Login\n case 'getLoginOptions':\n return { popupUri, callbackUri }\n case 'foundSession':\n foundSessionCb(...args)\n }\n }\n}\n","// @flow\n/* global fetch */\nimport EventEmitter from 'events'\nimport { authnFetch } from './authn-fetch'\nimport { openIdpPopup, obtainSession } from './popup'\nimport type { Session } from './session'\nimport { getSession, saveSession, clearSession } from './session'\nimport type { AsyncStorage } from './storage'\nimport { defaultStorage } from './storage'\nimport { toUrlString, currentUrlNoParams } from './url-util'\nimport * as WebIdOidc from './webid-oidc'\n\n// Store the global fetch, so the user is free to override it\nconst globalFetch = fetch\n\nexport type loginOptions = {\n callbackUri: string,\n clientName?: string,\n contacts?: Array,\n logoUri?: string,\n popupUri: string,\n storage: AsyncStorage\n}\n\nexport default class SolidAuthClient extends EventEmitter {\n _pendingSession: ?Promise\n\n fetch(input: RequestInfo, options?: RequestOptions): Promise {\n this.emit('request', toUrlString(input))\n return authnFetch(defaultStorage(), globalFetch, input, options)\n }\n\n login(idp: string, options: loginOptions): Promise {\n options = { ...defaultLoginOptions(currentUrlNoParams()), ...options }\n return WebIdOidc.login(idp, options)\n }\n\n async popupLogin(options: loginOptions): Promise {\n options = { ...defaultLoginOptions(), ...options }\n if (!/https?:/.test(options.popupUri)) {\n options.popupUri = new URL(\n options.popupUri || '/.well-known/solid/login',\n window.location\n ).toString()\n }\n if (!options.callbackUri) {\n options.callbackUri = options.popupUri\n }\n const popup = openIdpPopup(options.popupUri)\n const session = await obtainSession(options.storage, popup, options)\n this.emit('login', session)\n this.emit('session', session)\n return session\n }\n\n async currentSession(\n storage: AsyncStorage = defaultStorage()\n ): Promise {\n // Try to obtain a stored or pending session\n let session = this._pendingSession || (await getSession(storage))\n\n // If none found, attempt to create a new session\n if (!session) {\n // Try to create a new OIDC session from stored tokens\n try {\n this._pendingSession = WebIdOidc.currentSession(storage)\n session = await this._pendingSession\n } catch (err) {\n console.error(err)\n }\n\n // Save the new session and emit session events\n if (session) {\n await saveSession(storage)(session)\n this.emit('login', session)\n this.emit('session', session)\n }\n delete this._pendingSession\n }\n return session\n }\n\n async trackSession(callback: Function): Promise {\n /* eslint-disable standard/no-callback-literal */\n callback(await this.currentSession())\n this.on('session', callback)\n }\n\n stopTrackSession(callback: Function): void {\n this.removeListener('session', callback)\n }\n\n async logout(storage: AsyncStorage = defaultStorage()): Promise {\n const session = await getSession(storage)\n if (session) {\n try {\n await WebIdOidc.logout(storage, globalFetch)\n this.emit('logout')\n this.emit('session', null)\n } catch (err) {\n console.warn('Error logging out:')\n console.error(err)\n }\n await clearSession(storage)\n }\n }\n}\n\nfunction defaultLoginOptions(url: ?string): loginOptions {\n return {\n callbackUri: url ? url.split('#')[0] : '',\n popupUri: '',\n storage: defaultStorage()\n }\n}\n","import SolidAuthClient from './solid-auth-client'\n\n// Export a singleton instance of SolidAuthClient\nconst auth = new SolidAuthClient()\nexport default auth\n\n// Bind methods to instance, so they can be invoked as regular functions\n// (e.g., to pass around the fetch function)\nObject.getOwnPropertyNames(SolidAuthClient.prototype).forEach(property => {\n const value = auth[property]\n if (typeof value === 'function') {\n auth[property] = value.bind(auth)\n }\n})\n\n// Expose window.SolidAuthClient for backward compatibility\nif (typeof window !== 'undefined') {\n if ('SolidAuthClient' in window) {\n console.warn('Caution: multiple versions of solid-auth-client active.')\n } else {\n let warned = false\n Object.defineProperty(window, 'SolidAuthClient', {\n enumerable: true,\n get: () => {\n if (!warned) {\n warned = true\n console.warn('window.SolidAuthClient has been deprecated.')\n console.warn('Please use window.solid.auth instead.')\n }\n return auth\n }\n })\n }\n}\n"],"sourceRoot":""} \ No newline at end of file +{"version":3,"sources":["webpack://solid.auth/webpack/universalModuleDefinition","webpack://solid.auth/webpack/bootstrap","webpack://solid.auth/./node_modules/@babel/runtime/helpers/defineProperty.js","webpack://solid.auth/./node_modules/buffer/index.js","webpack://solid.auth/./node_modules/base64url/index.js","webpack://solid.auth/(webpack)/buildin/global.js","webpack://solid.auth/./node_modules/@solid/jose/src/index.js","webpack://solid.auth/external \"fetch\"","webpack://solid.auth/external \"window\"","webpack://solid.auth/./node_modules/assert/assert.js","webpack://solid.auth/./node_modules/@solid/jose/src/jose/JWA.js","webpack://solid.auth/./node_modules/@solid/oidc-rp/src/FormUrlEncoded.js","webpack://solid.auth/./node_modules/@solid/oidc-rp/src/onHttpError.js","webpack://solid.auth/./node_modules/@solid/oidc-rp/src/PoPToken.js","webpack://solid.auth/./node_modules/@solid/oidc-rp/src/index.js","webpack://solid.auth/./node_modules/auth-header/dist/util.js","webpack://solid.auth/./node_modules/@solid/oidc-rp/src/RelyingParty.js","webpack://solid.auth/./node_modules/@solid/jose/src/crypto.js","webpack://solid.auth/./node_modules/@solid/jose/src/text-encoder/index.js","webpack://solid.auth/./node_modules/@solid/jose/src/errors/NotSupportedError.js","webpack://solid.auth/./node_modules/@solid/jose/src/errors/index.js","webpack://solid.auth/./node_modules/@solid/jose/src/errors/DataError.js","webpack://solid.auth/./node_modules/@solid/jose/src/jose/JWK.js","webpack://solid.auth/./node_modules/@solid/jose/src/jose/JWS.js","webpack://solid.auth/./node_modules/@solid/jose/src/jose/JOSEHeader.js","webpack://solid.auth/./node_modules/isomorphic-webcrypto/src/webcrypto-shim.mjs","webpack://solid.auth/./node_modules/isomorphic-webcrypto/src/browser.mjs","webpack://solid.auth/./node_modules/events/events.js","webpack://solid.auth/./node_modules/@babel/runtime/helpers/objectWithoutProperties.js","webpack://solid.auth/./node_modules/auth-header/dist/index.js","webpack://solid.auth/./node_modules/@babel/runtime/helpers/objectWithoutPropertiesLoose.js","webpack://solid.auth/./node_modules/auth-header/dist/format.js","webpack://solid.auth/./node_modules/auth-header/dist/parse.js","webpack://solid.auth/./node_modules/object-assign/index.js","webpack://solid.auth/./node_modules/util/util.js","webpack://solid.auth/./node_modules/process/browser.js","webpack://solid.auth/./node_modules/util/support/isBufferBrowser.js","webpack://solid.auth/./node_modules/util/node_modules/inherits/inherits_browser.js","webpack://solid.auth/./node_modules/@solid/jose/src/algorithms/index.js","webpack://solid.auth/./node_modules/@solid/jose/src/algorithms/NONE.js","webpack://solid.auth/./node_modules/@solid/jose/src/algorithms/HMAC.js","webpack://solid.auth/./node_modules/base64-js/index.js","webpack://solid.auth/./node_modules/ieee754/index.js","webpack://solid.auth/./node_modules/isarray/index.js","webpack://solid.auth/./node_modules/base64url/dist/base64url.js","webpack://solid.auth/./node_modules/base64url/dist/pad-string.js","webpack://solid.auth/./node_modules/@sinonjs/text-encoding/index.js","webpack://solid.auth/./node_modules/@sinonjs/text-encoding/lib/encoding.js","webpack://solid.auth/./node_modules/@sinonjs/text-encoding/lib/encoding-indexes.js","webpack://solid.auth/./node_modules/@solid/jose/src/algorithms/RSASSA-PKCS1-v1_5.js","webpack://solid.auth/./node_modules/@solid/jose/src/algorithms/SupportedAlgorithms.js","webpack://solid.auth/./node_modules/@solid/jose/src/jose/JWKSet.js","webpack://solid.auth/./node_modules/@solid/jose/src/jose/JWT.js","webpack://solid.auth/./node_modules/@solid/oidc-rp/src/AuthenticationRequest.js","webpack://solid.auth/./node_modules/@solid/oidc-rp/src/AuthenticationResponse.js","webpack://solid.auth/./node_modules/@solid/oidc-rp/src/IDToken.js","webpack://solid.auth/./node_modules/@solid/oidc-rp/src/Session.js","webpack://solid.auth/./node_modules/standard-http-error/index.js","webpack://solid.auth/./node_modules/standard-error/index.js","webpack://solid.auth/./src/url-util.js","webpack://solid.auth/./src/ipc.js","webpack://solid.auth/./src/storage.js","webpack://solid.auth/./src/session.js","webpack://solid.auth/./src/webid-oidc.js","webpack://solid.auth/./src/host.js","webpack://solid.auth/./src/authn-fetch.js","webpack://solid.auth/./src/popup.js","webpack://solid.auth/./src/solid-auth-client.js","webpack://solid.auth/./src/index.js"],"names":["root","factory","exports","module","require","define","amd","window","__WEBPACK_EXTERNAL_MODULE__5__","__WEBPACK_EXTERNAL_MODULE__6__","installedModules","__webpack_require__","moduleId","i","l","modules","call","m","c","d","name","getter","o","Object","defineProperty","enumerable","get","r","Symbol","toStringTag","value","t","mode","__esModule","ns","create","key","bind","n","object","property","prototype","hasOwnProperty","p","s","obj","configurable","writable","base64","ieee754","isArray","kMaxLength","Buffer","TYPED_ARRAY_SUPPORT","createBuffer","that","length","RangeError","Uint8Array","__proto__","arg","encodingOrOffset","this","Error","allocUnsafe","from","TypeError","ArrayBuffer","array","byteOffset","byteLength","undefined","fromArrayLike","fromArrayBuffer","string","encoding","isEncoding","actual","write","slice","fromString","isBuffer","len","checked","copy","buffer","val","type","data","fromObject","assertSize","size","toString","isView","loweredCase","utf8ToBytes","base64ToBytes","toLowerCase","slowToString","start","end","hexSlice","utf8Slice","asciiSlice","latin1Slice","base64Slice","utf16leSlice","swap","b","bidirectionalIndexOf","dir","isNaN","arrayIndexOf","indexOf","lastIndexOf","arr","indexSize","arrLength","valLength","String","read","buf","readUInt16BE","foundIndex","found","j","hexWrite","offset","Number","remaining","strLen","parsed","parseInt","substr","utf8Write","blitBuffer","asciiWrite","str","byteArray","push","charCodeAt","asciiToBytes","latin1Write","base64Write","ucs2Write","units","hi","lo","utf16leToBytes","fromByteArray","Math","min","res","secondByte","thirdByte","fourthByte","tempCodePoint","firstByte","codePoint","bytesPerSequence","codePoints","fromCharCode","apply","decodeCodePointsArray","SlowBuffer","alloc","INSPECT_MAX_BYTES","global","foo","subarray","e","typedArraySupport","poolSize","_augment","species","fill","allocUnsafeSlow","_isBuffer","compare","a","x","y","concat","list","pos","swap16","swap32","swap64","arguments","equals","inspect","max","match","join","target","thisStart","thisEnd","thisCopy","targetCopy","includes","isFinite","toJSON","Array","_arr","ret","out","toHex","bytes","checkOffset","ext","checkInt","objectWriteUInt16","littleEndian","objectWriteUInt32","checkIEEE754","writeFloat","noAssert","writeDouble","newBuf","sliceLen","readUIntLE","mul","readUIntBE","readUInt8","readUInt16LE","readUInt32LE","readUInt32BE","readIntLE","pow","readIntBE","readInt8","readInt16LE","readInt16BE","readInt32LE","readInt32BE","readFloatLE","readFloatBE","readDoubleLE","readDoubleBE","writeUIntLE","writeUIntBE","writeUInt8","floor","writeUInt16LE","writeUInt16BE","writeUInt32LE","writeUInt32BE","writeIntLE","limit","sub","writeIntBE","writeInt8","writeInt16LE","writeInt16BE","writeInt32LE","writeInt32BE","writeFloatLE","writeFloatBE","writeDoubleLE","writeDoubleBE","targetStart","set","code","INVALID_BASE64_RE","Infinity","leadSurrogate","toByteArray","trim","replace","stringtrim","base64clean","src","dst","default","g","Function","crypto","JWA","JWK","JWKSet","JWT","JWS","objectAssign","util","hasOwn","pSlice","functionsHaveNames","pToString","arrbuf","DataView","assert","ok","regex","getName","func","isFunction","truncate","something","rawname","fail","expected","message","operator","stackStartFunction","AssertionError","_deepEqual","strict","memos","isDate","getTime","isRegExp","source","multiline","lastIndex","ignoreCase","Float32Array","Float64Array","actualIndex","actualVisitedObjects","isPrimitive","getPrototypeOf","aIsArgs","isArguments","bIsArgs","ka","objectKeys","kb","sort","objEquiv","expectedException","test","isPrototypeOf","_throws","shouldThrow","block","error","_tryBlock","userProvidedMessage","isUnexpectedException","isError","options","generatedMessage","self","getMessage","captureStackTrace","err","stack","fn_name","idx","next_line","substring","inherits","equal","notEqual","deepEqual","deepStrictEqual","notDeepEqual","notDeepStrictEqual","strictEqual","notStrictEqual","throws","doesNotThrow","ifError","keys","supportedAlgorithms","NotSupportedError","alg","normalizedAlgorithm","normalize","Promise","reject","sign","signature","verify","importKey","pairs","forEach","encodeURIComponent","split","pair","decodeURIComponent","response","status","errorMessage","statusText","statusCode","URL","PoPToken","resourceServerUri","session","sessionKey","authorization","id_token","jwk","JSON","parse","then","importedSessionJwk","aud","origin","iss","client_id","issue","jwt","encode","iat","Date","now","header","payload","exp","token_type","cryptoKey","filter","unquote","quote","isScheme","isToken","token","fetch","Headers","AuthenticationRequest","AuthenticationResponse","onHttpError","FormUrlEncoded","RelyingParty","constructor","provider","defaults","registration","store","popToken","authenticate","response_type","display","scope","rp","validation","validate","valid","jwks","importKeys","issuer","idpId","oobRegistration","url","assign","resolve","discover","configuration","registration_endpoint","register","getRegistration","pathname","json","uri","method","headers","params","body","stringify","serialize","idp","catch","jwks_uri","createRequest","validateResponse","redirect","authResponse","userinfo","accessToken","userinfo_endpoint","access_token","logoutRequest","id_token_hint","post_logout_redirect_uri","state","end_session_endpoint","console","log","search","href","logout","clearSession","credentials","SESSION_PRIVATE_KEY","popTokenFor","idToken","issueFor","imported","TextEncoder","super","DataError","kty","use","key_ops","kid","x5u","x5c","x5t","base64url","JOSEHeader","protected","signatures","verified","serialization","segments","typ","cty","jku","crit","enc","zip","_crypto","msCrypto","_subtle","subtle","webkitSubtle","_Crypto","Crypto","_SubtleCrypto","SubtleCrypto","isEdge","CryptoKey","Key","navigator","userAgent","isIE","isWebkit","oid2str","str2oid","_fn","kx","ku","op","args","b2jwk","jwkAlg","isPrvKeyUse","isPubKeyUse","jwk2b","_key","hash","getRandomValues","modulusLength","generateKey","k","all","exportKey","publicKey","privateKey","s2b","a2s","pkcs2jwk","decrypt","rej","onabort","onerror","oncomplete","result","algorithm","publicExponent","unescape","encrypt","usages","s2a","b2s","jwk2pkcs","tl","tagLength","tag","AesGcmEncryptResult","ciphertext","_digest","digest","btoa","atob","toUpperCase","SyntaxError","escape","extractable","info","b2der","prv","shift","rsaComp","rsaKey","unshift","der2b","ctx","rv","xlen","oid","splice","defineProperties","u","ReflectOwnKeys","R","Reflect","ReflectApply","receiver","ownKeys","getOwnPropertySymbols","getOwnPropertyNames","NumberIsNaN","EventEmitter","init","once","emitter","eventListener","errorListener","removeListener","_events","_eventsCount","_maxListeners","defaultMaxListeners","checkListener","listener","_getMaxListeners","_addListener","prepend","events","existing","warning","newListener","emit","warned","w","count","warn","onceWrapper","fired","wrapFn","_onceWrap","wrapped","_listeners","unwrap","evlistener","unwrapListeners","arrayClone","listenerCount","setMaxListeners","getMaxListeners","doError","er","context","handler","listeners","addListener","on","prependListener","prependOnceListener","position","originalListener","index","pop","spliceOne","off","removeAllListeners","rawListeners","eventNames","objectWithoutPropertiesLoose","excluded","sourceSymbolKeys","propertyIsEnumerable","_format","_parse","_interopRequireDefault","sourceKeys","_util","_toConsumableArray","arr2","_arrayWithoutHoles","iter","iterator","_iterableToArray","_nonIterableSpread","_slicedToArray","_arrayWithHoles","_n","_d","_e","_s","_i","next","done","_iterableToArrayLimit","_nonIterableRest","build","reduce","prev","_ref","_ref2","values","transform","xxx","map","scheme","challenge","entries","_cur","cur","charAt","exec","parseProperties","propIsEnumerable","toObject","test1","test2","test3","letter","shouldUseNative","symbols","to","getOwnPropertyDescriptors","descriptors","getOwnPropertyDescriptor","formatRegExp","format","f","isString","objects","_","isNull","isObject","deprecate","fn","msg","process","noDeprecation","throwDeprecation","traceDeprecation","trace","debugEnviron","debugs","opts","seen","stylize","stylizeNoColor","depth","colors","isBoolean","showHidden","_extend","isUndefined","customInspect","stylizeWithColor","formatValue","styleType","style","styles","recurseTimes","primitive","simple","isNumber","formatPrimitive","visibleKeys","arrayToHash","formatError","RegExp","output","base","braces","toUTCString","formatProperty","formatArray","numLinesEst","reduceToSingleString","desc","line","ar","re","objectToString","pad","debuglog","env","NODE_DEBUG","pid","isNullOrUndefined","isSymbol","months","timestamp","time","getHours","getMinutes","getSeconds","getDate","getMonth","prop","add","kCustomPromisifiedSymbol","callbackifyOnRejected","reason","cb","newReason","promisify","original","promiseResolve","promiseReject","promise","setPrototypeOf","custom","callbackify","callbackified","maybeCb","nextTick","cachedSetTimeout","cachedClearTimeout","defaultSetTimout","defaultClearTimeout","runTimeout","fun","setTimeout","clearTimeout","currentQueue","queue","draining","queueIndex","cleanUpNextTick","drainQueue","timeout","run","marker","runClearTimeout","Item","noop","title","browser","argv","version","versions","binding","cwd","chdir","umask","ctor","superCtor","super_","TempCtor","None","HMAC","RSASSA_PKCS1_v1_5","toBuffer","bitlength","b64","lens","getLens","validLen","placeHoldersLen","tmp","Arr","_byteLength","curByte","revLookup","uint8","extraBytes","parts","len2","encodeChunk","lookup","num","isLE","mLen","nBytes","eLen","eMax","eBias","nBits","NaN","rt","abs","LN2","pad_string_1","input","fromBase64","toBase64","decode","stringLength","diff","padLength","paddedStringLength","TextDecoder","inRange","ToDictionary","isASCIIByte","isASCIICodePoint","Stream","tokens","reverse","endOfStream","decoderError","fatal","opt_code_point","encoderError","code_point","getEncoding","label","label_to_encoding","encodings","category","labels","shift_jis_index","big5_index_no_hkscs","encoders","decoders","indexCodePointFor","pointer","indexPointerFor","_encoding","_decoder","_ignoreBOM","_BOMseen","_error_mode","_do_not_flush","Boolean","ignoreBOM","_encoder","_fatal","UTF8Decoder","utf8_code_point","utf8_bytes_seen","utf8_bytes_needed","utf8_lower_boundary","utf8_upper_boundary","stream","bite","UTF8Encoder","temp","SingleByteDecoder","SingleByteEncoder","GB18030Decoder","gb18030_first","gb18030_second","gb18030_third","code_point_offset","entry","indexGB18030RangesCodePointFor","lead","GB18030Encoder","gbk_flag","trail","pointer_offset","indexGB18030RangesPointerFor","byte1","byte2","byte3","Big5Decoder","Big5_lead","Big5Encoder","index_","indexBig5PointerFor","EUCJPDecoder","eucjp_jis0212_flag","eucjp_lead","EUCJPEncoder","ISO2022JPDecoder","states","iso2022jp_decoder_state","iso2022jp_decoder_output_state","iso2022jp_lead","iso2022jp_output_flag","output_flag","ISO2022JPEncoder","iso2022jp_state","ShiftJISDecoder","Shift_JIS_lead","lead_offset","ShiftJISEncoder","indexShiftJISPointerFor","EUCKRDecoder","euckr_lead","EUCKREncoder","convertCodeUnitToBytes","code_unit","utf16be","UTF16Decoder","utf16_be","utf16_lead_byte","utf16_lead_surrogate","lead_surrogate","UTF16Encoder","XUserDefinedDecoder","XUserDefinedEncoder","input_stream","item","code_points","cp","codePointsToString","opt_string","stringToCodePoints","heading","EncodingIndexes","operations","argument","registeredAlgorithms","importing","unprotected","iv","aad","recipients","ExtendedJWT","startsWith","find","isJWE","JWE","endpoint","client","authorization_endpoint","redirect_uri","nonce","digests","generateSessionKeys","sessionKeys","storeSessionKeys","request_parameter_supported","encodeRequestParams","encodedParams","keyPair","jwkPair","publicJwk","privateJwk","public","private","excludeParams","keysToEncode","requestParamCompact","request","IDToken","Session","HttpError","parseResponse","errorResponse","matchRequest","validateStateParam","validateResponseMode","validateResponseParams","exchangeAuthorizationCode","validateIDToken","fromAuthResponse","errorCode","errorParams","octets","encoded","expectedParams","id","secret","token_endpoint","bodyContents","authMethod","tokenResponse","decryptIDToken","decodeIDToken","validateIssuer","validateAudience","resolveKeys","verifySignature","validateExpires","verifyNonce","validateAcr","validateAuthTime","validateAccessTokenHash","validateAuthorizationCodeHash","decoded","decodeError","cause","azp","isFreshJwks","expectedAlgorithm","REQUIRED_CLAIMS","TokenClaimsSet","nbf","jti","auth_time","acr","amr","claim","validationError","payloadResult","credentialType","idClaims","accessClaims","refresh_token","hasCredentials","fetchWithCredentials","bearerTokenFor","StandardError","STATUS_CODE_TO_NAME","STATUS_NAME_TO_CODE","props","alias","statusMessage","has","proto","getLocation","location","currentUrl","toUrlString","NAMESPACE","Server","clientWindow","clientOrigin","handle","_clientWindow","_clientOrigin","_handler","_messageListener","event","_handleMessage","req","postMessage","addEventListener","stop","removeEventListener","defaultStorage","hasLocalStorage","storage","localStorage","memStorage","getItem","setItem","removeItem","async","getData","serialized","updateStorage","update","newData","getSession","login","getStoredRp","redirect_uris","callbackUri","clientNameI18n","supplementaryOptions","logo_uri","logoUri","contacts","client_name","clientName","grant_types","response_types","registerRp","rpConfig","storeRp","getRegisteredRp","appHashFragment","saveAppHashFragment","navigateTo","sendAuthRequest","currentSession","restoreAppHashFragment","storeData","webId","updateHostFromResponse","resp","wwwAuthHeader","auth","WebIdOidc","host","requiresAuth","hosts","saveHost","shouldShareCredentials","requestHost","getHost","obtainSession","popup","popupServer","popupUri","foundSessionCb","popupHandler","globalFetch","SolidAuthClient","origHeaders","copyHeaders","authnFetch","defaultLoginOptions","left","screenX","innerWidth","top","screenY","innerHeight","settings","open","openIdpPopup","_pendingSession","saveSession","callback","stopTrackSession"],"mappings":"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KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,MAAM,MAAM,MAAM,MAAM,MAAM,OAAO,MAAM,MAAM,OAAO,MAAM,OAAO,MAAM,MAAM,MAAM,MAAM,MAAM,OAAO,OAAO,OAAO,OAAO,OAAO,MAAM,OAAO,MAAM,MAAM,MAAM,OAAO,MAAM,MAAM,MAAM,OAAO,MAAM,OAAO,OAAO,OAAO,OAAO,MAAM,MAAM,KAAK,MAAM,MAAM,OAAO,MAAM,MAAM,OAAO,MAAM,OAAO,MAAM,MAAM,OAAO,MAAM,MAAM,MAAM,MAAM,MAAM,OAAO,MAAM,MAAM,MAAM,OAAO,OAAO,OAAO,MAAM,OAAO,MAAM,MAAM,MAAM,OAAO,OAAO,OAAO,OAAO,OAAO,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,OAAO,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,OAAO,MAAM,MAAM,OAAO,MAAM,MAAM,OAAO,MAAM,OAAO,MAAM,OAAO,MAAM,OAAO,OAAO,OAAO,MAAM,MAAM,OAAO,MAAM,MAAM,MAAM,OAAO,MAAM,MAAM,MAAM,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,MAAM,MAAM,MAAM,MAAM,MAAM,OAAO,MAAM,OAAO,OAAO,MAAM,MAAM,OAAO,OAAO,MAAM,OAAO,MAAM,MAAM,MAAM,MAAM,OAAO,MAAM,MAAM,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,KAAK,KAAK,KAAK,KAAK,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,KAAK,KAAK,KAAK,KAAK,IAAI,IAAI,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,OAAO,OAAO,KAAK,MAAM,KAAK,KAAK,MAAM,MAAM,MAAM,MAAM,KAAK,KAAK,OAAO,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,KAAK,KAAK,KAAK,KAAK,MAAM,MAAM,MAAM,MAAM,KAAK,MAAM,MAAM,OAAO,KAAK,KAAK,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,OAAO,OAAO,MAAM,OAAO,MAAM,KAAK,MAAM,MAAM,MAAM,KAAK,MAAM,MAAM,MAAM,MAAM,MAAM,OAAO,OAAO,OAAO,OAAO,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,OAAO,MAAM,KAAK,OAAO,OAAO,OAAO,MAAM,OAAO,MAAM,OAAO,MAAM,OAAO,OAAO,MAAM,OAAO,MAAM,OAAO,MAAM,MAAM,OAAO,OAAO,OAAO,MAAM,OAAO,OAAO,OAAO,OAAO,MAAM,MAAM,OAAO,OAAO,OAAO,OAAO,OAAO,OAAO,KAAK,OAAO,OAAO,OAAO,MAAM,OAAO,OAAO,MAAM,MAAM,OAAO,MAAM,MAAM,OAAO,OAAO,OAAO,OAAO,MAAM,MAAM,KAAK,MAAM,OAAO,MAAM,MAAM,OAAO,OAAO,OAAO,MAAM,OAAO,OAAO,OAAO,OAAO,MAAM,OAAO,OAAO,MAAM,OAAO,OAAO,OAAO,KAAK,MAAM,OAAO,MAAM,MAAM,OAAO,KAAK,OAAO,OAAO,OAAO,OAAO,OAAO,MAAM,MAAM,MAAM,KAAK,MAAM,OAAO,OAAO,MAAM,MAAM,OAAO,MAAM,MAAM,OAAO,MAAM,MAAM,MAAM,MAAM,KAAK,OAAO,OAAO,OAAO,OAAO,KAAK,OAAO,OAAO,MAAM,MAAM,OAAO,MAAM,OAAO,OAAO,MAAM,OAAO,OAAO,OAAO,MAAM,MAAM,OAAO,KAAK,KAAK,OAAO,OAAO,OAAO,OAAO,OAAO,OAAO,OAAO,OAAO,MAAM,OAAO,OAAO,OAAO,MAAM,OAAO,OAAO,OAAO,OAAO,MAAM,OAAO,OAAO,OAAO,OAAO,KAAK,OAAO,OAAO,OAAO,OAAO,OAAO,MAAM,OAAO,MAAM,OAAO,OAAO,OAAO,OAAO,OAAO,OAAO,OAAO,OAAO,MAAM,OAAO,OAAO,OAAO,OAAO,OAAO,OAAO,OAAO,OAAO,MAAM,MAAM,MAAM,MAAM,KAAK,OAAO,MAAM,MAAM,OAAO,OAAO,MAAM,MAAM,MAAM,MAAM,OAAO,MAAM,MAAM,MAAM,OAAO,MAAM,OAAO,OAAO,OAAO,OAAO,MAAM,OAAO,MAAM,OAAO,MAAM,OAAO,OAAO,OAAO,OAAO,OAAO,OAAO,OAAO,OAAO,OAAO,OAAO,OAAO,MAAM,OAAO,OAAO,OAAO,OAAO,MAAM,OAAO,OAAO,OAAO,OAAO,OAAO,OAAO,MAAM,OAAO,OAAO,OAAO,OAAO,OAAO,OAAO,OAAO,OAAO,MAAM,MAAM,MAAM,OAAO,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,OAAO,OAAO,MAAM,MAAM,MAAM,MAAM,MAAM,OAAO,OAAO,MAAM,OAAO,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,OAAO,MAAM,MAAM,MAAM,MAAM,OAAO,MAAM,KAAK,OAAO,MAAM,MAAM,OAAO,OAAO,MAAM,MAAM,MAAM,OAAO,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,OAAO,MAAM,MAAM,MAAM,MAAM,MAAM,KAAO,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,OAAO,MAAM,MAAM,MAAM,KAAK,MAAM,MAAM,OAAO,MAAM,MAAM,MAAM,OAAO,MAAM,MAAM,MAAM,OAAO,MAAM,OAAO,MAAM,OAAO,MAAM,MAAM,MAAM,MAAM,MAAM,OAAO,OAAO,MAAM,OAAO,MAAM,MAAM,MAAM,MAAM,OAAO,MAAM,MAAM,OAAO,MAAM,MAAM,OAAO,MAAM,OAAO,OAAO,MAAM,MAAM,MAAM,OAAO,MAAM,MAAM,OAAO,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,OAAO,MAAM,MAAM,MAAM,OAAO,MAAM,OAAO,MAAM,MAAM,OAAO,MAAM,KAAK,MAAM,OAAO,MAAM,MAAM,OAAO,MAAM,MAAM,MAAM,OAAO,OAAO,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,OAAO,OAAO,MAAM,MAAM,MAAM,KAAK,KAAK,KAAK,MAAM,MAAM,MAAM,MAAM,KAAK,MAAM,OAAO,MAAM,OAAO,MAAM,OAAO,MAAM,OAAO,OAAO,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,OAAO,OAAO,MAAM,MAAM,KAAK,MAAM,OAAO,MAAM,MAAM,MAAM,OAAO,MAAM,MAAM,MAAM,MAAM,OAAO,OAAO,MAAM,MAAM,MAAM,OAAO,OAAO,MAAM,MAAM,OAAO,MAAM,MAAM,MAAM,OAAO,MAAM,OAAO,KAAK,OAAO,OAAO,MAAM,MAAM,OAAO,MAAM,MAAM,OAAO,MAAM,MAAM,MAAM,OAAO,MAAM,OAAO,OAAO,MAAM,MAAM,OAAO,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,OAAO,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,OAAO,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,OAAO,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,OAAO,MAAM,MAAM,OAAO,OAAO,MAAM,OAAO,MAAM,OAAO,MAAM,MAAM,OAAO,MAAM,MAAM,OAAO,OAAO,MAAM,MAAM,OAAO,MAAM,MAAM,MAAM,MAAM,MAAM,OAAO,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,OAAO,MAAM,MAAM,MAAM,OAAO,OAAO,MAAM,MAAM,MAAM,OAAO,OAAO,MAAM,MAAM,MAAM,MAAM,OAAO,MAAM,OAAO,MAAM,MAAM,MAAM,MAAM,OAAO,MAAM,MAAM,OAAO,MAAM,MAAM,OAAO,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,OAAO,MAAM,OAAO,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,OAAO,OAAO,MAAM,MAAM,MAAM,OAAO,MAAM,OAAO,MAAM,OAAO,OAAO,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,OAAO,MAAM,MAAM,OAAO,MAAM,OAAO,OAAO,MAAM,OAAO,MAAM,OAAO,MAAM,OAAO,MAAM,MAAM,MAAM,MAAM,MAAM,OAAO,OAAO,MAAM,MAAM,MAAM,OAAO,MAAM,OAAO,OAAO,OAAO,MAAM,MAAM,OAAO,MAAM,MAAM,MAAM,OAAO,MAAM,OAAO,OAAO,MAAM,OAAO,MAAM,OAAO,MAAM,OAAO,OAAO,MAAM,MAAM,OAAO,OAAO,OAAO,MAAM,OAAO,MAAM,MAAM,OAAO,OAAO,OAAO,OAAO,OAAO,MAAM,MAAM,OAAO,MAAM,MAAM,MAAM,MAAM,OAAO,OAAO,MAAM,OAAO,OAAO,MAAM,MAAM,MAAM,OAAO,OAAO,OAAO,OAAO,OAAO,MAAM,MAAM,MAAM,MAAM,MAAM,OAAO,MAAM,MAAM,MAAM,MAAM,OAAO,MAAM,MAAM,MAAM,OAAO,OAAO,MAAM,OAAO,MAAM,MAAM,MAAM,MAAM,MAAM,OAAO,MAAM,MAAM,OAAO,OAAO,OAAO,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,OAAO,MAAM,OAAO,MAAM,MAAM,MAAM,OAAO,MAAM,MAAM,MAAM,MAAM,MAAM,OAAO,OAAO,MAAM,OAAO,MAAM,OAAO,OAAO,OAAO,MAAM,MAAM,MAAM,OAAO,MAAM,OAAO,MAAM,MAAM,OAAO,MAAM,OAAO,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,OAAO,OAAO,OAAO,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,OAAO,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,OAAO,MAAM,OAAO,OAAO,MAAM,MAAM,MAAM,MAAM,OAAO,MAAM,OAAO,OAAO,MAAM,OAAO,MAAM,MAAM,MAAM,OAAO,OAAO,MAAM,MAAM,MAAM,MAAM,OAAO,MAAM,MAAM,MAAM,OAAO,MAAM,MAAM,MAAM,OAAO,OAAO,OAAO,MAAM,OAAO,MAAM,OAAO,OAAO,MAAM,MAAM,OAAO,MAAM,MAAM,MAAM,OAAO,MAAM,MAAM,MAAM,OAAO,OAAO,OAAO,MAAM,OAAO,OAAO,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,OAAO,OAAO,MAAM,MAAM,OAAO,OAAO,MAAM,MAAM,OAAO,OAAO,OAAO,MAAM,OAAO,MAAM,OAAO,OAAO,OAAO,OAAO,MAAM,OAAO,MAAM,OAAO,OAAO,MAAM,OAAO,OAAO,MAAM,OAAO,MAAM,OAAO,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,OAAO,OAAO,MAAM,MAAM,MAAM,MAAM,OAAO,MAAM,OAAO,OAAO,OAAO,OAAO,OAAO,MAAM,MAAM,OAAO,OAAO,MAAM,MAAM,OAAO,OAAO,MAAM,MAAM,OAAO,OAAO,OAAO,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,OAAO,OAAO,OAAO,OAAO,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,OAAO,MAAM,MAAM,MAAM,OAAO,MAAM,MAAM,MAAM,OAAO,OAAO,OAAO,OAAO,OAAO,OAAO,OAAO,OAAO,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,OAAO,MAAM,MAAM,MAAM,MAAM,OAAO,MAAM,MAAM,OAAO,MAAM,MAAM,MAAM,OAAO,OAAO,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,OAAO,MAAM,MAAM,OAAO,MAAM,MAAM,OAAO,OAAO,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,OAAO,MAAM,OAAO,OAAO,OAAO,MAAM,MAAM,MAAM,MAAM,MAAM,OAAO,OAAO,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,OAAO,MAAM,OAAO,OAAO,MAAM,MAAM,MAAM,MAAM,MAAM,OAAO,MAAM,OAAO,OAAO,MAAM,MAAM,OAAO,MAAM,MAAM,MAAM,MAAM,OAAO,MAAM,MAAM,OAAO,MAAM,OAAO,MAAM,MAAM,OAAO,MAAM,OAAO,MAAM,OAAO,MAAM,MAAM,MAAM,OAAO,MAAM,OAAO,OAAO,OAAO,OAAO,OAAO,OAAO,MAAM,MAAM,OAAO,MAAM,MAAM,MAAM,OAAO,OAAO,OAAO,OAAO,OAAO,MAAM,OAAO,OAAO,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,OAAO,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,OAAO,MAAM,MAAM,MAAM,MAAM,OAAO,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,OAAO,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,OAAO,OAAO,MAAM,OAAO,OAAO,OAAO,MAAM,OAAO,OAAO,MAAM,OAAO,OAAO,MAAM,MAAM,OAAO,MAAM,MAAM,MAAM,OAAO,OAAO,MAAM,MAAM,MAAM,MAAM,MAAM,OAAO,OAAO,MAAM,OAAO,MAAM,OAAO,OAAO,MAAM,OAAO,OAAO,OAAO,MAAM,OAAO,OAAO,MAAM,OAAO,OAAO,OAAO,MAAM,OAAO,MAAM,OAAO,OAAO,OAAO,OAAO,OAAO,MAAM,OAAO,MAAM,MAAM,OAAO,OAAO,OAAO,OAAO,OAAO,OAAO,MAAM,OAAO,OAAO,OAAO,MAAM,MAAM,MAAM,MAAM,MAAM,OAAO,MAAM,MAAM,OAAO,OAAO,OAAO,OAAO,OAAO,MAAM,MAAM,OAAO,MAAM,OAAO,OAAO,OAAO,MAAM,OAAO,MAAM,MAAM,MAAM,MAAM,OAAO,MAAM,OAAO,OAAO,MAAM,MAAM,OAAO,MAAM,OAAO,OAAO,MAAM,OAAO,OAAO,MAAM,MAAM,OAAO,OAAO,OAAO,MAAM,OAAO,MAAM,MAAM,MAAM,MAAM,MAAM,OAAO,OAAO,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,OAAO,OAAO,OAAO,MAAM,OAAO,OAAO,MAAM,MAAM,OAAO,MAAM,OAAO,OAAO,OAAO,MAAM,OAAO,OAAO,MAAM,MAAM,OAAO,MAAM,MAAM,MAAM,MAAM,OAAO,OAAO,OAAO,OAAO,MAAM,OAAO,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,OAAO,OAAO,MAAM,MAAM,MAAM,OAAO,MAAM,OAAO,MAAM,OAAO,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,OAAO,OAAO,OAAO,OAAO,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,OAAO,OAAO,OAAO,OAAO,MAAM,MAAM,MAAM,MAAM,OAAO,MAAM,OAAO,OAAO,MAAM,MAAM,OAAO,MAAM,MAAM,MAAM,OAAO,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,OAAO,OAAO,OAAO,MAAM,MAAM,OAAO,OAAO,MAAM,OAAO,MAAM,OAAO,MAAM,MAAM,OAAO,OAAO,OAAO,OAAO,MAAM,MAAM,OAAO,OAAO,MAAM,OAAO,MAAM,MAAM,OAAO,MAAM,MAAM,OAAO,OAAO,MAAM,MAAM,OAAO,OAAO,OAAO,OAAO,MAAM,OAAO,OAAO,OAAO,MAAM,MAAM,MAAM,OAAO,OAAO,OAAO,OAAO,MAAM,OAAO,OAAO,MAAM,OAAO,OAAO,OAAO,OAAO,MAAM,OAAO,MAAM,MAAM,MAAM,OAAO,OAAO,MAAM,OAAO,MAAM,MAAM,MAAM,MAAM,OAAO,OAAO,OAAO,OAAO,MAAM,OAAO,OAAO,OAAO,MAAM,OAAO,OAAO,MAAM,MAAM,OAAO,OAAO,OAAO,OAAO,OAAO,OAAO,MAAM,OAAO,OAAO,OAAO,MAAM,OAAO,OAAO,OAAO,MAAM,OAAO,MAAM,MAAM,MAAM,OAAO,OAAO,MAAM,OAAO,OAAO,MAAM,OAAO,MAAM,OAAO,OAAO,MAAM,OAAO,OAAO,MAAM,MAAM,MAAM,OAAO,MAAM,MAAM,MAAM,MAAM,MAAM,OAAO,OAAO,MAAM,MAAM,MAAM,MAAM,OAAO,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,OAAO,OAAO,MAAM,MAAM,OAAO,OAAO,MAAM,OAAO,OAAO,MAAM,MAAM,MAAM,OAAO,MAAM,OAAO,MAAM,MAAM,OAAO,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,OAAO,OAAO,MAAM,MAAM,MAAM,MAAM,OAAO,OAAO,MAAM,OAAO,OAAO,MAAM,OAAO,OAAO,OAAO,OAAO,OAAO,MAAM,MAAM,OAAO,OAAO,OAAO,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,OAAO,MAAM,MAAM,MAAM,OAAO,OAAO,MAAM,MAAM,MAAM,OAAO,MAAM,MAAM,OAAO,OAAO,OAAO,MAAM,MAAM,OAAO,MAAM,OAAO,OAAO,MAAM,MAAM,MAAM,OAAO,OAAO,MAAM,OAAO,OAAO,MAAM,OAAO,MAAM,MAAM,MAAM,OAAO,OAAO,MAAM,OAAO,MAAM,MAAM,MAAM,OAAO,OAAO,MAAM,OAAO,OAAO,MAAM,OAAO,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,OAAO,OAAO,MAAM,MAAM,MAAM,MAAM,MAAM,OAAO,MAAM,MAAM,MAAM,OAAO,MAAM,MAAM,MAAM,OAAO,OAAO,OAAO,OAAO,OAAO,MAAM,MAAM,MAAM,MAAM,OAAO,OAAO,MAAM,MAAM,OAAO,OAAO,OAAO,MAAM,OAAO,MAAM,MAAM,OAAO,MAAM,MAAM,MAAM,MAAM,MAAM,OAAO,OAAO,OAAO,MAAM,OAAO,OAAO,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,OAAO,OAAO,OAAO,MAAM,OAAO,MAAM,OAAO,OAAO,MAAM,OAAO,OAAO,MAAM,OAAO,OAAO,OAAO,MAAM,MAAM,OAAO,OAAO,OAAO,MAAM,OAAO,MAAM,MAAM,MAAM,MAAM,OAAO,MAAM,OAAO,OAAO,MAAM,OAAO,MAAM,OAAO,OAAO,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,OAAO,MAAM,OAAO,MAAM,MAAM,OAAO,MAAM,OAAO,MAAM,OAAO,MAAM,MAAM,OAAO,MAAM,OAAO,MAAM,OAAO,MAAM,OAAO,OAAO,MAAM,OAAO,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,OAAO,MAAM,OAAO,OAAO,OAAO,OAAO,OAAO,OAAO,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,OAAO,MAAM,MAAM,OAAO,MAAM,MAAM,MAAM,OAAO,MAAM,MAAM,MAAM,OAAO,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,OAAO,MAAM,MAAM,MAAM,MAAM,MAAM,OAAO,MAAM,MAAM,MAAM,OAAO,MAAM,MAAM,OAAO,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,OAAO,MAAM,OAAO,MAAM,OAAO,OAAO,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,OAAO,MAAM,MAAM,OAAO,OAAO,OAAO,MAAM,OAAO,MAAM,OAAO,OAAO,OAAO,MAAM,OAAO,OAAO,OAAO,MAAM,MAAM,MAAM,MAAM,OAAO,MAAM,MAAM,OAAO,OAAO,MAAM,MAAM,OAAO,OAAO,OAAO,OAAO,MAAM,MAAM,MAAM,MAAM,MAAM,OAAO,MAAM,MAAM,MAAM,OAAO,MAAM,OAAO,OAAO,MAAM,OAAO,MAAM,OAAO,MAAM,MAAM,OAAO,OAAO,OAAO,MAAM,OAAO,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,OAAO,MAAM,MAAM,MAAM,MAAM,MAAM,OAAO,OAAO,MAAM,MAAM,MAAM,MAAM,OAAO,MAAM,OAAO,MAAM,MAAM,MAAM,MAAM,MAAM,OAAO,MAAM,OAAO,OAAO,MAAM,OAAO,OAAO,MAAM,MAAM,MAAM,MAAM,MAAM,OAAO,OAAO,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,OAAO,MAAM,OAAO,OAAO,MAAM,MAAM,OAAO,MAAM,MAAM,MAAM,OAAO,OAAO,OAAO,OAAO,MAAM,MAAM,OAAO,OAAO,OAAO,MAAM,MAAM,OAAO,OAAO,OAAO,MAAM,MAAM,OAAO,OAAO,OAAO,MAAM,OAAO,OAAO,MAAM,OAAO,MAAM,MAAM,MAAM,MAAM,OAAO,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,OAAO,MAAM,MAAM,MAAM,MAAM,OAAO,OAAO,OAAO,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,OAAO,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,OAAO,MAAM,OAAO,OAAO,MAAM,OAAO,OAAO,MAAM,MAAM,MAAM,MAAM,OAAO,MAAM,MAAM,OAAO,MAAM,MAAM,OAAO,OAAO,MAAM,OAAO,OAAO,OAAO,OAAO,OAAO,MAAM,OAAO,OAAO,MAAM,OAAO,OAAO,OAAO,OAAO,OAAO,MAAM,MAAM,MAAM,MAAM,OAAO,OAAO,MAAM,OAAO,MAAM,MAAM,MAAM,MAAM,OAAO,OAAO,OAAO,OAAO,OAAO,OAAO,OAAO,MAAM,OAAO,MAAM,OAAO,MAAM,MAAM,MAAM,OAAO,MAAM,OAAO,OAAO,MAAM,OAAO,OAAO,MAAM,OAAO,MAAM,OAAO,OAAO,MAAM,OAAO,OAAO,OAAO,MAAM,MAAM,OAAO,MAAM,OAAO,OAAO,OAAO,MAAM,MAAM,MAAM,OAAO,OAAO,MAAM,OAAO,OAAO,OAAO,MAAM,MAAM,OAAO,KAAM,MAAM,MAAM,OAAO,OAAO,MAAM,MAAM,OAAO,MAAM,MAAM,MAAM,MAAM,MAAM,OAAO,MAAM,MAAM,OAAO,MAAM,OAAO,MAAM,MAAM,OAAO,MAAM,MAAM,MAAM,OAAO,OAAO,MAAM,MAAM,MAAM,OAAO,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,OAAO,OAAO,MAAM,MAAM,MAAM,OAAO,MAAM,OAAO,OAAO,OAAO,OAAO,OAAO,MAAM,MAAM,OAAO,OAAO,OAAO,OAAO,OAAO,OAAO,OAAO,OAAO,MAAM,OAAO,OAAO,MAAM,MAAM,MAAM,OAAO,OAAO,OAAO,OAAO,MAAM,OAAO,MAAM,OAAO,MAAM,OAAO,OAAO,OAAO,MAAM,MAAM,OAAO,MAAM,MAAM,OAAO,OAAO,MAAM,MAAM,OAAO,MAAM,MAAM,MAAM,MAAM,OAAO,MAAM,MAAM,OAAO,MAAM,OAAO,OAAO,OAAO,OAAO,MAAM,OAAO,OAAO,MAAM,OAAO,MAAM,OAAO,OAAO,OAAO,MAAM,OAAO,OAAO,MAAM,MAAM,OAAO,MAAM,MAAM,OAAO,OAAO,MAAM,MAAM,MAAM,MAAM,MAAM,OAAO,OAAO,MAAM,MAAM,MAAM,OAAO,OAAO,OAAO,MAAM,OAAO,OAAO,MAAM,OAAO,OAAO,MAAM,OAAO,MAAM,MAAM,MAAM,OAAO,OAAO,MAAM,MAAM,MAAM,MAAM,OAAO,MAAM,MAAM,OAAO,MAAM,MAAM,MAAM,OAAO,MAAM,MAAM,OAAO,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,OAAO,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,OAAO,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,OAAO,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,OAAO,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,OAAO,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,OAAO,OAAO,MAAO,MAAM,MAAM,MAAM,OAAO,MAAM,MAAM,MAAM,OAAO,OAAO,OAAO,OAAO,MAAM,MAAM,OAAO,OAAO,OAAO,MAAM,OAAO,OAAO,MAAM,OAAO,OAAO,OAAO,OAAO,OAAO,MAAM,OAAO,MAAM,OAAO,OAAO,OAAO,OAAO,OAAO,OAAO,MAAM,MAAM,MAAM,OAAO,OAAO,OAAO,OAAO,OAAO,OAAO,MAAM,OAAO,MAAM,OAAO,OAAO,OAAO,MAAM,OAAO,OAAO,OAAO,MAAM,OAAO,OAAO,OAAO,OAAO,MAAM,MAAM,OAAO,OAAO,OAAO,MAAM,OAAO,OAAO,OAAO,OAAO,MAAM,MAAM,OAAO,OAAO,OAAO,OAAO,OAAO,OAAO,OAAO,OAAO,MAAM,OAAO,OAAO,MAAM,MAAM,OAAO,MAAM,MAAM,OAAO,OAAO,OAAO,OAAO,OAAO,OAAO,MAAM,OAAO,OAAO,OAAO,MAAM,OAAO,MAAM,OAAO,MAAM,OAAO,MAAM,MAAM,OAAO,KAAK,OAAO,OAAO,OAAO,OAAO,OAAO,OAAO,OAAO,OAAO,OAAO,OAAO,OAAO,OAAO,OAAO,OAAO,MAAM,MAAM,MAAM,OAAO,OAAO,OAAO,MAAM,OAAO,MAAM,OAAO,OAAO,MAAM,OAAO,MAAM,MAAM,MAAM,OAAO,OAAO,OAAO,OAAO,OAAO,OAAO,OAAO,MAAM,MAAM,OAAO,OAAO,OAAO,OAAO,OAAO,OAAO,OAAO,OAAO,OAAO,MAAM,OAAO,MAAM,OAAO,MAAM,OAAO,OAAO,OAAO,MAAM,OAAO,MAAM,OAAO,OAAO,OAAO,MAAM,OAAO,MAAM,OAAO,MAAM,OAAO,OAAO,OAAO,MAAM,OAAO,OAAO,MAAM,OAAO,OAAO,OAAO,MAAM,OAAO,MAAM,MAAM,MAAM,OAAO,OAAO,OAAO,OAAO,MAAM,OAAO,OAAO,OAAO,MAAM,MAAM,OAAO,OAAO,OAAO,MAAM,OAAO,OAAO,OAAO,OAAO,OAAO,MAAM,MAAM,OAAO,MAAM,OAAO,MAAM,OAAO,OAAO,OAAO,OAAO,OAAO,MAAM,MAAM,MAAM,OAAO,OAAO,MAAM,OAAO,OAAO,MAAM,OAAO,OAAO,MAAM,OAAO,MAAM,OAAO,OAAO,MAAM,OAAO,OAAO,OAAO,OAAO,MAAM,OAAO,OAAO,OAAO,MAAM,OAAO,MAAM,MAAM,OAAO,MAAM,MAAM,OAAO,OAAO,MAAM,OAAO,MAAM,MAAM,OAAO,MAAM,MAAM,OAAO,OAAO,OAAO,OAAO,MAAM,OAAO,MAAM,OAAO,OAAO,OAAO,MAAM,OAAO,MAAM,MAAM,OAAO,MAAM,OAAO,MAAM,OAAO,OAAO,MAAM,OAAO,OAAO,MAAM,OAAO,MAAM,OAAO,MAAM,OAAO,MAAM,MAAM,OAAO,MAAM,MAAM,OAAO,OAAO,OAAO,MAAM,OAAO,OAAO,MAAM,OAAO,OAAO,MAAM,OAAO,OAAO,MAAM,MAAM,OAAO,OAAO,MAAM,MAAM,OAAO,OAAO,OAAO,MAAM,OAAO,OAAO,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,OAAO,OAAO,MAAM,OAAO,OAAO,MAAM,MAAM,OAAO,MAAM,OAAO,OAAO,OAAO,MAAM,MAAM,OAAO,OAAO,MAAM,MAAM,OAAO,OAAO,OAAO,OAAO,OAAO,OAAO,OAAO,MAAM,MAAM,OAAO,MAAM,OAAO,MAAM,OAAO,MAAM,OAAO,MAAM,MAAM,MAAM,OAAO,OAAO,OAAO,OAAO,OAAO,OAAO,MAAM,OAAO,OAAO,MAAM,MAAM,OAAO,MAAM,OAAO,MAAM,MAAM,MAAM,OAAO,OAAO,MAAM,MAAM,OAAO,OAAO,OAAO,OAAO,OAAO,OAAO,OAAO,OAAO,OAAO,OAAO,OAAO,MAAM,OAAO,OAAO,MAAM,MAAM,OAAO,MAAM,MAAM,OAAO,MAAM,OAAO,MAAM,OAAO,OAAO,OAAO,MAAM,OAAO,MAAM,OAAO,OAAO,MAAM,OAAO,OAAO,MAAM,OAAO,OAAO,MAAM,MAAM,MAAM,OAAO,OAAO,OAAO,OAAO,OAAO,OAAO,OAAO,OAAO,OAAO,OAAO,OAAO,OAAO,OAAO,MAAM,OAAO,OAAO,MAAM,MAAM,OAAO,MAAM,OAAO,MAAM,MAAM,OAAO,MAAM,OAAO,MAAM,MAAM,MAAM,OAAO,MAAM,OAAO,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,OAAO,OAAO,MAAM,MAAM,OAAO,OAAO,OAAO,OAAO,OAAO,OAAO,MAAM,OAAO,OAAO,OAAO,OAAO,MAAM,OAAO,OAAO,MAAM,OAAO,MAAM,MAAM,OAAO,OAAO,MAAM,MAAM,OAAO,OAAO,MAAM,MAAM,OAAO,MAAM,OAAO,MAAM,OAAO,MAAM,MAAM,MAAM,MAAM,OAAO,MAAM,OAAO,MAAM,MAAM,OAAO,OAAO,OAAO,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,OAAO,MAAM,MAAM,MAAM,MAAM,OAAO,MAAM,MAAM,KAAM,MAAM,MAAM,MAAM,OAAO,OAAO,MAAM,OAAO,OAAO,OAAO,OAAO,MAAM,MAAM,MAAM,OAAO,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,OAAO,MAAM,OAAO,MAAM,MAAM,OAAO,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,OAAO,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,OAAO,MAAM,MAAM,OAAO,MAAM,MAAM,OAAO,MAAM,OAAO,OAAO,OAAO,OAAO,OAAO,OAAO,MAAM,OAAO,MAAM,OAAO,OAAO,OAAO,OAAO,MAAM,OAAO,MAAM,OAAO,OAAO,OAAO,MAAM,MAAM,MAAM,OAAO,MAAM,OAAO,OAAO,OAAO,OAAO,MAAM,OAAO,OAAO,KAAK,OAAO,OAAO,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,OAAO,MAAM,OAAO,MAAM,MAAM,MAAM,OAAO,OAAO,KAAK,MAAM,OAAO,MAAM,OAAO,MAAM,MAAM,OAAO,OAAO,MAAM,OAAO,OAAO,OAAO,MAAM,OAAO,OAAO,OAAO,OAAO,MAAM,MAAM,OAAO,OAAO,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,OAAO,MAAM,MAAM,OAAO,MAAM,OAAO,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,OAAO,MAAM,MAAM,MAAM,MAAM,MAAM,OAAO,OAAO,KAAK,MAAM,OAAO,MAAM,OAAO,OAAO,MAAM,OAAO,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,OAAO,MAAM,MAAM,OAAO,OAAO,OAAO,MAAM,OAAO,OAAO,OAAO,OAAO,KAAK,MAAM,OAAO,MAAM,MAAM,OAAO,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,OAAO,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,OAAO,MAAM,MAAM,KAAK,MAAM,MAAM,MAAM,KAAK,MAAM,OAAO,MAAM,OAAO,MAAM,MAAM,MAAM,MAAM,MAAM,OAAO,MAAM,MAAM,OAAO,OAAO,KAAK,OAAO,MAAM,MAAM,MAAM,OAAO,MAAM,MAAM,KAAK,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,OAAO,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,KAAK,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,KAAK,MAAM,MAAM,MAAM,KAAK,MAAM,OAAO,MAAM,MAAM,KAAK,MAAM,MAAM,MAAM,MAAM,MAAM,OAAO,MAAM,MAAM,MAAM,OAAO,MAAM,MAAM,MAAM,MAAM,MAAM,OAAO,MAAM,MAAM,MAAM,MAAM,OAAO,MAAM,OAAO,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,OAAO,MAAM,MAAM,MAAM,MAAM,KAAK,OAAO,OAAO,KAAK,MAAM,OAAO,KAAK,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,KAAK,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,OAAO,MAAM,MAAM,MAAM,MAAM,KAAK,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,OAAO,MAAM,MAAM,MAAM,MAAM,OAAO,MAAM,OAAO,KAAK,MAAM,OAAO,MAAM,MAAM,MAAM,OAAO,MAAM,KAAK,MAAM,KAAK,MAAM,OAAO,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,OAAO,MAAM,MAAM,MAAM,MAAM,MAAM,OAAO,MAAM,OAAO,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,KAAK,MAAM,MAAM,MAAM,MAAM,OAAO,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,KAAK,MAAM,OAAO,MAAM,MAAM,MAAM,MAAM,MAAM,OAAO,OAAO,OAAO,OAAO,OAAO,OAAO,OAAO,OAAO,OAAO,MAAM,OAAO,OAAO,OAAO,OAAO,OAAO,OAAO,MAAM,MAAM,OAAO,MAAM,MAAM,OAAO,MAAM,MAAM,MAAM,MAAM,MAAM,KAAK,MAAM,MAAM,MAAM,MAAM,MAAM,KAAK,KAAK,MAAM,MAAM,MAAM,IAAI,MAAM,MAAM,MAAM,MAAM,MAAM,KAAK,MAAM,KAAK,MAAM,KAAK,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,KAAK,KAAK,KAAK,KAAK,MAAM,MAAM,KAAK,KAAK,MAAM,MAAM,MAAM,KAAK,IAAI,MAAM,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,MAAM,KAAK,IAAI,MAAM,MAAM,IAAI,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,IAAI,IAAI,IAAI,KAAK,MAAM,MAAM,MAAM,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,MAAM,MAAM,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,MAAM,MAAM,KAAK,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,KAAK,KAAK,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,IAAI,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,IAAI,IAAI,IAAI,IAAI,IAAI,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,KAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,IAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,KAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,KAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,KAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,KAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,KAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,KAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,KAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,IAAI,IAAI,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,MAAM,OAAO,MAAM,OAAO,MAAM,MAAM,MAAM,MAAM,MAAM,OAAO,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,MAAM,MAAM,MAAM,MAAM,MAAM,KAAK,KAAK,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,KAAK,KAAK,KAAK,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,KAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,KAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,KAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,KAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,KAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,KAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,IAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,MAAM,OAAO,MAAM,OAAO,OAAO,MAAM,MAAM,MAAM,MAAM,MAAM,OAAO,OAAO,MAAM,OAAO,MAAM,OAAO,MAAM,MAAM,MAAM,OAAO,OAAO,OAAO,OAAO,OAAO,MAAM,OAAO,MAAM,OAAO,OAAO,OAAO,OAAO,OAAO,MAAM,OAAO,MAAM,OAAO,OAAO,MAAM,OAAO,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,OAAO,OAAO,MAAM,OAAO,MAAM,OAAO,OAAO,OAAO,OAAO,OAAO,OAAO,OAAO,MAAM,MAAM,OAAO,OAAO,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,OAAO,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,OAAO,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,OAAO,MAAM,OAAO,MAAM,MAAM,OAAO,OAAO,OAAO,MAAM,MAAM,OAAO,MAAM,OAAO,MAAM,MAAM,MAAM,MAAM,MAAM,OAAO,MAAM,MAAM,MAAM,MAAM,OAAO,MAAM,MAAM,OAAO,OAAO,MAAM,MAAM,OAAO,MAAM,MAAM,MAAM,MAAM,OAAO,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,OAAO,MAAM,OAAO,OAAO,MAAM,OAAO,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,OAAO,OAAO,MAAM,MAAM,MAAM,MAAM,OAAO,OAAO,MAAM,OAAO,OAAO,OAAO,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,OAAO,OAAO,MAAM,OAAO,MAAM,OAAO,MAAM,MAAM,OAAO,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,OAAO,MAAM,OAAO,MAAM,OAAO,MAAM,MAAM,MAAM,MAAM,OAAO,MAAM,OAAO,MAAM,OAAO,OAAO,MAAM,OAAO,MAAM,MAAM,MAAM,MAAM,MAAM,OAAO,MAAM,MAAM,MAAM,OAAO,OAAO,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,OAAO,MAAM,MAAM,OAAO,MAAM,MAAM,OAAO,OAAO,OAAO,OAAO,MAAM,OAAO,OAAO,OAAO,MAAM,OAAO,OAAO,MAAM,OAAO,MAAM,MAAM,MAAM,OAAO,MAAM,MAAM,MAAM,MAAM,MAAM,OAAO,OAAO,MAAM,OAAO,MAAM,OAAO,MAAM,MAAM,MAAM,MAAM,MAAM,OAAO,MAAM,MAAM,OAAO,MAAM,MAAM,OAAO,OAAO,OAAO,MAAM,MAAM,MAAM,MAAM,OAAO,MAAM,MAAM,MAAM,OAAO,OAAO,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,OAAO,OAAO,MAAM,MAAM,MAAM,OAAO,MAAM,MAAM,MAAM,MAAM,OAAO,OAAO,OAAO,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,OAAO,OAAO,MAAM,MAAM,MAAM,MAAM,OAAO,MAAM,MAAM,OAAO,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,OAAO,OAAO,MAAM,MAAM,OAAO,MAAM,OAAO,OAAO,MAAM,OAAO,MAAM,MAAM,OAAO,MAAM,MAAM,OAAO,MAAM,MAAM,MAAM,OAAO,OAAO,OAAO,OAAO,MAAM,OAAO,OAAO,MAAM,MAAM,OAAO,MAAM,MAAM,MAAM,MAAM,OAAO,MAAM,MAAM,MAAM,MAAM,MAAM,OAAO,OAAO,OAAO,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,OAAO,OAAO,MAAM,MAAM,OAAO,MAAM,MAAM,OAAO,OAAO,MAAM,OAAO,OAAO,MAAM,MAAM,OAAO,OAAO,MAAM,MAAM,MAAM,MAAM,OAAO,MAAM,OAAO,MAAM,OAAO,MAAM,OAAO,MAAM,MAAM,MAAM,OAAO,OAAO,MAAM,MAAM,OAAO,MAAM,OAAO,OAAO,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,OAAO,OAAO,MAAM,MAAM,MAAM,OAAO,MAAM,OAAO,MAAM,MAAM,MAAM,OAAO,MAAM,MAAM,MAAM,OAAO,MAAM,OAAO,OAAO,MAAM,OAAO,OAAO,MAAM,OAAO,MAAM,OAAO,MAAM,MAAM,OAAO,OAAO,OAAO,OAAO,OAAO,MAAM,OAAO,MAAM,MAAM,OAAO,OAAO,MAAM,MAAM,OAAO,MAAM,MAAM,MAAM,OAAO,OAAO,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,OAAO,OAAO,MAAM,OAAO,MAAM,MAAM,OAAO,MAAM,MAAM,OAAO,MAAM,MAAM,MAAM,MAAM,OAAO,MAAM,MAAM,MAAM,OAAO,MAAM,MAAM,MAAM,MAAM,OAAO,MAAM,MAAM,MAAM,OAAO,OAAO,MAAM,OAAO,MAAM,MAAM,MAAM,MAAM,OAAO,MAAM,MAAM,OAAO,MAAM,MAAM,MAAM,OAAO,MAAM,OAAO,OAAO,OAAO,MAAM,MAAM,OAAO,MAAM,OAAO,MAAM,MAAM,OAAO,OAAO,OAAO,MAAM,MAAM,MAAM,OAAO,MAAM,OAAO,OAAO,OAAO,OAAO,OAAO,MAAM,MAAM,OAAO,MAAM,OAAO,OAAO,MAAM,MAAM,OAAO,OAAO,OAAO,MAAM,MAAM,MAAM,MAAM,OAAO,OAAO,OAAO,MAAM,OAAO,MAAM,MAAM,MAAM,MAAM,OAAO,MAAM,OAAO,MAAM,OAAO,MAAM,MAAM,MAAM,OAAO,MAAM,MAAM,MAAM,OAAO,MAAM,OAAO,OAAO,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,OAAO,MAAM,MAAM,OAAO,MAAM,OAAO,OAAO,OAAO,OAAO,OAAO,OAAO,MAAM,OAAO,OAAO,OAAO,OAAO,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,OAAO,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,OAAO,MAAM,MAAM,OAAO,MAAM,OAAO,OAAO,OAAO,MAAM,OAAO,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,OAAO,MAAM,MAAM,OAAO,MAAM,MAAM,MAAM,MAAM,OAAO,MAAM,MAAM,MAAM,MAAM,MAAM,OAAO,OAAO,MAAM,OAAO,MAAM,MAAM,MAAM,MAAM,OAAO,OAAO,MAAM,MAAM,OAAO,OAAO,OAAO,MAAM,MAAM,OAAO,OAAO,OAAO,MAAM,MAAM,MAAM,OAAO,MAAM,OAAO,MAAM,MAAM,OAAO,MAAM,OAAO,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,OAAO,OAAO,OAAO,OAAO,MAAM,OAAO,OAAO,MAAM,OAAO,MAAM,MAAM,MAAM,OAAO,OAAO,MAAM,OAAO,MAAM,MAAM,MAAM,MAAM,MAAM,OAAO,MAAM,OAAO,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,OAAO,MAAM,MAAM,MAAM,OAAO,OAAO,MAAM,MAAM,MAAM,MAAM,OAAO,MAAM,OAAO,OAAO,OAAO,MAAM,MAAM,MAAM,MAAM,OAAO,MAAM,OAAO,MAAM,OAAO,OAAO,OAAO,MAAM,MAAM,OAAO,OAAO,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,OAAO,MAAM,MAAM,MAAM,OAAO,MAAM,MAAM,OAAO,OAAO,OAAO,MAAM,MAAM,MAAM,MAAM,OAAO,MAAM,OAAO,MAAM,MAAM,MAAM,OAAO,MAAM,MAAM,OAAO,OAC36nH,SAAS,CAAC,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,MAAM,MAAM,KAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,KAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,KAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,MAAM,MAAM,IAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,KAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,IAAI,KAAK,KAAK,IAAI,MAAM,IAAI,KAAK,KAAK,MAAM,KAAK,KAAK,KAAK,KAAK,KAAK,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,IAAI,IAAI,IAAI,KAAK,KAAK,KAAK,KAAK,KAAK,IAAI,KAAK,KAAK,KAAK,KAAK,MAAM,MAAM,MAAM,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,IAAI,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,MAAM,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,KAAK,KAAK,KAAK,KAAK,IAAI,MAAM,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,KAAK,KAAK,KAAK,IAAI,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,IAAI,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,MAAM,MAAM,KAAK,MAAM,KAAK,MAAM,MAAM,KAAK,KAAK,IAAI,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,KAAK,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,KAAK,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,IAAI,IAAI,IAAI,IAAI,KAAK,IAAI,KAAK,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,KAAK,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,IAAI,KAAK,KAAK,IAAI,IAAI,KAAK,KAAK,KAAK,KAAK,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,IAAI,IAAI,IAAI,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,KAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,KAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,KAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,KAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,KAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,KAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,KAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,KAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,KAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,KAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,KAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,KAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,MAAM,MAAM,IAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,KAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,KAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,MACl/pI,QAAU,CAAC,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,IAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,KAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,KAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,KAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,IAAI,IAAI,IAAI,IAAI,MAAM,MAAM,KAAK,MAAM,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,IAAI,IAAI,IAAI,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,IAAI,KAAK,KAAK,KAAK,MAAM,IAAI,MAAM,MAAM,KAAK,IAAI,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,KAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,IAAI,IAAI,IAAI,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,KAAK,IAAI,IAAI,IAAI,IAAI,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,KAAK,MAAM,MAAM,KAAK,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,KAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,KAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,KAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,IAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,KAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,KAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,KAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,KAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,KAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,KAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,KAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,KAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,KAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,KAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,KAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,KAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,IAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,KAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,OAChw3I,iBAAiB,CAAC,CAAC,EAAE,KAAK,CAAC,GAAG,KAAK,CAAC,GAAG,KAAK,CAAC,GAAG,KAAK,CAAC,GAAG,KAAK,CAAC,GAAG,KAAK,CAAC,GAAG,KAAK,CAAC,GAAG,KAAK,CAAC,GAAG,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,MAAM,CAAC,IAAI,MAAM,CAAC,IAAI,MAAM,CAAC,KAAK,MAAM,CAAC,KAAK,MAAM,CAAC,KAAK,MAAM,CAAC,KAAK,MAAM,CAAC,KAAK,MAAM,CAAC,KAAK,MAAM,CAAC,KAAK,MAAM,CAAC,KAAK,MAAM,CAAC,KAAK,MAAM,CAAC,KAAK,MAAM,CAAC,KAAK,MAAM,CAAC,KAAK,MAAM,CAAC,KAAK,MAAM,CAAC,KAAK,MAAM,CAAC,KAAK,MAAM,CAAC,KAAK,MAAM,CAAC,KAAK,MAAM,CAAC,KAAK,MAAM,CAAC,KAAK,MAAM,CAAC,KAAK,MAAM,CAAC,KAAK,MAAM,CAAC,KAAK,MAAM,CAAC,KAAK,MAAM,CAAC,KAAK,MAAM,CAAC,KAAK,MAAM,CAAC,KAAK,MAAM,CAAC,KAAK,MAAM,CAAC,KAAK,MAAM,CAAC,KAAK,MAAM,CAAC,KAAK,MAAM,CAAC,KAAK,MAAM,CAAC,KAAK,MAAM,CAAC,KAAK,MAAM,CAAC,KAAK,MAAM,CAAC,KAAK,MAAM,CAAC,KAAK,MAAM,CAAC,KAAK,MAAM,CAAC,KAAK,MAAM,CAAC,KAAK,MAAM,CAAC,KAAK,MAAM,CAAC,KAAK,MAAM,CAAC,KAAK,MAAM,CAAC,KAAK,MAAM,CAAC,KAAK,MAAM,CAAC,KAAK,MAAM,CAAC,KAAK,MAAM,CAAC,KAAK,MAAM,CAAC,KAAK,MAAM,CAAC,KAAK,MAAM,CAAC,KAAK,MAAM,CAAC,KAAK,MAAM,CAAC,KAAK,MAAM,CAAC,KAAK,MAAM,CAAC,KAAK,MAAM,CAAC,KAAK,MAAM,CAAC,KAAK,MAAM,CAAC,KAAK,MAAM,CAAC,KAAK,MAAM,CAAC,KAAK,MAAM,CAAC,MAAM,OAAO,CAAC,MAAM,OAAO,CAAC,MAAM,OAAO,CAAC,MAAM,OAAO,CAAC,MAAM,OAAO,CAAC,MAAM,OAAO,CAAC,MAAM,OAAO,CAAC,MAAM,OAAO,CAAC,MAAM,OAAO,CAAC,MAAM,OAAO,CAAC,MAAM,OAAO,CAAC,MAAM,OAAO,CAAC,MAAM,OAAO,CAAC,MAAM,OAAO,CAAC,MAAM,OAAO,CAAC,MAAM,OAAO,CAAC,MAAM,OAAO,CAAC,MAAM,OAAO,CAAC,MAAM,OAAO,CAAC,MAAM,OAAO,CAAC,MAAM,OAAO,CAAC,MAAM,OAAO,CAAC,MAAM,OAAO,CAAC,MAAM,OAAO,CAAC,MAAM,OAAO,CAAC,MAAM,OAAO,CAAC,MAAM,OAAO,CAAC,MAAM,OAAO,CAAC,MAAM,OAAO,CAAC,MAAM,OAAO,CAAC,MAAM,OAAO,CAAC,MAAM,OAAO,CAAC,MAAM,OAAO,CAAC,MAAM,OAAO,CAAC,MAAM,OAAO,CAAC,MAAM,OAAO,CAAC,MAAM,OAAO,CAAC,MAAM,OAAO,CAAC,MAAM,OAAO,CAAC,MAAM,OAAO,CAAC,MAAM,OAAO,CAAC,MAAM,OAAO,CAAC,MAAM,OAAO,CAAC,MAAM,OAAO,CAAC,MAAM,OAAO,CAAC,MAAM,OAAO,CAAC,MAAM,OAAO,CAAC,MAAM,OAAO,CAAC,MAAM,OAAO,CAAC,MAAM,OAAO,CAAC,MAAM,OAAO,CAAC,MAAM,OAAO,CAAC,MAAM,OAAO,CAAC,MAAM,OAAO,CAAC,MAAM,OAAO,CAAC,MAAM,OAAO,CAAC,MAAM,OAAO,CAAC,MAAM,OAAO,CAAC,MAAM,OAAO,CAAC,MAAM,OAAO,CAAC,MAAM,OAAO,CAAC,MAAM,OAAO,CAAC,MAAM,OAAO,CAAC,MAAM,OAAO,CAAC,MAAM,OAAO,CAAC,MAAM,OAAO,CAAC,MAAM,OAAO,CAAC,MAAM,OAAO,CAAC,MAAM,OAAO,CAAC,MAAM,OAAO,CAAC,MAAM,OAAO,CAAC,MAAM,OAAO,CAAC,MAAM,OAAO,CAAC,MAAM,OAAO,CAAC,MAAM,OAAO,CAAC,MAAM,OAAO,CAAC,MAAM,OAAO,CAAC,MAAM,OAAO,CAAC,MAAM,OAAO,CAAC,MAAM,OAAO,CAAC,MAAM,OAAO,CAAC,MAAM,OAAO,CAAC,MAAM,OAAO,CAAC,MAAM,OAAO,CAAC,MAAM,OAAO,CAAC,MAAM,OAAO,CAAC,MAAM,OAAO,CAAC,MAAM,OAAO,CAAC,MAAM,OAAO,CAAC,MAAM,OAAO,CAAC,MAAM,OAAO,CAAC,MAAM,OAAO,CAAC,MAAM,OAAO,CAAC,MAAM,OAAO,CAAC,MAAM,OAAO,CAAC,MAAM,OAAO,CAAC,MAAM,OAAO,CAAC,MAAM,OAAO,CAAC,MAAM,OAAO,CAAC,MAAM,OAAO,CAAC,MAAM,OAAO,CAAC,MAAM,OAAO,CAAC,MAAM,OAAO,CAAC,MAAM,OAAO,CAAC,MAAM,OAAO,CAAC,MAAO,QACzjF,QAAU,CAAC,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,IAAI,MAAM,IAAI,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,KAAK,KAAK,MAAM,MAAM,MAAM,KAAK,MAAM,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,IAAI,IAAI,IAAI,MAAM,KAAK,MAAM,MAAM,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,IAAI,KAAK,KAAK,KAAK,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,IAAI,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,MAAM,KAAK,KAAK,KAAK,KAAK,MAAM,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,MAAM,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,IAAI,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,KAAK,KAAK,KAAK,KAAK,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,MAAM,MAAM,MAAM,KAAK,MAAM,KAAK,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,KAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,KAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,KAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,IAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,KAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,KAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,KAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,KAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,KAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,MAAM,MAAM,MAAM,MAAM,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,MAAM,MAAM,MAAM,MAAM,MAAM,KAAK,KAAK,KAAK,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,MACxx8D,QAAU,CAAC,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,MAAM,IAAI,IAAI,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,IAAI,IAAI,IAAI,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,IAAI,IAAI,IAAI,IAAI,KAAK,IAAI,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,IAAI,IAAI,IAAI,IAAI,IAAI,KAAK,IAAI,KAAK,IAAI,IAAI,KAAK,IAAI,KAAK,KAAK,KAAK,KAAK,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,IAAI,IAAI,KAAK,IAAI,KAAK,IAAI,KAAK,IAAI,IAAI,KAAK,IAAI,IAAI,IAAI,KAAK,IAAI,IAAI,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,KAAK,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,KAAK,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,KAAK,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,KAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,KAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,MACvlhD,OAAS,CAAC,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,IAAI,KAAK,IAAI,KAAK,KAAK,IAAI,KAAK,KACloB,aAAa,CAAC,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,KAC1gB,aAAa,CAAC,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,KAAK,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,KAAK,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,KAAK,IAAI,IAAI,IAAI,IAAI,KAAK,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,KAAK,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,KAAK,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,KAAK,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,KACjhB,aAAa,CAAC,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,KAC1gB,aAAa,CAAC,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,IAAI,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,IAAI,KAAK,MACtmB,aAAa,CAAC,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,KAAK,KAAK,KAAK,IAAI,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,IAAI,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,MACtmB,aAAa,CAAC,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,KAAK,KAAK,IAAI,KAAK,KAAK,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,KAAK,KAAK,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,KAAK,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,MACjhB,aAAa,CAAC,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,KAAK,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,MAC3kB,cAAc,CAAC,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,KAAK,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,KAC5gB,cAAc,CAAC,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,KAAK,IAAI,IAAI,IAAI,KAAK,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,KAAK,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,MAC9gB,cAAc,CAAC,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,KAAK,KAAK,IAAI,IAAI,IAAI,KAAK,IAAI,KAAK,IAAI,KAAK,KAAK,KAAK,IAAI,IAAI,IAAI,KAAK,KAAK,IAAI,IAAI,KAAK,KAAK,IAAI,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,KAAK,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,KAAK,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,KACjiB,cAAc,CAAC,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,KAAK,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,KAC5gB,cAAc,CAAC,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,KAAK,KAAK,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,KAAK,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,KAC9gB,SAAS,CAAC,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,IAAI,KAAK,IAAI,IAAI,IAAI,IAAI,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,IAAI,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,MAC/nB,SAAS,CAAC,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,IAAI,KAAK,IAAI,IAAI,IAAI,IAAI,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,IAAI,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,MAC/nB,UAAY,CAAC,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,KAAK,IAAI,IAAI,IAAI,IAAI,KAAK,IAAI,IAAI,IAAI,IAAI,KAAK,IAAI,IAAI,KAAK,IAAI,IAAI,KAAK,IAAI,KAAK,KAAK,IAAI,IAAI,KAAK,KAAK,KAAK,IAAI,KAAK,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,KAAK,IAAI,KAAK,KAAK,IAAI,IAAI,KAAK,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,IAAI,KAAK,IAAI,IAAI,KAAK,KAAK,KAAK,KAAK,MAAM,MAAM,KAAK,IAAI,KAAK,KAAK,KAAK,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,MAAM,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,KAC7iB,cAAc,CAAC,KAAK,IAAI,IAAI,IAAI,IAAI,KAAK,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,MAClnB,eAAe,CAAC,KAAK,IAAI,KAAK,IAAI,KAAK,KAAK,KAAK,KAAK,IAAI,KAAK,IAAI,KAAK,IAAI,IAAI,IAAI,IAAI,IAAI,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,IAAI,KAAK,IAAI,KAAK,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,KAC7hB,eAAe,CAAC,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,IAAI,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,IAAI,KAAK,KAAK,KAAK,IAAI,KAAK,IAAI,IAAI,KAAK,IAAI,KAAK,IAAI,IAAI,IAAI,IAAI,KAAK,IAAI,IAAI,KAAK,KAAK,KAAK,IAAI,IAAI,IAAI,KAAK,KAAK,KAAK,IAAI,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,MAC3nB,eAAe,CAAC,KAAK,IAAI,KAAK,IAAI,KAAK,KAAK,KAAK,KAAK,IAAI,KAAK,IAAI,KAAK,IAAI,IAAI,IAAI,IAAI,IAAI,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,IAAI,KAAK,IAAI,KAAK,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,KAC7hB,eAAe,CAAC,KAAK,IAAI,KAAK,IAAI,KAAK,KAAK,KAAK,KAAK,IAAI,KAAK,IAAI,KAAK,IAAI,IAAI,IAAI,IAAI,IAAI,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,IAAI,KAAK,IAAI,KAAK,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,KAAK,IAAI,IAAI,IAAI,IAAI,KAAK,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,KAAK,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,MAChiB,eAAe,CAAC,KAAK,IAAI,KAAK,IAAI,KAAK,KAAK,KAAK,KAAK,IAAI,KAAK,IAAI,KAAK,IAAI,IAAI,IAAI,IAAI,IAAI,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,IAAI,KAAK,IAAI,KAAK,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,KAC7hB,eAAe,CAAC,KAAK,IAAI,KAAK,IAAI,KAAK,KAAK,KAAK,KAAK,IAAI,KAAK,IAAI,KAAK,IAAI,IAAI,IAAI,IAAI,IAAI,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,IAAI,KAAK,IAAI,KAAK,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,KAAK,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,MAC7lB,eAAe,CAAC,KAAK,KAAK,KAAK,IAAI,KAAK,KAAK,KAAK,KAAK,IAAI,KAAK,KAAK,KAAK,IAAI,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,IAAI,KAAK,KAAK,KAAK,IAAI,KAAK,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,KAAK,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,KAAK,IAAI,IAAI,IAAI,IAAI,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,IAAI,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,IAAI,KAAK,IAAI,KAAK,KAAK,KAAK,KAAK,IAAI,IAAI,IAAI,IAAI,IAAI,KAAK,KAAK,IAAI,IAAI,KAAK,KAAK,KAAK,KAAK,IAAI,KAAK,KAAK,IAAI,KAAK,IAAI,KAAK,IAAI,IAAI,KAAK,KAAK,MAC5lB,eAAe,CAAC,KAAK,IAAI,KAAK,IAAI,KAAK,KAAK,KAAK,KAAK,IAAI,KAAK,IAAI,KAAK,IAAI,IAAI,IAAI,IAAI,IAAI,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,IAAI,KAAK,IAAI,KAAK,IAAI,IAAI,IAAI,IAAI,IAAI,KAAK,IAAI,IAAI,IAAI,KAAK,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,KAC/hB,eAAe,CAAC,KAAK,IAAI,KAAK,IAAI,KAAK,KAAK,KAAK,KAAK,IAAI,KAAK,IAAI,KAAK,IAAI,IAAI,IAAI,IAAI,IAAI,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,IAAI,KAAK,IAAI,KAAK,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,I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","file":"solid-auth-client.bundle.js","sourcesContent":["(function webpackUniversalModuleDefinition(root, factory) {\n\tif(typeof exports === 'object' && typeof module === 'object')\n\t\tmodule.exports = factory(require(\"fetch\"), require(\"window\"));\n\telse if(typeof define === 'function' && define.amd)\n\t\tdefine([\"fetch\", \"window\"], factory);\n\telse if(typeof exports === 'object')\n\t\texports[\"auth\"] = factory(require(\"fetch\"), require(\"window\"));\n\telse\n\t\troot[\"solid\"] = root[\"solid\"] || {}, root[\"solid\"][\"auth\"] = factory(root[\"fetch\"], root[\"window\"]);\n})(window, function(__WEBPACK_EXTERNAL_MODULE__5__, __WEBPACK_EXTERNAL_MODULE__6__) {\nreturn "," \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 \t\t}\n \t\t// Create a new module (and put it into the cache)\n \t\tvar module = installedModules[moduleId] = {\n \t\t\ti: moduleId,\n \t\t\tl: false,\n \t\t\texports: {}\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.l = 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// define getter function for harmony exports\n \t__webpack_require__.d = function(exports, name, getter) {\n \t\tif(!__webpack_require__.o(exports, name)) {\n \t\t\tObject.defineProperty(exports, name, { enumerable: true, get: getter });\n \t\t}\n \t};\n\n \t// define __esModule on exports\n \t__webpack_require__.r = function(exports) {\n \t\tif(typeof Symbol !== 'undefined' && Symbol.toStringTag) {\n \t\t\tObject.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });\n \t\t}\n \t\tObject.defineProperty(exports, '__esModule', { value: true });\n \t};\n\n \t// create a fake namespace object\n \t// mode & 1: value is a module id, require it\n \t// mode & 2: merge all properties of value into the ns\n \t// mode & 4: return value when already ns object\n \t// mode & 8|1: behave like require\n \t__webpack_require__.t = function(value, mode) {\n \t\tif(mode & 1) value = __webpack_require__(value);\n \t\tif(mode & 8) return value;\n \t\tif((mode & 4) && typeof value === 'object' && value && value.__esModule) return value;\n \t\tvar ns = Object.create(null);\n \t\t__webpack_require__.r(ns);\n \t\tObject.defineProperty(ns, 'default', { enumerable: true, value: value });\n \t\tif(mode & 2 && typeof value != 'string') for(var key in value) __webpack_require__.d(ns, key, function(key) { return value[key]; }.bind(null, key));\n \t\treturn ns;\n \t};\n\n \t// getDefaultExport function for compatibility with non-harmony modules\n \t__webpack_require__.n = function(module) {\n \t\tvar getter = module && module.__esModule ?\n \t\t\tfunction getDefault() { return module['default']; } :\n \t\t\tfunction getModuleExports() { return module; };\n \t\t__webpack_require__.d(getter, 'a', getter);\n \t\treturn getter;\n \t};\n\n \t// Object.prototype.hasOwnProperty.call\n \t__webpack_require__.o = function(object, property) { return Object.prototype.hasOwnProperty.call(object, property); };\n\n \t// __webpack_public_path__\n \t__webpack_require__.p = \"\";\n\n\n \t// Load entry module and return exports\n \treturn __webpack_require__(__webpack_require__.s = 57);\n","function _defineProperty(obj, key, value) {\n if (key in obj) {\n Object.defineProperty(obj, key, {\n value: value,\n enumerable: true,\n configurable: true,\n writable: true\n });\n } else {\n obj[key] = value;\n }\n\n return obj;\n}\n\nmodule.exports = _defineProperty;","/*!\n * The buffer module from node.js, for the browser.\n *\n * @author Feross Aboukhadijeh \n * @license MIT\n */\n/* eslint-disable no-proto */\n\n'use strict'\n\nvar base64 = require('base64-js')\nvar ieee754 = require('ieee754')\nvar isArray = require('isarray')\n\nexports.Buffer = Buffer\nexports.SlowBuffer = SlowBuffer\nexports.INSPECT_MAX_BYTES = 50\n\n/**\n * If `Buffer.TYPED_ARRAY_SUPPORT`:\n * === true Use Uint8Array implementation (fastest)\n * === false Use Object 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 * Due to various browser bugs, sometimes the Object implementation will be used even\n * when the browser supports typed arrays.\n *\n * Note:\n *\n * - Firefox 4-29 lacks support for adding new properties to `Uint8Array` instances,\n * See: https://bugzilla.mozilla.org/show_bug.cgi?id=695438.\n *\n * - Chrome 9-10 is missing the `TypedArray.prototype.subarray` function.\n *\n * - IE10 has a broken `TypedArray.prototype.subarray` function which returns arrays of\n * incorrect length in some situations.\n\n * We detect these buggy browsers and set `Buffer.TYPED_ARRAY_SUPPORT` to `false` so they\n * get the Object implementation, which is slower but behaves correctly.\n */\nBuffer.TYPED_ARRAY_SUPPORT = global.TYPED_ARRAY_SUPPORT !== undefined\n ? global.TYPED_ARRAY_SUPPORT\n : typedArraySupport()\n\n/*\n * Export kMaxLength after typed array support is determined.\n */\nexports.kMaxLength = kMaxLength()\n\nfunction typedArraySupport () {\n try {\n var arr = new Uint8Array(1)\n arr.__proto__ = {__proto__: Uint8Array.prototype, foo: function () { return 42 }}\n return arr.foo() === 42 && // typed array instances can be augmented\n typeof arr.subarray === 'function' && // chrome 9-10 lack `subarray`\n arr.subarray(1, 1).byteLength === 0 // ie10 has broken `subarray`\n } catch (e) {\n return false\n }\n}\n\nfunction kMaxLength () {\n return Buffer.TYPED_ARRAY_SUPPORT\n ? 0x7fffffff\n : 0x3fffffff\n}\n\nfunction createBuffer (that, length) {\n if (kMaxLength() < length) {\n throw new RangeError('Invalid typed array length')\n }\n if (Buffer.TYPED_ARRAY_SUPPORT) {\n // Return an augmented `Uint8Array` instance, for best performance\n that = new Uint8Array(length)\n that.__proto__ = Buffer.prototype\n } else {\n // Fallback: Return an object instance of the Buffer class\n if (that === null) {\n that = new Buffer(length)\n }\n that.length = length\n }\n\n return that\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 if (!Buffer.TYPED_ARRAY_SUPPORT && !(this instanceof Buffer)) {\n return new Buffer(arg, encodingOrOffset, length)\n }\n\n // Common case.\n if (typeof arg === 'number') {\n if (typeof encodingOrOffset === 'string') {\n throw new Error(\n 'If encoding is specified then the first argument must be a string'\n )\n }\n return allocUnsafe(this, arg)\n }\n return from(this, arg, encodingOrOffset, length)\n}\n\nBuffer.poolSize = 8192 // not used by this implementation\n\n// TODO: Legacy, not needed anymore. Remove in next major version.\nBuffer._augment = function (arr) {\n arr.__proto__ = Buffer.prototype\n return arr\n}\n\nfunction from (that, value, encodingOrOffset, length) {\n if (typeof value === 'number') {\n throw new TypeError('\"value\" argument must not be a number')\n }\n\n if (typeof ArrayBuffer !== 'undefined' && value instanceof ArrayBuffer) {\n return fromArrayBuffer(that, value, encodingOrOffset, length)\n }\n\n if (typeof value === 'string') {\n return fromString(that, value, encodingOrOffset)\n }\n\n return fromObject(that, value)\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(null, value, encodingOrOffset, length)\n}\n\nif (Buffer.TYPED_ARRAY_SUPPORT) {\n Buffer.prototype.__proto__ = Uint8Array.prototype\n Buffer.__proto__ = Uint8Array\n if (typeof Symbol !== 'undefined' && Symbol.species &&\n Buffer[Symbol.species] === Buffer) {\n // Fix subarray() in ES2016. See: https://github.com/feross/buffer/pull/97\n Object.defineProperty(Buffer, Symbol.species, {\n value: null,\n configurable: true\n })\n }\n}\n\nfunction assertSize (size) {\n if (typeof size !== 'number') {\n throw new TypeError('\"size\" argument must be a number')\n } else if (size < 0) {\n throw new RangeError('\"size\" argument must not be negative')\n }\n}\n\nfunction alloc (that, size, fill, encoding) {\n assertSize(size)\n if (size <= 0) {\n return createBuffer(that, 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 interpretted as a start offset.\n return typeof encoding === 'string'\n ? createBuffer(that, size).fill(fill, encoding)\n : createBuffer(that, size).fill(fill)\n }\n return createBuffer(that, 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(null, size, fill, encoding)\n}\n\nfunction allocUnsafe (that, size) {\n assertSize(size)\n that = createBuffer(that, size < 0 ? 0 : checked(size) | 0)\n if (!Buffer.TYPED_ARRAY_SUPPORT) {\n for (var i = 0; i < size; ++i) {\n that[i] = 0\n }\n }\n return that\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(null, 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(null, size)\n}\n\nfunction fromString (that, string, encoding) {\n if (typeof encoding !== 'string' || encoding === '') {\n encoding = 'utf8'\n }\n\n if (!Buffer.isEncoding(encoding)) {\n throw new TypeError('\"encoding\" must be a valid string encoding')\n }\n\n var length = byteLength(string, encoding) | 0\n that = createBuffer(that, length)\n\n var actual = that.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 that = that.slice(0, actual)\n }\n\n return that\n}\n\nfunction fromArrayLike (that, array) {\n var length = array.length < 0 ? 0 : checked(array.length) | 0\n that = createBuffer(that, length)\n for (var i = 0; i < length; i += 1) {\n that[i] = array[i] & 255\n }\n return that\n}\n\nfunction fromArrayBuffer (that, array, byteOffset, length) {\n array.byteLength // this throws if `array` is not a valid ArrayBuffer\n\n if (byteOffset < 0 || array.byteLength < byteOffset) {\n throw new RangeError('\\'offset\\' is out of bounds')\n }\n\n if (array.byteLength < byteOffset + (length || 0)) {\n throw new RangeError('\\'length\\' is out of bounds')\n }\n\n if (byteOffset === undefined && length === undefined) {\n array = new Uint8Array(array)\n } else if (length === undefined) {\n array = new Uint8Array(array, byteOffset)\n } else {\n array = new Uint8Array(array, byteOffset, length)\n }\n\n if (Buffer.TYPED_ARRAY_SUPPORT) {\n // Return an augmented `Uint8Array` instance, for best performance\n that = array\n that.__proto__ = Buffer.prototype\n } else {\n // Fallback: Return an object instance of the Buffer class\n that = fromArrayLike(that, array)\n }\n return that\n}\n\nfunction fromObject (that, obj) {\n if (Buffer.isBuffer(obj)) {\n var len = checked(obj.length) | 0\n that = createBuffer(that, len)\n\n if (that.length === 0) {\n return that\n }\n\n obj.copy(that, 0, 0, len)\n return that\n }\n\n if (obj) {\n if ((typeof ArrayBuffer !== 'undefined' &&\n obj.buffer instanceof ArrayBuffer) || 'length' in obj) {\n if (typeof obj.length !== 'number' || isnan(obj.length)) {\n return createBuffer(that, 0)\n }\n return fromArrayLike(that, obj)\n }\n\n if (obj.type === 'Buffer' && isArray(obj.data)) {\n return fromArrayLike(that, obj.data)\n }\n }\n\n throw new TypeError('First argument must be a string, Buffer, ArrayBuffer, Array, or array-like object.')\n}\n\nfunction checked (length) {\n // Note: cannot use `length < kMaxLength()` here because that fails when\n // length is NaN (which is otherwise coerced to zero.)\n if (length >= kMaxLength()) {\n throw new RangeError('Attempt to allocate Buffer larger than maximum ' +\n 'size: 0x' + kMaxLength().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)\n}\n\nBuffer.compare = function compare (a, b) {\n if (!Buffer.isBuffer(a) || !Buffer.isBuffer(b)) {\n throw new TypeError('Arguments must be Buffers')\n }\n\n if (a === b) return 0\n\n var x = a.length\n var y = b.length\n\n for (var 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 (!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 var 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 var buffer = Buffer.allocUnsafe(length)\n var pos = 0\n for (i = 0; i < list.length; ++i) {\n var buf = list[i]\n if (!Buffer.isBuffer(buf)) {\n throw new TypeError('\"list\" argument must be an Array of Buffers')\n }\n buf.copy(buffer, pos)\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 (typeof ArrayBuffer !== 'undefined' && typeof ArrayBuffer.isView === 'function' &&\n (ArrayBuffer.isView(string) || string instanceof ArrayBuffer)) {\n return string.byteLength\n }\n if (typeof string !== 'string') {\n string = '' + string\n }\n\n var len = string.length\n if (len === 0) return 0\n\n // Use a for loop to avoid recursion\n var 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 case undefined:\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) return utf8ToBytes(string).length // assume utf8\n encoding = ('' + encoding).toLowerCase()\n loweredCase = true\n }\n }\n}\nBuffer.byteLength = byteLength\n\nfunction slowToString (encoding, start, end) {\n var 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 coersion 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// The property is used by `Buffer.isBuffer` and `is-buffer` (in Safari 5-7) to detect\n// Buffer instances.\nBuffer.prototype._isBuffer = true\n\nfunction swap (b, n, m) {\n var i = b[n]\n b[n] = b[m]\n b[m] = i\n}\n\nBuffer.prototype.swap16 = function swap16 () {\n var len = this.length\n if (len % 2 !== 0) {\n throw new RangeError('Buffer size must be a multiple of 16-bits')\n }\n for (var i = 0; i < len; i += 2) {\n swap(this, i, i + 1)\n }\n return this\n}\n\nBuffer.prototype.swap32 = function swap32 () {\n var len = this.length\n if (len % 4 !== 0) {\n throw new RangeError('Buffer size must be a multiple of 32-bits')\n }\n for (var 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 var len = this.length\n if (len % 8 !== 0) {\n throw new RangeError('Buffer size must be a multiple of 64-bits')\n }\n for (var 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 var length = this.length | 0\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.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 var str = ''\n var max = exports.INSPECT_MAX_BYTES\n if (this.length > 0) {\n str = this.toString('hex', 0, max).match(/.{2}/g).join(' ')\n if (this.length > max) str += ' ... '\n }\n return ''\n}\n\nBuffer.prototype.compare = function compare (target, start, end, thisStart, thisEnd) {\n if (!Buffer.isBuffer(target)) {\n throw new TypeError('Argument must be a Buffer')\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 var x = thisEnd - thisStart\n var y = end - start\n var len = Math.min(x, y)\n\n var thisCopy = this.slice(thisStart, thisEnd)\n var targetCopy = target.slice(start, end)\n\n for (var 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 (isNaN(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 (Buffer.TYPED_ARRAY_SUPPORT &&\n 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 var indexSize = 1\n var arrLength = arr.length\n var 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 var i\n if (dir) {\n var 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 var found = true\n for (var 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 var 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 // must be an even number of digits\n var strLen = string.length\n if (strLen % 2 !== 0) throw new TypeError('Invalid hex string')\n\n if (length > strLen / 2) {\n length = strLen / 2\n }\n for (var i = 0; i < length; ++i) {\n var parsed = parseInt(string.substr(i * 2, 2), 16)\n if (isNaN(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 latin1Write (buf, string, offset, length) {\n return asciiWrite(buf, string, 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 // legacy write(string, encoding, offset, length) - remove in v0.13\n } else {\n throw new Error(\n 'Buffer.write(string, encoding, offset[, length]) is no longer supported'\n )\n }\n\n var 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 var 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 return asciiWrite(this, string, offset, length)\n\n case 'latin1':\n case 'binary':\n return latin1Write(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 var res = []\n\n var i = start\n while (i < end) {\n var firstByte = buf[i]\n var codePoint = null\n var bytesPerSequence = (firstByte > 0xEF) ? 4\n : (firstByte > 0xDF) ? 3\n : (firstByte > 0xBF) ? 2\n : 1\n\n if (i + bytesPerSequence <= end) {\n var 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\nvar MAX_ARGUMENTS_LENGTH = 0x1000\n\nfunction decodeCodePointsArray (codePoints) {\n var 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 var res = ''\n var 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 var ret = ''\n end = Math.min(buf.length, end)\n\n for (var i = start; i < end; ++i) {\n ret += String.fromCharCode(buf[i] & 0x7F)\n }\n return ret\n}\n\nfunction latin1Slice (buf, start, end) {\n var ret = ''\n end = Math.min(buf.length, end)\n\n for (var i = start; i < end; ++i) {\n ret += String.fromCharCode(buf[i])\n }\n return ret\n}\n\nfunction hexSlice (buf, start, end) {\n var len = buf.length\n\n if (!start || start < 0) start = 0\n if (!end || end < 0 || end > len) end = len\n\n var out = ''\n for (var i = start; i < end; ++i) {\n out += toHex(buf[i])\n }\n return out\n}\n\nfunction utf16leSlice (buf, start, end) {\n var bytes = buf.slice(start, end)\n var res = ''\n for (var i = 0; i < bytes.length; 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 var 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 var newBuf\n if (Buffer.TYPED_ARRAY_SUPPORT) {\n newBuf = this.subarray(start, end)\n newBuf.__proto__ = Buffer.prototype\n } else {\n var sliceLen = end - start\n newBuf = new Buffer(sliceLen, undefined)\n for (var i = 0; i < sliceLen; ++i) {\n newBuf[i] = this[i + start]\n }\n }\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 = function readUIntLE (offset, byteLength, noAssert) {\n offset = offset | 0\n byteLength = byteLength | 0\n if (!noAssert) checkOffset(offset, byteLength, this.length)\n\n var val = this[offset]\n var mul = 1\n var i = 0\n while (++i < byteLength && (mul *= 0x100)) {\n val += this[offset + i] * mul\n }\n\n return val\n}\n\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 var val = this[offset + --byteLength]\n var mul = 1\n while (byteLength > 0 && (mul *= 0x100)) {\n val += this[offset + --byteLength] * mul\n }\n\n return val\n}\n\nBuffer.prototype.readUInt8 = function readUInt8 (offset, noAssert) {\n if (!noAssert) checkOffset(offset, 1, this.length)\n return this[offset]\n}\n\nBuffer.prototype.readUInt16LE = function readUInt16LE (offset, noAssert) {\n if (!noAssert) checkOffset(offset, 2, this.length)\n return this[offset] | (this[offset + 1] << 8)\n}\n\nBuffer.prototype.readUInt16BE = function readUInt16BE (offset, noAssert) {\n if (!noAssert) checkOffset(offset, 2, this.length)\n return (this[offset] << 8) | this[offset + 1]\n}\n\nBuffer.prototype.readUInt32LE = function readUInt32LE (offset, noAssert) {\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 = function readUInt32BE (offset, noAssert) {\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.readIntLE = function readIntLE (offset, byteLength, noAssert) {\n offset = offset | 0\n byteLength = byteLength | 0\n if (!noAssert) checkOffset(offset, byteLength, this.length)\n\n var val = this[offset]\n var mul = 1\n var 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 var i = byteLength\n var mul = 1\n var 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 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 if (!noAssert) checkOffset(offset, 2, this.length)\n var val = this[offset] | (this[offset + 1] << 8)\n return (val & 0x8000) ? val | 0xFFFF0000 : val\n}\n\nBuffer.prototype.readInt16BE = function readInt16BE (offset, noAssert) {\n if (!noAssert) checkOffset(offset, 2, this.length)\n var val = this[offset + 1] | (this[offset] << 8)\n return (val & 0x8000) ? val | 0xFFFF0000 : val\n}\n\nBuffer.prototype.readInt32LE = function readInt32LE (offset, noAssert) {\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 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.readFloatLE = function readFloatLE (offset, noAssert) {\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 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 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 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 = function writeUIntLE (value, offset, byteLength, noAssert) {\n value = +value\n offset = offset | 0\n byteLength = byteLength | 0\n if (!noAssert) {\n var maxBytes = Math.pow(2, 8 * byteLength) - 1\n checkInt(this, value, offset, byteLength, maxBytes, 0)\n }\n\n var mul = 1\n var 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 = function writeUIntBE (value, offset, byteLength, noAssert) {\n value = +value\n offset = offset | 0\n byteLength = byteLength | 0\n if (!noAssert) {\n var maxBytes = Math.pow(2, 8 * byteLength) - 1\n checkInt(this, value, offset, byteLength, maxBytes, 0)\n }\n\n var i = byteLength - 1\n var 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 = function writeUInt8 (value, offset, noAssert) {\n value = +value\n offset = offset | 0\n if (!noAssert) checkInt(this, value, offset, 1, 0xff, 0)\n if (!Buffer.TYPED_ARRAY_SUPPORT) value = Math.floor(value)\n this[offset] = (value & 0xff)\n return offset + 1\n}\n\nfunction objectWriteUInt16 (buf, value, offset, littleEndian) {\n if (value < 0) value = 0xffff + value + 1\n for (var i = 0, j = Math.min(buf.length - offset, 2); i < j; ++i) {\n buf[offset + i] = (value & (0xff << (8 * (littleEndian ? i : 1 - i)))) >>>\n (littleEndian ? i : 1 - i) * 8\n }\n}\n\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 if (Buffer.TYPED_ARRAY_SUPPORT) {\n this[offset] = (value & 0xff)\n this[offset + 1] = (value >>> 8)\n } else {\n objectWriteUInt16(this, value, offset, true)\n }\n return offset + 2\n}\n\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 if (Buffer.TYPED_ARRAY_SUPPORT) {\n this[offset] = (value >>> 8)\n this[offset + 1] = (value & 0xff)\n } else {\n objectWriteUInt16(this, value, offset, false)\n }\n return offset + 2\n}\n\nfunction objectWriteUInt32 (buf, value, offset, littleEndian) {\n if (value < 0) value = 0xffffffff + value + 1\n for (var i = 0, j = Math.min(buf.length - offset, 4); i < j; ++i) {\n buf[offset + i] = (value >>> (littleEndian ? i : 3 - i) * 8) & 0xff\n }\n}\n\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 if (Buffer.TYPED_ARRAY_SUPPORT) {\n this[offset + 3] = (value >>> 24)\n this[offset + 2] = (value >>> 16)\n this[offset + 1] = (value >>> 8)\n this[offset] = (value & 0xff)\n } else {\n objectWriteUInt32(this, value, offset, true)\n }\n return offset + 4\n}\n\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 if (Buffer.TYPED_ARRAY_SUPPORT) {\n this[offset] = (value >>> 24)\n this[offset + 1] = (value >>> 16)\n this[offset + 2] = (value >>> 8)\n this[offset + 3] = (value & 0xff)\n } else {\n objectWriteUInt32(this, value, offset, false)\n }\n return offset + 4\n}\n\nBuffer.prototype.writeIntLE = function writeIntLE (value, offset, byteLength, noAssert) {\n value = +value\n offset = offset | 0\n if (!noAssert) {\n var limit = Math.pow(2, 8 * byteLength - 1)\n\n checkInt(this, value, offset, byteLength, limit - 1, -limit)\n }\n\n var i = 0\n var mul = 1\n var 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 var limit = Math.pow(2, 8 * byteLength - 1)\n\n checkInt(this, value, offset, byteLength, limit - 1, -limit)\n }\n\n var i = byteLength - 1\n var mul = 1\n var 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 (!Buffer.TYPED_ARRAY_SUPPORT) value = Math.floor(value)\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 if (Buffer.TYPED_ARRAY_SUPPORT) {\n this[offset] = (value & 0xff)\n this[offset + 1] = (value >>> 8)\n } else {\n objectWriteUInt16(this, value, offset, true)\n }\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 if (Buffer.TYPED_ARRAY_SUPPORT) {\n this[offset] = (value >>> 8)\n this[offset + 1] = (value & 0xff)\n } else {\n objectWriteUInt16(this, value, offset, false)\n }\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 if (Buffer.TYPED_ARRAY_SUPPORT) {\n this[offset] = (value & 0xff)\n this[offset + 1] = (value >>> 8)\n this[offset + 2] = (value >>> 16)\n this[offset + 3] = (value >>> 24)\n } else {\n objectWriteUInt32(this, value, offset, true)\n }\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 if (Buffer.TYPED_ARRAY_SUPPORT) {\n this[offset] = (value >>> 24)\n this[offset + 1] = (value >>> 16)\n this[offset + 2] = (value >>> 8)\n this[offset + 3] = (value & 0xff)\n } else {\n objectWriteUInt32(this, value, offset, false)\n }\n return offset + 4\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 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 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 (!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('sourceStart out of bounds')\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 var len = end - start\n var i\n\n if (this === target && start < targetStart && targetStart < end) {\n // descending copy from end\n for (i = len - 1; i >= 0; --i) {\n target[i + targetStart] = this[i + start]\n }\n } else if (len < 1000 || !Buffer.TYPED_ARRAY_SUPPORT) {\n // ascending copy from start\n for (i = 0; i < len; ++i) {\n target[i + targetStart] = this[i + start]\n }\n } else {\n Uint8Array.prototype.set.call(\n target,\n this.subarray(start, start + len),\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 (val.length === 1) {\n var code = val.charCodeAt(0)\n if (code < 256) {\n val = code\n }\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 } else if (typeof val === 'number') {\n val = val & 255\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 var i\n if (typeof val === 'number') {\n for (i = start; i < end; ++i) {\n this[i] = val\n }\n } else {\n var bytes = Buffer.isBuffer(val)\n ? val\n : utf8ToBytes(new Buffer(val, encoding).toString())\n var len = bytes.length\n for (i = 0; i < end - start; ++i) {\n this[i + start] = bytes[i % len]\n }\n }\n\n return this\n}\n\n// HELPER FUNCTIONS\n// ================\n\nvar INVALID_BASE64_RE = /[^+\\/0-9A-Za-z-_]/g\n\nfunction base64clean (str) {\n // Node strips out invalid characters like \\n and \\t from the string, base64-js does not\n str = stringtrim(str).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 stringtrim (str) {\n if (str.trim) return str.trim()\n return str.replace(/^\\s+|\\s+$/g, '')\n}\n\nfunction toHex (n) {\n if (n < 16) return '0' + n.toString(16)\n return n.toString(16)\n}\n\nfunction utf8ToBytes (string, units) {\n units = units || Infinity\n var codePoint\n var length = string.length\n var leadSurrogate = null\n var bytes = []\n\n for (var 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 var byteArray = []\n for (var 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 var c, hi, lo\n var byteArray = []\n for (var 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 for (var 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\nfunction isnan (val) {\n return val !== val // eslint-disable-line no-self-compare\n}\n","module.exports = require('./dist/base64url').default;\nmodule.exports.default = module.exports;\n","var g;\n\n// This works in non-strict mode\ng = (function() {\n\treturn this;\n})();\n\ntry {\n\t// This works if eval is allowed (see CSP)\n\tg = g || new Function(\"return this\")();\n} catch (e) {\n\t// This works if the window reference is available\n\tif (typeof window === \"object\") g = window;\n}\n\n// g can still be undefined, but nothing to do about it...\n// We return undefined, instead of nothing here, so it's\n// easier to handle this case. if(!global) { ...}\n\nmodule.exports = g;\n","/**\n * @module JSON Object Signing and Encryption (JOSE)\n */\nconst crypto = require('./crypto')\nconst JWA = require('./jose/JWA')\nconst JWK = require('./jose/JWK')\nconst JWKSet = require('./jose/JWKSet')\nconst JWT = require('./jose/JWT')\nconst JWS = require('./jose/JWS')\n\n/**\n * Export\n */\nmodule.exports = {\n crypto,\n JWA,\n JWK,\n JWKSet,\n JWT,\n JWS\n}\n","module.exports = __WEBPACK_EXTERNAL_MODULE__5__;","module.exports = __WEBPACK_EXTERNAL_MODULE__6__;","'use strict';\n\nvar objectAssign = require('object-assign');\n\n// compare and isBuffer taken from https://github.com/feross/buffer/blob/680e9e5e488f22aac27599a57dc844a6315928dd/index.js\n// original notice:\n\n/*!\n * The buffer module from node.js, for the browser.\n *\n * @author Feross Aboukhadijeh \n * @license MIT\n */\nfunction compare(a, b) {\n if (a === b) {\n return 0;\n }\n\n var x = a.length;\n var y = b.length;\n\n for (var 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) {\n return -1;\n }\n if (y < x) {\n return 1;\n }\n return 0;\n}\nfunction isBuffer(b) {\n if (global.Buffer && typeof global.Buffer.isBuffer === 'function') {\n return global.Buffer.isBuffer(b);\n }\n return !!(b != null && b._isBuffer);\n}\n\n// based on node assert, original notice:\n// NB: The URL to the CommonJS spec is kept just for tradition.\n// node-assert has evolved a lot since then, both in API and behavior.\n\n// http://wiki.commonjs.org/wiki/Unit_Testing/1.0\n//\n// THIS IS NOT TESTED NOR LIKELY TO WORK OUTSIDE V8!\n//\n// Originally from narwhal.js (http://narwhaljs.org)\n// Copyright (c) 2009 Thomas Robinson <280north.com>\n//\n// Permission is hereby granted, free of charge, to any person obtaining a copy\n// of this software and associated documentation files (the 'Software'), to\n// deal in the Software without restriction, including without limitation the\n// rights to use, copy, modify, merge, publish, distribute, sublicense, and/or\n// sell copies of the Software, and to permit persons to whom the Software is\n// furnished to do so, subject to the following conditions:\n//\n// The above copyright notice and this permission notice shall be included in\n// all copies or substantial portions of the Software.\n//\n// THE SOFTWARE IS PROVIDED 'AS IS', WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\n// AUTHORS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN\n// ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION\n// WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.\n\nvar util = require('util/');\nvar hasOwn = Object.prototype.hasOwnProperty;\nvar pSlice = Array.prototype.slice;\nvar functionsHaveNames = (function () {\n return function foo() {}.name === 'foo';\n}());\nfunction pToString (obj) {\n return Object.prototype.toString.call(obj);\n}\nfunction isView(arrbuf) {\n if (isBuffer(arrbuf)) {\n return false;\n }\n if (typeof global.ArrayBuffer !== 'function') {\n return false;\n }\n if (typeof ArrayBuffer.isView === 'function') {\n return ArrayBuffer.isView(arrbuf);\n }\n if (!arrbuf) {\n return false;\n }\n if (arrbuf instanceof DataView) {\n return true;\n }\n if (arrbuf.buffer && arrbuf.buffer instanceof ArrayBuffer) {\n return true;\n }\n return false;\n}\n// 1. The assert module provides functions that throw\n// AssertionError's when particular conditions are not met. The\n// assert module must conform to the following interface.\n\nvar assert = module.exports = ok;\n\n// 2. The AssertionError is defined in assert.\n// new assert.AssertionError({ message: message,\n// actual: actual,\n// expected: expected })\n\nvar regex = /\\s*function\\s+([^\\(\\s]*)\\s*/;\n// based on https://github.com/ljharb/function.prototype.name/blob/adeeeec8bfcc6068b187d7d9fb3d5bb1d3a30899/implementation.js\nfunction getName(func) {\n if (!util.isFunction(func)) {\n return;\n }\n if (functionsHaveNames) {\n return func.name;\n }\n var str = func.toString();\n var match = str.match(regex);\n return match && match[1];\n}\nassert.AssertionError = function AssertionError(options) {\n this.name = 'AssertionError';\n this.actual = options.actual;\n this.expected = options.expected;\n this.operator = options.operator;\n if (options.message) {\n this.message = options.message;\n this.generatedMessage = false;\n } else {\n this.message = getMessage(this);\n this.generatedMessage = true;\n }\n var stackStartFunction = options.stackStartFunction || fail;\n if (Error.captureStackTrace) {\n Error.captureStackTrace(this, stackStartFunction);\n } else {\n // non v8 browsers so we can have a stacktrace\n var err = new Error();\n if (err.stack) {\n var out = err.stack;\n\n // try to strip useless frames\n var fn_name = getName(stackStartFunction);\n var idx = out.indexOf('\\n' + fn_name);\n if (idx >= 0) {\n // once we have located the function frame\n // we need to strip out everything before it (and its line)\n var next_line = out.indexOf('\\n', idx + 1);\n out = out.substring(next_line + 1);\n }\n\n this.stack = out;\n }\n }\n};\n\n// assert.AssertionError instanceof Error\nutil.inherits(assert.AssertionError, Error);\n\nfunction truncate(s, n) {\n if (typeof s === 'string') {\n return s.length < n ? s : s.slice(0, n);\n } else {\n return s;\n }\n}\nfunction inspect(something) {\n if (functionsHaveNames || !util.isFunction(something)) {\n return util.inspect(something);\n }\n var rawname = getName(something);\n var name = rawname ? ': ' + rawname : '';\n return '[Function' + name + ']';\n}\nfunction getMessage(self) {\n return truncate(inspect(self.actual), 128) + ' ' +\n self.operator + ' ' +\n truncate(inspect(self.expected), 128);\n}\n\n// At present only the three keys mentioned above are used and\n// understood by the spec. Implementations or sub modules can pass\n// other keys to the AssertionError's constructor - they will be\n// ignored.\n\n// 3. All of the following functions must throw an AssertionError\n// when a corresponding condition is not met, with a message that\n// may be undefined if not provided. All assertion methods provide\n// both the actual and expected values to the assertion error for\n// display purposes.\n\nfunction fail(actual, expected, message, operator, stackStartFunction) {\n throw new assert.AssertionError({\n message: message,\n actual: actual,\n expected: expected,\n operator: operator,\n stackStartFunction: stackStartFunction\n });\n}\n\n// EXTENSION! allows for well behaved errors defined elsewhere.\nassert.fail = fail;\n\n// 4. Pure assertion tests whether a value is truthy, as determined\n// by !!guard.\n// assert.ok(guard, message_opt);\n// This statement is equivalent to assert.equal(true, !!guard,\n// message_opt);. To test strictly for the value true, use\n// assert.strictEqual(true, guard, message_opt);.\n\nfunction ok(value, message) {\n if (!value) fail(value, true, message, '==', assert.ok);\n}\nassert.ok = ok;\n\n// 5. The equality assertion tests shallow, coercive equality with\n// ==.\n// assert.equal(actual, expected, message_opt);\n\nassert.equal = function equal(actual, expected, message) {\n if (actual != expected) fail(actual, expected, message, '==', assert.equal);\n};\n\n// 6. The non-equality assertion tests for whether two objects are not equal\n// with != assert.notEqual(actual, expected, message_opt);\n\nassert.notEqual = function notEqual(actual, expected, message) {\n if (actual == expected) {\n fail(actual, expected, message, '!=', assert.notEqual);\n }\n};\n\n// 7. The equivalence assertion tests a deep equality relation.\n// assert.deepEqual(actual, expected, message_opt);\n\nassert.deepEqual = function deepEqual(actual, expected, message) {\n if (!_deepEqual(actual, expected, false)) {\n fail(actual, expected, message, 'deepEqual', assert.deepEqual);\n }\n};\n\nassert.deepStrictEqual = function deepStrictEqual(actual, expected, message) {\n if (!_deepEqual(actual, expected, true)) {\n fail(actual, expected, message, 'deepStrictEqual', assert.deepStrictEqual);\n }\n};\n\nfunction _deepEqual(actual, expected, strict, memos) {\n // 7.1. All identical values are equivalent, as determined by ===.\n if (actual === expected) {\n return true;\n } else if (isBuffer(actual) && isBuffer(expected)) {\n return compare(actual, expected) === 0;\n\n // 7.2. If the expected value is a Date object, the actual value is\n // equivalent if it is also a Date object that refers to the same time.\n } else if (util.isDate(actual) && util.isDate(expected)) {\n return actual.getTime() === expected.getTime();\n\n // 7.3 If the expected value is a RegExp object, the actual value is\n // equivalent if it is also a RegExp object with the same source and\n // properties (`global`, `multiline`, `lastIndex`, `ignoreCase`).\n } else if (util.isRegExp(actual) && util.isRegExp(expected)) {\n return actual.source === expected.source &&\n actual.global === expected.global &&\n actual.multiline === expected.multiline &&\n actual.lastIndex === expected.lastIndex &&\n actual.ignoreCase === expected.ignoreCase;\n\n // 7.4. Other pairs that do not both pass typeof value == 'object',\n // equivalence is determined by ==.\n } else if ((actual === null || typeof actual !== 'object') &&\n (expected === null || typeof expected !== 'object')) {\n return strict ? actual === expected : actual == expected;\n\n // If both values are instances of typed arrays, wrap their underlying\n // ArrayBuffers in a Buffer each to increase performance\n // This optimization requires the arrays to have the same type as checked by\n // Object.prototype.toString (aka pToString). Never perform binary\n // comparisons for Float*Arrays, though, since e.g. +0 === -0 but their\n // bit patterns are not identical.\n } else if (isView(actual) && isView(expected) &&\n pToString(actual) === pToString(expected) &&\n !(actual instanceof Float32Array ||\n actual instanceof Float64Array)) {\n return compare(new Uint8Array(actual.buffer),\n new Uint8Array(expected.buffer)) === 0;\n\n // 7.5 For all other Object pairs, including Array objects, equivalence is\n // determined by having the same number of owned properties (as verified\n // with Object.prototype.hasOwnProperty.call), the same set of keys\n // (although not necessarily the same order), equivalent values for every\n // corresponding key, and an identical 'prototype' property. Note: this\n // accounts for both named and indexed properties on Arrays.\n } else if (isBuffer(actual) !== isBuffer(expected)) {\n return false;\n } else {\n memos = memos || {actual: [], expected: []};\n\n var actualIndex = memos.actual.indexOf(actual);\n if (actualIndex !== -1) {\n if (actualIndex === memos.expected.indexOf(expected)) {\n return true;\n }\n }\n\n memos.actual.push(actual);\n memos.expected.push(expected);\n\n return objEquiv(actual, expected, strict, memos);\n }\n}\n\nfunction isArguments(object) {\n return Object.prototype.toString.call(object) == '[object Arguments]';\n}\n\nfunction objEquiv(a, b, strict, actualVisitedObjects) {\n if (a === null || a === undefined || b === null || b === undefined)\n return false;\n // if one is a primitive, the other must be same\n if (util.isPrimitive(a) || util.isPrimitive(b))\n return a === b;\n if (strict && Object.getPrototypeOf(a) !== Object.getPrototypeOf(b))\n return false;\n var aIsArgs = isArguments(a);\n var bIsArgs = isArguments(b);\n if ((aIsArgs && !bIsArgs) || (!aIsArgs && bIsArgs))\n return false;\n if (aIsArgs) {\n a = pSlice.call(a);\n b = pSlice.call(b);\n return _deepEqual(a, b, strict);\n }\n var ka = objectKeys(a);\n var kb = objectKeys(b);\n var key, i;\n // having the same number of owned properties (keys incorporates\n // hasOwnProperty)\n if (ka.length !== kb.length)\n return false;\n //the same set of keys (although not necessarily the same order),\n ka.sort();\n kb.sort();\n //~~~cheap key test\n for (i = ka.length - 1; i >= 0; i--) {\n if (ka[i] !== kb[i])\n return false;\n }\n //equivalent values for every corresponding key, and\n //~~~possibly expensive deep test\n for (i = ka.length - 1; i >= 0; i--) {\n key = ka[i];\n if (!_deepEqual(a[key], b[key], strict, actualVisitedObjects))\n return false;\n }\n return true;\n}\n\n// 8. The non-equivalence assertion tests for any deep inequality.\n// assert.notDeepEqual(actual, expected, message_opt);\n\nassert.notDeepEqual = function notDeepEqual(actual, expected, message) {\n if (_deepEqual(actual, expected, false)) {\n fail(actual, expected, message, 'notDeepEqual', assert.notDeepEqual);\n }\n};\n\nassert.notDeepStrictEqual = notDeepStrictEqual;\nfunction notDeepStrictEqual(actual, expected, message) {\n if (_deepEqual(actual, expected, true)) {\n fail(actual, expected, message, 'notDeepStrictEqual', notDeepStrictEqual);\n }\n}\n\n\n// 9. The strict equality assertion tests strict equality, as determined by ===.\n// assert.strictEqual(actual, expected, message_opt);\n\nassert.strictEqual = function strictEqual(actual, expected, message) {\n if (actual !== expected) {\n fail(actual, expected, message, '===', assert.strictEqual);\n }\n};\n\n// 10. The strict non-equality assertion tests for strict inequality, as\n// determined by !==. assert.notStrictEqual(actual, expected, message_opt);\n\nassert.notStrictEqual = function notStrictEqual(actual, expected, message) {\n if (actual === expected) {\n fail(actual, expected, message, '!==', assert.notStrictEqual);\n }\n};\n\nfunction expectedException(actual, expected) {\n if (!actual || !expected) {\n return false;\n }\n\n if (Object.prototype.toString.call(expected) == '[object RegExp]') {\n return expected.test(actual);\n }\n\n try {\n if (actual instanceof expected) {\n return true;\n }\n } catch (e) {\n // Ignore. The instanceof check doesn't work for arrow functions.\n }\n\n if (Error.isPrototypeOf(expected)) {\n return false;\n }\n\n return expected.call({}, actual) === true;\n}\n\nfunction _tryBlock(block) {\n var error;\n try {\n block();\n } catch (e) {\n error = e;\n }\n return error;\n}\n\nfunction _throws(shouldThrow, block, expected, message) {\n var actual;\n\n if (typeof block !== 'function') {\n throw new TypeError('\"block\" argument must be a function');\n }\n\n if (typeof expected === 'string') {\n message = expected;\n expected = null;\n }\n\n actual = _tryBlock(block);\n\n message = (expected && expected.name ? ' (' + expected.name + ').' : '.') +\n (message ? ' ' + message : '.');\n\n if (shouldThrow && !actual) {\n fail(actual, expected, 'Missing expected exception' + message);\n }\n\n var userProvidedMessage = typeof message === 'string';\n var isUnwantedException = !shouldThrow && util.isError(actual);\n var isUnexpectedException = !shouldThrow && actual && !expected;\n\n if ((isUnwantedException &&\n userProvidedMessage &&\n expectedException(actual, expected)) ||\n isUnexpectedException) {\n fail(actual, expected, 'Got unwanted exception' + message);\n }\n\n if ((shouldThrow && actual && expected &&\n !expectedException(actual, expected)) || (!shouldThrow && actual)) {\n throw actual;\n }\n}\n\n// 11. Expected to throw an error:\n// assert.throws(block, Error_opt, message_opt);\n\nassert.throws = function(block, /*optional*/error, /*optional*/message) {\n _throws(true, block, error, message);\n};\n\n// EXTENSION! This is annoying to write outside this module.\nassert.doesNotThrow = function(block, /*optional*/error, /*optional*/message) {\n _throws(false, block, error, message);\n};\n\nassert.ifError = function(err) { if (err) throw err; };\n\n// Expose a strict only variant of assert\nfunction strict(value, message) {\n if (!value) fail(value, true, message, '==', strict);\n}\nassert.strict = objectAssign(strict, assert, {\n equal: assert.strictEqual,\n deepEqual: assert.deepStrictEqual,\n notEqual: assert.notStrictEqual,\n notDeepEqual: assert.notDeepStrictEqual\n});\nassert.strict.strict = assert.strict;\n\nvar objectKeys = Object.keys || function (obj) {\n var keys = [];\n for (var key in obj) {\n if (hasOwn.call(obj, key)) keys.push(key);\n }\n return keys;\n};\n","/**\n * Dependencies\n *\n * TODO\n * - switch between Node.js webcrypto package and browser implementation\n */\n// const base64url = require('base64url')\nconst supportedAlgorithms = require('../algorithms')\nconst {NotSupportedError} = require('../errors')\n\n/**\n * JWA\n * https://tools.ietf.org/html/rfc7518\n */\nclass JWA {\n\n /**\n * Sign\n *\n * @description\n * Create a digital signature.\n *\n * @param {string} alg\n * @param {CryptoKey} key\n * @param {string|Buffer} data\n *\n * @return {Promise}\n */\n static async sign (alg, key, data) {\n // normalize the algorithm\n let normalizedAlgorithm = supportedAlgorithms.normalize('sign', alg)\n\n // validate algorithm is supported\n if (normalizedAlgorithm instanceof Error) {\n return Promise.reject(new NotSupportedError(alg))\n }\n\n // validate type of key\n // TODO\n // - is the key suitable for the algorithm?\n // - does that get validated in webcrypto?\n //if (key instanceof CryptoKey) {\n // return Promise.reject(new InvalidKeyError())\n //}\n\n // sign the data\n return normalizedAlgorithm.sign(key, data)\n }\n\n /**\n * Verify\n *\n * @description\n * Verify a digital signature.\n *\n * @param {string} alg\n * @param {CryptoKey} privateKey\n * @param {string|Buffer} signature\n * @param {string|Buffer} data\n *\n * @return {Promise}\n */\n static async verify (alg, key, signature, data) {\n let normalizedAlgorithm = supportedAlgorithms.normalize('verify', alg)\n\n if (normalizedAlgorithm instanceof Error) {\n return Promise.reject(new NotSupportedError(alg))\n }\n\n // TODO\n // validate publicKey\n\n // verify the signature\n return normalizedAlgorithm.verify(key, signature, data)\n }\n\n /**\n * Encrypt\n */\n\n /**\n * Decrypt\n */\n\n /**\n * Import\n */\n static async importKey (key) {\n let normalizedAlgorithm = supportedAlgorithms.normalize('importKey', key.alg)\n return normalizedAlgorithm.importKey(key)\n }\n}\n\n/**\n * Export\n */\nmodule.exports = JWA\n","/**\n * Dependencies\n */\n\n/**\n * FormUrlEncoded\n */\nclass FormUrlEncoded {\n\n /**\n * Encode\n *\n * @description\n * Represent an object as x-www-form-urlencoded string.\n *\n * @param {Object} data\n * @returns {string}\n */\n static encode (data) {\n let pairs = []\n\n Object.keys(data).forEach(function (key) {\n pairs.push(encodeURIComponent(key) + '=' + encodeURIComponent(data[key]))\n })\n\n return pairs.join('&')\n }\n\n /**\n * Decode\n *\n * @description\n * Parse a x-www-form-urlencoded into an object.\n *\n * @param {string} data\n * @returns {Object}\n */\n static decode (data) {\n let obj = {}\n\n data.split('&').forEach(function (property) {\n let pair = property.split('=')\n let key = decodeURIComponent(pair[0])\n let val = decodeURIComponent(pair[1])\n\n obj[key] = val\n })\n\n return obj\n }\n}\n\n/**\n * Export\n */\nmodule.exports = FormUrlEncoded\n","'use strict'\n\n/**\n * Throws an error when a fetch response status code indicates a 400 or 500\n * HTTP error. (The whatwg fetch api does not normally reject on http error\n * responses).\n *\n * Usage:\n *\n * ```\n * return fetch(url)\n * .then(onHttpError('Error while fetching resource')\n * .catch(err => console.log(err))\n *\n * // -> 'Error while fetching resource: 404 Not Found' error\n * // if a 404 response is encountered\n * ```\n *\n * @param [message] {string} Optional error message to clarify context\n *\n * @throws {Error} For http status codes > 300\n *\n * @return {Object} fetch response object (passed through if no error)\n */\nfunction onHttpError (message = 'fetch error') {\n return (response) => {\n if (response.status >= 200 && response.status < 300) {\n return response\n }\n\n let errorMessage = `${message}: ${response.status} ${response.statusText}`\n let error = new Error(errorMessage)\n error.response = response\n error.statusCode = response.status\n throw error\n }\n}\n\nmodule.exports = onHttpError\n","'use strict'\n\nconst { URL } = require('whatwg-url')\nconst {JWT, JWK} = require('@solid/jose')\n\nconst DEFAULT_MAX_AGE = 3600 // Default token expiration, in seconds\n\nclass PoPToken extends JWT {\n /**\n * @param resourceServerUri {string} RS URI for which this token is intended\n *\n * @param session {Session}\n * @param session.sessionKey {string}\n * @param session.authorization.client_id {string}\n * @param session.authorization.id_token {string}\n *\n * @returns {Promise} PoPToken, encoded as compact JWT\n */\n static issueFor (resourceServerUri, session) {\n if (!resourceServerUri) {\n throw new Error('Cannot issue PoPToken - missing resource server URI')\n }\n\n if (!session.sessionKey) {\n throw new Error('Cannot issue PoPToken - missing session key')\n }\n\n if (!session.authorization.id_token) {\n throw new Error('Cannot issue PoPToken - missing id token')\n }\n\n let jwk = JSON.parse(session.sessionKey)\n\n return JWK.importKey(jwk)\n .then(importedSessionJwk => {\n let options = {\n aud: (new URL(resourceServerUri)).origin,\n key: importedSessionJwk,\n iss: session.authorization.client_id,\n id_token: session.authorization.id_token\n }\n\n return PoPToken.issue(options)\n })\n .then(jwt => {\n return jwt.encode()\n })\n }\n\n /**\n * issue\n *\n * @param options {Object}\n * @param options.iss {string} Token issuer (RP client_id)\n * @param options.aud {string|Array} Audience for the token\n * (such as the Resource Server url)\n * @param options.key {JWK} Proof of Possession (private) signing key, see\n * https://tools.ietf.org/html/rfc7800#section-3.1\n *\n * @param options.id_token {string} JWT compact encoded ID Token\n *\n * Optional:\n * @param [options.iat] {number} Issued at timestamp (in seconds)\n * @param [options.max] {number} Max token lifetime in seconds\n *\n * @returns {PoPToken} Proof of Possession Token (JWT instance)\n */\n static issue (options) {\n let { aud, iss, key } = options\n\n let alg = key.alg\n let iat = options.iat || Math.floor(Date.now() / 1000)\n let max = options.max || DEFAULT_MAX_AGE\n\n let exp = iat + max // token expiration\n\n let header = { alg }\n let payload = { iss, aud, exp, iat, id_token: options.id_token, token_type: 'pop' }\n\n let jwt = new PoPToken({ header, payload, key: key.cryptoKey }, { filter: false })\n\n return jwt\n }\n}\n\nmodule.exports = PoPToken\n","'use strict'\n\nmodule.exports = require('./RelyingParty')\n","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.unquote = exports.quote = exports.isScheme = exports.isToken = void 0;\nvar token = /^[^\\u0000-\\u001F\\u007F()<>@,;:\\\\\"/?={}\\[\\]\\u0020\\u0009]+$/;\n\nvar isToken = function isToken(str) {\n return typeof str === 'string' && token.test(str);\n};\n\nexports.isToken = isToken;\nvar isScheme = isToken;\nexports.isScheme = isScheme;\n\nvar quote = function quote(str) {\n return `\"${str.replace(/\"/g, '\\\\\"')}\"`;\n};\n\nexports.quote = quote;\n\nvar unquote = function unquote(str) {\n return str.substr(1, str.length - 2).replace(/\\\\\"/g, '\"');\n};\n\nexports.unquote = unquote;\n//# sourceMappingURL=util.js.map","/**\n * Dependencies\n */\nconst assert = require('assert')\nconst fetch = require('node-fetch')\nconst { URL } = require('whatwg-url')\nconst Headers = fetch.Headers ? fetch.Headers : global.Headers\nconst {JWKSet} = require('@solid/jose')\nconst AuthenticationRequest = require('./AuthenticationRequest')\nconst AuthenticationResponse = require('./AuthenticationResponse')\nconst onHttpError = require('./onHttpError')\nconst FormUrlEncoded = require('./FormUrlEncoded')\n\n/**\n * RelyingParty\n *\n * @class\n * Client interface for OpenID Connect Relying Party.\n *\n * @example\n * let client = RelyingParty({\n * provider: {\n * name: 'Anvil Research, Inc.',\n * url: 'https://forge.anvil.io'\n * // configuration\n * // jwks\n * },\n * defaults: {\n * popToken: false,\n * authenticate: {\n * response_type: 'code',\n * display: 'popup',\n * scope: 'openid profile email'\n * },\n * register: {\n * client_name: 'Example',\n * client_uri: 'https://example.com',\n * logo_uri: 'https://example.com/assets/logo.png',\n * redirect_uris: ['https://app.example.com/callback'],\n * response_types: ['code', 'code id_token token'],\n * grant_types: ['authorization_code'],\n * default_max_age: 7200,\n * post_logout_redirect_uris: ['https://app.example.com']\n * },\n * },\n * registration: {\n * // if you have it saved somewhere\n * },\n * store: localStorage || req.session\n * })\n *\n * client.discover() => Promise\n * client.jwks() => Promise\n * client.authenticate()\n * client.authenticateUri()\n * client.validateResponse(uri) => Promise\n * client.userinfo() => Promise\n * client.logout()\n */\nclass RelyingParty {\n constructor ({ provider = {}, defaults, registration = {}, store = {} } = {}) {\n this.provider = provider\n this.defaults = defaults || {\n popToken: false,\n authenticate: {\n response_type: 'id_token token',\n display: 'page',\n scope: ['openid']\n }\n }\n this.registration = registration\n this.store = store\n }\n\n /**\n * from\n *\n * @description\n * Create a RelyingParty instance from a previously registered client.\n *\n * @param {Object} data\n * @returns {Promise}\n */\n static async from (data) {\n const rp = new RelyingParty(data)\n const validation = rp.validate()\n\n // schema validation\n if (!validation.valid) {\n throw validation.error\n }\n\n const jwks = rp.provider.jwks\n\n // request the JWK Set if missing\n if (!jwks) {\n return rp.jwks().then(() => rp)\n }\n\n // otherwise import the JWK Set to webcrypto\n return JWKSet.importKeys(jwks).then(jwks => {\n rp.provider.jwks = jwks\n return rp\n })\n }\n\n /**\n * register\n *\n * @param issuer {string} Provider URL\n * @param registration {Object} Client dynamic registration options\n * @param options {Object}\n * @param options.defaults\n * @param [options.store] {Session|Storage}\n * @param [oobRegistration] {Object} Object providing getRegistration(key) function for out-of-band registrations\n * @param [idpId] {string} A tag identifying the provider used for looking up out-of-band registration data.\n * @returns {Promise} RelyingParty instance, registered.\n */\n static register (issuer, registration, options, idpId, oobRegistration) {\n const rp = new RelyingParty({\n provider: { url: issuer },\n defaults: Object.assign({}, options.defaults),\n store: options.store\n })\n\n return Promise.resolve()\n .then(() => rp.discover())\n .then(() => rp.jwks())\n .then(() => {\n assert(rp.provider.configuration, 'OpenID Configuration is not initialized.')\n return rp.provider.configuration.registration_endpoint ? rp.register(registration) : rp.getRegistration(registration, idpId, oobRegistration)\n })\n .then(() => rp)\n }\n\n validate () {\n if (!this.provider || !this.provider.url) {\n return {\n valid: false,\n error: new Error('Provider url is required.')\n }\n }\n\n return { valid: true }\n }\n\n /**\n * Discover\n *\n * @description Fetches the issuer's OpenID Configuration.\n * @returns {Promise} Resolves with the provider configuration response\n */\n discover () {\n try {\n let issuer = this.provider.url\n\n assert(issuer, 'RelyingParty provider must define \"url\"')\n\n let url = new URL(issuer)\n url.pathname = '.well-known/openid-configuration'\n\n return fetch(url.toString())\n .then(onHttpError('Error fetching openid configuration'))\n .then(response => {\n return response.json().then(json => this.provider.configuration = json)\n })\n\n } catch (error) {\n return Promise.reject(error)\n }\n }\n\n /**\n * Register\n *\n * @description Register's a client with provider as a Relying Party\n *\n * @param options {Object}\n * @returns {Promise} Resolves with the registration response object\n */\n register (options) {\n try {\n let configuration = this.provider.configuration\n\n assert(configuration, 'OpenID Configuration is not initialized.')\n assert(configuration.registration_endpoint, 'OpenID Configuration is missing registration_endpoint.')\n\n let uri = configuration.registration_endpoint\n let method = 'post'\n let headers = new Headers({ 'Content-Type': 'application/json' })\n let params = this.defaults.register\n let body = JSON.stringify(Object.assign({}, params, options))\n\n return fetch(uri, {method, headers, body})\n .then(onHttpError('Error registering client'))\n .then(response => {\n return response.json().then(json => this.registration = json)\n })\n\n } catch (error) {\n return Promise.reject(error)\n }\n }\n\n serialize () {\n return JSON.stringify(this)\n }\n\n /**\n * @description\n * Retrieves an existing Relying Party registration for a provider which does\n * not support dynamic registration and which requires pre-registration by\n * some 'out of band' method.\n *\n * @param options {Object}\n * @param idp {string} Key identifying which registration data should be retrieved.\n * @returns {Promise} Resolves with the registration response object.\n */\n getRegistration (options, idp, oobRegistration) {\n return Promise.resolve()\n .then(() => {\n return this.registration = oobRegistration.getRegistration(idp)\n })\n .catch(error => {\n throw error\n })\n }\n\n /**\n * jwks\n *\n * @description Promises the issuer's JWK Set.\n * @returns {Promise}\n */\n jwks () {\n try {\n let configuration = this.provider.configuration\n\n assert(configuration, 'OpenID Configuration is not initialized.')\n assert(configuration.jwks_uri, 'OpenID Configuration is missing jwks_uri.')\n\n let uri = configuration.jwks_uri\n\n return fetch(uri)\n .then(onHttpError('Error resolving provider keys'))\n .then(response => {\n return response\n .json()\n .then(json => JWKSet.importKeys(json))\n .then(jwks => this.provider.jwks = jwks)\n })\n\n } catch (error) {\n return Promise.reject(error)\n }\n }\n\n /**\n * createRequest\n *\n * @param options {Object} Authn request options hashmap\n * @param options.redirect_uri {string}\n * @param options.response_type {string} e.g. 'code' or 'id_token token'\n * @param session {Session|Storage} req.session or localStorage\n * @returns {Promise} Authn request URL\n */\n createRequest (options, session) {\n return AuthenticationRequest.create(this, options, session || this.store)\n }\n\n /**\n * Validate Response\n *\n * @param response {string} req.query or req.body.text\n * @param session {Session|Storage} req.session or localStorage or similar\n *\n * @returns {Promise}\n */\n validateResponse (response, session = this.store) {\n let options\n\n if (response.match(/^http(s?):\\/\\//)) {\n options = { rp: this, redirect: response, session }\n } else {\n options = { rp: this, body: response, session }\n }\n\n const authResponse = new AuthenticationResponse(options)\n\n return AuthenticationResponse.validateResponse(authResponse)\n }\n\n /**\n * userinfo\n *\n * @description\n * Promises the authenticated user's claims.\n * access_token can be supplied directly. If not, it is retrieved from storage, if available.\n * Depending on when userinfo is called, access_token may not yet have been saved to storage.\n *\n * @param accessToken {string=} Optional access token from current user session for use against the User Info endpoint\n * @returns {Promise}\n */\n userinfo (accessToken) {\n try {\n let configuration = this.provider.configuration\n\n assert(configuration, 'OpenID Configuration is not initialized.')\n assert(configuration.userinfo_endpoint, 'OpenID Configuration is missing userinfo_endpoint.')\n\n accessToken = accessToken || this.store.access_token\n assert(accessToken, 'Missing access token.')\n\n let uri = configuration.userinfo_endpoint\n let headers = new Headers({\n 'Content-Type': 'application/json',\n 'Authorization': `Bearer ${accessToken}`\n })\n\n return fetch(uri, {headers})\n .then(onHttpError('Error fetching userinfo'))\n .then(response => response.json())\n\n } catch (error) {\n return Promise.reject(error)\n }\n }\n\n /**\n * logoutRequest\n *\n * Composes and returns the logout request URI, based on the OP's\n * `end_session_endpoint`, with appropriate parameters.\n *\n * Note: Calling client code has the responsibility to clear the local\n * session state (for example, by calling `rp.clearSession()`). In addition,\n * some IdPs (such as Google) may not provide an `end_session_endpoint`,\n * in which case, this method will return null.\n *\n * @see https://openid.net/specs/openid-connect-session-1_0.html#RPLogout\n *\n * @throws {Error} If provider config is not initialized\n *\n * @throws {Error} If `post_logout_redirect_uri` was provided without a\n * corresponding `id_token_hint`\n *\n * @param [options={}] {object}\n *\n * @param [options.id_token_hint] {string} RECOMMENDED.\n * Previously issued ID Token passed to the logout endpoint as\n * a hint about the End-User's current authenticated session with the\n * Client. This is used as an indication of the identity of the End-User\n * that the RP is requesting be logged out by the OP. The OP *need not* be\n * listed as an audience of the ID Token when it is used as an\n * `id_token_hint` value.\n *\n * @param [options.post_logout_redirect_uri] {string} OPTIONAL. URL to which\n * the RP is requesting that the End-User's User Agent be redirected after\n * a logout has been performed. The value MUST have been previously\n * registered with the OP, either using the `post_logout_redirect_uris`\n * Registration parameter or via another mechanism. If supplied, the OP\n * SHOULD honor this request following the logout.\n *\n * Note: The requirement to validate the uri for previous registration means\n * that, in practice, the `id_token_hint` is REQUIRED if\n * `post_logout_redirect_uri` is used. Otherwise, the OP has no way to get\n * the `client_id` to load the saved client registration, to validate the\n * uri. The only way it can get it is by decoding the `id_token_hint`.\n *\n * @param [options.state] {string} OPTIONAL. Opaque value used by the RP to\n * maintain state between the logout request and the callback to the\n * endpoint specified by the `post_logout_redirect_uri` query parameter. If\n * included in the logout request, the OP passes this value back to the RP\n * using the `state` query parameter when redirecting the User Agent back to\n * the RP.\n *\n * TODO: In the future, consider adding `response_mode` param, for the OP to\n * determine how to return the `state` back the RP.\n * @see http://openid.net/specs/oauth-v2-multiple-response-types-1_0.html#ResponseModes\n *\n * TODO: Handle special cases for popular providers (Google, MSFT)\n *\n * @returns {string|null} Logout uri (or null if no end_session_endpoint was\n * provided in the IdP config)\n */\n logoutRequest (options = {}) {\n const { id_token_hint, post_logout_redirect_uri, state } = options\n let configuration\n\n assert(this.provider, 'OpenID Configuration is not initialized')\n configuration = this.provider.configuration\n assert(configuration, 'OpenID Configuration is not initialized')\n\n if (!configuration.end_session_endpoint) {\n console.log(`OpenId Configuration for ` +\n `${configuration.issuer} is missing end_session_endpoint`)\n return null\n }\n\n if (post_logout_redirect_uri && !id_token_hint) {\n throw new Error('id_token_hint is required when using post_logout_redirect_uri')\n }\n\n const params = {}\n\n if (id_token_hint) {\n params.id_token_hint = id_token_hint\n }\n if (post_logout_redirect_uri) {\n params.post_logout_redirect_uri = post_logout_redirect_uri\n }\n if (state) {\n params.state = state\n }\n\n const url = new URL(configuration.end_session_endpoint)\n url.search = FormUrlEncoded.encode(params)\n\n return url.href\n }\n\n /**\n * Logout\n *\n * @deprecated\n *\n * TODO: Add deprecation warnings, then remove. Client code should\n * use `logoutRequest()` instead\n *\n * @returns {Promise}\n */\n logout () {\n let configuration\n try {\n assert(this.provider, 'OpenID Configuration is not initialized.')\n configuration = this.provider.configuration\n assert(configuration, 'OpenID Configuration is not initialized.')\n } catch (error) {\n return Promise.reject(error)\n }\n\n if (!configuration.end_session_endpoint) {\n this.clearSession()\n return Promise.resolve(undefined)\n }\n\n let uri = configuration.end_session_endpoint\n let method = 'get'\n\n return fetch(uri, {method, credentials: 'include'})\n .then(onHttpError('Error logging out'))\n .then(() => this.clearSession())\n\n // TODO: Validate `frontchannel_logout_uri` if necessary\n /**\n * frontchannel_logout_uri - OPTIONAL. RP URL that will cause the RP to log\n * itself out when rendered in an iframe by the OP.\n *\n * An `iss` (issuer) query parameter and a `sid`\n * (session ID) query parameter MAY be included by the OP to enable the RP\n * to validate the request and to determine which of the potentially\n * multiple sessions is to be logged out. If a sid (session ID) query\n * parameter is included, an iss (issuer) query parameter MUST also be\n * included.\n * @see https://openid.net/specs/openid-connect-frontchannel-1_0.html#RPLogout\n */\n }\n\n clearSession () {\n let session = this.store\n\n if (!session) { return }\n\n delete session[SESSION_PRIVATE_KEY]\n }\n\n /**\n * @param uri {string} Target Resource Server URI\n * @param idToken {IDToken} ID Token to be embedded in the PoP token\n *\n * @returns {Promise}\n */\n popTokenFor (uri, idToken) {\n return PoPToken.issueFor(uri, idToken)\n }\n}\n\nconst SESSION_PRIVATE_KEY = 'oidc.session.privateKey'\n\nRelyingParty.SESSION_PRIVATE_KEY = SESSION_PRIVATE_KEY\n\nmodule.exports = RelyingParty\n","const imported = require('isomorphic-webcrypto')\n\nmodule.exports = (imported.default ? imported.default : imported)\n","const TextEncoder = global.TextEncoder\n ? global.TextEncoder // browser\n : require('@sinonjs/text-encoding').TextEncoder // node shim\nmodule.exports = TextEncoder\n","/**\n * NotSupportedError\n */\nclass NotSupportedError extends Error {\n constructor (alg) {\n super()\n this.message = `${alg} is not a supported algorithm`\n }\n}\n\n/**\n * Export\n */\nmodule.exports = NotSupportedError\n","module.exports = {\n DataError: require('./DataError'),\n NotSupportedError: require('./NotSupportedError')\n}\n","/**\n * DataError\n */\nclass DataError extends Error {\n constructor (message) {\n super(message)\n }\n}\n\n/**\n * Export\n */\nmodule.exports = DataError\n","'use strict'\n\n/**\n * Dependencies\n * @ignore\n */\nconst JWA = require('./JWA')\n\n/**\n * JWK Class\n */\nclass JWK {\n constructor ({ kty, use, key_ops, alg, kid, x5u, x5c, x5t } = {}) {\n this.kty = kty\n this.use = use\n this.key_ops = key_ops\n this.alg = alg\n this.kid = kid\n this.x5u = x5u\n this.x5c = x5c\n this.x5t = x5t\n }\n\n /**\n * importKey\n *\n * TODO:\n * - should this be on JWA?\n */\n static async importKey (jwk) {\n return JWA.importKey(jwk)\n }\n\n\n}\n\n/**\n * Export\n */\nmodule.exports = JWK\n","/**\n * Dependencies\n */\nconst base64url = require('base64url')\nconst JWA = require('./JWA')\nconst { DataError } = require('../errors')\nconst JOSEHeader = require('./JOSEHeader')\n\n/**\n * JWS\n */\nclass JWS {\n constructor (data = {}) {\n // compact\n this.header = new JOSEHeader(data.header)\n this.payload = data.payload || {}\n this.signature = data.signature\n\n // flattened\n this.protected = data.protected\n\n // JSON serialization\n this.signatures = data.signatures\n\n this.verified = false\n }\n\n /**\n * sign\n *\n * @description\n * Encode a JWT instance\n *\n * @param {Object} token\n * @returns {Promise}\n */\n static async sign (token) {\n let payload = base64url(JSON.stringify(token.payload))\n\n // compact serialization\n if (token.serialization === 'compact') {\n let {key, header: {alg}} = token\n let header = base64url(JSON.stringify(token.header))\n let data = `${header}.${payload}`\n\n return JWA.sign(alg, key, data).then(signature => `${data}.${signature}`)\n }\n\n // JSON serialization\n if (token.serialization === 'json') {\n\n }\n\n // Flattened serialization\n if (token.serialization === 'flattened') {\n\n }\n\n return Promise.reject(new DataError('Unsupported serialization'))\n }\n\n /**\n * verify\n */\n static async verify (jwt) {\n // multiple signatures\n if (jwt.signatures) {\n // ...\n }\n\n let {key, signature, header: {alg}} = jwt\n\n // one signature\n if (jwt.signature) {\n let [header, payload] = jwt.segments\n let data = `${header}.${payload}`\n\n if (alg === 'none') {\n return Promise.reject(new DataError('Signature provided to verify with alg: none'))\n }\n\n return JWA.verify(alg, key, signature, data).then(verified => {\n jwt.verified = verified\n return verified\n })\n }\n\n if (alg === 'none') {\n if (!key && !signature) {\n jwt.verified = true\n\n return Promise.resolve(true)\n }\n\n if (key) {\n return Promise.reject(new DataError('Key provided to verify signature with alg: none'))\n }\n }\n\n // no signatures to verify\n return Promise.reject(new DataError('Missing signature(s)'))\n }\n}\n\n/**\n * Export\n */\nmodule.exports = JWS\n","/**\n * Header\n */\nclass JOSEHeader {\n constructor ({ typ, cty, alg, jku, kid, x5u, x5c, x5t, crit, enc, zip } = {}) {\n this.typ = typ\n this.cty = cty\n this.alg = alg\n this.jku = jku\n this.kid = kid\n this.x5u = x5u\n this.x5c = x5c\n this.x5t = x5t\n this.crit = crit\n this.enc = enc\n this.zip = zip\n }\n\n /**\n * isJWS\n */\n isJWS () {}\n\n /**\n * isJWE\n */\n isJWE () {}\n}\n\n/**\n * Export\n */\nmodule.exports = JOSEHeader\n","/**\n * @file Web Cryptography API shim\n * @author Artem S Vybornov \n * @license MIT\n */\n(function (global, factory) {\n if (typeof define === 'function' && define.amd) {\n // AMD. Register as an anonymous module.\n define([], function () {\n return factory(global);\n });\n } else if (typeof module === 'object' && module.exports) {\n // CommonJS-like environments that support module.exports\n module.exports = factory(global);\n } else {\n factory(global);\n }\n}(typeof self !== 'undefined' ? self : this, function (global) {\n 'use strict';\n\n if ( typeof Promise !== 'function' )\n throw \"Promise support required\";\n\n var _crypto = global.crypto || global.msCrypto;\n if ( !_crypto ) return;\n\n var _subtle = _crypto.subtle || _crypto.webkitSubtle;\n if ( !_subtle ) return;\n\n var _Crypto = global.Crypto || _crypto.constructor || Object,\n _SubtleCrypto = global.SubtleCrypto || _subtle.constructor || Object,\n _CryptoKey = global.CryptoKey || global.Key || Object;\n\n var isEdge = global.navigator.userAgent.indexOf('Edge/') > -1;\n var isIE = !!global.msCrypto && !isEdge;\n var isWebkit = !_crypto.subtle && !!_crypto.webkitSubtle;\n if ( !isIE && !isWebkit ) return;\n\n function s2a ( s ) {\n return btoa(s).replace(/\\=+$/, '').replace(/\\+/g, '-').replace(/\\//g, '_');\n }\n\n function a2s ( s ) {\n s += '===', s = s.slice( 0, -s.length % 4 );\n return atob( s.replace(/-/g, '+').replace(/_/g, '/') );\n }\n\n function s2b ( s ) {\n var b = new Uint8Array(s.length);\n for ( var i = 0; i < s.length; i++ ) b[i] = s.charCodeAt(i);\n return b;\n }\n\n function b2s ( b ) {\n if ( b instanceof ArrayBuffer ) b = new Uint8Array(b);\n return String.fromCharCode.apply( String, b );\n }\n\n function alg ( a ) {\n var r = { 'name': (a.name || a || '').toUpperCase().replace('V','v') };\n switch ( r.name ) {\n case 'SHA-1':\n case 'SHA-256':\n case 'SHA-384':\n case 'SHA-512':\n break;\n case 'AES-CBC':\n case 'AES-GCM':\n case 'AES-KW':\n if ( a.length ) r['length'] = a.length;\n break;\n case 'HMAC':\n if ( a.hash ) r['hash'] = alg(a.hash);\n if ( a.length ) r['length'] = a.length;\n break;\n case 'RSAES-PKCS1-v1_5':\n if ( a.publicExponent ) r['publicExponent'] = new Uint8Array(a.publicExponent);\n if ( a.modulusLength ) r['modulusLength'] = a.modulusLength;\n break;\n case 'RSASSA-PKCS1-v1_5':\n case 'RSA-OAEP':\n if ( a.hash ) r['hash'] = alg(a.hash);\n if ( a.publicExponent ) r['publicExponent'] = new Uint8Array(a.publicExponent);\n if ( a.modulusLength ) r['modulusLength'] = a.modulusLength;\n break;\n default:\n throw new SyntaxError(\"Bad algorithm name\");\n }\n return r;\n };\n\n function jwkAlg ( a ) {\n return {\n 'HMAC': {\n 'SHA-1': 'HS1',\n 'SHA-256': 'HS256',\n 'SHA-384': 'HS384',\n 'SHA-512': 'HS512',\n },\n 'RSASSA-PKCS1-v1_5': {\n 'SHA-1': 'RS1',\n 'SHA-256': 'RS256',\n 'SHA-384': 'RS384',\n 'SHA-512': 'RS512',\n },\n 'RSAES-PKCS1-v1_5': {\n '': 'RSA1_5',\n },\n 'RSA-OAEP': {\n 'SHA-1': 'RSA-OAEP',\n 'SHA-256': 'RSA-OAEP-256',\n },\n 'AES-KW': {\n '128': 'A128KW',\n '192': 'A192KW',\n '256': 'A256KW',\n },\n 'AES-GCM': {\n '128': 'A128GCM',\n '192': 'A192GCM',\n '256': 'A256GCM',\n },\n 'AES-CBC': {\n '128': 'A128CBC',\n '192': 'A192CBC',\n '256': 'A256CBC',\n },\n }[a.name][ ( a.hash || {} ).name || a.length || '' ];\n }\n\n function b2jwk ( k ) {\n if ( k instanceof ArrayBuffer || k instanceof Uint8Array ) k = JSON.parse( decodeURIComponent( escape( b2s(k) ) ) );\n var jwk = { 'kty': k.kty, 'alg': k.alg, 'ext': k.ext || k.extractable };\n switch ( jwk.kty ) {\n case 'oct':\n jwk.k = k.k;\n case 'RSA':\n [ 'n', 'e', 'd', 'p', 'q', 'dp', 'dq', 'qi', 'oth' ].forEach( function ( x ) { if ( x in k ) jwk[x] = k[x] } );\n break;\n default:\n throw new TypeError(\"Unsupported key type\");\n }\n return jwk;\n }\n\n function jwk2b ( k ) {\n var jwk = b2jwk(k);\n if ( isIE ) jwk['extractable'] = jwk.ext, delete jwk.ext;\n return s2b( unescape( encodeURIComponent( JSON.stringify(jwk) ) ) ).buffer;\n }\n\n function pkcs2jwk ( k ) {\n var info = b2der(k), prv = false;\n if ( info.length > 2 ) prv = true, info.shift(); // remove version from PKCS#8 PrivateKeyInfo structure\n var jwk = { 'ext': true };\n switch ( info[0][0] ) {\n case '1.2.840.113549.1.1.1':\n var rsaComp = [ 'n', 'e', 'd', 'p', 'q', 'dp', 'dq', 'qi' ],\n rsaKey = b2der( info[1] );\n if ( prv ) rsaKey.shift(); // remove version from PKCS#1 RSAPrivateKey structure\n for ( var i = 0; i < rsaKey.length; i++ ) {\n if ( !rsaKey[i][0] ) rsaKey[i] = rsaKey[i].subarray(1);\n jwk[ rsaComp[i] ] = s2a( b2s( rsaKey[i] ) );\n }\n jwk['kty'] = 'RSA';\n break;\n default:\n throw new TypeError(\"Unsupported key type\");\n }\n return jwk;\n }\n\n function jwk2pkcs ( k ) {\n var key, info = [ [ '', null ] ], prv = false;\n switch ( k.kty ) {\n case 'RSA':\n var rsaComp = [ 'n', 'e', 'd', 'p', 'q', 'dp', 'dq', 'qi' ],\n rsaKey = [];\n for ( var i = 0; i < rsaComp.length; i++ ) {\n if ( !( rsaComp[i] in k ) ) break;\n var b = rsaKey[i] = s2b( a2s( k[ rsaComp[i] ] ) );\n if ( b[0] & 0x80 ) rsaKey[i] = new Uint8Array(b.length + 1), rsaKey[i].set( b, 1 );\n }\n if ( rsaKey.length > 2 ) prv = true, rsaKey.unshift( new Uint8Array([0]) ); // add version to PKCS#1 RSAPrivateKey structure\n info[0][0] = '1.2.840.113549.1.1.1';\n key = rsaKey;\n break;\n default:\n throw new TypeError(\"Unsupported key type\");\n }\n info.push( new Uint8Array( der2b(key) ).buffer );\n if ( !prv ) info[1] = { 'tag': 0x03, 'value': info[1] };\n else info.unshift( new Uint8Array([0]) ); // add version to PKCS#8 PrivateKeyInfo structure\n return new Uint8Array( der2b(info) ).buffer;\n }\n\n var oid2str = { 'KoZIhvcNAQEB': '1.2.840.113549.1.1.1' },\n str2oid = { '1.2.840.113549.1.1.1': 'KoZIhvcNAQEB' };\n\n function b2der ( buf, ctx ) {\n if ( buf instanceof ArrayBuffer ) buf = new Uint8Array(buf);\n if ( !ctx ) ctx = { pos: 0, end: buf.length };\n\n if ( ctx.end - ctx.pos < 2 || ctx.end > buf.length ) throw new RangeError(\"Malformed DER\");\n\n var tag = buf[ctx.pos++],\n len = buf[ctx.pos++];\n\n if ( len >= 0x80 ) {\n len &= 0x7f;\n if ( ctx.end - ctx.pos < len ) throw new RangeError(\"Malformed DER\");\n for ( var xlen = 0; len--; ) xlen <<= 8, xlen |= buf[ctx.pos++];\n len = xlen;\n }\n\n if ( ctx.end - ctx.pos < len ) throw new RangeError(\"Malformed DER\");\n\n var rv;\n\n switch ( tag ) {\n case 0x02: // Universal Primitive INTEGER\n rv = buf.subarray( ctx.pos, ctx.pos += len );\n break;\n case 0x03: // Universal Primitive BIT STRING\n if ( buf[ctx.pos++] ) throw new Error( \"Unsupported bit string\" );\n len--;\n case 0x04: // Universal Primitive OCTET STRING\n rv = new Uint8Array( buf.subarray( ctx.pos, ctx.pos += len ) ).buffer;\n break;\n case 0x05: // Universal Primitive NULL\n rv = null;\n break;\n case 0x06: // Universal Primitive OBJECT IDENTIFIER\n var oid = btoa( b2s( buf.subarray( ctx.pos, ctx.pos += len ) ) );\n if ( !( oid in oid2str ) ) throw new Error( \"Unsupported OBJECT ID \" + oid );\n rv = oid2str[oid];\n break;\n case 0x30: // Universal Constructed SEQUENCE\n rv = [];\n for ( var end = ctx.pos + len; ctx.pos < end; ) rv.push( b2der( buf, ctx ) );\n break;\n default:\n throw new Error( \"Unsupported DER tag 0x\" + tag.toString(16) );\n }\n\n return rv;\n }\n\n function der2b ( val, buf ) {\n if ( !buf ) buf = [];\n\n var tag = 0, len = 0,\n pos = buf.length + 2;\n\n buf.push( 0, 0 ); // placeholder\n\n if ( val instanceof Uint8Array ) { // Universal Primitive INTEGER\n tag = 0x02, len = val.length;\n for ( var i = 0; i < len; i++ ) buf.push( val[i] );\n }\n else if ( val instanceof ArrayBuffer ) { // Universal Primitive OCTET STRING\n tag = 0x04, len = val.byteLength, val = new Uint8Array(val);\n for ( var i = 0; i < len; i++ ) buf.push( val[i] );\n }\n else if ( val === null ) { // Universal Primitive NULL\n tag = 0x05, len = 0;\n }\n else if ( typeof val === 'string' && val in str2oid ) { // Universal Primitive OBJECT IDENTIFIER\n var oid = s2b( atob( str2oid[val] ) );\n tag = 0x06, len = oid.length;\n for ( var i = 0; i < len; i++ ) buf.push( oid[i] );\n }\n else if ( val instanceof Array ) { // Universal Constructed SEQUENCE\n for ( var i = 0; i < val.length; i++ ) der2b( val[i], buf );\n tag = 0x30, len = buf.length - pos;\n }\n else if ( typeof val === 'object' && val.tag === 0x03 && val.value instanceof ArrayBuffer ) { // Tag hint\n val = new Uint8Array(val.value), tag = 0x03, len = val.byteLength;\n buf.push(0); for ( var i = 0; i < len; i++ ) buf.push( val[i] );\n len++;\n }\n else {\n throw new Error( \"Unsupported DER value \" + val );\n }\n\n if ( len >= 0x80 ) {\n var xlen = len, len = 4;\n buf.splice( pos, 0, (xlen >> 24) & 0xff, (xlen >> 16) & 0xff, (xlen >> 8) & 0xff, xlen & 0xff );\n while ( len > 1 && !(xlen >> 24) ) xlen <<= 8, len--;\n if ( len < 4 ) buf.splice( pos, 4 - len );\n len |= 0x80;\n }\n\n buf.splice( pos - 2, 2, tag, len );\n\n return buf;\n }\n\n function CryptoKey ( key, alg, ext, use ) {\n Object.defineProperties( this, {\n _key: {\n value: key\n },\n type: {\n value: key.type,\n enumerable: true,\n },\n extractable: {\n value: (ext === undefined) ? key.extractable : ext,\n enumerable: true,\n },\n algorithm: {\n value: (alg === undefined) ? key.algorithm : alg,\n enumerable: true,\n },\n usages: {\n value: (use === undefined) ? key.usages : use,\n enumerable: true,\n },\n });\n }\n\n function isPubKeyUse ( u ) {\n return u === 'verify' || u === 'encrypt' || u === 'wrapKey';\n }\n\n function isPrvKeyUse ( u ) {\n return u === 'sign' || u === 'decrypt' || u === 'unwrapKey';\n }\n\n [ 'generateKey', 'importKey', 'unwrapKey' ]\n .forEach( function ( m ) {\n var _fn = _subtle[m];\n\n _subtle[m] = function ( a, b, c ) {\n var args = [].slice.call(arguments),\n ka, kx, ku;\n\n switch ( m ) {\n case 'generateKey':\n ka = alg(a), kx = b, ku = c;\n break;\n case 'importKey':\n ka = alg(c), kx = args[3], ku = args[4];\n if ( a === 'jwk' ) {\n b = b2jwk(b);\n if ( !b.alg ) b.alg = jwkAlg(ka);\n if ( !b.key_ops ) b.key_ops = ( b.kty !== 'oct' ) ? ( 'd' in b ) ? ku.filter(isPrvKeyUse) : ku.filter(isPubKeyUse) : ku.slice();\n args[1] = jwk2b(b);\n }\n break;\n case 'unwrapKey':\n ka = args[4], kx = args[5], ku = args[6];\n args[2] = c._key;\n break;\n }\n\n if ( m === 'generateKey' && ka.name === 'HMAC' && ka.hash ) {\n ka.length = ka.length || { 'SHA-1': 512, 'SHA-256': 512, 'SHA-384': 1024, 'SHA-512': 1024 }[ka.hash.name];\n return _subtle.importKey( 'raw', _crypto.getRandomValues( new Uint8Array( (ka.length+7)>>3 ) ), ka, kx, ku );\n }\n\n if ( isWebkit && m === 'generateKey' && ka.name === 'RSASSA-PKCS1-v1_5' && ( !ka.modulusLength || ka.modulusLength >= 2048 ) ) {\n a = alg(a), a.name = 'RSAES-PKCS1-v1_5', delete a.hash;\n return _subtle.generateKey( a, true, [ 'encrypt', 'decrypt' ] )\n .then( function ( k ) {\n return Promise.all([\n _subtle.exportKey( 'jwk', k.publicKey ),\n _subtle.exportKey( 'jwk', k.privateKey ),\n ]);\n })\n .then( function ( keys ) {\n keys[0].alg = keys[1].alg = jwkAlg(ka);\n keys[0].key_ops = ku.filter(isPubKeyUse), keys[1].key_ops = ku.filter(isPrvKeyUse);\n return Promise.all([\n _subtle.importKey( 'jwk', keys[0], ka, true, keys[0].key_ops ),\n _subtle.importKey( 'jwk', keys[1], ka, kx, keys[1].key_ops ),\n ]);\n })\n .then( function ( keys ) {\n return {\n publicKey: keys[0],\n privateKey: keys[1],\n };\n });\n }\n\n if ( ( isWebkit || ( isIE && ( ka.hash || {} ).name === 'SHA-1' ) )\n && m === 'importKey' && a === 'jwk' && ka.name === 'HMAC' && b.kty === 'oct' ) {\n return _subtle.importKey( 'raw', s2b( a2s(b.k) ), c, args[3], args[4] );\n }\n\n if ( isWebkit && m === 'importKey' && ( a === 'spki' || a === 'pkcs8' ) ) {\n return _subtle.importKey( 'jwk', pkcs2jwk(b), c, args[3], args[4] );\n }\n\n if ( isIE && m === 'unwrapKey' ) {\n return _subtle.decrypt( args[3], c, b )\n .then( function ( k ) {\n return _subtle.importKey( a, k, args[4], args[5], args[6] );\n });\n }\n\n var op;\n try {\n op = _fn.apply( _subtle, args );\n }\n catch ( e ) {\n return Promise.reject(e);\n }\n\n if ( isIE ) {\n op = new Promise( function ( res, rej ) {\n op.onabort =\n op.onerror = function ( e ) { rej(e) };\n op.oncomplete = function ( r ) { res(r.target.result) };\n });\n }\n\n op = op.then( function ( k ) {\n if ( ka.name === 'HMAC' ) {\n if ( !ka.length ) ka.length = 8 * k.algorithm.length;\n }\n if ( ka.name.search('RSA') == 0 ) {\n if ( !ka.modulusLength ) ka.modulusLength = (k.publicKey || k).algorithm.modulusLength;\n if ( !ka.publicExponent ) ka.publicExponent = (k.publicKey || k).algorithm.publicExponent;\n }\n if ( k.publicKey && k.privateKey ) {\n k = {\n publicKey: new CryptoKey( k.publicKey, ka, kx, ku.filter(isPubKeyUse) ),\n privateKey: new CryptoKey( k.privateKey, ka, kx, ku.filter(isPrvKeyUse) ),\n };\n }\n else {\n k = new CryptoKey( k, ka, kx, ku );\n }\n return k;\n });\n\n return op;\n }\n });\n\n [ 'exportKey', 'wrapKey' ]\n .forEach( function ( m ) {\n var _fn = _subtle[m];\n\n _subtle[m] = function ( a, b, c ) {\n var args = [].slice.call(arguments);\n\n switch ( m ) {\n case 'exportKey':\n args[1] = b._key;\n break;\n case 'wrapKey':\n args[1] = b._key, args[2] = c._key;\n break;\n }\n\n if ( ( isWebkit || ( isIE && ( b.algorithm.hash || {} ).name === 'SHA-1' ) )\n && m === 'exportKey' && a === 'jwk' && b.algorithm.name === 'HMAC' ) {\n args[0] = 'raw';\n }\n\n if ( isWebkit && m === 'exportKey' && ( a === 'spki' || a === 'pkcs8' ) ) {\n args[0] = 'jwk';\n }\n\n if ( isIE && m === 'wrapKey' ) {\n return _subtle.exportKey( a, b )\n .then( function ( k ) {\n if ( a === 'jwk' ) k = s2b( unescape( encodeURIComponent( JSON.stringify( b2jwk(k) ) ) ) );\n return _subtle.encrypt( args[3], c, k );\n });\n }\n\n var op;\n try {\n op = _fn.apply( _subtle, args );\n }\n catch ( e ) {\n return Promise.reject(e);\n }\n\n if ( isIE ) {\n op = new Promise( function ( res, rej ) {\n op.onabort =\n op.onerror = function ( e ) { rej(e) };\n op.oncomplete = function ( r ) { res(r.target.result) };\n });\n }\n\n if ( m === 'exportKey' && a === 'jwk' ) {\n op = op.then( function ( k ) {\n if ( ( isWebkit || ( isIE && ( b.algorithm.hash || {} ).name === 'SHA-1' ) )\n && b.algorithm.name === 'HMAC') {\n return { 'kty': 'oct', 'alg': jwkAlg(b.algorithm), 'key_ops': b.usages.slice(), 'ext': true, 'k': s2a( b2s(k) ) };\n }\n k = b2jwk(k);\n if ( !k.alg ) k['alg'] = jwkAlg(b.algorithm);\n if ( !k.key_ops ) k['key_ops'] = ( b.type === 'public' ) ? b.usages.filter(isPubKeyUse) : ( b.type === 'private' ) ? b.usages.filter(isPrvKeyUse) : b.usages.slice();\n return k;\n });\n }\n\n if ( isWebkit && m === 'exportKey' && ( a === 'spki' || a === 'pkcs8' ) ) {\n op = op.then( function ( k ) {\n k = jwk2pkcs( b2jwk(k) );\n return k;\n });\n }\n\n return op;\n }\n });\n\n [ 'encrypt', 'decrypt', 'sign', 'verify' ]\n .forEach( function ( m ) {\n var _fn = _subtle[m];\n\n _subtle[m] = function ( a, b, c, d ) {\n if ( isIE && ( !c.byteLength || ( d && !d.byteLength ) ) )\n throw new Error(\"Empy input is not allowed\");\n\n var args = [].slice.call(arguments),\n ka = alg(a);\n\n if ( isIE && m === 'decrypt' && ka.name === 'AES-GCM' ) {\n var tl = a.tagLength >> 3;\n args[2] = (c.buffer || c).slice( 0, c.byteLength - tl ),\n a.tag = (c.buffer || c).slice( c.byteLength - tl );\n }\n\n args[1] = b._key;\n\n var op;\n try {\n op = _fn.apply( _subtle, args );\n }\n catch ( e ) {\n return Promise.reject(e);\n }\n\n if ( isIE ) {\n op = new Promise( function ( res, rej ) {\n op.onabort =\n op.onerror = function ( e ) {\n rej(e);\n };\n\n op.oncomplete = function ( r ) {\n var r = r.target.result;\n\n if ( m === 'encrypt' && r instanceof AesGcmEncryptResult ) {\n var c = r.ciphertext, t = r.tag;\n r = new Uint8Array( c.byteLength + t.byteLength );\n r.set( new Uint8Array(c), 0 );\n r.set( new Uint8Array(t), c.byteLength );\n r = r.buffer;\n }\n\n res(r);\n };\n });\n }\n\n return op;\n }\n });\n\n if ( isIE ) {\n var _digest = _subtle.digest;\n\n _subtle['digest'] = function ( a, b ) {\n if ( !b.byteLength )\n throw new Error(\"Empy input is not allowed\");\n\n var op;\n try {\n op = _digest.call( _subtle, a, b );\n }\n catch ( e ) {\n return Promise.reject(e);\n }\n\n op = new Promise( function ( res, rej ) {\n op.onabort =\n op.onerror = function ( e ) { rej(e) };\n op.oncomplete = function ( r ) { res(r.target.result) };\n });\n\n return op;\n };\n\n global.crypto = Object.create( _crypto, {\n getRandomValues: { value: function ( a ) { return _crypto.getRandomValues(a) } },\n subtle: { value: _subtle },\n });\n\n global.CryptoKey = CryptoKey;\n }\n\n if ( isWebkit ) {\n _crypto.subtle = _subtle;\n\n global.Crypto = _Crypto;\n global.SubtleCrypto = _SubtleCrypto;\n global.CryptoKey = CryptoKey;\n }\n}));\n\n export default {} // section modified by isomorphic-webcrypto build \n","import './webcrypto-shim.mjs'\nexport default window.crypto\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'use strict';\n\nvar R = typeof Reflect === 'object' ? Reflect : null\nvar ReflectApply = R && typeof R.apply === 'function'\n ? R.apply\n : function ReflectApply(target, receiver, args) {\n return Function.prototype.apply.call(target, receiver, args);\n }\n\nvar ReflectOwnKeys\nif (R && typeof R.ownKeys === 'function') {\n ReflectOwnKeys = R.ownKeys\n} else if (Object.getOwnPropertySymbols) {\n ReflectOwnKeys = function ReflectOwnKeys(target) {\n return Object.getOwnPropertyNames(target)\n .concat(Object.getOwnPropertySymbols(target));\n };\n} else {\n ReflectOwnKeys = function ReflectOwnKeys(target) {\n return Object.getOwnPropertyNames(target);\n };\n}\n\nfunction ProcessEmitWarning(warning) {\n if (console && console.warn) console.warn(warning);\n}\n\nvar NumberIsNaN = Number.isNaN || function NumberIsNaN(value) {\n return value !== value;\n}\n\nfunction EventEmitter() {\n EventEmitter.init.call(this);\n}\nmodule.exports = EventEmitter;\nmodule.exports.once = once;\n\n// Backwards-compat with node 0.10.x\nEventEmitter.EventEmitter = EventEmitter;\n\nEventEmitter.prototype._events = undefined;\nEventEmitter.prototype._eventsCount = 0;\nEventEmitter.prototype._maxListeners = undefined;\n\n// By default EventEmitters will print a warning if more than 10 listeners are\n// added to it. This is a useful default which helps finding memory leaks.\nvar defaultMaxListeners = 10;\n\nfunction checkListener(listener) {\n if (typeof listener !== 'function') {\n throw new TypeError('The \"listener\" argument must be of type Function. Received type ' + typeof listener);\n }\n}\n\nObject.defineProperty(EventEmitter, 'defaultMaxListeners', {\n enumerable: true,\n get: function() {\n return defaultMaxListeners;\n },\n set: function(arg) {\n if (typeof arg !== 'number' || arg < 0 || NumberIsNaN(arg)) {\n throw new RangeError('The value of \"defaultMaxListeners\" is out of range. It must be a non-negative number. Received ' + arg + '.');\n }\n defaultMaxListeners = arg;\n }\n});\n\nEventEmitter.init = function() {\n\n if (this._events === undefined ||\n this._events === Object.getPrototypeOf(this)._events) {\n this._events = Object.create(null);\n this._eventsCount = 0;\n }\n\n this._maxListeners = this._maxListeners || undefined;\n};\n\n// Obviously not all Emitters should be limited to 10. This function allows\n// that to be increased. Set to zero for unlimited.\nEventEmitter.prototype.setMaxListeners = function setMaxListeners(n) {\n if (typeof n !== 'number' || n < 0 || NumberIsNaN(n)) {\n throw new RangeError('The value of \"n\" is out of range. It must be a non-negative number. Received ' + n + '.');\n }\n this._maxListeners = n;\n return this;\n};\n\nfunction _getMaxListeners(that) {\n if (that._maxListeners === undefined)\n return EventEmitter.defaultMaxListeners;\n return that._maxListeners;\n}\n\nEventEmitter.prototype.getMaxListeners = function getMaxListeners() {\n return _getMaxListeners(this);\n};\n\nEventEmitter.prototype.emit = function emit(type) {\n var args = [];\n for (var i = 1; i < arguments.length; i++) args.push(arguments[i]);\n var doError = (type === 'error');\n\n var events = this._events;\n if (events !== undefined)\n doError = (doError && events.error === undefined);\n else if (!doError)\n return false;\n\n // If there is no 'error' event listener then throw.\n if (doError) {\n var er;\n if (args.length > 0)\n er = args[0];\n if (er instanceof Error) {\n // Note: The comments on the `throw` lines are intentional, they show\n // up in Node's output if this results in an unhandled exception.\n throw er; // Unhandled 'error' event\n }\n // At least give some kind of context to the user\n var err = new Error('Unhandled error.' + (er ? ' (' + er.message + ')' : ''));\n err.context = er;\n throw err; // Unhandled 'error' event\n }\n\n var handler = events[type];\n\n if (handler === undefined)\n return false;\n\n if (typeof handler === 'function') {\n ReflectApply(handler, this, args);\n } else {\n var len = handler.length;\n var listeners = arrayClone(handler, len);\n for (var i = 0; i < len; ++i)\n ReflectApply(listeners[i], this, args);\n }\n\n return true;\n};\n\nfunction _addListener(target, type, listener, prepend) {\n var m;\n var events;\n var existing;\n\n checkListener(listener);\n\n events = target._events;\n if (events === undefined) {\n events = target._events = Object.create(null);\n target._eventsCount = 0;\n } else {\n // To avoid recursion in the case that type === \"newListener\"! Before\n // adding it to the listeners, first emit \"newListener\".\n if (events.newListener !== undefined) {\n target.emit('newListener', type,\n listener.listener ? listener.listener : listener);\n\n // Re-assign `events` because a newListener handler could have caused the\n // this._events to be assigned to a new object\n events = target._events;\n }\n existing = events[type];\n }\n\n if (existing === undefined) {\n // Optimize the case of one listener. Don't need the extra array object.\n existing = events[type] = listener;\n ++target._eventsCount;\n } else {\n if (typeof existing === 'function') {\n // Adding the second element, need to change to array.\n existing = events[type] =\n prepend ? [listener, existing] : [existing, listener];\n // If we've already got an array, just append.\n } else if (prepend) {\n existing.unshift(listener);\n } else {\n existing.push(listener);\n }\n\n // Check for listener leak\n m = _getMaxListeners(target);\n if (m > 0 && existing.length > m && !existing.warned) {\n existing.warned = true;\n // No error code for this since it is a Warning\n // eslint-disable-next-line no-restricted-syntax\n var w = new Error('Possible EventEmitter memory leak detected. ' +\n existing.length + ' ' + String(type) + ' listeners ' +\n 'added. Use emitter.setMaxListeners() to ' +\n 'increase limit');\n w.name = 'MaxListenersExceededWarning';\n w.emitter = target;\n w.type = type;\n w.count = existing.length;\n ProcessEmitWarning(w);\n }\n }\n\n return target;\n}\n\nEventEmitter.prototype.addListener = function addListener(type, listener) {\n return _addListener(this, type, listener, false);\n};\n\nEventEmitter.prototype.on = EventEmitter.prototype.addListener;\n\nEventEmitter.prototype.prependListener =\n function prependListener(type, listener) {\n return _addListener(this, type, listener, true);\n };\n\nfunction onceWrapper() {\n if (!this.fired) {\n this.target.removeListener(this.type, this.wrapFn);\n this.fired = true;\n if (arguments.length === 0)\n return this.listener.call(this.target);\n return this.listener.apply(this.target, arguments);\n }\n}\n\nfunction _onceWrap(target, type, listener) {\n var state = { fired: false, wrapFn: undefined, target: target, type: type, listener: listener };\n var wrapped = onceWrapper.bind(state);\n wrapped.listener = listener;\n state.wrapFn = wrapped;\n return wrapped;\n}\n\nEventEmitter.prototype.once = function once(type, listener) {\n checkListener(listener);\n this.on(type, _onceWrap(this, type, listener));\n return this;\n};\n\nEventEmitter.prototype.prependOnceListener =\n function prependOnceListener(type, listener) {\n checkListener(listener);\n this.prependListener(type, _onceWrap(this, type, listener));\n return this;\n };\n\n// Emits a 'removeListener' event if and only if the listener was removed.\nEventEmitter.prototype.removeListener =\n function removeListener(type, listener) {\n var list, events, position, i, originalListener;\n\n checkListener(listener);\n\n events = this._events;\n if (events === undefined)\n return this;\n\n list = events[type];\n if (list === undefined)\n return this;\n\n if (list === listener || list.listener === listener) {\n if (--this._eventsCount === 0)\n this._events = Object.create(null);\n else {\n delete events[type];\n if (events.removeListener)\n this.emit('removeListener', type, list.listener || listener);\n }\n } else if (typeof list !== 'function') {\n position = -1;\n\n for (i = list.length - 1; i >= 0; i--) {\n if (list[i] === listener || list[i].listener === listener) {\n originalListener = list[i].listener;\n position = i;\n break;\n }\n }\n\n if (position < 0)\n return this;\n\n if (position === 0)\n list.shift();\n else {\n spliceOne(list, position);\n }\n\n if (list.length === 1)\n events[type] = list[0];\n\n if (events.removeListener !== undefined)\n this.emit('removeListener', type, originalListener || listener);\n }\n\n return this;\n };\n\nEventEmitter.prototype.off = EventEmitter.prototype.removeListener;\n\nEventEmitter.prototype.removeAllListeners =\n function removeAllListeners(type) {\n var listeners, events, i;\n\n events = this._events;\n if (events === undefined)\n return this;\n\n // not listening for removeListener, no need to emit\n if (events.removeListener === undefined) {\n if (arguments.length === 0) {\n this._events = Object.create(null);\n this._eventsCount = 0;\n } else if (events[type] !== undefined) {\n if (--this._eventsCount === 0)\n this._events = Object.create(null);\n else\n delete events[type];\n }\n return this;\n }\n\n // emit removeListener for all listeners on all events\n if (arguments.length === 0) {\n var keys = Object.keys(events);\n var key;\n for (i = 0; i < keys.length; ++i) {\n key = keys[i];\n if (key === 'removeListener') continue;\n this.removeAllListeners(key);\n }\n this.removeAllListeners('removeListener');\n this._events = Object.create(null);\n this._eventsCount = 0;\n return this;\n }\n\n listeners = events[type];\n\n if (typeof listeners === 'function') {\n this.removeListener(type, listeners);\n } else if (listeners !== undefined) {\n // LIFO order\n for (i = listeners.length - 1; i >= 0; i--) {\n this.removeListener(type, listeners[i]);\n }\n }\n\n return this;\n };\n\nfunction _listeners(target, type, unwrap) {\n var events = target._events;\n\n if (events === undefined)\n return [];\n\n var evlistener = events[type];\n if (evlistener === undefined)\n return [];\n\n if (typeof evlistener === 'function')\n return unwrap ? [evlistener.listener || evlistener] : [evlistener];\n\n return unwrap ?\n unwrapListeners(evlistener) : arrayClone(evlistener, evlistener.length);\n}\n\nEventEmitter.prototype.listeners = function listeners(type) {\n return _listeners(this, type, true);\n};\n\nEventEmitter.prototype.rawListeners = function rawListeners(type) {\n return _listeners(this, type, false);\n};\n\nEventEmitter.listenerCount = function(emitter, type) {\n if (typeof emitter.listenerCount === 'function') {\n return emitter.listenerCount(type);\n } else {\n return listenerCount.call(emitter, type);\n }\n};\n\nEventEmitter.prototype.listenerCount = listenerCount;\nfunction listenerCount(type) {\n var events = this._events;\n\n if (events !== undefined) {\n var evlistener = events[type];\n\n if (typeof evlistener === 'function') {\n return 1;\n } else if (evlistener !== undefined) {\n return evlistener.length;\n }\n }\n\n return 0;\n}\n\nEventEmitter.prototype.eventNames = function eventNames() {\n return this._eventsCount > 0 ? ReflectOwnKeys(this._events) : [];\n};\n\nfunction arrayClone(arr, n) {\n var copy = new Array(n);\n for (var i = 0; i < n; ++i)\n copy[i] = arr[i];\n return copy;\n}\n\nfunction spliceOne(list, index) {\n for (; index + 1 < list.length; index++)\n list[index] = list[index + 1];\n list.pop();\n}\n\nfunction unwrapListeners(arr) {\n var ret = new Array(arr.length);\n for (var i = 0; i < ret.length; ++i) {\n ret[i] = arr[i].listener || arr[i];\n }\n return ret;\n}\n\nfunction once(emitter, name) {\n return new Promise(function (resolve, reject) {\n function eventListener() {\n if (errorListener !== undefined) {\n emitter.removeListener('error', errorListener);\n }\n resolve([].slice.call(arguments));\n };\n var errorListener;\n\n // Adding an error listener is not optional because\n // if an error is thrown on an event emitter we cannot\n // guarantee that the actual event we are waiting will\n // be fired. The result could be a silent way to create\n // memory or file descriptor leaks, which is something\n // we should avoid.\n if (name !== 'error') {\n errorListener = function errorListener(err) {\n emitter.removeListener(name, eventListener);\n reject(err);\n };\n\n emitter.once('error', errorListener);\n }\n\n emitter.once(name, eventListener);\n });\n}\n","var objectWithoutPropertiesLoose = require(\"./objectWithoutPropertiesLoose\");\n\nfunction _objectWithoutProperties(source, excluded) {\n if (source == null) return {};\n var target = objectWithoutPropertiesLoose(source, excluded);\n var key, i;\n\n if (Object.getOwnPropertySymbols) {\n var sourceSymbolKeys = Object.getOwnPropertySymbols(source);\n\n for (i = 0; i < sourceSymbolKeys.length; i++) {\n key = sourceSymbolKeys[i];\n if (excluded.indexOf(key) >= 0) continue;\n if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue;\n target[key] = source[key];\n }\n }\n\n return target;\n}\n\nmodule.exports = _objectWithoutProperties;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nObject.defineProperty(exports, \"format\", {\n enumerable: true,\n get: function get() {\n return _format.default;\n }\n});\nObject.defineProperty(exports, \"parse\", {\n enumerable: true,\n get: function get() {\n return _parse.default;\n }\n});\n\nvar _format = _interopRequireDefault(require(\"./format\"));\n\nvar _parse = _interopRequireDefault(require(\"./parse\"));\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n//# sourceMappingURL=index.js.map","function _objectWithoutPropertiesLoose(source, excluded) {\n if (source == null) return {};\n var target = {};\n var sourceKeys = Object.keys(source);\n var key, i;\n\n for (i = 0; i < sourceKeys.length; i++) {\n key = sourceKeys[i];\n if (excluded.indexOf(key) >= 0) continue;\n target[key] = source[key];\n }\n\n return target;\n}\n\nmodule.exports = _objectWithoutPropertiesLoose;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = void 0;\n\nvar _util = require(\"./util\");\n\nfunction _toConsumableArray(arr) { return _arrayWithoutHoles(arr) || _iterableToArray(arr) || _nonIterableSpread(); }\n\nfunction _nonIterableSpread() { throw new TypeError(\"Invalid attempt to spread non-iterable instance\"); }\n\nfunction _iterableToArray(iter) { if (Symbol.iterator in Object(iter) || Object.prototype.toString.call(iter) === \"[object Arguments]\") return Array.from(iter); }\n\nfunction _arrayWithoutHoles(arr) { if (Array.isArray(arr)) { for (var i = 0, arr2 = new Array(arr.length); i < arr.length; i++) { arr2[i] = arr[i]; } return arr2; } }\n\nfunction _slicedToArray(arr, i) { return _arrayWithHoles(arr) || _iterableToArrayLimit(arr, i) || _nonIterableRest(); }\n\nfunction _nonIterableRest() { throw new TypeError(\"Invalid attempt to destructure non-iterable instance\"); }\n\nfunction _iterableToArrayLimit(arr, i) { var _arr = []; var _n = true; var _d = false; var _e = undefined; try { for (var _i = arr[Symbol.iterator](), _s; !(_n = (_s = _i.next()).done); _n = true) { _arr.push(_s.value); if (i && _arr.length === i) break; } } catch (err) { _d = true; _e = err; } finally { try { if (!_n && _i[\"return\"] != null) _i[\"return\"](); } finally { if (_d) throw _e; } } return _arr; }\n\nfunction _arrayWithHoles(arr) { if (Array.isArray(arr)) return arr; }\n\nvar xxx = function xxx(key) {\n return function (value) {\n return `${key}=${value && !(0, _util.isToken)(value) ? (0, _util.quote)(value) : value}`;\n };\n};\n\nvar build = function build(params) {\n return params.reduce(function (prev, _ref) {\n var _ref2 = _slicedToArray(_ref, 2),\n key = _ref2[0],\n values = _ref2[1];\n\n var transform = xxx(key);\n\n if (!(0, _util.isToken)(key)) {\n throw new TypeError();\n }\n\n if (Array.isArray(values)) {\n return _toConsumableArray(prev).concat(_toConsumableArray(values.map(transform)));\n }\n\n return _toConsumableArray(prev).concat([transform(values)]);\n }, []);\n};\n\nvar challenge = function challenge(params, options) {\n if (Array.isArray(params)) {\n return build(params);\n } else if (typeof params === 'object') {\n var entries = params;\n return challenge(Object.keys(params).map(function (key) {\n return [key, entries[key]];\n }), options);\n }\n\n throw new TypeError();\n};\n\nvar _default = function _default(scheme, token, params) {\n var obj = typeof scheme === 'string' ? {\n scheme,\n token,\n params\n } : scheme;\n\n if (typeof obj !== 'object') {\n throw new TypeError();\n } else if (!(0, _util.isScheme)(obj.scheme)) {\n throw new TypeError('Invalid scheme.');\n }\n\n return [obj.scheme].concat(_toConsumableArray(typeof obj.token !== 'undefined' ? [obj.token] : []), _toConsumableArray(typeof obj.params !== 'undefined' ? challenge(obj.params) : [])).join(' ');\n};\n\nexports.default = _default;\n//# sourceMappingURL=format.js.map","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = void 0;\n\nvar _util = require(\"./util\");\n\n// lol dis\nvar body = /((?:[a-zA-Z0-9._~+\\/-]+=*(?:\\s+|$))|[^\\u0000-\\u001F\\u007F()<>@,;:\\\\\"/?={}\\[\\]\\u0020\\u0009]+)(?:=([^\\\\\"=\\s,]+|\"(?:[^\"\\\\]|\\\\.)*\"))?/g; // eslint-disable-line\n\nvar normalize = function normalize(prev, _cur) {\n // Fixup quoted strings and tokens with spaces around them\n var cur = _cur.charAt(0) === '\"' ? (0, _util.unquote)(_cur) : _cur.trim(); // Marshal\n\n if (Array.isArray(prev)) {\n return prev.concat(cur);\n } else if (typeof prev === 'string') {\n return [prev, cur];\n }\n\n return cur;\n};\n\nvar parseProperties = function parseProperties(scheme, string) {\n var token = null;\n var params = {}; // eslint-disable-next-line no-constant-condition\n\n while (true) {\n var res = body.exec(string);\n\n if (res === null) {\n break;\n }\n\n if (res[2]) {\n params[res[1]] = normalize(params[res[1]], res[2]);\n } else {\n token = normalize(token, res[1]);\n }\n }\n\n return {\n scheme,\n params,\n token\n };\n};\n\nvar _default = function _default(str) {\n if (typeof str !== 'string') {\n throw new TypeError('Header value must be a string.');\n }\n\n var start = str.indexOf(' ');\n var scheme = str.substr(0, start);\n\n if (!(0, _util.isScheme)(scheme)) {\n throw new TypeError(`Invalid scheme ${scheme}`);\n }\n\n return parseProperties(scheme, str.substr(start));\n};\n\nexports.default = _default;\n//# sourceMappingURL=parse.js.map","/*\nobject-assign\n(c) Sindre Sorhus\n@license MIT\n*/\n\n'use strict';\n/* eslint-disable no-unused-vars */\nvar getOwnPropertySymbols = Object.getOwnPropertySymbols;\nvar hasOwnProperty = Object.prototype.hasOwnProperty;\nvar propIsEnumerable = Object.prototype.propertyIsEnumerable;\n\nfunction toObject(val) {\n\tif (val === null || val === undefined) {\n\t\tthrow new TypeError('Object.assign cannot be called with null or undefined');\n\t}\n\n\treturn Object(val);\n}\n\nfunction shouldUseNative() {\n\ttry {\n\t\tif (!Object.assign) {\n\t\t\treturn false;\n\t\t}\n\n\t\t// Detect buggy property enumeration order in older V8 versions.\n\n\t\t// https://bugs.chromium.org/p/v8/issues/detail?id=4118\n\t\tvar test1 = new String('abc'); // eslint-disable-line no-new-wrappers\n\t\ttest1[5] = 'de';\n\t\tif (Object.getOwnPropertyNames(test1)[0] === '5') {\n\t\t\treturn false;\n\t\t}\n\n\t\t// https://bugs.chromium.org/p/v8/issues/detail?id=3056\n\t\tvar test2 = {};\n\t\tfor (var i = 0; i < 10; i++) {\n\t\t\ttest2['_' + String.fromCharCode(i)] = i;\n\t\t}\n\t\tvar order2 = Object.getOwnPropertyNames(test2).map(function (n) {\n\t\t\treturn test2[n];\n\t\t});\n\t\tif (order2.join('') !== '0123456789') {\n\t\t\treturn false;\n\t\t}\n\n\t\t// https://bugs.chromium.org/p/v8/issues/detail?id=3056\n\t\tvar test3 = {};\n\t\t'abcdefghijklmnopqrst'.split('').forEach(function (letter) {\n\t\t\ttest3[letter] = letter;\n\t\t});\n\t\tif (Object.keys(Object.assign({}, test3)).join('') !==\n\t\t\t\t'abcdefghijklmnopqrst') {\n\t\t\treturn false;\n\t\t}\n\n\t\treturn true;\n\t} catch (err) {\n\t\t// We don't expect any of the above to throw, but better to be safe.\n\t\treturn false;\n\t}\n}\n\nmodule.exports = shouldUseNative() ? Object.assign : function (target, source) {\n\tvar from;\n\tvar to = toObject(target);\n\tvar symbols;\n\n\tfor (var s = 1; s < arguments.length; s++) {\n\t\tfrom = Object(arguments[s]);\n\n\t\tfor (var key in from) {\n\t\t\tif (hasOwnProperty.call(from, key)) {\n\t\t\t\tto[key] = from[key];\n\t\t\t}\n\t\t}\n\n\t\tif (getOwnPropertySymbols) {\n\t\t\tsymbols = getOwnPropertySymbols(from);\n\t\t\tfor (var i = 0; i < symbols.length; i++) {\n\t\t\t\tif (propIsEnumerable.call(from, symbols[i])) {\n\t\t\t\t\tto[symbols[i]] = from[symbols[i]];\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n\n\treturn to;\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\nvar getOwnPropertyDescriptors = Object.getOwnPropertyDescriptors ||\n function getOwnPropertyDescriptors(obj) {\n var keys = Object.keys(obj);\n var descriptors = {};\n for (var i = 0; i < keys.length; i++) {\n descriptors[keys[i]] = Object.getOwnPropertyDescriptor(obj, keys[i]);\n }\n return descriptors;\n };\n\nvar formatRegExp = /%[sdj%]/g;\nexports.format = function(f) {\n if (!isString(f)) {\n var objects = [];\n for (var i = 0; i < arguments.length; i++) {\n objects.push(inspect(arguments[i]));\n }\n return objects.join(' ');\n }\n\n var i = 1;\n var args = arguments;\n var len = args.length;\n var str = String(f).replace(formatRegExp, function(x) {\n if (x === '%%') return '%';\n if (i >= len) return x;\n switch (x) {\n case '%s': return String(args[i++]);\n case '%d': return Number(args[i++]);\n case '%j':\n try {\n return JSON.stringify(args[i++]);\n } catch (_) {\n return '[Circular]';\n }\n default:\n return x;\n }\n });\n for (var x = args[i]; i < len; x = args[++i]) {\n if (isNull(x) || !isObject(x)) {\n str += ' ' + x;\n } else {\n str += ' ' + inspect(x);\n }\n }\n return str;\n};\n\n\n// Mark that a method should not be used.\n// Returns a modified function which warns once by default.\n// If --no-deprecation is set, then it is a no-op.\nexports.deprecate = function(fn, msg) {\n if (typeof process !== 'undefined' && process.noDeprecation === true) {\n return fn;\n }\n\n // Allow for deprecating things in the process of starting up.\n if (typeof process === 'undefined') {\n return function() {\n return exports.deprecate(fn, msg).apply(this, arguments);\n };\n }\n\n var warned = false;\n function deprecated() {\n if (!warned) {\n if (process.throwDeprecation) {\n throw new Error(msg);\n } else if (process.traceDeprecation) {\n console.trace(msg);\n } else {\n console.error(msg);\n }\n warned = true;\n }\n return fn.apply(this, arguments);\n }\n\n return deprecated;\n};\n\n\nvar debugs = {};\nvar debugEnviron;\nexports.debuglog = function(set) {\n if (isUndefined(debugEnviron))\n debugEnviron = process.env.NODE_DEBUG || '';\n set = set.toUpperCase();\n if (!debugs[set]) {\n if (new RegExp('\\\\b' + set + '\\\\b', 'i').test(debugEnviron)) {\n var pid = process.pid;\n debugs[set] = function() {\n var msg = exports.format.apply(exports, arguments);\n console.error('%s %d: %s', set, pid, msg);\n };\n } else {\n debugs[set] = function() {};\n }\n }\n return debugs[set];\n};\n\n\n/**\n * Echos the value of a value. Trys to print the value out\n * in the best way possible given the different types.\n *\n * @param {Object} obj The object to print out.\n * @param {Object} opts Optional options object that alters the output.\n */\n/* legacy: obj, showHidden, depth, colors*/\nfunction inspect(obj, opts) {\n // default options\n var ctx = {\n seen: [],\n stylize: stylizeNoColor\n };\n // legacy...\n if (arguments.length >= 3) ctx.depth = arguments[2];\n if (arguments.length >= 4) ctx.colors = arguments[3];\n if (isBoolean(opts)) {\n // legacy...\n ctx.showHidden = opts;\n } else if (opts) {\n // got an \"options\" object\n exports._extend(ctx, opts);\n }\n // set default options\n if (isUndefined(ctx.showHidden)) ctx.showHidden = false;\n if (isUndefined(ctx.depth)) ctx.depth = 2;\n if (isUndefined(ctx.colors)) ctx.colors = false;\n if (isUndefined(ctx.customInspect)) ctx.customInspect = true;\n if (ctx.colors) ctx.stylize = stylizeWithColor;\n return formatValue(ctx, obj, ctx.depth);\n}\nexports.inspect = inspect;\n\n\n// http://en.wikipedia.org/wiki/ANSI_escape_code#graphics\ninspect.colors = {\n 'bold' : [1, 22],\n 'italic' : [3, 23],\n 'underline' : [4, 24],\n 'inverse' : [7, 27],\n 'white' : [37, 39],\n 'grey' : [90, 39],\n 'black' : [30, 39],\n 'blue' : [34, 39],\n 'cyan' : [36, 39],\n 'green' : [32, 39],\n 'magenta' : [35, 39],\n 'red' : [31, 39],\n 'yellow' : [33, 39]\n};\n\n// Don't use 'blue' not visible on cmd.exe\ninspect.styles = {\n 'special': 'cyan',\n 'number': 'yellow',\n 'boolean': 'yellow',\n 'undefined': 'grey',\n 'null': 'bold',\n 'string': 'green',\n 'date': 'magenta',\n // \"name\": intentionally not styling\n 'regexp': 'red'\n};\n\n\nfunction stylizeWithColor(str, styleType) {\n var style = inspect.styles[styleType];\n\n if (style) {\n return '\\u001b[' + inspect.colors[style][0] + 'm' + str +\n '\\u001b[' + inspect.colors[style][1] + 'm';\n } else {\n return str;\n }\n}\n\n\nfunction stylizeNoColor(str, styleType) {\n return str;\n}\n\n\nfunction arrayToHash(array) {\n var hash = {};\n\n array.forEach(function(val, idx) {\n hash[val] = true;\n });\n\n return hash;\n}\n\n\nfunction formatValue(ctx, value, recurseTimes) {\n // Provide a hook for user-specified inspect functions.\n // Check that value is an object with an inspect function on it\n if (ctx.customInspect &&\n value &&\n isFunction(value.inspect) &&\n // Filter out the util module, it's inspect function is special\n value.inspect !== exports.inspect &&\n // Also filter out any prototype objects using the circular check.\n !(value.constructor && value.constructor.prototype === value)) {\n var ret = value.inspect(recurseTimes, ctx);\n if (!isString(ret)) {\n ret = formatValue(ctx, ret, recurseTimes);\n }\n return ret;\n }\n\n // Primitive types cannot have properties\n var primitive = formatPrimitive(ctx, value);\n if (primitive) {\n return primitive;\n }\n\n // Look up the keys of the object.\n var keys = Object.keys(value);\n var visibleKeys = arrayToHash(keys);\n\n if (ctx.showHidden) {\n keys = Object.getOwnPropertyNames(value);\n }\n\n // IE doesn't make error fields non-enumerable\n // http://msdn.microsoft.com/en-us/library/ie/dww52sbt(v=vs.94).aspx\n if (isError(value)\n && (keys.indexOf('message') >= 0 || keys.indexOf('description') >= 0)) {\n return formatError(value);\n }\n\n // Some type of object without properties can be shortcutted.\n if (keys.length === 0) {\n if (isFunction(value)) {\n var name = value.name ? ': ' + value.name : '';\n return ctx.stylize('[Function' + name + ']', 'special');\n }\n if (isRegExp(value)) {\n return ctx.stylize(RegExp.prototype.toString.call(value), 'regexp');\n }\n if (isDate(value)) {\n return ctx.stylize(Date.prototype.toString.call(value), 'date');\n }\n if (isError(value)) {\n return formatError(value);\n }\n }\n\n var base = '', array = false, braces = ['{', '}'];\n\n // Make Array say that they are Array\n if (isArray(value)) {\n array = true;\n braces = ['[', ']'];\n }\n\n // Make functions say that they are functions\n if (isFunction(value)) {\n var n = value.name ? ': ' + value.name : '';\n base = ' [Function' + n + ']';\n }\n\n // Make RegExps say that they are RegExps\n if (isRegExp(value)) {\n base = ' ' + RegExp.prototype.toString.call(value);\n }\n\n // Make dates with properties first say the date\n if (isDate(value)) {\n base = ' ' + Date.prototype.toUTCString.call(value);\n }\n\n // Make error with message first say the error\n if (isError(value)) {\n base = ' ' + formatError(value);\n }\n\n if (keys.length === 0 && (!array || value.length == 0)) {\n return braces[0] + base + braces[1];\n }\n\n if (recurseTimes < 0) {\n if (isRegExp(value)) {\n return ctx.stylize(RegExp.prototype.toString.call(value), 'regexp');\n } else {\n return ctx.stylize('[Object]', 'special');\n }\n }\n\n ctx.seen.push(value);\n\n var output;\n if (array) {\n output = formatArray(ctx, value, recurseTimes, visibleKeys, keys);\n } else {\n output = keys.map(function(key) {\n return formatProperty(ctx, value, recurseTimes, visibleKeys, key, array);\n });\n }\n\n ctx.seen.pop();\n\n return reduceToSingleString(output, base, braces);\n}\n\n\nfunction formatPrimitive(ctx, value) {\n if (isUndefined(value))\n return ctx.stylize('undefined', 'undefined');\n if (isString(value)) {\n var simple = '\\'' + JSON.stringify(value).replace(/^\"|\"$/g, '')\n .replace(/'/g, \"\\\\'\")\n .replace(/\\\\\"/g, '\"') + '\\'';\n return ctx.stylize(simple, 'string');\n }\n if (isNumber(value))\n return ctx.stylize('' + value, 'number');\n if (isBoolean(value))\n return ctx.stylize('' + value, 'boolean');\n // For some reason typeof null is \"object\", so special case here.\n if (isNull(value))\n return ctx.stylize('null', 'null');\n}\n\n\nfunction formatError(value) {\n return '[' + Error.prototype.toString.call(value) + ']';\n}\n\n\nfunction formatArray(ctx, value, recurseTimes, visibleKeys, keys) {\n var output = [];\n for (var i = 0, l = value.length; i < l; ++i) {\n if (hasOwnProperty(value, String(i))) {\n output.push(formatProperty(ctx, value, recurseTimes, visibleKeys,\n String(i), true));\n } else {\n output.push('');\n }\n }\n keys.forEach(function(key) {\n if (!key.match(/^\\d+$/)) {\n output.push(formatProperty(ctx, value, recurseTimes, visibleKeys,\n key, true));\n }\n });\n return output;\n}\n\n\nfunction formatProperty(ctx, value, recurseTimes, visibleKeys, key, array) {\n var name, str, desc;\n desc = Object.getOwnPropertyDescriptor(value, key) || { value: value[key] };\n if (desc.get) {\n if (desc.set) {\n str = ctx.stylize('[Getter/Setter]', 'special');\n } else {\n str = ctx.stylize('[Getter]', 'special');\n }\n } else {\n if (desc.set) {\n str = ctx.stylize('[Setter]', 'special');\n }\n }\n if (!hasOwnProperty(visibleKeys, key)) {\n name = '[' + key + ']';\n }\n if (!str) {\n if (ctx.seen.indexOf(desc.value) < 0) {\n if (isNull(recurseTimes)) {\n str = formatValue(ctx, desc.value, null);\n } else {\n str = formatValue(ctx, desc.value, recurseTimes - 1);\n }\n if (str.indexOf('\\n') > -1) {\n if (array) {\n str = str.split('\\n').map(function(line) {\n return ' ' + line;\n }).join('\\n').substr(2);\n } else {\n str = '\\n' + str.split('\\n').map(function(line) {\n return ' ' + line;\n }).join('\\n');\n }\n }\n } else {\n str = ctx.stylize('[Circular]', 'special');\n }\n }\n if (isUndefined(name)) {\n if (array && key.match(/^\\d+$/)) {\n return str;\n }\n name = JSON.stringify('' + key);\n if (name.match(/^\"([a-zA-Z_][a-zA-Z_0-9]*)\"$/)) {\n name = name.substr(1, name.length - 2);\n name = ctx.stylize(name, 'name');\n } else {\n name = name.replace(/'/g, \"\\\\'\")\n .replace(/\\\\\"/g, '\"')\n .replace(/(^\"|\"$)/g, \"'\");\n name = ctx.stylize(name, 'string');\n }\n }\n\n return name + ': ' + str;\n}\n\n\nfunction reduceToSingleString(output, base, braces) {\n var numLinesEst = 0;\n var length = output.reduce(function(prev, cur) {\n numLinesEst++;\n if (cur.indexOf('\\n') >= 0) numLinesEst++;\n return prev + cur.replace(/\\u001b\\[\\d\\d?m/g, '').length + 1;\n }, 0);\n\n if (length > 60) {\n return braces[0] +\n (base === '' ? '' : base + '\\n ') +\n ' ' +\n output.join(',\\n ') +\n ' ' +\n braces[1];\n }\n\n return braces[0] + base + ' ' + output.join(', ') + ' ' + braces[1];\n}\n\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()`.\nfunction isArray(ar) {\n return Array.isArray(ar);\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 isObject(re) && 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 isObject(d) && objectToString(d) === '[object Date]';\n}\nexports.isDate = isDate;\n\nfunction isError(e) {\n return isObject(e) &&\n (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('./support/isBuffer');\n\nfunction objectToString(o) {\n return Object.prototype.toString.call(o);\n}\n\n\nfunction pad(n) {\n return n < 10 ? '0' + n.toString(10) : n.toString(10);\n}\n\n\nvar months = ['Jan', 'Feb', 'Mar', 'Apr', 'May', 'Jun', 'Jul', 'Aug', 'Sep',\n 'Oct', 'Nov', 'Dec'];\n\n// 26 Feb 16:19:34\nfunction timestamp() {\n var d = new Date();\n var time = [pad(d.getHours()),\n pad(d.getMinutes()),\n pad(d.getSeconds())].join(':');\n return [d.getDate(), months[d.getMonth()], time].join(' ');\n}\n\n\n// log is just a thin wrapper to console.log that prepends a timestamp\nexports.log = function() {\n console.log('%s - %s', timestamp(), exports.format.apply(exports, arguments));\n};\n\n\n/**\n * Inherit the prototype methods from one constructor into another.\n *\n * The Function.prototype.inherits from lang.js rewritten as a standalone\n * function (not on Function.prototype). NOTE: If this file is to be loaded\n * during bootstrapping this function needs to be rewritten using some native\n * functions as prototype setup using normal JavaScript does not work as\n * expected during bootstrapping (see mirror.js in r114903).\n *\n * @param {function} ctor Constructor function which needs to inherit the\n * prototype.\n * @param {function} superCtor Constructor function to inherit prototype from.\n */\nexports.inherits = require('inherits');\n\nexports._extend = function(origin, add) {\n // Don't do anything if add isn't an object\n if (!add || !isObject(add)) return origin;\n\n var keys = Object.keys(add);\n var i = keys.length;\n while (i--) {\n origin[keys[i]] = add[keys[i]];\n }\n return origin;\n};\n\nfunction hasOwnProperty(obj, prop) {\n return Object.prototype.hasOwnProperty.call(obj, prop);\n}\n\nvar kCustomPromisifiedSymbol = typeof Symbol !== 'undefined' ? Symbol('util.promisify.custom') : undefined;\n\nexports.promisify = function promisify(original) {\n if (typeof original !== 'function')\n throw new TypeError('The \"original\" argument must be of type Function');\n\n if (kCustomPromisifiedSymbol && original[kCustomPromisifiedSymbol]) {\n var fn = original[kCustomPromisifiedSymbol];\n if (typeof fn !== 'function') {\n throw new TypeError('The \"util.promisify.custom\" argument must be of type Function');\n }\n Object.defineProperty(fn, kCustomPromisifiedSymbol, {\n value: fn, enumerable: false, writable: false, configurable: true\n });\n return fn;\n }\n\n function fn() {\n var promiseResolve, promiseReject;\n var promise = new Promise(function (resolve, reject) {\n promiseResolve = resolve;\n promiseReject = reject;\n });\n\n var args = [];\n for (var i = 0; i < arguments.length; i++) {\n args.push(arguments[i]);\n }\n args.push(function (err, value) {\n if (err) {\n promiseReject(err);\n } else {\n promiseResolve(value);\n }\n });\n\n try {\n original.apply(this, args);\n } catch (err) {\n promiseReject(err);\n }\n\n return promise;\n }\n\n Object.setPrototypeOf(fn, Object.getPrototypeOf(original));\n\n if (kCustomPromisifiedSymbol) Object.defineProperty(fn, kCustomPromisifiedSymbol, {\n value: fn, enumerable: false, writable: false, configurable: true\n });\n return Object.defineProperties(\n fn,\n getOwnPropertyDescriptors(original)\n );\n}\n\nexports.promisify.custom = kCustomPromisifiedSymbol\n\nfunction callbackifyOnRejected(reason, cb) {\n // `!reason` guard inspired by bluebird (Ref: https://goo.gl/t5IS6M).\n // Because `null` is a special error value in callbacks which means \"no error\n // occurred\", we error-wrap so the callback consumer can distinguish between\n // \"the promise rejected with null\" or \"the promise fulfilled with undefined\".\n if (!reason) {\n var newReason = new Error('Promise was rejected with a falsy value');\n newReason.reason = reason;\n reason = newReason;\n }\n return cb(reason);\n}\n\nfunction callbackify(original) {\n if (typeof original !== 'function') {\n throw new TypeError('The \"original\" argument must be of type Function');\n }\n\n // We DO NOT return the promise as it gives the user a false sense that\n // the promise is actually somehow related to the callback's execution\n // and that the callback throwing will reject the promise.\n function callbackified() {\n var args = [];\n for (var i = 0; i < arguments.length; i++) {\n args.push(arguments[i]);\n }\n\n var maybeCb = args.pop();\n if (typeof maybeCb !== 'function') {\n throw new TypeError('The last argument must be of type Function');\n }\n var self = this;\n var cb = function() {\n return maybeCb.apply(self, arguments);\n };\n // In true node style we process the callback on `nextTick` with all the\n // implications (stack, `uncaughtException`, `async_hooks`)\n original.apply(this, args)\n .then(function(ret) { process.nextTick(cb, null, ret) },\n function(rej) { process.nextTick(callbackifyOnRejected, rej, cb) });\n }\n\n Object.setPrototypeOf(callbackified, Object.getPrototypeOf(original));\n Object.defineProperties(callbackified,\n getOwnPropertyDescriptors(original));\n return callbackified;\n}\nexports.callbackify = callbackify;\n","// shim for using process in browser\nvar process = module.exports = {};\n\n// cached from whatever global is present so that test runners that stub it\n// don't break things. But we need to wrap it in a try catch in case it is\n// wrapped in strict mode code which doesn't define any globals. It's inside a\n// function because try/catches deoptimize in certain engines.\n\nvar cachedSetTimeout;\nvar cachedClearTimeout;\n\nfunction defaultSetTimout() {\n throw new Error('setTimeout has not been defined');\n}\nfunction defaultClearTimeout () {\n throw new Error('clearTimeout has not been defined');\n}\n(function () {\n try {\n if (typeof setTimeout === 'function') {\n cachedSetTimeout = setTimeout;\n } else {\n cachedSetTimeout = defaultSetTimout;\n }\n } catch (e) {\n cachedSetTimeout = defaultSetTimout;\n }\n try {\n if (typeof clearTimeout === 'function') {\n cachedClearTimeout = clearTimeout;\n } else {\n cachedClearTimeout = defaultClearTimeout;\n }\n } catch (e) {\n cachedClearTimeout = defaultClearTimeout;\n }\n} ())\nfunction runTimeout(fun) {\n if (cachedSetTimeout === setTimeout) {\n //normal enviroments in sane situations\n return setTimeout(fun, 0);\n }\n // if setTimeout wasn't available but was latter defined\n if ((cachedSetTimeout === defaultSetTimout || !cachedSetTimeout) && setTimeout) {\n cachedSetTimeout = setTimeout;\n return setTimeout(fun, 0);\n }\n try {\n // when when somebody has screwed with setTimeout but no I.E. maddness\n return cachedSetTimeout(fun, 0);\n } catch(e){\n try {\n // When we are in I.E. but the script has been evaled so I.E. doesn't trust the global object when called normally\n return cachedSetTimeout.call(null, fun, 0);\n } catch(e){\n // same as above but when it's a version of I.E. that must have the global object for 'this', hopfully our context correct otherwise it will throw a global error\n return cachedSetTimeout.call(this, fun, 0);\n }\n }\n\n\n}\nfunction runClearTimeout(marker) {\n if (cachedClearTimeout === clearTimeout) {\n //normal enviroments in sane situations\n return clearTimeout(marker);\n }\n // if clearTimeout wasn't available but was latter defined\n if ((cachedClearTimeout === defaultClearTimeout || !cachedClearTimeout) && clearTimeout) {\n cachedClearTimeout = clearTimeout;\n return clearTimeout(marker);\n }\n try {\n // when when somebody has screwed with setTimeout but no I.E. maddness\n return cachedClearTimeout(marker);\n } catch (e){\n try {\n // When we are in I.E. but the script has been evaled so I.E. doesn't trust the global object when called normally\n return cachedClearTimeout.call(null, marker);\n } catch (e){\n // same as above but when it's a version of I.E. that must have the global object for 'this', hopfully our context correct otherwise it will throw a global error.\n // Some versions of I.E. have different rules for clearTimeout vs setTimeout\n return cachedClearTimeout.call(this, marker);\n }\n }\n\n\n\n}\nvar queue = [];\nvar draining = false;\nvar currentQueue;\nvar queueIndex = -1;\n\nfunction cleanUpNextTick() {\n if (!draining || !currentQueue) {\n return;\n }\n draining = false;\n if (currentQueue.length) {\n queue = currentQueue.concat(queue);\n } else {\n queueIndex = -1;\n }\n if (queue.length) {\n drainQueue();\n }\n}\n\nfunction drainQueue() {\n if (draining) {\n return;\n }\n var timeout = runTimeout(cleanUpNextTick);\n draining = true;\n\n var len = queue.length;\n while(len) {\n currentQueue = queue;\n queue = [];\n while (++queueIndex < len) {\n if (currentQueue) {\n currentQueue[queueIndex].run();\n }\n }\n queueIndex = -1;\n len = queue.length;\n }\n currentQueue = null;\n draining = false;\n runClearTimeout(timeout);\n}\n\nprocess.nextTick = function (fun) {\n var args = new Array(arguments.length - 1);\n if (arguments.length > 1) {\n for (var i = 1; i < arguments.length; i++) {\n args[i - 1] = arguments[i];\n }\n }\n queue.push(new Item(fun, args));\n if (queue.length === 1 && !draining) {\n runTimeout(drainQueue);\n }\n};\n\n// v8 likes predictible objects\nfunction Item(fun, array) {\n this.fun = fun;\n this.array = array;\n}\nItem.prototype.run = function () {\n this.fun.apply(null, this.array);\n};\nprocess.title = 'browser';\nprocess.browser = true;\nprocess.env = {};\nprocess.argv = [];\nprocess.version = ''; // empty string to avoid regexp issues\nprocess.versions = {};\n\nfunction noop() {}\n\nprocess.on = noop;\nprocess.addListener = noop;\nprocess.once = noop;\nprocess.off = noop;\nprocess.removeListener = noop;\nprocess.removeAllListeners = noop;\nprocess.emit = noop;\nprocess.prependListener = noop;\nprocess.prependOnceListener = noop;\n\nprocess.listeners = function (name) { return [] }\n\nprocess.binding = function (name) {\n throw new Error('process.binding is not supported');\n};\n\nprocess.cwd = function () { return '/' };\nprocess.chdir = function (dir) {\n throw new Error('process.chdir is not supported');\n};\nprocess.umask = function() { return 0; };\n","module.exports = function isBuffer(arg) {\n return arg && typeof arg === 'object'\n && typeof arg.copy === 'function'\n && typeof arg.fill === 'function'\n && typeof arg.readUInt8 === 'function';\n}","if (typeof Object.create === 'function') {\n // implementation from standard node.js 'util' module\n module.exports = function inherits(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} else {\n // old school shim for old browsers\n module.exports = function inherits(ctor, superCtor) {\n ctor.super_ = superCtor\n var TempCtor = function () {}\n TempCtor.prototype = superCtor.prototype\n ctor.prototype = new TempCtor()\n ctor.prototype.constructor = ctor\n }\n}\n","/**\n * Local dependencies\n */\nconst None = require('./NONE')\nconst HMAC = require('./HMAC')\nconst RSASSA_PKCS1_v1_5 = require('./RSASSA-PKCS1-v1_5')\nconst SupportedAlgorithms = require('./SupportedAlgorithms')\n\n/**\n * Register Supported Algorithms\n */\nconst supportedAlgorithms = new SupportedAlgorithms\n\n/**\n * Sign\n */\nsupportedAlgorithms.define('HS256', 'sign', new HMAC({\n name: 'HMAC',\n hash: {\n name: 'SHA-256'\n }\n}))\n\nsupportedAlgorithms.define('HS384', 'sign', new HMAC({\n name: 'HMAC',\n hash: {\n name: 'SHA-384'\n }\n}))\n\nsupportedAlgorithms.define('HS512', 'sign', new HMAC({\n name: 'HMAC',\n hash: {\n name: 'SHA-512'\n }\n}))\n\nsupportedAlgorithms.define('RS256', 'sign', new RSASSA_PKCS1_v1_5({\n name: 'RSASSA-PKCS1-v1_5',\n hash: {\n name: 'SHA-256'\n }\n}))\n\nsupportedAlgorithms.define('RS384', 'sign', new RSASSA_PKCS1_v1_5({\n name: 'RSASSA-PKCS1-v1_5',\n hash: {\n name: 'SHA-384'\n }\n}))\n\nsupportedAlgorithms.define('RS512', 'sign', new RSASSA_PKCS1_v1_5({\n name: 'RSASSA-PKCS1-v1_5',\n hash: {\n name: 'SHA-512'\n }\n}))\n//supportedAlgorithms.define('ES256', 'sign', {})\n//supportedAlgorithms.define('ES384', 'sign', {})\n//supportedAlgorithms.define('ES512', 'sign', {})\n//supportedAlgorithms.define('PS256', 'sign', {})\n//supportedAlgorithms.define('PS384', 'sign', {})\n//supportedAlgorithms.define('PS512', 'sign', {})\n\nsupportedAlgorithms.define('none', 'sign', new None({\n // nothing goes here\n}))\n\n/**\n * Verify\n */\nsupportedAlgorithms.define('HS256', 'verify', new HMAC({\n name: 'HMAC',\n hash: {\n name: 'SHA-256'\n }\n}))\n\nsupportedAlgorithms.define('HS384', 'verify', new HMAC({\n name: 'HMAC',\n hash: {\n name: 'SHA-384'\n }\n}))\n\nsupportedAlgorithms.define('HS512', 'verify', new HMAC({\n name: 'HMAC',\n hash: {\n name: 'SHA-512'\n }\n}))\n\nsupportedAlgorithms.define('RS256', 'verify', new RSASSA_PKCS1_v1_5({\n name: 'RSASSA-PKCS1-v1_5',\n hash: {\n name: 'SHA-256'\n }\n}))\n\nsupportedAlgorithms.define('RS384', 'verify', new RSASSA_PKCS1_v1_5({\n name: 'RSASSA-PKCS1-v1_5',\n hash: {\n name: 'SHA-384'\n }\n}))\n\nsupportedAlgorithms.define('RS512', 'verify', new RSASSA_PKCS1_v1_5({\n name: 'RSASSA-PKCS1-v1_5',\n hash: {\n name: 'SHA-512'\n }\n}))\n//supportedAlgorithms.define('ES256', 'verify', {})\n//supportedAlgorithms.define('ES384', 'verify', {})\n//supportedAlgorithms.define('ES512', 'verify', {})\n//supportedAlgorithms.define('PS256', 'verify', {})\n//supportedAlgorithms.define('PS384', 'verify', {})\n//supportedAlgorithms.define('PS512', 'verify', {})\n\nsupportedAlgorithms.define('none', 'verify', new None({\n // nothing goes here\n}))\n\nsupportedAlgorithms.define('RS256', 'importKey', new RSASSA_PKCS1_v1_5({\n name: 'RSASSA-PKCS1-v1_5',\n hash: {\n name: 'SHA-256'\n }\n}))\n\nsupportedAlgorithms.define('RS384', 'importKey', new RSASSA_PKCS1_v1_5({\n name: 'RSASSA-PKCS1-v1_5',\n hash: {\n name: 'SHA-384'\n }\n}))\n\nsupportedAlgorithms.define('RS512', 'importKey', new RSASSA_PKCS1_v1_5({\n name: 'RSASSA-PKCS1-v1_5',\n hash: {\n name: 'SHA-512'\n }\n}))\n\n/**\n * Export\n */\nmodule.exports = supportedAlgorithms\n\n\n","/**\n * None\n */\nclass None {\n /**\n * sign\n */\n sign () {\n return Promise.resolve('')\n }\n\n /**\n * verify\n */\n verify () {\n // this will never get called. but you looked.\n }\n}\n\n/**\n * Export\n */\nmodule.exports = None\n","'use strict'\n\n/**\n * Dependencies\n * @ignore\n */\nconst base64url = require('base64url')\nconst crypto = require('isomorphic-webcrypto')\nconst TextEncoder = require('../text-encoder')\n\n/**\n * HMAC with SHA-2 Functions\n */\nclass HMAC {\n\n /**\n * Constructor\n *\n * @param {string} bitlength\n */\n constructor (params) {\n this.params = params\n }\n\n /**\n * Sign\n *\n * @description\n * Generate a hash-based message authentication code for a\n * given input and key. Enforce the key length is equal to\n * or greater than the bitlength.\n *\n * @param {CryptoKey} key\n * @param {string} data\n *\n * @returns {string}\n */\n sign (key, data) {\n let algorithm = this.params\n\n // TODO: validate key length\n\n data = new TextEncoder().encode(data)\n\n return crypto.subtle\n .sign(algorithm, key, data)\n .then(signature => base64url(Buffer.from(signature)))\n }\n\n /**\n * Verify\n *\n * @description\n * Verify a digital signature for a given input and private key.\n *\n * @param {CryptoKey} key\n * @param {string} signature\n * @param {string} data\n *\n * @returns {Boolean}\n */\n verify (key, signature, data) {\n let algorithm = this.params\n\n if (typeof signature === 'string') {\n signature = Uint8Array.from(base64url.toBuffer(signature))\n }\n\n if (typeof data === 'string') {\n data = new TextEncoder().encode(data)\n }\n\n return crypto.subtle.verify(algorithm, key, signature, data)\n }\n\n /**\n * Assert Sufficient Key Length\n *\n * @description Assert that the key length is sufficient\n * @param {string} key\n */\n assertSufficientKeyLength (key) {\n if (key.length < this.bitlength) {\n throw new Error('The key is too short.')\n }\n }\n}\n\n/**\n * Export\n */\nmodule.exports = HMAC\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(\n uint8, i, (i + maxChunkLength) > len2 ? len2 : (i + maxChunkLength)\n ))\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","exports.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","var toString = {}.toString;\n\nmodule.exports = Array.isArray || function (arr) {\n return toString.call(arr) == '[object Array]';\n};\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nvar pad_string_1 = require(\"./pad-string\");\nfunction encode(input, encoding) {\n if (encoding === void 0) { encoding = \"utf8\"; }\n if (Buffer.isBuffer(input)) {\n return fromBase64(input.toString(\"base64\"));\n }\n return fromBase64(Buffer.from(input, encoding).toString(\"base64\"));\n}\n;\nfunction decode(base64url, encoding) {\n if (encoding === void 0) { encoding = \"utf8\"; }\n return Buffer.from(toBase64(base64url), \"base64\").toString(encoding);\n}\nfunction toBase64(base64url) {\n base64url = base64url.toString();\n return pad_string_1.default(base64url)\n .replace(/\\-/g, \"+\")\n .replace(/_/g, \"/\");\n}\nfunction fromBase64(base64) {\n return base64\n .replace(/=/g, \"\")\n .replace(/\\+/g, \"-\")\n .replace(/\\//g, \"_\");\n}\nfunction toBuffer(base64url) {\n return Buffer.from(toBase64(base64url), \"base64\");\n}\nvar base64url = encode;\nbase64url.encode = encode;\nbase64url.decode = decode;\nbase64url.toBase64 = toBase64;\nbase64url.fromBase64 = fromBase64;\nbase64url.toBuffer = toBuffer;\nexports.default = base64url;\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nfunction padString(input) {\n var segmentLength = 4;\n var stringLength = input.length;\n var diff = stringLength % segmentLength;\n if (!diff) {\n return input;\n }\n var position = stringLength;\n var padLength = segmentLength - diff;\n var paddedStringLength = stringLength + padLength;\n var buffer = Buffer.alloc(paddedStringLength);\n buffer.write(input);\n while (padLength--) {\n buffer.write(\"=\", position++);\n }\n return buffer.toString();\n}\nexports.default = padString;\n","// This is free and unencumbered software released into the public domain.\n// See LICENSE.md for more information.\n\nvar encoding = require(\"./lib/encoding.js\");\n\nmodule.exports = {\n TextEncoder: encoding.TextEncoder,\n TextDecoder: encoding.TextDecoder,\n};\n","// This is free and unencumbered software released into the public domain.\n// See LICENSE.md for more information.\n\n/**\n * @fileoverview Global |this| required for resolving indexes in node.\n * @suppress {globalThis}\n */\n(function(global) {\n 'use strict';\n\n // If we're in node require encoding-indexes and attach it to the global.\n if (typeof module !== \"undefined\" && module.exports &&\n !global[\"encoding-indexes\"]) {\n global[\"encoding-indexes\"] =\n require(\"./encoding-indexes.js\")[\"encoding-indexes\"];\n }\n\n //\n // Utilities\n //\n\n /**\n * @param {number} a The number to test.\n * @param {number} min The minimum value in the range, inclusive.\n * @param {number} max The maximum value in the range, inclusive.\n * @return {boolean} True if a >= min and a <= max.\n */\n function inRange(a, min, max) {\n return min <= a && a <= max;\n }\n\n /**\n * @param {!Array.<*>} array The array to check.\n * @param {*} item The item to look for in the array.\n * @return {boolean} True if the item appears in the array.\n */\n function includes(array, item) {\n return array.indexOf(item) !== -1;\n }\n\n var floor = Math.floor;\n\n /**\n * @param {*} o\n * @return {Object}\n */\n function ToDictionary(o) {\n if (o === undefined) return {};\n if (o === Object(o)) return o;\n throw TypeError('Could not convert argument to dictionary');\n }\n\n /**\n * @param {string} string Input string of UTF-16 code units.\n * @return {!Array.} Code points.\n */\n function stringToCodePoints(string) {\n // https://heycam.github.io/webidl/#dfn-obtain-unicode\n\n // 1. Let S be the DOMString value.\n var s = String(string);\n\n // 2. Let n be the length of S.\n var n = s.length;\n\n // 3. Initialize i to 0.\n var i = 0;\n\n // 4. Initialize U to be an empty sequence of Unicode characters.\n var u = [];\n\n // 5. While i < n:\n while (i < n) {\n\n // 1. Let c be the code unit in S at index i.\n var c = s.charCodeAt(i);\n\n // 2. Depending on the value of c:\n\n // c < 0xD800 or c > 0xDFFF\n if (c < 0xD800 || c > 0xDFFF) {\n // Append to U the Unicode character with code point c.\n u.push(c);\n }\n\n // 0xDC00 ≤ c ≤ 0xDFFF\n else if (0xDC00 <= c && c <= 0xDFFF) {\n // Append to U a U+FFFD REPLACEMENT CHARACTER.\n u.push(0xFFFD);\n }\n\n // 0xD800 ≤ c ≤ 0xDBFF\n else if (0xD800 <= c && c <= 0xDBFF) {\n // 1. If i = n−1, then append to U a U+FFFD REPLACEMENT\n // CHARACTER.\n if (i === n - 1) {\n u.push(0xFFFD);\n }\n // 2. Otherwise, i < n−1:\n else {\n // 1. Let d be the code unit in S at index i+1.\n var d = s.charCodeAt(i + 1);\n\n // 2. If 0xDC00 ≤ d ≤ 0xDFFF, then:\n if (0xDC00 <= d && d <= 0xDFFF) {\n // 1. Let a be c & 0x3FF.\n var a = c & 0x3FF;\n\n // 2. Let b be d & 0x3FF.\n var b = d & 0x3FF;\n\n // 3. Append to U the Unicode character with code point\n // 2^16+2^10*a+b.\n u.push(0x10000 + (a << 10) + b);\n\n // 4. Set i to i+1.\n i += 1;\n }\n\n // 3. Otherwise, d < 0xDC00 or d > 0xDFFF. Append to U a\n // U+FFFD REPLACEMENT CHARACTER.\n else {\n u.push(0xFFFD);\n }\n }\n }\n\n // 3. Set i to i+1.\n i += 1;\n }\n\n // 6. Return U.\n return u;\n }\n\n /**\n * @param {!Array.} code_points Array of code points.\n * @return {string} string String of UTF-16 code units.\n */\n function codePointsToString(code_points) {\n var s = '';\n for (var i = 0; i < code_points.length; ++i) {\n var cp = code_points[i];\n if (cp <= 0xFFFF) {\n s += String.fromCharCode(cp);\n } else {\n cp -= 0x10000;\n s += String.fromCharCode((cp >> 10) + 0xD800,\n (cp & 0x3FF) + 0xDC00);\n }\n }\n return s;\n }\n\n\n //\n // Implementation of Encoding specification\n // https://encoding.spec.whatwg.org/\n //\n\n //\n // 4. Terminology\n //\n\n /**\n * An ASCII byte is a byte in the range 0x00 to 0x7F, inclusive.\n * @param {number} a The number to test.\n * @return {boolean} True if a is in the range 0x00 to 0x7F, inclusive.\n */\n function isASCIIByte(a) {\n return 0x00 <= a && a <= 0x7F;\n }\n\n /**\n * An ASCII code point is a code point in the range U+0000 to\n * U+007F, inclusive.\n */\n var isASCIICodePoint = isASCIIByte;\n\n\n /**\n * End-of-stream is a special token that signifies no more tokens\n * are in the stream.\n * @const\n */ var end_of_stream = -1;\n\n /**\n * A stream represents an ordered sequence of tokens.\n *\n * @constructor\n * @param {!(Array.|Uint8Array)} tokens Array of tokens that provide\n * the stream.\n */\n function Stream(tokens) {\n /** @type {!Array.} */\n this.tokens = [].slice.call(tokens);\n // Reversed as push/pop is more efficient than shift/unshift.\n this.tokens.reverse();\n }\n\n Stream.prototype = {\n /**\n * @return {boolean} True if end-of-stream has been hit.\n */\n endOfStream: function() {\n return !this.tokens.length;\n },\n\n /**\n * When a token is read from a stream, the first token in the\n * stream must be returned and subsequently removed, and\n * end-of-stream must be returned otherwise.\n *\n * @return {number} Get the next token from the stream, or\n * end_of_stream.\n */\n read: function() {\n if (!this.tokens.length)\n return end_of_stream;\n return this.tokens.pop();\n },\n\n /**\n * When one or more tokens are prepended to a stream, those tokens\n * must be inserted, in given order, before the first token in the\n * stream.\n *\n * @param {(number|!Array.)} token The token(s) to prepend to the\n * stream.\n */\n prepend: function(token) {\n if (Array.isArray(token)) {\n var tokens = /**@type {!Array.}*/(token);\n while (tokens.length)\n this.tokens.push(tokens.pop());\n } else {\n this.tokens.push(token);\n }\n },\n\n /**\n * When one or more tokens are pushed to a stream, those tokens\n * must be inserted, in given order, after the last token in the\n * stream.\n *\n * @param {(number|!Array.)} token The tokens(s) to push to the\n * stream.\n */\n push: function(token) {\n if (Array.isArray(token)) {\n var tokens = /**@type {!Array.}*/(token);\n while (tokens.length)\n this.tokens.unshift(tokens.shift());\n } else {\n this.tokens.unshift(token);\n }\n }\n };\n\n //\n // 5. Encodings\n //\n\n // 5.1 Encoders and decoders\n\n /** @const */\n var finished = -1;\n\n /**\n * @param {boolean} fatal If true, decoding errors raise an exception.\n * @param {number=} opt_code_point Override the standard fallback code point.\n * @return {number} The code point to insert on a decoding error.\n */\n function decoderError(fatal, opt_code_point) {\n if (fatal)\n throw TypeError('Decoder error');\n return opt_code_point || 0xFFFD;\n }\n\n /**\n * @param {number} code_point The code point that could not be encoded.\n * @return {number} Always throws, no value is actually returned.\n */\n function encoderError(code_point) {\n throw TypeError('The code point ' + code_point + ' could not be encoded.');\n }\n\n /** @interface */\n function Decoder() {}\n Decoder.prototype = {\n /**\n * @param {Stream} stream The stream of bytes being decoded.\n * @param {number} bite The next byte read from the stream.\n * @return {?(number|!Array.)} The next code point(s)\n * decoded, or null if not enough data exists in the input\n * stream to decode a complete code point, or |finished|.\n */\n handler: function(stream, bite) {}\n };\n\n /** @interface */\n function Encoder() {}\n Encoder.prototype = {\n /**\n * @param {Stream} stream The stream of code points being encoded.\n * @param {number} code_point Next code point read from the stream.\n * @return {(number|!Array.)} Byte(s) to emit, or |finished|.\n */\n handler: function(stream, code_point) {}\n };\n\n // 5.2 Names and labels\n\n // TODO: Define @typedef for Encoding: {name:string,labels:Array.}\n // https://github.com/google/closure-compiler/issues/247\n\n /**\n * @param {string} label The encoding label.\n * @return {?{name:string,labels:Array.}}\n */\n function getEncoding(label) {\n // 1. Remove any leading and trailing ASCII whitespace from label.\n label = String(label).trim().toLowerCase();\n\n // 2. If label is an ASCII case-insensitive match for any of the\n // labels listed in the table below, return the corresponding\n // encoding, and failure otherwise.\n if (Object.prototype.hasOwnProperty.call(label_to_encoding, label)) {\n return label_to_encoding[label];\n }\n return null;\n }\n\n /**\n * Encodings table: https://encoding.spec.whatwg.org/encodings.json\n * @const\n * @type {!Array.<{\n * heading: string,\n * encodings: Array.<{name:string,labels:Array.}>\n * }>}\n */\n var encodings = [\n {\n \"encodings\": [\n {\n \"labels\": [\n \"unicode-1-1-utf-8\",\n \"utf-8\",\n \"utf8\"\n ],\n \"name\": \"UTF-8\"\n }\n ],\n \"heading\": \"The Encoding\"\n },\n {\n \"encodings\": [\n {\n \"labels\": [\n \"866\",\n \"cp866\",\n \"csibm866\",\n \"ibm866\"\n ],\n \"name\": \"IBM866\"\n },\n {\n \"labels\": [\n \"csisolatin2\",\n \"iso-8859-2\",\n \"iso-ir-101\",\n \"iso8859-2\",\n \"iso88592\",\n \"iso_8859-2\",\n \"iso_8859-2:1987\",\n \"l2\",\n \"latin2\"\n ],\n \"name\": \"ISO-8859-2\"\n },\n {\n \"labels\": [\n \"csisolatin3\",\n \"iso-8859-3\",\n \"iso-ir-109\",\n \"iso8859-3\",\n \"iso88593\",\n \"iso_8859-3\",\n \"iso_8859-3:1988\",\n \"l3\",\n \"latin3\"\n ],\n \"name\": \"ISO-8859-3\"\n },\n {\n \"labels\": [\n \"csisolatin4\",\n \"iso-8859-4\",\n \"iso-ir-110\",\n \"iso8859-4\",\n \"iso88594\",\n \"iso_8859-4\",\n \"iso_8859-4:1988\",\n \"l4\",\n \"latin4\"\n ],\n \"name\": \"ISO-8859-4\"\n },\n {\n \"labels\": [\n \"csisolatincyrillic\",\n \"cyrillic\",\n \"iso-8859-5\",\n \"iso-ir-144\",\n \"iso8859-5\",\n \"iso88595\",\n \"iso_8859-5\",\n \"iso_8859-5:1988\"\n ],\n \"name\": \"ISO-8859-5\"\n },\n {\n \"labels\": [\n \"arabic\",\n \"asmo-708\",\n \"csiso88596e\",\n \"csiso88596i\",\n \"csisolatinarabic\",\n \"ecma-114\",\n \"iso-8859-6\",\n \"iso-8859-6-e\",\n \"iso-8859-6-i\",\n \"iso-ir-127\",\n \"iso8859-6\",\n \"iso88596\",\n \"iso_8859-6\",\n \"iso_8859-6:1987\"\n ],\n \"name\": \"ISO-8859-6\"\n },\n {\n \"labels\": [\n \"csisolatingreek\",\n \"ecma-118\",\n \"elot_928\",\n \"greek\",\n \"greek8\",\n \"iso-8859-7\",\n \"iso-ir-126\",\n \"iso8859-7\",\n \"iso88597\",\n \"iso_8859-7\",\n \"iso_8859-7:1987\",\n \"sun_eu_greek\"\n ],\n \"name\": \"ISO-8859-7\"\n },\n {\n \"labels\": [\n \"csiso88598e\",\n \"csisolatinhebrew\",\n \"hebrew\",\n \"iso-8859-8\",\n \"iso-8859-8-e\",\n \"iso-ir-138\",\n \"iso8859-8\",\n \"iso88598\",\n \"iso_8859-8\",\n \"iso_8859-8:1988\",\n \"visual\"\n ],\n \"name\": \"ISO-8859-8\"\n },\n {\n \"labels\": [\n \"csiso88598i\",\n \"iso-8859-8-i\",\n \"logical\"\n ],\n \"name\": \"ISO-8859-8-I\"\n },\n {\n \"labels\": [\n \"csisolatin6\",\n \"iso-8859-10\",\n \"iso-ir-157\",\n \"iso8859-10\",\n \"iso885910\",\n \"l6\",\n \"latin6\"\n ],\n \"name\": \"ISO-8859-10\"\n },\n {\n \"labels\": [\n \"iso-8859-13\",\n \"iso8859-13\",\n \"iso885913\"\n ],\n \"name\": \"ISO-8859-13\"\n },\n {\n \"labels\": [\n \"iso-8859-14\",\n \"iso8859-14\",\n \"iso885914\"\n ],\n \"name\": \"ISO-8859-14\"\n },\n {\n \"labels\": [\n \"csisolatin9\",\n \"iso-8859-15\",\n \"iso8859-15\",\n \"iso885915\",\n \"iso_8859-15\",\n \"l9\"\n ],\n \"name\": \"ISO-8859-15\"\n },\n {\n \"labels\": [\n \"iso-8859-16\"\n ],\n \"name\": \"ISO-8859-16\"\n },\n {\n \"labels\": [\n \"cskoi8r\",\n \"koi\",\n \"koi8\",\n \"koi8-r\",\n \"koi8_r\"\n ],\n \"name\": \"KOI8-R\"\n },\n {\n \"labels\": [\n \"koi8-ru\",\n \"koi8-u\"\n ],\n \"name\": \"KOI8-U\"\n },\n {\n \"labels\": [\n \"csmacintosh\",\n \"mac\",\n \"macintosh\",\n \"x-mac-roman\"\n ],\n \"name\": \"macintosh\"\n },\n {\n \"labels\": [\n \"dos-874\",\n \"iso-8859-11\",\n \"iso8859-11\",\n \"iso885911\",\n \"tis-620\",\n \"windows-874\"\n ],\n \"name\": \"windows-874\"\n },\n {\n \"labels\": [\n \"cp1250\",\n \"windows-1250\",\n \"x-cp1250\"\n ],\n \"name\": \"windows-1250\"\n },\n {\n \"labels\": [\n \"cp1251\",\n \"windows-1251\",\n \"x-cp1251\"\n ],\n \"name\": \"windows-1251\"\n },\n {\n \"labels\": [\n \"ansi_x3.4-1968\",\n \"ascii\",\n \"cp1252\",\n \"cp819\",\n \"csisolatin1\",\n \"ibm819\",\n \"iso-8859-1\",\n \"iso-ir-100\",\n \"iso8859-1\",\n \"iso88591\",\n \"iso_8859-1\",\n \"iso_8859-1:1987\",\n \"l1\",\n \"latin1\",\n \"us-ascii\",\n \"windows-1252\",\n \"x-cp1252\"\n ],\n \"name\": \"windows-1252\"\n },\n {\n \"labels\": [\n \"cp1253\",\n \"windows-1253\",\n \"x-cp1253\"\n ],\n \"name\": \"windows-1253\"\n },\n {\n \"labels\": [\n \"cp1254\",\n \"csisolatin5\",\n \"iso-8859-9\",\n \"iso-ir-148\",\n \"iso8859-9\",\n \"iso88599\",\n \"iso_8859-9\",\n \"iso_8859-9:1989\",\n \"l5\",\n \"latin5\",\n \"windows-1254\",\n \"x-cp1254\"\n ],\n \"name\": \"windows-1254\"\n },\n {\n \"labels\": [\n \"cp1255\",\n \"windows-1255\",\n \"x-cp1255\"\n ],\n \"name\": \"windows-1255\"\n },\n {\n \"labels\": [\n \"cp1256\",\n \"windows-1256\",\n \"x-cp1256\"\n ],\n \"name\": \"windows-1256\"\n },\n {\n \"labels\": [\n \"cp1257\",\n \"windows-1257\",\n \"x-cp1257\"\n ],\n \"name\": \"windows-1257\"\n },\n {\n \"labels\": [\n \"cp1258\",\n \"windows-1258\",\n \"x-cp1258\"\n ],\n \"name\": \"windows-1258\"\n },\n {\n \"labels\": [\n \"x-mac-cyrillic\",\n \"x-mac-ukrainian\"\n ],\n \"name\": \"x-mac-cyrillic\"\n }\n ],\n \"heading\": \"Legacy single-byte encodings\"\n },\n {\n \"encodings\": [\n {\n \"labels\": [\n \"chinese\",\n \"csgb2312\",\n \"csiso58gb231280\",\n \"gb2312\",\n \"gb_2312\",\n \"gb_2312-80\",\n \"gbk\",\n \"iso-ir-58\",\n \"x-gbk\"\n ],\n \"name\": \"GBK\"\n },\n {\n \"labels\": [\n \"gb18030\"\n ],\n \"name\": \"gb18030\"\n }\n ],\n \"heading\": \"Legacy multi-byte Chinese (simplified) encodings\"\n },\n {\n \"encodings\": [\n {\n \"labels\": [\n \"big5\",\n \"big5-hkscs\",\n \"cn-big5\",\n \"csbig5\",\n \"x-x-big5\"\n ],\n \"name\": \"Big5\"\n }\n ],\n \"heading\": \"Legacy multi-byte Chinese (traditional) encodings\"\n },\n {\n \"encodings\": [\n {\n \"labels\": [\n \"cseucpkdfmtjapanese\",\n \"euc-jp\",\n \"x-euc-jp\"\n ],\n \"name\": \"EUC-JP\"\n },\n {\n \"labels\": [\n \"csiso2022jp\",\n \"iso-2022-jp\"\n ],\n \"name\": \"ISO-2022-JP\"\n },\n {\n \"labels\": [\n \"csshiftjis\",\n \"ms932\",\n \"ms_kanji\",\n \"shift-jis\",\n \"shift_jis\",\n \"sjis\",\n \"windows-31j\",\n \"x-sjis\"\n ],\n \"name\": \"Shift_JIS\"\n }\n ],\n \"heading\": \"Legacy multi-byte Japanese encodings\"\n },\n {\n \"encodings\": [\n {\n \"labels\": [\n \"cseuckr\",\n \"csksc56011987\",\n \"euc-kr\",\n \"iso-ir-149\",\n \"korean\",\n \"ks_c_5601-1987\",\n \"ks_c_5601-1989\",\n \"ksc5601\",\n \"ksc_5601\",\n \"windows-949\"\n ],\n \"name\": \"EUC-KR\"\n }\n ],\n \"heading\": \"Legacy multi-byte Korean encodings\"\n },\n {\n \"encodings\": [\n {\n \"labels\": [\n \"csiso2022kr\",\n \"hz-gb-2312\",\n \"iso-2022-cn\",\n \"iso-2022-cn-ext\",\n \"iso-2022-kr\"\n ],\n \"name\": \"replacement\"\n },\n {\n \"labels\": [\n \"utf-16be\"\n ],\n \"name\": \"UTF-16BE\"\n },\n {\n \"labels\": [\n \"utf-16\",\n \"utf-16le\"\n ],\n \"name\": \"UTF-16LE\"\n },\n {\n \"labels\": [\n \"x-user-defined\"\n ],\n \"name\": \"x-user-defined\"\n }\n ],\n \"heading\": \"Legacy miscellaneous encodings\"\n }\n ];\n\n // Label to encoding registry.\n /** @type {Object.}>} */\n var label_to_encoding = {};\n encodings.forEach(function(category) {\n category.encodings.forEach(function(encoding) {\n encoding.labels.forEach(function(label) {\n label_to_encoding[label] = encoding;\n });\n });\n });\n\n // Registry of of encoder/decoder factories, by encoding name.\n /** @type {Object.} */\n var encoders = {};\n /** @type {Object.} */\n var decoders = {};\n\n //\n // 6. Indexes\n //\n\n /**\n * @param {number} pointer The |pointer| to search for.\n * @param {(!Array.|undefined)} index The |index| to search within.\n * @return {?number} The code point corresponding to |pointer| in |index|,\n * or null if |code point| is not in |index|.\n */\n function indexCodePointFor(pointer, index) {\n if (!index) return null;\n return index[pointer] || null;\n }\n\n /**\n * @param {number} code_point The |code point| to search for.\n * @param {!Array.} index The |index| to search within.\n * @return {?number} The first pointer corresponding to |code point| in\n * |index|, or null if |code point| is not in |index|.\n */\n function indexPointerFor(code_point, index) {\n var pointer = index.indexOf(code_point);\n return pointer === -1 ? null : pointer;\n }\n\n /**\n * @param {string} name Name of the index.\n * @return {(!Array.|!Array.>)}\n * */\n function index(name) {\n if (!('encoding-indexes' in global)) {\n throw Error(\"Indexes missing.\" +\n \" Did you forget to include encoding-indexes.js first?\");\n }\n return global['encoding-indexes'][name];\n }\n\n /**\n * @param {number} pointer The |pointer| to search for in the gb18030 index.\n * @return {?number} The code point corresponding to |pointer| in |index|,\n * or null if |code point| is not in the gb18030 index.\n */\n function indexGB18030RangesCodePointFor(pointer) {\n // 1. If pointer is greater than 39419 and less than 189000, or\n // pointer is greater than 1237575, return null.\n if ((pointer > 39419 && pointer < 189000) || (pointer > 1237575))\n return null;\n\n // 2. If pointer is 7457, return code point U+E7C7.\n if (pointer === 7457) return 0xE7C7;\n\n // 3. Let offset be the last pointer in index gb18030 ranges that\n // is equal to or less than pointer and let code point offset be\n // its corresponding code point.\n var offset = 0;\n var code_point_offset = 0;\n var idx = index('gb18030-ranges');\n var i;\n for (i = 0; i < idx.length; ++i) {\n /** @type {!Array.} */\n var entry = idx[i];\n if (entry[0] <= pointer) {\n offset = entry[0];\n code_point_offset = entry[1];\n } else {\n break;\n }\n }\n\n // 4. Return a code point whose value is code point offset +\n // pointer − offset.\n return code_point_offset + pointer - offset;\n }\n\n /**\n * @param {number} code_point The |code point| to locate in the gb18030 index.\n * @return {number} The first pointer corresponding to |code point| in the\n * gb18030 index.\n */\n function indexGB18030RangesPointerFor(code_point) {\n // 1. If code point is U+E7C7, return pointer 7457.\n if (code_point === 0xE7C7) return 7457;\n\n // 2. Let offset be the last code point in index gb18030 ranges\n // that is equal to or less than code point and let pointer offset\n // be its corresponding pointer.\n var offset = 0;\n var pointer_offset = 0;\n var idx = index('gb18030-ranges');\n var i;\n for (i = 0; i < idx.length; ++i) {\n /** @type {!Array.} */\n var entry = idx[i];\n if (entry[1] <= code_point) {\n offset = entry[1];\n pointer_offset = entry[0];\n } else {\n break;\n }\n }\n\n // 3. Return a pointer whose value is pointer offset + code point\n // − offset.\n return pointer_offset + code_point - offset;\n }\n\n /**\n * @param {number} code_point The |code_point| to search for in the Shift_JIS\n * index.\n * @return {?number} The code point corresponding to |pointer| in |index|,\n * or null if |code point| is not in the Shift_JIS index.\n */\n function indexShiftJISPointerFor(code_point) {\n // 1. Let index be index jis0208 excluding all entries whose\n // pointer is in the range 8272 to 8835, inclusive.\n shift_jis_index = shift_jis_index ||\n index('jis0208').map(function(code_point, pointer) {\n return inRange(pointer, 8272, 8835) ? null : code_point;\n });\n var index_ = shift_jis_index;\n\n // 2. Return the index pointer for code point in index.\n return index_.indexOf(code_point);\n }\n var shift_jis_index;\n\n /**\n * @param {number} code_point The |code_point| to search for in the big5\n * index.\n * @return {?number} The code point corresponding to |pointer| in |index|,\n * or null if |code point| is not in the big5 index.\n */\n function indexBig5PointerFor(code_point) {\n // 1. Let index be index Big5 excluding all entries whose pointer\n big5_index_no_hkscs = big5_index_no_hkscs ||\n index('big5').map(function(code_point, pointer) {\n return (pointer < (0xA1 - 0x81) * 157) ? null : code_point;\n });\n var index_ = big5_index_no_hkscs;\n\n // 2. If code point is U+2550, U+255E, U+2561, U+256A, U+5341, or\n // U+5345, return the last pointer corresponding to code point in\n // index.\n if (code_point === 0x2550 || code_point === 0x255E ||\n code_point === 0x2561 || code_point === 0x256A ||\n code_point === 0x5341 || code_point === 0x5345) {\n return index_.lastIndexOf(code_point);\n }\n\n // 3. Return the index pointer for code point in index.\n return indexPointerFor(code_point, index_);\n }\n var big5_index_no_hkscs;\n\n //\n // 8. API\n //\n\n /** @const */ var DEFAULT_ENCODING = 'utf-8';\n\n // 8.1 Interface TextDecoder\n\n /**\n * @constructor\n * @param {string=} label The label of the encoding;\n * defaults to 'utf-8'.\n * @param {Object=} options\n */\n function TextDecoder(label, options) {\n // Web IDL conventions\n if (!(this instanceof TextDecoder))\n throw TypeError('Called as a function. Did you forget \\'new\\'?');\n label = label !== undefined ? String(label) : DEFAULT_ENCODING;\n options = ToDictionary(options);\n\n // A TextDecoder object has an associated encoding, decoder,\n // stream, ignore BOM flag (initially unset), BOM seen flag\n // (initially unset), error mode (initially replacement), and do\n // not flush flag (initially unset).\n\n /** @private */\n this._encoding = null;\n /** @private @type {?Decoder} */\n this._decoder = null;\n /** @private @type {boolean} */\n this._ignoreBOM = false;\n /** @private @type {boolean} */\n this._BOMseen = false;\n /** @private @type {string} */\n this._error_mode = 'replacement';\n /** @private @type {boolean} */\n this._do_not_flush = false;\n\n\n // 1. Let encoding be the result of getting an encoding from\n // label.\n var encoding = getEncoding(label);\n\n // 2. If encoding is failure or replacement, throw a RangeError.\n if (encoding === null || encoding.name === 'replacement')\n throw RangeError('Unknown encoding: ' + label);\n if (!decoders[encoding.name]) {\n throw Error('Decoder not present.' +\n ' Did you forget to include encoding-indexes.js first?');\n }\n\n // 3. Let dec be a new TextDecoder object.\n var dec = this;\n\n // 4. Set dec's encoding to encoding.\n dec._encoding = encoding;\n\n // 5. If options's fatal member is true, set dec's error mode to\n // fatal.\n if (Boolean(options['fatal']))\n dec._error_mode = 'fatal';\n\n // 6. If options's ignoreBOM member is true, set dec's ignore BOM\n // flag.\n if (Boolean(options['ignoreBOM']))\n dec._ignoreBOM = true;\n\n // For pre-ES5 runtimes:\n if (!Object.defineProperty) {\n this.encoding = dec._encoding.name.toLowerCase();\n this.fatal = dec._error_mode === 'fatal';\n this.ignoreBOM = dec._ignoreBOM;\n }\n\n // 7. Return dec.\n return dec;\n }\n\n if (Object.defineProperty) {\n // The encoding attribute's getter must return encoding's name.\n Object.defineProperty(TextDecoder.prototype, 'encoding', {\n /** @this {TextDecoder} */\n get: function() { return this._encoding.name.toLowerCase(); }\n });\n\n // The fatal attribute's getter must return true if error mode\n // is fatal, and false otherwise.\n Object.defineProperty(TextDecoder.prototype, 'fatal', {\n /** @this {TextDecoder} */\n get: function() { return this._error_mode === 'fatal'; }\n });\n\n // The ignoreBOM attribute's getter must return true if ignore\n // BOM flag is set, and false otherwise.\n Object.defineProperty(TextDecoder.prototype, 'ignoreBOM', {\n /** @this {TextDecoder} */\n get: function() { return this._ignoreBOM; }\n });\n }\n\n /**\n * @param {BufferSource=} input The buffer of bytes to decode.\n * @param {Object=} options\n * @return {string} The decoded string.\n */\n TextDecoder.prototype.decode = function decode(input, options) {\n var bytes;\n if (typeof input === 'object' && input instanceof ArrayBuffer) {\n bytes = new Uint8Array(input);\n } else if (typeof input === 'object' && 'buffer' in input &&\n input.buffer instanceof ArrayBuffer) {\n bytes = new Uint8Array(input.buffer,\n input.byteOffset,\n input.byteLength);\n } else {\n bytes = new Uint8Array(0);\n }\n\n options = ToDictionary(options);\n\n // 1. If the do not flush flag is unset, set decoder to a new\n // encoding's decoder, set stream to a new stream, and unset the\n // BOM seen flag.\n if (!this._do_not_flush) {\n this._decoder = decoders[this._encoding.name]({\n fatal: this._error_mode === 'fatal'});\n this._BOMseen = false;\n }\n\n // 2. If options's stream is true, set the do not flush flag, and\n // unset the do not flush flag otherwise.\n this._do_not_flush = Boolean(options['stream']);\n\n // 3. If input is given, push a copy of input to stream.\n // TODO: Align with spec algorithm - maintain stream on instance.\n var input_stream = new Stream(bytes);\n\n // 4. Let output be a new stream.\n var output = [];\n\n /** @type {?(number|!Array.)} */\n var result;\n\n // 5. While true:\n while (true) {\n // 1. Let token be the result of reading from stream.\n var token = input_stream.read();\n\n // 2. If token is end-of-stream and the do not flush flag is\n // set, return output, serialized.\n // TODO: Align with spec algorithm.\n if (token === end_of_stream)\n break;\n\n // 3. Otherwise, run these subsubsteps:\n\n // 1. Let result be the result of processing token for decoder,\n // stream, output, and error mode.\n result = this._decoder.handler(input_stream, token);\n\n // 2. If result is finished, return output, serialized.\n if (result === finished)\n break;\n\n if (result !== null) {\n if (Array.isArray(result))\n output.push.apply(output, /**@type {!Array.}*/(result));\n else\n output.push(result);\n }\n\n // 3. Otherwise, if result is error, throw a TypeError.\n // (Thrown in handler)\n\n // 4. Otherwise, do nothing.\n }\n // TODO: Align with spec algorithm.\n if (!this._do_not_flush) {\n do {\n result = this._decoder.handler(input_stream, input_stream.read());\n if (result === finished)\n break;\n if (result === null)\n continue;\n if (Array.isArray(result))\n output.push.apply(output, /**@type {!Array.}*/(result));\n else\n output.push(result);\n } while (!input_stream.endOfStream());\n this._decoder = null;\n }\n\n // A TextDecoder object also has an associated serialize stream\n // algorithm...\n /**\n * @param {!Array.} stream\n * @return {string}\n * @this {TextDecoder}\n */\n function serializeStream(stream) {\n // 1. Let token be the result of reading from stream.\n // (Done in-place on array, rather than as a stream)\n\n // 2. If encoding is UTF-8, UTF-16BE, or UTF-16LE, and ignore\n // BOM flag and BOM seen flag are unset, run these subsubsteps:\n if (includes(['UTF-8', 'UTF-16LE', 'UTF-16BE'], this._encoding.name) &&\n !this._ignoreBOM && !this._BOMseen) {\n if (stream.length > 0 && stream[0] === 0xFEFF) {\n // 1. If token is U+FEFF, set BOM seen flag.\n this._BOMseen = true;\n stream.shift();\n } else if (stream.length > 0) {\n // 2. Otherwise, if token is not end-of-stream, set BOM seen\n // flag and append token to stream.\n this._BOMseen = true;\n } else {\n // 3. Otherwise, if token is not end-of-stream, append token\n // to output.\n // (no-op)\n }\n }\n // 4. Otherwise, return output.\n return codePointsToString(stream);\n }\n\n return serializeStream.call(this, output);\n };\n\n // 8.2 Interface TextEncoder\n\n /**\n * @constructor\n * @param {string=} label The label of the encoding. NONSTANDARD.\n * @param {Object=} options NONSTANDARD.\n */\n function TextEncoder(label, options) {\n // Web IDL conventions\n if (!(this instanceof TextEncoder))\n throw TypeError('Called as a function. Did you forget \\'new\\'?');\n options = ToDictionary(options);\n\n // A TextEncoder object has an associated encoding and encoder.\n\n /** @private */\n this._encoding = null;\n /** @private @type {?Encoder} */\n this._encoder = null;\n\n // Non-standard\n /** @private @type {boolean} */\n this._do_not_flush = false;\n /** @private @type {string} */\n this._fatal = Boolean(options['fatal']) ? 'fatal' : 'replacement';\n\n // 1. Let enc be a new TextEncoder object.\n var enc = this;\n\n // 2. Set enc's encoding to UTF-8's encoder.\n if (Boolean(options['NONSTANDARD_allowLegacyEncoding'])) {\n // NONSTANDARD behavior.\n label = label !== undefined ? String(label) : DEFAULT_ENCODING;\n var encoding = getEncoding(label);\n if (encoding === null || encoding.name === 'replacement')\n throw RangeError('Unknown encoding: ' + label);\n if (!encoders[encoding.name]) {\n throw Error('Encoder not present.' +\n ' Did you forget to include encoding-indexes.js first?');\n }\n enc._encoding = encoding;\n } else {\n // Standard behavior.\n enc._encoding = getEncoding('utf-8');\n\n if (label !== undefined && 'console' in global) {\n console.warn('TextEncoder constructor called with encoding label, '\n + 'which is ignored.');\n }\n }\n\n // For pre-ES5 runtimes:\n if (!Object.defineProperty)\n this.encoding = enc._encoding.name.toLowerCase();\n\n // 3. Return enc.\n return enc;\n }\n\n if (Object.defineProperty) {\n // The encoding attribute's getter must return encoding's name.\n Object.defineProperty(TextEncoder.prototype, 'encoding', {\n /** @this {TextEncoder} */\n get: function() { return this._encoding.name.toLowerCase(); }\n });\n }\n\n /**\n * @param {string=} opt_string The string to encode.\n * @param {Object=} options\n * @return {!Uint8Array} Encoded bytes, as a Uint8Array.\n */\n TextEncoder.prototype.encode = function encode(opt_string, options) {\n opt_string = opt_string === undefined ? '' : String(opt_string);\n options = ToDictionary(options);\n\n // NOTE: This option is nonstandard. None of the encodings\n // permitted for encoding (i.e. UTF-8, UTF-16) are stateful when\n // the input is a USVString so streaming is not necessary.\n if (!this._do_not_flush)\n this._encoder = encoders[this._encoding.name]({\n fatal: this._fatal === 'fatal'});\n this._do_not_flush = Boolean(options['stream']);\n\n // 1. Convert input to a stream.\n var input = new Stream(stringToCodePoints(opt_string));\n\n // 2. Let output be a new stream\n var output = [];\n\n /** @type {?(number|!Array.)} */\n var result;\n // 3. While true, run these substeps:\n while (true) {\n // 1. Let token be the result of reading from input.\n var token = input.read();\n if (token === end_of_stream)\n break;\n // 2. Let result be the result of processing token for encoder,\n // input, output.\n result = this._encoder.handler(input, token);\n if (result === finished)\n break;\n if (Array.isArray(result))\n output.push.apply(output, /**@type {!Array.}*/(result));\n else\n output.push(result);\n }\n // TODO: Align with spec algorithm.\n if (!this._do_not_flush) {\n while (true) {\n result = this._encoder.handler(input, input.read());\n if (result === finished)\n break;\n if (Array.isArray(result))\n output.push.apply(output, /**@type {!Array.}*/(result));\n else\n output.push(result);\n }\n this._encoder = null;\n }\n // 3. If result is finished, convert output into a byte sequence,\n // and then return a Uint8Array object wrapping an ArrayBuffer\n // containing output.\n return new Uint8Array(output);\n };\n\n\n //\n // 9. The encoding\n //\n\n // 9.1 utf-8\n\n // 9.1.1 utf-8 decoder\n /**\n * @constructor\n * @implements {Decoder}\n * @param {{fatal: boolean}} options\n */\n function UTF8Decoder(options) {\n var fatal = options.fatal;\n\n // utf-8's decoder's has an associated utf-8 code point, utf-8\n // bytes seen, and utf-8 bytes needed (all initially 0), a utf-8\n // lower boundary (initially 0x80), and a utf-8 upper boundary\n // (initially 0xBF).\n var /** @type {number} */ utf8_code_point = 0,\n /** @type {number} */ utf8_bytes_seen = 0,\n /** @type {number} */ utf8_bytes_needed = 0,\n /** @type {number} */ utf8_lower_boundary = 0x80,\n /** @type {number} */ utf8_upper_boundary = 0xBF;\n\n /**\n * @param {Stream} stream The stream of bytes being decoded.\n * @param {number} bite The next byte read from the stream.\n * @return {?(number|!Array.)} The next code point(s)\n * decoded, or null if not enough data exists in the input\n * stream to decode a complete code point.\n */\n this.handler = function(stream, bite) {\n // 1. If byte is end-of-stream and utf-8 bytes needed is not 0,\n // set utf-8 bytes needed to 0 and return error.\n if (bite === end_of_stream && utf8_bytes_needed !== 0) {\n utf8_bytes_needed = 0;\n return decoderError(fatal);\n }\n\n // 2. If byte is end-of-stream, return finished.\n if (bite === end_of_stream)\n return finished;\n\n // 3. If utf-8 bytes needed is 0, based on byte:\n if (utf8_bytes_needed === 0) {\n\n // 0x00 to 0x7F\n if (inRange(bite, 0x00, 0x7F)) {\n // Return a code point whose value is byte.\n return bite;\n }\n\n // 0xC2 to 0xDF\n else if (inRange(bite, 0xC2, 0xDF)) {\n // 1. Set utf-8 bytes needed to 1.\n utf8_bytes_needed = 1;\n\n // 2. Set UTF-8 code point to byte & 0x1F.\n utf8_code_point = bite & 0x1F;\n }\n\n // 0xE0 to 0xEF\n else if (inRange(bite, 0xE0, 0xEF)) {\n // 1. If byte is 0xE0, set utf-8 lower boundary to 0xA0.\n if (bite === 0xE0)\n utf8_lower_boundary = 0xA0;\n // 2. If byte is 0xED, set utf-8 upper boundary to 0x9F.\n if (bite === 0xED)\n utf8_upper_boundary = 0x9F;\n // 3. Set utf-8 bytes needed to 2.\n utf8_bytes_needed = 2;\n // 4. Set UTF-8 code point to byte & 0xF.\n utf8_code_point = bite & 0xF;\n }\n\n // 0xF0 to 0xF4\n else if (inRange(bite, 0xF0, 0xF4)) {\n // 1. If byte is 0xF0, set utf-8 lower boundary to 0x90.\n if (bite === 0xF0)\n utf8_lower_boundary = 0x90;\n // 2. If byte is 0xF4, set utf-8 upper boundary to 0x8F.\n if (bite === 0xF4)\n utf8_upper_boundary = 0x8F;\n // 3. Set utf-8 bytes needed to 3.\n utf8_bytes_needed = 3;\n // 4. Set UTF-8 code point to byte & 0x7.\n utf8_code_point = bite & 0x7;\n }\n\n // Otherwise\n else {\n // Return error.\n return decoderError(fatal);\n }\n\n // Return continue.\n return null;\n }\n\n // 4. If byte is not in the range utf-8 lower boundary to utf-8\n // upper boundary, inclusive, run these substeps:\n if (!inRange(bite, utf8_lower_boundary, utf8_upper_boundary)) {\n\n // 1. Set utf-8 code point, utf-8 bytes needed, and utf-8\n // bytes seen to 0, set utf-8 lower boundary to 0x80, and set\n // utf-8 upper boundary to 0xBF.\n utf8_code_point = utf8_bytes_needed = utf8_bytes_seen = 0;\n utf8_lower_boundary = 0x80;\n utf8_upper_boundary = 0xBF;\n\n // 2. Prepend byte to stream.\n stream.prepend(bite);\n\n // 3. Return error.\n return decoderError(fatal);\n }\n\n // 5. Set utf-8 lower boundary to 0x80 and utf-8 upper boundary\n // to 0xBF.\n utf8_lower_boundary = 0x80;\n utf8_upper_boundary = 0xBF;\n\n // 6. Set UTF-8 code point to (UTF-8 code point << 6) | (byte &\n // 0x3F)\n utf8_code_point = (utf8_code_point << 6) | (bite & 0x3F);\n\n // 7. Increase utf-8 bytes seen by one.\n utf8_bytes_seen += 1;\n\n // 8. If utf-8 bytes seen is not equal to utf-8 bytes needed,\n // continue.\n if (utf8_bytes_seen !== utf8_bytes_needed)\n return null;\n\n // 9. Let code point be utf-8 code point.\n var code_point = utf8_code_point;\n\n // 10. Set utf-8 code point, utf-8 bytes needed, and utf-8 bytes\n // seen to 0.\n utf8_code_point = utf8_bytes_needed = utf8_bytes_seen = 0;\n\n // 11. Return a code point whose value is code point.\n return code_point;\n };\n }\n\n // 9.1.2 utf-8 encoder\n /**\n * @constructor\n * @implements {Encoder}\n * @param {{fatal: boolean}} options\n */\n function UTF8Encoder(options) {\n var fatal = options.fatal;\n /**\n * @param {Stream} stream Input stream.\n * @param {number} code_point Next code point read from the stream.\n * @return {(number|!Array.)} Byte(s) to emit.\n */\n this.handler = function(stream, code_point) {\n // 1. If code point is end-of-stream, return finished.\n if (code_point === end_of_stream)\n return finished;\n\n // 2. If code point is an ASCII code point, return a byte whose\n // value is code point.\n if (isASCIICodePoint(code_point))\n return code_point;\n\n // 3. Set count and offset based on the range code point is in:\n var count, offset;\n // U+0080 to U+07FF, inclusive:\n if (inRange(code_point, 0x0080, 0x07FF)) {\n // 1 and 0xC0\n count = 1;\n offset = 0xC0;\n }\n // U+0800 to U+FFFF, inclusive:\n else if (inRange(code_point, 0x0800, 0xFFFF)) {\n // 2 and 0xE0\n count = 2;\n offset = 0xE0;\n }\n // U+10000 to U+10FFFF, inclusive:\n else if (inRange(code_point, 0x10000, 0x10FFFF)) {\n // 3 and 0xF0\n count = 3;\n offset = 0xF0;\n }\n\n // 4. Let bytes be a byte sequence whose first byte is (code\n // point >> (6 × count)) + offset.\n var bytes = [(code_point >> (6 * count)) + offset];\n\n // 5. Run these substeps while count is greater than 0:\n while (count > 0) {\n\n // 1. Set temp to code point >> (6 × (count − 1)).\n var temp = code_point >> (6 * (count - 1));\n\n // 2. Append to bytes 0x80 | (temp & 0x3F).\n bytes.push(0x80 | (temp & 0x3F));\n\n // 3. Decrease count by one.\n count -= 1;\n }\n\n // 6. Return bytes bytes, in order.\n return bytes;\n };\n }\n\n /** @param {{fatal: boolean}} options */\n encoders['UTF-8'] = function(options) {\n return new UTF8Encoder(options);\n };\n /** @param {{fatal: boolean}} options */\n decoders['UTF-8'] = function(options) {\n return new UTF8Decoder(options);\n };\n\n //\n // 10. Legacy single-byte encodings\n //\n\n // 10.1 single-byte decoder\n /**\n * @constructor\n * @implements {Decoder}\n * @param {!Array.} index The encoding index.\n * @param {{fatal: boolean}} options\n */\n function SingleByteDecoder(index, options) {\n var fatal = options.fatal;\n /**\n * @param {Stream} stream The stream of bytes being decoded.\n * @param {number} bite The next byte read from the stream.\n * @return {?(number|!Array.)} The next code point(s)\n * decoded, or null if not enough data exists in the input\n * stream to decode a complete code point.\n */\n this.handler = function(stream, bite) {\n // 1. If byte is end-of-stream, return finished.\n if (bite === end_of_stream)\n return finished;\n\n // 2. If byte is an ASCII byte, return a code point whose value\n // is byte.\n if (isASCIIByte(bite))\n return bite;\n\n // 3. Let code point be the index code point for byte − 0x80 in\n // index single-byte.\n var code_point = index[bite - 0x80];\n\n // 4. If code point is null, return error.\n if (code_point === null)\n return decoderError(fatal);\n\n // 5. Return a code point whose value is code point.\n return code_point;\n };\n }\n\n // 10.2 single-byte encoder\n /**\n * @constructor\n * @implements {Encoder}\n * @param {!Array.} index The encoding index.\n * @param {{fatal: boolean}} options\n */\n function SingleByteEncoder(index, options) {\n var fatal = options.fatal;\n /**\n * @param {Stream} stream Input stream.\n * @param {number} code_point Next code point read from the stream.\n * @return {(number|!Array.)} Byte(s) to emit.\n */\n this.handler = function(stream, code_point) {\n // 1. If code point is end-of-stream, return finished.\n if (code_point === end_of_stream)\n return finished;\n\n // 2. If code point is an ASCII code point, return a byte whose\n // value is code point.\n if (isASCIICodePoint(code_point))\n return code_point;\n\n // 3. Let pointer be the index pointer for code point in index\n // single-byte.\n var pointer = indexPointerFor(code_point, index);\n\n // 4. If pointer is null, return error with code point.\n if (pointer === null)\n encoderError(code_point);\n\n // 5. Return a byte whose value is pointer + 0x80.\n return pointer + 0x80;\n };\n }\n\n (function() {\n if (!('encoding-indexes' in global))\n return;\n encodings.forEach(function(category) {\n if (category.heading !== 'Legacy single-byte encodings')\n return;\n category.encodings.forEach(function(encoding) {\n var name = encoding.name;\n var idx = index(name.toLowerCase());\n /** @param {{fatal: boolean}} options */\n decoders[name] = function(options) {\n return new SingleByteDecoder(idx, options);\n };\n /** @param {{fatal: boolean}} options */\n encoders[name] = function(options) {\n return new SingleByteEncoder(idx, options);\n };\n });\n });\n }());\n\n //\n // 11. Legacy multi-byte Chinese (simplified) encodings\n //\n\n // 11.1 gbk\n\n // 11.1.1 gbk decoder\n // gbk's decoder is gb18030's decoder.\n /** @param {{fatal: boolean}} options */\n decoders['GBK'] = function(options) {\n return new GB18030Decoder(options);\n };\n\n // 11.1.2 gbk encoder\n // gbk's encoder is gb18030's encoder with its gbk flag set.\n /** @param {{fatal: boolean}} options */\n encoders['GBK'] = function(options) {\n return new GB18030Encoder(options, true);\n };\n\n // 11.2 gb18030\n\n // 11.2.1 gb18030 decoder\n /**\n * @constructor\n * @implements {Decoder}\n * @param {{fatal: boolean}} options\n */\n function GB18030Decoder(options) {\n var fatal = options.fatal;\n // gb18030's decoder has an associated gb18030 first, gb18030\n // second, and gb18030 third (all initially 0x00).\n var /** @type {number} */ gb18030_first = 0x00,\n /** @type {number} */ gb18030_second = 0x00,\n /** @type {number} */ gb18030_third = 0x00;\n /**\n * @param {Stream} stream The stream of bytes being decoded.\n * @param {number} bite The next byte read from the stream.\n * @return {?(number|!Array.)} The next code point(s)\n * decoded, or null if not enough data exists in the input\n * stream to decode a complete code point.\n */\n this.handler = function(stream, bite) {\n // 1. If byte is end-of-stream and gb18030 first, gb18030\n // second, and gb18030 third are 0x00, return finished.\n if (bite === end_of_stream && gb18030_first === 0x00 &&\n gb18030_second === 0x00 && gb18030_third === 0x00) {\n return finished;\n }\n // 2. If byte is end-of-stream, and gb18030 first, gb18030\n // second, or gb18030 third is not 0x00, set gb18030 first,\n // gb18030 second, and gb18030 third to 0x00, and return error.\n if (bite === end_of_stream &&\n (gb18030_first !== 0x00 || gb18030_second !== 0x00 ||\n gb18030_third !== 0x00)) {\n gb18030_first = 0x00;\n gb18030_second = 0x00;\n gb18030_third = 0x00;\n decoderError(fatal);\n }\n var code_point;\n // 3. If gb18030 third is not 0x00, run these substeps:\n if (gb18030_third !== 0x00) {\n // 1. Let code point be null.\n code_point = null;\n // 2. If byte is in the range 0x30 to 0x39, inclusive, set\n // code point to the index gb18030 ranges code point for\n // (((gb18030 first − 0x81) × 10 + gb18030 second − 0x30) ×\n // 126 + gb18030 third − 0x81) × 10 + byte − 0x30.\n if (inRange(bite, 0x30, 0x39)) {\n code_point = indexGB18030RangesCodePointFor(\n (((gb18030_first - 0x81) * 10 + gb18030_second - 0x30) * 126 +\n gb18030_third - 0x81) * 10 + bite - 0x30);\n }\n\n // 3. Let buffer be a byte sequence consisting of gb18030\n // second, gb18030 third, and byte, in order.\n var buffer = [gb18030_second, gb18030_third, bite];\n\n // 4. Set gb18030 first, gb18030 second, and gb18030 third to\n // 0x00.\n gb18030_first = 0x00;\n gb18030_second = 0x00;\n gb18030_third = 0x00;\n\n // 5. If code point is null, prepend buffer to stream and\n // return error.\n if (code_point === null) {\n stream.prepend(buffer);\n return decoderError(fatal);\n }\n\n // 6. Return a code point whose value is code point.\n return code_point;\n }\n\n // 4. If gb18030 second is not 0x00, run these substeps:\n if (gb18030_second !== 0x00) {\n\n // 1. If byte is in the range 0x81 to 0xFE, inclusive, set\n // gb18030 third to byte and return continue.\n if (inRange(bite, 0x81, 0xFE)) {\n gb18030_third = bite;\n return null;\n }\n\n // 2. Prepend gb18030 second followed by byte to stream, set\n // gb18030 first and gb18030 second to 0x00, and return error.\n stream.prepend([gb18030_second, bite]);\n gb18030_first = 0x00;\n gb18030_second = 0x00;\n return decoderError(fatal);\n }\n\n // 5. If gb18030 first is not 0x00, run these substeps:\n if (gb18030_first !== 0x00) {\n\n // 1. If byte is in the range 0x30 to 0x39, inclusive, set\n // gb18030 second to byte and return continue.\n if (inRange(bite, 0x30, 0x39)) {\n gb18030_second = bite;\n return null;\n }\n\n // 2. Let lead be gb18030 first, let pointer be null, and set\n // gb18030 first to 0x00.\n var lead = gb18030_first;\n var pointer = null;\n gb18030_first = 0x00;\n\n // 3. Let offset be 0x40 if byte is less than 0x7F and 0x41\n // otherwise.\n var offset = bite < 0x7F ? 0x40 : 0x41;\n\n // 4. If byte is in the range 0x40 to 0x7E, inclusive, or 0x80\n // to 0xFE, inclusive, set pointer to (lead − 0x81) × 190 +\n // (byte − offset).\n if (inRange(bite, 0x40, 0x7E) || inRange(bite, 0x80, 0xFE))\n pointer = (lead - 0x81) * 190 + (bite - offset);\n\n // 5. Let code point be null if pointer is null and the index\n // code point for pointer in index gb18030 otherwise.\n code_point = pointer === null ? null :\n indexCodePointFor(pointer, index('gb18030'));\n\n // 6. If code point is null and byte is an ASCII byte, prepend\n // byte to stream.\n if (code_point === null && isASCIIByte(bite))\n stream.prepend(bite);\n\n // 7. If code point is null, return error.\n if (code_point === null)\n return decoderError(fatal);\n\n // 8. Return a code point whose value is code point.\n return code_point;\n }\n\n // 6. If byte is an ASCII byte, return a code point whose value\n // is byte.\n if (isASCIIByte(bite))\n return bite;\n\n // 7. If byte is 0x80, return code point U+20AC.\n if (bite === 0x80)\n return 0x20AC;\n\n // 8. If byte is in the range 0x81 to 0xFE, inclusive, set\n // gb18030 first to byte and return continue.\n if (inRange(bite, 0x81, 0xFE)) {\n gb18030_first = bite;\n return null;\n }\n\n // 9. Return error.\n return decoderError(fatal);\n };\n }\n\n // 11.2.2 gb18030 encoder\n /**\n * @constructor\n * @implements {Encoder}\n * @param {{fatal: boolean}} options\n * @param {boolean=} gbk_flag\n */\n function GB18030Encoder(options, gbk_flag) {\n var fatal = options.fatal;\n // gb18030's decoder has an associated gbk flag (initially unset).\n /**\n * @param {Stream} stream Input stream.\n * @param {number} code_point Next code point read from the stream.\n * @return {(number|!Array.)} Byte(s) to emit.\n */\n this.handler = function(stream, code_point) {\n // 1. If code point is end-of-stream, return finished.\n if (code_point === end_of_stream)\n return finished;\n\n // 2. If code point is an ASCII code point, return a byte whose\n // value is code point.\n if (isASCIICodePoint(code_point))\n return code_point;\n\n // 3. If code point is U+E5E5, return error with code point.\n if (code_point === 0xE5E5)\n return encoderError(code_point);\n\n // 4. If the gbk flag is set and code point is U+20AC, return\n // byte 0x80.\n if (gbk_flag && code_point === 0x20AC)\n return 0x80;\n\n // 5. Let pointer be the index pointer for code point in index\n // gb18030.\n var pointer = indexPointerFor(code_point, index('gb18030'));\n\n // 6. If pointer is not null, run these substeps:\n if (pointer !== null) {\n\n // 1. Let lead be floor(pointer / 190) + 0x81.\n var lead = floor(pointer / 190) + 0x81;\n\n // 2. Let trail be pointer % 190.\n var trail = pointer % 190;\n\n // 3. Let offset be 0x40 if trail is less than 0x3F and 0x41 otherwise.\n var offset = trail < 0x3F ? 0x40 : 0x41;\n\n // 4. Return two bytes whose values are lead and trail + offset.\n return [lead, trail + offset];\n }\n\n // 7. If gbk flag is set, return error with code point.\n if (gbk_flag)\n return encoderError(code_point);\n\n // 8. Set pointer to the index gb18030 ranges pointer for code\n // point.\n pointer = indexGB18030RangesPointerFor(code_point);\n\n // 9. Let byte1 be floor(pointer / 10 / 126 / 10).\n var byte1 = floor(pointer / 10 / 126 / 10);\n\n // 10. Set pointer to pointer − byte1 × 10 × 126 × 10.\n pointer = pointer - byte1 * 10 * 126 * 10;\n\n // 11. Let byte2 be floor(pointer / 10 / 126).\n var byte2 = floor(pointer / 10 / 126);\n\n // 12. Set pointer to pointer − byte2 × 10 × 126.\n pointer = pointer - byte2 * 10 * 126;\n\n // 13. Let byte3 be floor(pointer / 10).\n var byte3 = floor(pointer / 10);\n\n // 14. Let byte4 be pointer − byte3 × 10.\n var byte4 = pointer - byte3 * 10;\n\n // 15. Return four bytes whose values are byte1 + 0x81, byte2 +\n // 0x30, byte3 + 0x81, byte4 + 0x30.\n return [byte1 + 0x81,\n byte2 + 0x30,\n byte3 + 0x81,\n byte4 + 0x30];\n };\n }\n\n /** @param {{fatal: boolean}} options */\n encoders['gb18030'] = function(options) {\n return new GB18030Encoder(options);\n };\n /** @param {{fatal: boolean}} options */\n decoders['gb18030'] = function(options) {\n return new GB18030Decoder(options);\n };\n\n\n //\n // 12. Legacy multi-byte Chinese (traditional) encodings\n //\n\n // 12.1 Big5\n\n // 12.1.1 Big5 decoder\n /**\n * @constructor\n * @implements {Decoder}\n * @param {{fatal: boolean}} options\n */\n function Big5Decoder(options) {\n var fatal = options.fatal;\n // Big5's decoder has an associated Big5 lead (initially 0x00).\n var /** @type {number} */ Big5_lead = 0x00;\n\n /**\n * @param {Stream} stream The stream of bytes being decoded.\n * @param {number} bite The next byte read from the stream.\n * @return {?(number|!Array.)} The next code point(s)\n * decoded, or null if not enough data exists in the input\n * stream to decode a complete code point.\n */\n this.handler = function(stream, bite) {\n // 1. If byte is end-of-stream and Big5 lead is not 0x00, set\n // Big5 lead to 0x00 and return error.\n if (bite === end_of_stream && Big5_lead !== 0x00) {\n Big5_lead = 0x00;\n return decoderError(fatal);\n }\n\n // 2. If byte is end-of-stream and Big5 lead is 0x00, return\n // finished.\n if (bite === end_of_stream && Big5_lead === 0x00)\n return finished;\n\n // 3. If Big5 lead is not 0x00, let lead be Big5 lead, let\n // pointer be null, set Big5 lead to 0x00, and then run these\n // substeps:\n if (Big5_lead !== 0x00) {\n var lead = Big5_lead;\n var pointer = null;\n Big5_lead = 0x00;\n\n // 1. Let offset be 0x40 if byte is less than 0x7F and 0x62\n // otherwise.\n var offset = bite < 0x7F ? 0x40 : 0x62;\n\n // 2. If byte is in the range 0x40 to 0x7E, inclusive, or 0xA1\n // to 0xFE, inclusive, set pointer to (lead − 0x81) × 157 +\n // (byte − offset).\n if (inRange(bite, 0x40, 0x7E) || inRange(bite, 0xA1, 0xFE))\n pointer = (lead - 0x81) * 157 + (bite - offset);\n\n // 3. If there is a row in the table below whose first column\n // is pointer, return the two code points listed in its second\n // column\n // Pointer | Code points\n // --------+--------------\n // 1133 | U+00CA U+0304\n // 1135 | U+00CA U+030C\n // 1164 | U+00EA U+0304\n // 1166 | U+00EA U+030C\n switch (pointer) {\n case 1133: return [0x00CA, 0x0304];\n case 1135: return [0x00CA, 0x030C];\n case 1164: return [0x00EA, 0x0304];\n case 1166: return [0x00EA, 0x030C];\n }\n\n // 4. Let code point be null if pointer is null and the index\n // code point for pointer in index Big5 otherwise.\n var code_point = (pointer === null) ? null :\n indexCodePointFor(pointer, index('big5'));\n\n // 5. If code point is null and byte is an ASCII byte, prepend\n // byte to stream.\n if (code_point === null && isASCIIByte(bite))\n stream.prepend(bite);\n\n // 6. If code point is null, return error.\n if (code_point === null)\n return decoderError(fatal);\n\n // 7. Return a code point whose value is code point.\n return code_point;\n }\n\n // 4. If byte is an ASCII byte, return a code point whose value\n // is byte.\n if (isASCIIByte(bite))\n return bite;\n\n // 5. If byte is in the range 0x81 to 0xFE, inclusive, set Big5\n // lead to byte and return continue.\n if (inRange(bite, 0x81, 0xFE)) {\n Big5_lead = bite;\n return null;\n }\n\n // 6. Return error.\n return decoderError(fatal);\n };\n }\n\n // 12.1.2 Big5 encoder\n /**\n * @constructor\n * @implements {Encoder}\n * @param {{fatal: boolean}} options\n */\n function Big5Encoder(options) {\n var fatal = options.fatal;\n /**\n * @param {Stream} stream Input stream.\n * @param {number} code_point Next code point read from the stream.\n * @return {(number|!Array.)} Byte(s) to emit.\n */\n this.handler = function(stream, code_point) {\n // 1. If code point is end-of-stream, return finished.\n if (code_point === end_of_stream)\n return finished;\n\n // 2. If code point is an ASCII code point, return a byte whose\n // value is code point.\n if (isASCIICodePoint(code_point))\n return code_point;\n\n // 3. Let pointer be the index Big5 pointer for code point.\n var pointer = indexBig5PointerFor(code_point);\n\n // 4. If pointer is null, return error with code point.\n if (pointer === null)\n return encoderError(code_point);\n\n // 5. Let lead be floor(pointer / 157) + 0x81.\n var lead = floor(pointer / 157) + 0x81;\n\n // 6. If lead is less than 0xA1, return error with code point.\n if (lead < 0xA1)\n return encoderError(code_point);\n\n // 7. Let trail be pointer % 157.\n var trail = pointer % 157;\n\n // 8. Let offset be 0x40 if trail is less than 0x3F and 0x62\n // otherwise.\n var offset = trail < 0x3F ? 0x40 : 0x62;\n\n // Return two bytes whose values are lead and trail + offset.\n return [lead, trail + offset];\n };\n }\n\n /** @param {{fatal: boolean}} options */\n encoders['Big5'] = function(options) {\n return new Big5Encoder(options);\n };\n /** @param {{fatal: boolean}} options */\n decoders['Big5'] = function(options) {\n return new Big5Decoder(options);\n };\n\n\n //\n // 13. Legacy multi-byte Japanese encodings\n //\n\n // 13.1 euc-jp\n\n // 13.1.1 euc-jp decoder\n /**\n * @constructor\n * @implements {Decoder}\n * @param {{fatal: boolean}} options\n */\n function EUCJPDecoder(options) {\n var fatal = options.fatal;\n\n // euc-jp's decoder has an associated euc-jp jis0212 flag\n // (initially unset) and euc-jp lead (initially 0x00).\n var /** @type {boolean} */ eucjp_jis0212_flag = false,\n /** @type {number} */ eucjp_lead = 0x00;\n\n /**\n * @param {Stream} stream The stream of bytes being decoded.\n * @param {number} bite The next byte read from the stream.\n * @return {?(number|!Array.)} The next code point(s)\n * decoded, or null if not enough data exists in the input\n * stream to decode a complete code point.\n */\n this.handler = function(stream, bite) {\n // 1. If byte is end-of-stream and euc-jp lead is not 0x00, set\n // euc-jp lead to 0x00, and return error.\n if (bite === end_of_stream && eucjp_lead !== 0x00) {\n eucjp_lead = 0x00;\n return decoderError(fatal);\n }\n\n // 2. If byte is end-of-stream and euc-jp lead is 0x00, return\n // finished.\n if (bite === end_of_stream && eucjp_lead === 0x00)\n return finished;\n\n // 3. If euc-jp lead is 0x8E and byte is in the range 0xA1 to\n // 0xDF, inclusive, set euc-jp lead to 0x00 and return a code\n // point whose value is 0xFF61 − 0xA1 + byte.\n if (eucjp_lead === 0x8E && inRange(bite, 0xA1, 0xDF)) {\n eucjp_lead = 0x00;\n return 0xFF61 - 0xA1 + bite;\n }\n\n // 4. If euc-jp lead is 0x8F and byte is in the range 0xA1 to\n // 0xFE, inclusive, set the euc-jp jis0212 flag, set euc-jp lead\n // to byte, and return continue.\n if (eucjp_lead === 0x8F && inRange(bite, 0xA1, 0xFE)) {\n eucjp_jis0212_flag = true;\n eucjp_lead = bite;\n return null;\n }\n\n // 5. If euc-jp lead is not 0x00, let lead be euc-jp lead, set\n // euc-jp lead to 0x00, and run these substeps:\n if (eucjp_lead !== 0x00) {\n var lead = eucjp_lead;\n eucjp_lead = 0x00;\n\n // 1. Let code point be null.\n var code_point = null;\n\n // 2. If lead and byte are both in the range 0xA1 to 0xFE,\n // inclusive, set code point to the index code point for (lead\n // − 0xA1) × 94 + byte − 0xA1 in index jis0208 if the euc-jp\n // jis0212 flag is unset and in index jis0212 otherwise.\n if (inRange(lead, 0xA1, 0xFE) && inRange(bite, 0xA1, 0xFE)) {\n code_point = indexCodePointFor(\n (lead - 0xA1) * 94 + (bite - 0xA1),\n index(!eucjp_jis0212_flag ? 'jis0208' : 'jis0212'));\n }\n\n // 3. Unset the euc-jp jis0212 flag.\n eucjp_jis0212_flag = false;\n\n // 4. If byte is not in the range 0xA1 to 0xFE, inclusive,\n // prepend byte to stream.\n if (!inRange(bite, 0xA1, 0xFE))\n stream.prepend(bite);\n\n // 5. If code point is null, return error.\n if (code_point === null)\n return decoderError(fatal);\n\n // 6. Return a code point whose value is code point.\n return code_point;\n }\n\n // 6. If byte is an ASCII byte, return a code point whose value\n // is byte.\n if (isASCIIByte(bite))\n return bite;\n\n // 7. If byte is 0x8E, 0x8F, or in the range 0xA1 to 0xFE,\n // inclusive, set euc-jp lead to byte and return continue.\n if (bite === 0x8E || bite === 0x8F || inRange(bite, 0xA1, 0xFE)) {\n eucjp_lead = bite;\n return null;\n }\n\n // 8. Return error.\n return decoderError(fatal);\n };\n }\n\n // 13.1.2 euc-jp encoder\n /**\n * @constructor\n * @implements {Encoder}\n * @param {{fatal: boolean}} options\n */\n function EUCJPEncoder(options) {\n var fatal = options.fatal;\n /**\n * @param {Stream} stream Input stream.\n * @param {number} code_point Next code point read from the stream.\n * @return {(number|!Array.)} Byte(s) to emit.\n */\n this.handler = function(stream, code_point) {\n // 1. If code point is end-of-stream, return finished.\n if (code_point === end_of_stream)\n return finished;\n\n // 2. If code point is an ASCII code point, return a byte whose\n // value is code point.\n if (isASCIICodePoint(code_point))\n return code_point;\n\n // 3. If code point is U+00A5, return byte 0x5C.\n if (code_point === 0x00A5)\n return 0x5C;\n\n // 4. If code point is U+203E, return byte 0x7E.\n if (code_point === 0x203E)\n return 0x7E;\n\n // 5. If code point is in the range U+FF61 to U+FF9F, inclusive,\n // return two bytes whose values are 0x8E and code point −\n // 0xFF61 + 0xA1.\n if (inRange(code_point, 0xFF61, 0xFF9F))\n return [0x8E, code_point - 0xFF61 + 0xA1];\n\n // 6. If code point is U+2212, set it to U+FF0D.\n if (code_point === 0x2212)\n code_point = 0xFF0D;\n\n // 7. Let pointer be the index pointer for code point in index\n // jis0208.\n var pointer = indexPointerFor(code_point, index('jis0208'));\n\n // 8. If pointer is null, return error with code point.\n if (pointer === null)\n return encoderError(code_point);\n\n // 9. Let lead be floor(pointer / 94) + 0xA1.\n var lead = floor(pointer / 94) + 0xA1;\n\n // 10. Let trail be pointer % 94 + 0xA1.\n var trail = pointer % 94 + 0xA1;\n\n // 11. Return two bytes whose values are lead and trail.\n return [lead, trail];\n };\n }\n\n /** @param {{fatal: boolean}} options */\n encoders['EUC-JP'] = function(options) {\n return new EUCJPEncoder(options);\n };\n /** @param {{fatal: boolean}} options */\n decoders['EUC-JP'] = function(options) {\n return new EUCJPDecoder(options);\n };\n\n // 13.2 iso-2022-jp\n\n // 13.2.1 iso-2022-jp decoder\n /**\n * @constructor\n * @implements {Decoder}\n * @param {{fatal: boolean}} options\n */\n function ISO2022JPDecoder(options) {\n var fatal = options.fatal;\n /** @enum */\n var states = {\n ASCII: 0,\n Roman: 1,\n Katakana: 2,\n LeadByte: 3,\n TrailByte: 4,\n EscapeStart: 5,\n Escape: 6\n };\n // iso-2022-jp's decoder has an associated iso-2022-jp decoder\n // state (initially ASCII), iso-2022-jp decoder output state\n // (initially ASCII), iso-2022-jp lead (initially 0x00), and\n // iso-2022-jp output flag (initially unset).\n var /** @type {number} */ iso2022jp_decoder_state = states.ASCII,\n /** @type {number} */ iso2022jp_decoder_output_state = states.ASCII,\n /** @type {number} */ iso2022jp_lead = 0x00,\n /** @type {boolean} */ iso2022jp_output_flag = false;\n /**\n * @param {Stream} stream The stream of bytes being decoded.\n * @param {number} bite The next byte read from the stream.\n * @return {?(number|!Array.)} The next code point(s)\n * decoded, or null if not enough data exists in the input\n * stream to decode a complete code point.\n */\n this.handler = function(stream, bite) {\n // switching on iso-2022-jp decoder state:\n switch (iso2022jp_decoder_state) {\n default:\n case states.ASCII:\n // ASCII\n // Based on byte:\n\n // 0x1B\n if (bite === 0x1B) {\n // Set iso-2022-jp decoder state to escape start and return\n // continue.\n iso2022jp_decoder_state = states.EscapeStart;\n return null;\n }\n\n // 0x00 to 0x7F, excluding 0x0E, 0x0F, and 0x1B\n if (inRange(bite, 0x00, 0x7F) && bite !== 0x0E\n && bite !== 0x0F && bite !== 0x1B) {\n // Unset the iso-2022-jp output flag and return a code point\n // whose value is byte.\n iso2022jp_output_flag = false;\n return bite;\n }\n\n // end-of-stream\n if (bite === end_of_stream) {\n // Return finished.\n return finished;\n }\n\n // Otherwise\n // Unset the iso-2022-jp output flag and return error.\n iso2022jp_output_flag = false;\n return decoderError(fatal);\n\n case states.Roman:\n // Roman\n // Based on byte:\n\n // 0x1B\n if (bite === 0x1B) {\n // Set iso-2022-jp decoder state to escape start and return\n // continue.\n iso2022jp_decoder_state = states.EscapeStart;\n return null;\n }\n\n // 0x5C\n if (bite === 0x5C) {\n // Unset the iso-2022-jp output flag and return code point\n // U+00A5.\n iso2022jp_output_flag = false;\n return 0x00A5;\n }\n\n // 0x7E\n if (bite === 0x7E) {\n // Unset the iso-2022-jp output flag and return code point\n // U+203E.\n iso2022jp_output_flag = false;\n return 0x203E;\n }\n\n // 0x00 to 0x7F, excluding 0x0E, 0x0F, 0x1B, 0x5C, and 0x7E\n if (inRange(bite, 0x00, 0x7F) && bite !== 0x0E && bite !== 0x0F\n && bite !== 0x1B && bite !== 0x5C && bite !== 0x7E) {\n // Unset the iso-2022-jp output flag and return a code point\n // whose value is byte.\n iso2022jp_output_flag = false;\n return bite;\n }\n\n // end-of-stream\n if (bite === end_of_stream) {\n // Return finished.\n return finished;\n }\n\n // Otherwise\n // Unset the iso-2022-jp output flag and return error.\n iso2022jp_output_flag = false;\n return decoderError(fatal);\n\n case states.Katakana:\n // Katakana\n // Based on byte:\n\n // 0x1B\n if (bite === 0x1B) {\n // Set iso-2022-jp decoder state to escape start and return\n // continue.\n iso2022jp_decoder_state = states.EscapeStart;\n return null;\n }\n\n // 0x21 to 0x5F\n if (inRange(bite, 0x21, 0x5F)) {\n // Unset the iso-2022-jp output flag and return a code point\n // whose value is 0xFF61 − 0x21 + byte.\n iso2022jp_output_flag = false;\n return 0xFF61 - 0x21 + bite;\n }\n\n // end-of-stream\n if (bite === end_of_stream) {\n // Return finished.\n return finished;\n }\n\n // Otherwise\n // Unset the iso-2022-jp output flag and return error.\n iso2022jp_output_flag = false;\n return decoderError(fatal);\n\n case states.LeadByte:\n // Lead byte\n // Based on byte:\n\n // 0x1B\n if (bite === 0x1B) {\n // Set iso-2022-jp decoder state to escape start and return\n // continue.\n iso2022jp_decoder_state = states.EscapeStart;\n return null;\n }\n\n // 0x21 to 0x7E\n if (inRange(bite, 0x21, 0x7E)) {\n // Unset the iso-2022-jp output flag, set iso-2022-jp lead\n // to byte, iso-2022-jp decoder state to trail byte, and\n // return continue.\n iso2022jp_output_flag = false;\n iso2022jp_lead = bite;\n iso2022jp_decoder_state = states.TrailByte;\n return null;\n }\n\n // end-of-stream\n if (bite === end_of_stream) {\n // Return finished.\n return finished;\n }\n\n // Otherwise\n // Unset the iso-2022-jp output flag and return error.\n iso2022jp_output_flag = false;\n return decoderError(fatal);\n\n case states.TrailByte:\n // Trail byte\n // Based on byte:\n\n // 0x1B\n if (bite === 0x1B) {\n // Set iso-2022-jp decoder state to escape start and return\n // continue.\n iso2022jp_decoder_state = states.EscapeStart;\n return decoderError(fatal);\n }\n\n // 0x21 to 0x7E\n if (inRange(bite, 0x21, 0x7E)) {\n // 1. Set the iso-2022-jp decoder state to lead byte.\n iso2022jp_decoder_state = states.LeadByte;\n\n // 2. Let pointer be (iso-2022-jp lead − 0x21) × 94 + byte − 0x21.\n var pointer = (iso2022jp_lead - 0x21) * 94 + bite - 0x21;\n\n // 3. Let code point be the index code point for pointer in\n // index jis0208.\n var code_point = indexCodePointFor(pointer, index('jis0208'));\n\n // 4. If code point is null, return error.\n if (code_point === null)\n return decoderError(fatal);\n\n // 5. Return a code point whose value is code point.\n return code_point;\n }\n\n // end-of-stream\n if (bite === end_of_stream) {\n // Set the iso-2022-jp decoder state to lead byte, prepend\n // byte to stream, and return error.\n iso2022jp_decoder_state = states.LeadByte;\n stream.prepend(bite);\n return decoderError(fatal);\n }\n\n // Otherwise\n // Set iso-2022-jp decoder state to lead byte and return\n // error.\n iso2022jp_decoder_state = states.LeadByte;\n return decoderError(fatal);\n\n case states.EscapeStart:\n // Escape start\n\n // 1. If byte is either 0x24 or 0x28, set iso-2022-jp lead to\n // byte, iso-2022-jp decoder state to escape, and return\n // continue.\n if (bite === 0x24 || bite === 0x28) {\n iso2022jp_lead = bite;\n iso2022jp_decoder_state = states.Escape;\n return null;\n }\n\n // 2. Prepend byte to stream.\n stream.prepend(bite);\n\n // 3. Unset the iso-2022-jp output flag, set iso-2022-jp\n // decoder state to iso-2022-jp decoder output state, and\n // return error.\n iso2022jp_output_flag = false;\n iso2022jp_decoder_state = iso2022jp_decoder_output_state;\n return decoderError(fatal);\n\n case states.Escape:\n // Escape\n\n // 1. Let lead be iso-2022-jp lead and set iso-2022-jp lead to\n // 0x00.\n var lead = iso2022jp_lead;\n iso2022jp_lead = 0x00;\n\n // 2. Let state be null.\n var state = null;\n\n // 3. If lead is 0x28 and byte is 0x42, set state to ASCII.\n if (lead === 0x28 && bite === 0x42)\n state = states.ASCII;\n\n // 4. If lead is 0x28 and byte is 0x4A, set state to Roman.\n if (lead === 0x28 && bite === 0x4A)\n state = states.Roman;\n\n // 5. If lead is 0x28 and byte is 0x49, set state to Katakana.\n if (lead === 0x28 && bite === 0x49)\n state = states.Katakana;\n\n // 6. If lead is 0x24 and byte is either 0x40 or 0x42, set\n // state to lead byte.\n if (lead === 0x24 && (bite === 0x40 || bite === 0x42))\n state = states.LeadByte;\n\n // 7. If state is non-null, run these substeps:\n if (state !== null) {\n // 1. Set iso-2022-jp decoder state and iso-2022-jp decoder\n // output state to states.\n iso2022jp_decoder_state = iso2022jp_decoder_state = state;\n\n // 2. Let output flag be the iso-2022-jp output flag.\n var output_flag = iso2022jp_output_flag;\n\n // 3. Set the iso-2022-jp output flag.\n iso2022jp_output_flag = true;\n\n // 4. Return continue, if output flag is unset, and error\n // otherwise.\n return !output_flag ? null : decoderError(fatal);\n }\n\n // 8. Prepend lead and byte to stream.\n stream.prepend([lead, bite]);\n\n // 9. Unset the iso-2022-jp output flag, set iso-2022-jp\n // decoder state to iso-2022-jp decoder output state and\n // return error.\n iso2022jp_output_flag = false;\n iso2022jp_decoder_state = iso2022jp_decoder_output_state;\n return decoderError(fatal);\n }\n };\n }\n\n // 13.2.2 iso-2022-jp encoder\n /**\n * @constructor\n * @implements {Encoder}\n * @param {{fatal: boolean}} options\n */\n function ISO2022JPEncoder(options) {\n var fatal = options.fatal;\n // iso-2022-jp's encoder has an associated iso-2022-jp encoder\n // state which is one of ASCII, Roman, and jis0208 (initially\n // ASCII).\n /** @enum */\n var states = {\n ASCII: 0,\n Roman: 1,\n jis0208: 2\n };\n var /** @type {number} */ iso2022jp_state = states.ASCII;\n /**\n * @param {Stream} stream Input stream.\n * @param {number} code_point Next code point read from the stream.\n * @return {(number|!Array.)} Byte(s) to emit.\n */\n this.handler = function(stream, code_point) {\n // 1. If code point is end-of-stream and iso-2022-jp encoder\n // state is not ASCII, prepend code point to stream, set\n // iso-2022-jp encoder state to ASCII, and return three bytes\n // 0x1B 0x28 0x42.\n if (code_point === end_of_stream &&\n iso2022jp_state !== states.ASCII) {\n stream.prepend(code_point);\n iso2022jp_state = states.ASCII;\n return [0x1B, 0x28, 0x42];\n }\n\n // 2. If code point is end-of-stream and iso-2022-jp encoder\n // state is ASCII, return finished.\n if (code_point === end_of_stream && iso2022jp_state === states.ASCII)\n return finished;\n\n // 3. If ISO-2022-JP encoder state is ASCII or Roman, and code\n // point is U+000E, U+000F, or U+001B, return error with U+FFFD.\n if ((iso2022jp_state === states.ASCII ||\n iso2022jp_state === states.Roman) &&\n (code_point === 0x000E || code_point === 0x000F ||\n code_point === 0x001B)) {\n return encoderError(0xFFFD);\n }\n\n // 4. If iso-2022-jp encoder state is ASCII and code point is an\n // ASCII code point, return a byte whose value is code point.\n if (iso2022jp_state === states.ASCII &&\n isASCIICodePoint(code_point))\n return code_point;\n\n // 5. If iso-2022-jp encoder state is Roman and code point is an\n // ASCII code point, excluding U+005C and U+007E, or is U+00A5\n // or U+203E, run these substeps:\n if (iso2022jp_state === states.Roman &&\n ((isASCIICodePoint(code_point) &&\n code_point !== 0x005C && code_point !== 0x007E) ||\n (code_point == 0x00A5 || code_point == 0x203E))) {\n\n // 1. If code point is an ASCII code point, return a byte\n // whose value is code point.\n if (isASCIICodePoint(code_point))\n return code_point;\n\n // 2. If code point is U+00A5, return byte 0x5C.\n if (code_point === 0x00A5)\n return 0x5C;\n\n // 3. If code point is U+203E, return byte 0x7E.\n if (code_point === 0x203E)\n return 0x7E;\n }\n\n // 6. If code point is an ASCII code point, and iso-2022-jp\n // encoder state is not ASCII, prepend code point to stream, set\n // iso-2022-jp encoder state to ASCII, and return three bytes\n // 0x1B 0x28 0x42.\n if (isASCIICodePoint(code_point) &&\n iso2022jp_state !== states.ASCII) {\n stream.prepend(code_point);\n iso2022jp_state = states.ASCII;\n return [0x1B, 0x28, 0x42];\n }\n\n // 7. If code point is either U+00A5 or U+203E, and iso-2022-jp\n // encoder state is not Roman, prepend code point to stream, set\n // iso-2022-jp encoder state to Roman, and return three bytes\n // 0x1B 0x28 0x4A.\n if ((code_point === 0x00A5 || code_point === 0x203E) &&\n iso2022jp_state !== states.Roman) {\n stream.prepend(code_point);\n iso2022jp_state = states.Roman;\n return [0x1B, 0x28, 0x4A];\n }\n\n // 8. If code point is U+2212, set it to U+FF0D.\n if (code_point === 0x2212)\n code_point = 0xFF0D;\n\n // 9. Let pointer be the index pointer for code point in index\n // jis0208.\n var pointer = indexPointerFor(code_point, index('jis0208'));\n\n // 10. If pointer is null, return error with code point.\n if (pointer === null)\n return encoderError(code_point);\n\n // 11. If iso-2022-jp encoder state is not jis0208, prepend code\n // point to stream, set iso-2022-jp encoder state to jis0208,\n // and return three bytes 0x1B 0x24 0x42.\n if (iso2022jp_state !== states.jis0208) {\n stream.prepend(code_point);\n iso2022jp_state = states.jis0208;\n return [0x1B, 0x24, 0x42];\n }\n\n // 12. Let lead be floor(pointer / 94) + 0x21.\n var lead = floor(pointer / 94) + 0x21;\n\n // 13. Let trail be pointer % 94 + 0x21.\n var trail = pointer % 94 + 0x21;\n\n // 14. Return two bytes whose values are lead and trail.\n return [lead, trail];\n };\n }\n\n /** @param {{fatal: boolean}} options */\n encoders['ISO-2022-JP'] = function(options) {\n return new ISO2022JPEncoder(options);\n };\n /** @param {{fatal: boolean}} options */\n decoders['ISO-2022-JP'] = function(options) {\n return new ISO2022JPDecoder(options);\n };\n\n // 13.3 Shift_JIS\n\n // 13.3.1 Shift_JIS decoder\n /**\n * @constructor\n * @implements {Decoder}\n * @param {{fatal: boolean}} options\n */\n function ShiftJISDecoder(options) {\n var fatal = options.fatal;\n // Shift_JIS's decoder has an associated Shift_JIS lead (initially\n // 0x00).\n var /** @type {number} */ Shift_JIS_lead = 0x00;\n /**\n * @param {Stream} stream The stream of bytes being decoded.\n * @param {number} bite The next byte read from the stream.\n * @return {?(number|!Array.)} The next code point(s)\n * decoded, or null if not enough data exists in the input\n * stream to decode a complete code point.\n */\n this.handler = function(stream, bite) {\n // 1. If byte is end-of-stream and Shift_JIS lead is not 0x00,\n // set Shift_JIS lead to 0x00 and return error.\n if (bite === end_of_stream && Shift_JIS_lead !== 0x00) {\n Shift_JIS_lead = 0x00;\n return decoderError(fatal);\n }\n\n // 2. If byte is end-of-stream and Shift_JIS lead is 0x00,\n // return finished.\n if (bite === end_of_stream && Shift_JIS_lead === 0x00)\n return finished;\n\n // 3. If Shift_JIS lead is not 0x00, let lead be Shift_JIS lead,\n // let pointer be null, set Shift_JIS lead to 0x00, and then run\n // these substeps:\n if (Shift_JIS_lead !== 0x00) {\n var lead = Shift_JIS_lead;\n var pointer = null;\n Shift_JIS_lead = 0x00;\n\n // 1. Let offset be 0x40, if byte is less than 0x7F, and 0x41\n // otherwise.\n var offset = (bite < 0x7F) ? 0x40 : 0x41;\n\n // 2. Let lead offset be 0x81, if lead is less than 0xA0, and\n // 0xC1 otherwise.\n var lead_offset = (lead < 0xA0) ? 0x81 : 0xC1;\n\n // 3. If byte is in the range 0x40 to 0x7E, inclusive, or 0x80\n // to 0xFC, inclusive, set pointer to (lead − lead offset) ×\n // 188 + byte − offset.\n if (inRange(bite, 0x40, 0x7E) || inRange(bite, 0x80, 0xFC))\n pointer = (lead - lead_offset) * 188 + bite - offset;\n\n // 4. If pointer is in the range 8836 to 10715, inclusive,\n // return a code point whose value is 0xE000 − 8836 + pointer.\n if (inRange(pointer, 8836, 10715))\n return 0xE000 - 8836 + pointer;\n\n // 5. Let code point be null, if pointer is null, and the\n // index code point for pointer in index jis0208 otherwise.\n var code_point = (pointer === null) ? null :\n indexCodePointFor(pointer, index('jis0208'));\n\n // 6. If code point is null and byte is an ASCII byte, prepend\n // byte to stream.\n if (code_point === null && isASCIIByte(bite))\n stream.prepend(bite);\n\n // 7. If code point is null, return error.\n if (code_point === null)\n return decoderError(fatal);\n\n // 8. Return a code point whose value is code point.\n return code_point;\n }\n\n // 4. If byte is an ASCII byte or 0x80, return a code point\n // whose value is byte.\n if (isASCIIByte(bite) || bite === 0x80)\n return bite;\n\n // 5. If byte is in the range 0xA1 to 0xDF, inclusive, return a\n // code point whose value is 0xFF61 − 0xA1 + byte.\n if (inRange(bite, 0xA1, 0xDF))\n return 0xFF61 - 0xA1 + bite;\n\n // 6. If byte is in the range 0x81 to 0x9F, inclusive, or 0xE0\n // to 0xFC, inclusive, set Shift_JIS lead to byte and return\n // continue.\n if (inRange(bite, 0x81, 0x9F) || inRange(bite, 0xE0, 0xFC)) {\n Shift_JIS_lead = bite;\n return null;\n }\n\n // 7. Return error.\n return decoderError(fatal);\n };\n }\n\n // 13.3.2 Shift_JIS encoder\n /**\n * @constructor\n * @implements {Encoder}\n * @param {{fatal: boolean}} options\n */\n function ShiftJISEncoder(options) {\n var fatal = options.fatal;\n /**\n * @param {Stream} stream Input stream.\n * @param {number} code_point Next code point read from the stream.\n * @return {(number|!Array.)} Byte(s) to emit.\n */\n this.handler = function(stream, code_point) {\n // 1. If code point is end-of-stream, return finished.\n if (code_point === end_of_stream)\n return finished;\n\n // 2. If code point is an ASCII code point or U+0080, return a\n // byte whose value is code point.\n if (isASCIICodePoint(code_point) || code_point === 0x0080)\n return code_point;\n\n // 3. If code point is U+00A5, return byte 0x5C.\n if (code_point === 0x00A5)\n return 0x5C;\n\n // 4. If code point is U+203E, return byte 0x7E.\n if (code_point === 0x203E)\n return 0x7E;\n\n // 5. If code point is in the range U+FF61 to U+FF9F, inclusive,\n // return a byte whose value is code point − 0xFF61 + 0xA1.\n if (inRange(code_point, 0xFF61, 0xFF9F))\n return code_point - 0xFF61 + 0xA1;\n\n // 6. If code point is U+2212, set it to U+FF0D.\n if (code_point === 0x2212)\n code_point = 0xFF0D;\n\n // 7. Let pointer be the index Shift_JIS pointer for code point.\n var pointer = indexShiftJISPointerFor(code_point);\n\n // 8. If pointer is null, return error with code point.\n if (pointer === null)\n return encoderError(code_point);\n\n // 9. Let lead be floor(pointer / 188).\n var lead = floor(pointer / 188);\n\n // 10. Let lead offset be 0x81, if lead is less than 0x1F, and\n // 0xC1 otherwise.\n var lead_offset = (lead < 0x1F) ? 0x81 : 0xC1;\n\n // 11. Let trail be pointer % 188.\n var trail = pointer % 188;\n\n // 12. Let offset be 0x40, if trail is less than 0x3F, and 0x41\n // otherwise.\n var offset = (trail < 0x3F) ? 0x40 : 0x41;\n\n // 13. Return two bytes whose values are lead + lead offset and\n // trail + offset.\n return [lead + lead_offset, trail + offset];\n };\n }\n\n /** @param {{fatal: boolean}} options */\n encoders['Shift_JIS'] = function(options) {\n return new ShiftJISEncoder(options);\n };\n /** @param {{fatal: boolean}} options */\n decoders['Shift_JIS'] = function(options) {\n return new ShiftJISDecoder(options);\n };\n\n //\n // 14. Legacy multi-byte Korean encodings\n //\n\n // 14.1 euc-kr\n\n // 14.1.1 euc-kr decoder\n /**\n * @constructor\n * @implements {Decoder}\n * @param {{fatal: boolean}} options\n */\n function EUCKRDecoder(options) {\n var fatal = options.fatal;\n\n // euc-kr's decoder has an associated euc-kr lead (initially 0x00).\n var /** @type {number} */ euckr_lead = 0x00;\n /**\n * @param {Stream} stream The stream of bytes being decoded.\n * @param {number} bite The next byte read from the stream.\n * @return {?(number|!Array.)} The next code point(s)\n * decoded, or null if not enough data exists in the input\n * stream to decode a complete code point.\n */\n this.handler = function(stream, bite) {\n // 1. If byte is end-of-stream and euc-kr lead is not 0x00, set\n // euc-kr lead to 0x00 and return error.\n if (bite === end_of_stream && euckr_lead !== 0) {\n euckr_lead = 0x00;\n return decoderError(fatal);\n }\n\n // 2. If byte is end-of-stream and euc-kr lead is 0x00, return\n // finished.\n if (bite === end_of_stream && euckr_lead === 0)\n return finished;\n\n // 3. If euc-kr lead is not 0x00, let lead be euc-kr lead, let\n // pointer be null, set euc-kr lead to 0x00, and then run these\n // substeps:\n if (euckr_lead !== 0x00) {\n var lead = euckr_lead;\n var pointer = null;\n euckr_lead = 0x00;\n\n // 1. If byte is in the range 0x41 to 0xFE, inclusive, set\n // pointer to (lead − 0x81) × 190 + (byte − 0x41).\n if (inRange(bite, 0x41, 0xFE))\n pointer = (lead - 0x81) * 190 + (bite - 0x41);\n\n // 2. Let code point be null, if pointer is null, and the\n // index code point for pointer in index euc-kr otherwise.\n var code_point = (pointer === null)\n ? null : indexCodePointFor(pointer, index('euc-kr'));\n\n // 3. If code point is null and byte is an ASCII byte, prepend\n // byte to stream.\n if (pointer === null && isASCIIByte(bite))\n stream.prepend(bite);\n\n // 4. If code point is null, return error.\n if (code_point === null)\n return decoderError(fatal);\n\n // 5. Return a code point whose value is code point.\n return code_point;\n }\n\n // 4. If byte is an ASCII byte, return a code point whose value\n // is byte.\n if (isASCIIByte(bite))\n return bite;\n\n // 5. If byte is in the range 0x81 to 0xFE, inclusive, set\n // euc-kr lead to byte and return continue.\n if (inRange(bite, 0x81, 0xFE)) {\n euckr_lead = bite;\n return null;\n }\n\n // 6. Return error.\n return decoderError(fatal);\n };\n }\n\n // 14.1.2 euc-kr encoder\n /**\n * @constructor\n * @implements {Encoder}\n * @param {{fatal: boolean}} options\n */\n function EUCKREncoder(options) {\n var fatal = options.fatal;\n /**\n * @param {Stream} stream Input stream.\n * @param {number} code_point Next code point read from the stream.\n * @return {(number|!Array.)} Byte(s) to emit.\n */\n this.handler = function(stream, code_point) {\n // 1. If code point is end-of-stream, return finished.\n if (code_point === end_of_stream)\n return finished;\n\n // 2. If code point is an ASCII code point, return a byte whose\n // value is code point.\n if (isASCIICodePoint(code_point))\n return code_point;\n\n // 3. Let pointer be the index pointer for code point in index\n // euc-kr.\n var pointer = indexPointerFor(code_point, index('euc-kr'));\n\n // 4. If pointer is null, return error with code point.\n if (pointer === null)\n return encoderError(code_point);\n\n // 5. Let lead be floor(pointer / 190) + 0x81.\n var lead = floor(pointer / 190) + 0x81;\n\n // 6. Let trail be pointer % 190 + 0x41.\n var trail = (pointer % 190) + 0x41;\n\n // 7. Return two bytes whose values are lead and trail.\n return [lead, trail];\n };\n }\n\n /** @param {{fatal: boolean}} options */\n encoders['EUC-KR'] = function(options) {\n return new EUCKREncoder(options);\n };\n /** @param {{fatal: boolean}} options */\n decoders['EUC-KR'] = function(options) {\n return new EUCKRDecoder(options);\n };\n\n\n //\n // 15. Legacy miscellaneous encodings\n //\n\n // 15.1 replacement\n\n // Not needed - API throws RangeError\n\n // 15.2 Common infrastructure for utf-16be and utf-16le\n\n /**\n * @param {number} code_unit\n * @param {boolean} utf16be\n * @return {!Array.} bytes\n */\n function convertCodeUnitToBytes(code_unit, utf16be) {\n // 1. Let byte1 be code unit >> 8.\n var byte1 = code_unit >> 8;\n\n // 2. Let byte2 be code unit & 0x00FF.\n var byte2 = code_unit & 0x00FF;\n\n // 3. Then return the bytes in order:\n // utf-16be flag is set: byte1, then byte2.\n if (utf16be)\n return [byte1, byte2];\n // utf-16be flag is unset: byte2, then byte1.\n return [byte2, byte1];\n }\n\n // 15.2.1 shared utf-16 decoder\n /**\n * @constructor\n * @implements {Decoder}\n * @param {boolean} utf16_be True if big-endian, false if little-endian.\n * @param {{fatal: boolean}} options\n */\n function UTF16Decoder(utf16_be, options) {\n var fatal = options.fatal;\n var /** @type {?number} */ utf16_lead_byte = null,\n /** @type {?number} */ utf16_lead_surrogate = null;\n /**\n * @param {Stream} stream The stream of bytes being decoded.\n * @param {number} bite The next byte read from the stream.\n * @return {?(number|!Array.)} The next code point(s)\n * decoded, or null if not enough data exists in the input\n * stream to decode a complete code point.\n */\n this.handler = function(stream, bite) {\n // 1. If byte is end-of-stream and either utf-16 lead byte or\n // utf-16 lead surrogate is not null, set utf-16 lead byte and\n // utf-16 lead surrogate to null, and return error.\n if (bite === end_of_stream && (utf16_lead_byte !== null ||\n utf16_lead_surrogate !== null)) {\n return decoderError(fatal);\n }\n\n // 2. If byte is end-of-stream and utf-16 lead byte and utf-16\n // lead surrogate are null, return finished.\n if (bite === end_of_stream && utf16_lead_byte === null &&\n utf16_lead_surrogate === null) {\n return finished;\n }\n\n // 3. If utf-16 lead byte is null, set utf-16 lead byte to byte\n // and return continue.\n if (utf16_lead_byte === null) {\n utf16_lead_byte = bite;\n return null;\n }\n\n // 4. Let code unit be the result of:\n var code_unit;\n if (utf16_be) {\n // utf-16be decoder flag is set\n // (utf-16 lead byte << 8) + byte.\n code_unit = (utf16_lead_byte << 8) + bite;\n } else {\n // utf-16be decoder flag is unset\n // (byte << 8) + utf-16 lead byte.\n code_unit = (bite << 8) + utf16_lead_byte;\n }\n // Then set utf-16 lead byte to null.\n utf16_lead_byte = null;\n\n // 5. If utf-16 lead surrogate is not null, let lead surrogate\n // be utf-16 lead surrogate, set utf-16 lead surrogate to null,\n // and then run these substeps:\n if (utf16_lead_surrogate !== null) {\n var lead_surrogate = utf16_lead_surrogate;\n utf16_lead_surrogate = null;\n\n // 1. If code unit is in the range U+DC00 to U+DFFF,\n // inclusive, return a code point whose value is 0x10000 +\n // ((lead surrogate − 0xD800) << 10) + (code unit − 0xDC00).\n if (inRange(code_unit, 0xDC00, 0xDFFF)) {\n return 0x10000 + (lead_surrogate - 0xD800) * 0x400 +\n (code_unit - 0xDC00);\n }\n\n // 2. Prepend the sequence resulting of converting code unit\n // to bytes using utf-16be decoder flag to stream and return\n // error.\n stream.prepend(convertCodeUnitToBytes(code_unit, utf16_be));\n return decoderError(fatal);\n }\n\n // 6. If code unit is in the range U+D800 to U+DBFF, inclusive,\n // set utf-16 lead surrogate to code unit and return continue.\n if (inRange(code_unit, 0xD800, 0xDBFF)) {\n utf16_lead_surrogate = code_unit;\n return null;\n }\n\n // 7. If code unit is in the range U+DC00 to U+DFFF, inclusive,\n // return error.\n if (inRange(code_unit, 0xDC00, 0xDFFF))\n return decoderError(fatal);\n\n // 8. Return code point code unit.\n return code_unit;\n };\n }\n\n // 15.2.2 shared utf-16 encoder\n /**\n * @constructor\n * @implements {Encoder}\n * @param {boolean} utf16_be True if big-endian, false if little-endian.\n * @param {{fatal: boolean}} options\n */\n function UTF16Encoder(utf16_be, options) {\n var fatal = options.fatal;\n /**\n * @param {Stream} stream Input stream.\n * @param {number} code_point Next code point read from the stream.\n * @return {(number|!Array.)} Byte(s) to emit.\n */\n this.handler = function(stream, code_point) {\n // 1. If code point is end-of-stream, return finished.\n if (code_point === end_of_stream)\n return finished;\n\n // 2. If code point is in the range U+0000 to U+FFFF, inclusive,\n // return the sequence resulting of converting code point to\n // bytes using utf-16be encoder flag.\n if (inRange(code_point, 0x0000, 0xFFFF))\n return convertCodeUnitToBytes(code_point, utf16_be);\n\n // 3. Let lead be ((code point − 0x10000) >> 10) + 0xD800,\n // converted to bytes using utf-16be encoder flag.\n var lead = convertCodeUnitToBytes(\n ((code_point - 0x10000) >> 10) + 0xD800, utf16_be);\n\n // 4. Let trail be ((code point − 0x10000) & 0x3FF) + 0xDC00,\n // converted to bytes using utf-16be encoder flag.\n var trail = convertCodeUnitToBytes(\n ((code_point - 0x10000) & 0x3FF) + 0xDC00, utf16_be);\n\n // 5. Return a byte sequence of lead followed by trail.\n return lead.concat(trail);\n };\n }\n\n // 15.3 utf-16be\n // 15.3.1 utf-16be decoder\n /** @param {{fatal: boolean}} options */\n encoders['UTF-16BE'] = function(options) {\n return new UTF16Encoder(true, options);\n };\n // 15.3.2 utf-16be encoder\n /** @param {{fatal: boolean}} options */\n decoders['UTF-16BE'] = function(options) {\n return new UTF16Decoder(true, options);\n };\n\n // 15.4 utf-16le\n // 15.4.1 utf-16le decoder\n /** @param {{fatal: boolean}} options */\n encoders['UTF-16LE'] = function(options) {\n return new UTF16Encoder(false, options);\n };\n // 15.4.2 utf-16le encoder\n /** @param {{fatal: boolean}} options */\n decoders['UTF-16LE'] = function(options) {\n return new UTF16Decoder(false, options);\n };\n\n // 15.5 x-user-defined\n\n // 15.5.1 x-user-defined decoder\n /**\n * @constructor\n * @implements {Decoder}\n * @param {{fatal: boolean}} options\n */\n function XUserDefinedDecoder(options) {\n var fatal = options.fatal;\n /**\n * @param {Stream} stream The stream of bytes being decoded.\n * @param {number} bite The next byte read from the stream.\n * @return {?(number|!Array.)} The next code point(s)\n * decoded, or null if not enough data exists in the input\n * stream to decode a complete code point.\n */\n this.handler = function(stream, bite) {\n // 1. If byte is end-of-stream, return finished.\n if (bite === end_of_stream)\n return finished;\n\n // 2. If byte is an ASCII byte, return a code point whose value\n // is byte.\n if (isASCIIByte(bite))\n return bite;\n\n // 3. Return a code point whose value is 0xF780 + byte − 0x80.\n return 0xF780 + bite - 0x80;\n };\n }\n\n // 15.5.2 x-user-defined encoder\n /**\n * @constructor\n * @implements {Encoder}\n * @param {{fatal: boolean}} options\n */\n function XUserDefinedEncoder(options) {\n var fatal = options.fatal;\n /**\n * @param {Stream} stream Input stream.\n * @param {number} code_point Next code point read from the stream.\n * @return {(number|!Array.)} Byte(s) to emit.\n */\n this.handler = function(stream, code_point) {\n // 1.If code point is end-of-stream, return finished.\n if (code_point === end_of_stream)\n return finished;\n\n // 2. If code point is an ASCII code point, return a byte whose\n // value is code point.\n if (isASCIICodePoint(code_point))\n return code_point;\n\n // 3. If code point is in the range U+F780 to U+F7FF, inclusive,\n // return a byte whose value is code point − 0xF780 + 0x80.\n if (inRange(code_point, 0xF780, 0xF7FF))\n return code_point - 0xF780 + 0x80;\n\n // 4. Return error with code point.\n return encoderError(code_point);\n };\n }\n\n /** @param {{fatal: boolean}} options */\n encoders['x-user-defined'] = function(options) {\n return new XUserDefinedEncoder(options);\n };\n /** @param {{fatal: boolean}} options */\n decoders['x-user-defined'] = function(options) {\n return new XUserDefinedDecoder(options);\n };\n\n if (!global['TextEncoder'])\n global['TextEncoder'] = TextEncoder;\n if (!global['TextDecoder'])\n global['TextDecoder'] = TextDecoder;\n\n if (typeof module !== \"undefined\" && module.exports) {\n module.exports = {\n TextEncoder: global['TextEncoder'],\n TextDecoder: global['TextDecoder'],\n EncodingIndexes: global[\"encoding-indexes\"]\n };\n }\n\n// For strict environments where `this` inside the global scope\n// is `undefined`, take a pure object instead\n}(this || {}));","(function(global) {\n 'use strict';\n\n if (typeof module !== \"undefined\" && module.exports) {\n module.exports = global;\n }\n\n global[\"encoding-indexes\"] =\n{\n \"big5\":[null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,17392,19506,17923,17830,17784,160359,19831,17843,162993,19682,163013,15253,18230,18244,19527,19520,148159,144919,160594,159371,159954,19543,172881,18255,17882,19589,162924,19719,19108,18081,158499,29221,154196,137827,146950,147297,26189,22267,null,32149,22813,166841,15860,38708,162799,23515,138590,23204,13861,171696,23249,23479,23804,26478,34195,170309,29793,29853,14453,138579,145054,155681,16108,153822,15093,31484,40855,147809,166157,143850,133770,143966,17162,33924,40854,37935,18736,34323,22678,38730,37400,31184,31282,26208,27177,34973,29772,31685,26498,31276,21071,36934,13542,29636,155065,29894,40903,22451,18735,21580,16689,145038,22552,31346,162661,35727,18094,159368,16769,155033,31662,140476,40904,140481,140489,140492,40905,34052,144827,16564,40906,17633,175615,25281,28782,40907,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,12736,12737,12738,12739,12740,131340,12741,131281,131277,12742,12743,131275,139240,12744,131274,12745,12746,12747,12748,131342,12749,12750,256,193,461,192,274,201,282,200,332,211,465,210,null,7870,null,7872,202,257,225,462,224,593,275,233,283,232,299,237,464,236,333,243,466,242,363,250,468,249,470,472,474,476,252,null,7871,null,7873,234,609,9178,9179,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,172969,135493,null,25866,null,null,20029,28381,40270,37343,null,null,161589,25745,20250,20264,20392,20822,20852,20892,20964,21153,21160,21307,21326,21457,21464,22242,22768,22788,22791,22834,22836,23398,23454,23455,23706,24198,24635,25993,26622,26628,26725,27982,28860,30005,32420,32428,32442,32455,32463,32479,32518,32567,33402,33487,33647,35270,35774,35810,36710,36711,36718,29713,31996,32205,26950,31433,21031,null,null,null,null,37260,30904,37214,32956,null,36107,33014,133607,null,null,32927,40647,19661,40393,40460,19518,171510,159758,40458,172339,13761,null,28314,33342,29977,null,18705,39532,39567,40857,31111,164972,138698,132560,142054,20004,20097,20096,20103,20159,20203,20279,13388,20413,15944,20483,20616,13437,13459,13477,20870,22789,20955,20988,20997,20105,21113,21136,21287,13767,21417,13649,21424,13651,21442,21539,13677,13682,13953,21651,21667,21684,21689,21712,21743,21784,21795,21800,13720,21823,13733,13759,21975,13765,163204,21797,null,134210,134421,151851,21904,142534,14828,131905,36422,150968,169189,16467,164030,30586,142392,14900,18389,164189,158194,151018,25821,134524,135092,134357,135412,25741,36478,134806,134155,135012,142505,164438,148691,null,134470,170573,164073,18420,151207,142530,39602,14951,169460,16365,13574,152263,169940,161992,142660,40302,38933,null,17369,155813,25780,21731,142668,142282,135287,14843,135279,157402,157462,162208,25834,151634,134211,36456,139681,166732,132913,null,18443,131497,16378,22643,142733,null,148936,132348,155799,134988,134550,21881,16571,17338,null,19124,141926,135325,33194,39157,134556,25465,14846,141173,36288,22177,25724,15939,null,173569,134665,142031,142537,null,135368,145858,14738,14854,164507,13688,155209,139463,22098,134961,142514,169760,13500,27709,151099,null,null,161140,142987,139784,173659,167117,134778,134196,157724,32659,135375,141315,141625,13819,152035,134796,135053,134826,16275,134960,134471,135503,134732,null,134827,134057,134472,135360,135485,16377,140950,25650,135085,144372,161337,142286,134526,134527,142417,142421,14872,134808,135367,134958,173618,158544,167122,167321,167114,38314,21708,33476,21945,null,171715,39974,39606,161630,142830,28992,33133,33004,23580,157042,33076,14231,21343,164029,37302,134906,134671,134775,134907,13789,151019,13833,134358,22191,141237,135369,134672,134776,135288,135496,164359,136277,134777,151120,142756,23124,135197,135198,135413,135414,22428,134673,161428,164557,135093,134779,151934,14083,135094,135552,152280,172733,149978,137274,147831,164476,22681,21096,13850,153405,31666,23400,18432,19244,40743,18919,39967,39821,154484,143677,22011,13810,22153,20008,22786,138177,194680,38737,131206,20059,20155,13630,23587,24401,24516,14586,25164,25909,27514,27701,27706,28780,29227,20012,29357,149737,32594,31035,31993,32595,156266,13505,null,156491,32770,32896,157202,158033,21341,34916,35265,161970,35744,36125,38021,38264,38271,38376,167439,38886,39029,39118,39134,39267,170000,40060,40479,40644,27503,63751,20023,131207,38429,25143,38050,null,20539,28158,171123,40870,15817,34959,147790,28791,23797,19232,152013,13657,154928,24866,166450,36775,37366,29073,26393,29626,144001,172295,15499,137600,19216,30948,29698,20910,165647,16393,27235,172730,16931,34319,133743,31274,170311,166634,38741,28749,21284,139390,37876,30425,166371,40871,30685,20131,20464,20668,20015,20247,40872,21556,32139,22674,22736,138678,24210,24217,24514,141074,25995,144377,26905,27203,146531,27903,null,29184,148741,29580,16091,150035,23317,29881,35715,154788,153237,31379,31724,31939,32364,33528,34199,40873,34960,40874,36537,40875,36815,34143,39392,37409,40876,167353,136255,16497,17058,23066,null,null,null,39016,26475,17014,22333,null,34262,149883,33471,160013,19585,159092,23931,158485,159678,40877,40878,23446,40879,26343,32347,28247,31178,15752,17603,143958,141206,17306,17718,null,23765,146202,35577,23672,15634,144721,23928,40882,29015,17752,147692,138787,19575,14712,13386,131492,158785,35532,20404,131641,22975,33132,38998,170234,24379,134047,null,139713,166253,16642,18107,168057,16135,40883,172469,16632,14294,18167,158790,16764,165554,160767,17773,14548,152730,17761,17691,19849,19579,19830,17898,16328,150287,13921,17630,17597,16877,23870,23880,23894,15868,14351,23972,23993,14368,14392,24130,24253,24357,24451,14600,14612,14655,14669,24791,24893,23781,14729,25015,25017,25039,14776,25132,25232,25317,25368,14840,22193,14851,25570,25595,25607,25690,14923,25792,23829,22049,40863,14999,25990,15037,26111,26195,15090,26258,15138,26390,15170,26532,26624,15192,26698,26756,15218,15217,15227,26889,26947,29276,26980,27039,27013,15292,27094,15325,27237,27252,27249,27266,15340,27289,15346,27307,27317,27348,27382,27521,27585,27626,27765,27818,15563,27906,27910,27942,28033,15599,28068,28081,28181,28184,28201,28294,166336,28347,28386,28378,40831,28392,28393,28452,28468,15686,147265,28545,28606,15722,15733,29111,23705,15754,28716,15761,28752,28756,28783,28799,28809,131877,17345,13809,134872,147159,22462,159443,28990,153568,13902,27042,166889,23412,31305,153825,169177,31333,31357,154028,31419,31408,31426,31427,29137,156813,16842,31450,31453,31466,16879,21682,154625,31499,31573,31529,152334,154878,31650,31599,33692,154548,158847,31696,33825,31634,31672,154912,15789,154725,33938,31738,31750,31797,154817,31812,31875,149634,31910,26237,148856,31945,31943,31974,31860,31987,31989,31950,32359,17693,159300,32093,159446,29837,32137,32171,28981,32179,32210,147543,155689,32228,15635,32245,137209,32229,164717,32285,155937,155994,32366,32402,17195,37996,32295,32576,32577,32583,31030,156368,39393,32663,156497,32675,136801,131176,17756,145254,17667,164666,32762,156809,32773,32776,32797,32808,32815,172167,158915,32827,32828,32865,141076,18825,157222,146915,157416,26405,32935,166472,33031,33050,22704,141046,27775,156824,151480,25831,136330,33304,137310,27219,150117,150165,17530,33321,133901,158290,146814,20473,136445,34018,33634,158474,149927,144688,137075,146936,33450,26907,194964,16859,34123,33488,33562,134678,137140,14017,143741,144730,33403,33506,33560,147083,159139,158469,158615,144846,15807,33565,21996,33669,17675,159141,33708,33729,33747,13438,159444,27223,34138,13462,159298,143087,33880,154596,33905,15827,17636,27303,33866,146613,31064,33960,158614,159351,159299,34014,33807,33681,17568,33939,34020,154769,16960,154816,17731,34100,23282,159385,17703,34163,17686,26559,34326,165413,165435,34241,159880,34306,136578,159949,194994,17770,34344,13896,137378,21495,160666,34430,34673,172280,34798,142375,34737,34778,34831,22113,34412,26710,17935,34885,34886,161248,146873,161252,34910,34972,18011,34996,34997,25537,35013,30583,161551,35207,35210,35238,35241,35239,35260,166437,35303,162084,162493,35484,30611,37374,35472,162393,31465,162618,147343,18195,162616,29052,35596,35615,152624,152933,35647,35660,35661,35497,150138,35728,35739,35503,136927,17941,34895,35995,163156,163215,195028,14117,163155,36054,163224,163261,36114,36099,137488,36059,28764,36113,150729,16080,36215,36265,163842,135188,149898,15228,164284,160012,31463,36525,36534,36547,37588,36633,36653,164709,164882,36773,37635,172703,133712,36787,18730,166366,165181,146875,24312,143970,36857,172052,165564,165121,140069,14720,159447,36919,165180,162494,36961,165228,165387,37032,165651,37060,165606,37038,37117,37223,15088,37289,37316,31916,166195,138889,37390,27807,37441,37474,153017,37561,166598,146587,166668,153051,134449,37676,37739,166625,166891,28815,23235,166626,166629,18789,37444,166892,166969,166911,37747,37979,36540,38277,38310,37926,38304,28662,17081,140922,165592,135804,146990,18911,27676,38523,38550,16748,38563,159445,25050,38582,30965,166624,38589,21452,18849,158904,131700,156688,168111,168165,150225,137493,144138,38705,34370,38710,18959,17725,17797,150249,28789,23361,38683,38748,168405,38743,23370,168427,38751,37925,20688,143543,143548,38793,38815,38833,38846,38848,38866,38880,152684,38894,29724,169011,38911,38901,168989,162170,19153,38964,38963,38987,39014,15118,160117,15697,132656,147804,153350,39114,39095,39112,39111,19199,159015,136915,21936,39137,39142,39148,37752,39225,150057,19314,170071,170245,39413,39436,39483,39440,39512,153381,14020,168113,170965,39648,39650,170757,39668,19470,39700,39725,165376,20532,39732,158120,14531,143485,39760,39744,171326,23109,137315,39822,148043,39938,39935,39948,171624,40404,171959,172434,172459,172257,172323,172511,40318,40323,172340,40462,26760,40388,139611,172435,172576,137531,172595,40249,172217,172724,40592,40597,40606,40610,19764,40618,40623,148324,40641,15200,14821,15645,20274,14270,166955,40706,40712,19350,37924,159138,40727,40726,40761,22175,22154,40773,39352,168075,38898,33919,40802,40809,31452,40846,29206,19390,149877,149947,29047,150008,148296,150097,29598,166874,137466,31135,166270,167478,37737,37875,166468,37612,37761,37835,166252,148665,29207,16107,30578,31299,28880,148595,148472,29054,137199,28835,137406,144793,16071,137349,152623,137208,14114,136955,137273,14049,137076,137425,155467,14115,136896,22363,150053,136190,135848,136134,136374,34051,145062,34051,33877,149908,160101,146993,152924,147195,159826,17652,145134,170397,159526,26617,14131,15381,15847,22636,137506,26640,16471,145215,147681,147595,147727,158753,21707,22174,157361,22162,135135,134056,134669,37830,166675,37788,20216,20779,14361,148534,20156,132197,131967,20299,20362,153169,23144,131499,132043,14745,131850,132116,13365,20265,131776,167603,131701,35546,131596,20120,20685,20749,20386,20227,150030,147082,20290,20526,20588,20609,20428,20453,20568,20732,20825,20827,20829,20830,28278,144789,147001,147135,28018,137348,147081,20904,20931,132576,17629,132259,132242,132241,36218,166556,132878,21081,21156,133235,21217,37742,18042,29068,148364,134176,149932,135396,27089,134685,29817,16094,29849,29716,29782,29592,19342,150204,147597,21456,13700,29199,147657,21940,131909,21709,134086,22301,37469,38644,37734,22493,22413,22399,13886,22731,23193,166470,136954,137071,136976,23084,22968,37519,23166,23247,23058,153926,137715,137313,148117,14069,27909,29763,23073,155267,23169,166871,132115,37856,29836,135939,28933,18802,37896,166395,37821,14240,23582,23710,24158,24136,137622,137596,146158,24269,23375,137475,137476,14081,137376,14045,136958,14035,33066,166471,138682,144498,166312,24332,24334,137511,137131,23147,137019,23364,34324,161277,34912,24702,141408,140843,24539,16056,140719,140734,168072,159603,25024,131134,131142,140827,24985,24984,24693,142491,142599,149204,168269,25713,149093,142186,14889,142114,144464,170218,142968,25399,173147,25782,25393,25553,149987,142695,25252,142497,25659,25963,26994,15348,143502,144045,149897,144043,21773,144096,137433,169023,26318,144009,143795,15072,16784,152964,166690,152975,136956,152923,152613,30958,143619,137258,143924,13412,143887,143746,148169,26254,159012,26219,19347,26160,161904,138731,26211,144082,144097,26142,153714,14545,145466,145340,15257,145314,144382,29904,15254,26511,149034,26806,26654,15300,27326,14435,145365,148615,27187,27218,27337,27397,137490,25873,26776,27212,15319,27258,27479,147392,146586,37792,37618,166890,166603,37513,163870,166364,37991,28069,28427,149996,28007,147327,15759,28164,147516,23101,28170,22599,27940,30786,28987,148250,148086,28913,29264,29319,29332,149391,149285,20857,150180,132587,29818,147192,144991,150090,149783,155617,16134,16049,150239,166947,147253,24743,16115,29900,29756,37767,29751,17567,159210,17745,30083,16227,150745,150790,16216,30037,30323,173510,15129,29800,166604,149931,149902,15099,15821,150094,16127,149957,149747,37370,22322,37698,166627,137316,20703,152097,152039,30584,143922,30478,30479,30587,149143,145281,14942,149744,29752,29851,16063,150202,150215,16584,150166,156078,37639,152961,30750,30861,30856,30930,29648,31065,161601,153315,16654,31131,33942,31141,27181,147194,31290,31220,16750,136934,16690,37429,31217,134476,149900,131737,146874,137070,13719,21867,13680,13994,131540,134157,31458,23129,141045,154287,154268,23053,131675,30960,23082,154566,31486,16889,31837,31853,16913,154547,155324,155302,31949,150009,137136,31886,31868,31918,27314,32220,32263,32211,32590,156257,155996,162632,32151,155266,17002,158581,133398,26582,131150,144847,22468,156690,156664,149858,32733,31527,133164,154345,154947,31500,155150,39398,34373,39523,27164,144447,14818,150007,157101,39455,157088,33920,160039,158929,17642,33079,17410,32966,33033,33090,157620,39107,158274,33378,33381,158289,33875,159143,34320,160283,23174,16767,137280,23339,137377,23268,137432,34464,195004,146831,34861,160802,23042,34926,20293,34951,35007,35046,35173,35149,153219,35156,161669,161668,166901,166873,166812,166393,16045,33955,18165,18127,14322,35389,35356,169032,24397,37419,148100,26068,28969,28868,137285,40301,35999,36073,163292,22938,30659,23024,17262,14036,36394,36519,150537,36656,36682,17140,27736,28603,140065,18587,28537,28299,137178,39913,14005,149807,37051,37015,21873,18694,37307,37892,166475,16482,166652,37927,166941,166971,34021,35371,38297,38311,38295,38294,167220,29765,16066,149759,150082,148458,16103,143909,38543,167655,167526,167525,16076,149997,150136,147438,29714,29803,16124,38721,168112,26695,18973,168083,153567,38749,37736,166281,166950,166703,156606,37562,23313,35689,18748,29689,147995,38811,38769,39224,134950,24001,166853,150194,38943,169178,37622,169431,37349,17600,166736,150119,166756,39132,166469,16128,37418,18725,33812,39227,39245,162566,15869,39323,19311,39338,39516,166757,153800,27279,39457,23294,39471,170225,19344,170312,39356,19389,19351,37757,22642,135938,22562,149944,136424,30788,141087,146872,26821,15741,37976,14631,24912,141185,141675,24839,40015,40019,40059,39989,39952,39807,39887,171565,39839,172533,172286,40225,19630,147716,40472,19632,40204,172468,172269,172275,170287,40357,33981,159250,159711,158594,34300,17715,159140,159364,159216,33824,34286,159232,145367,155748,31202,144796,144960,18733,149982,15714,37851,37566,37704,131775,30905,37495,37965,20452,13376,36964,152925,30781,30804,30902,30795,137047,143817,149825,13978,20338,28634,28633,28702,28702,21524,147893,22459,22771,22410,40214,22487,28980,13487,147884,29163,158784,151447,23336,137141,166473,24844,23246,23051,17084,148616,14124,19323,166396,37819,37816,137430,134941,33906,158912,136211,148218,142374,148417,22932,146871,157505,32168,155995,155812,149945,149899,166394,37605,29666,16105,29876,166755,137375,16097,150195,27352,29683,29691,16086,150078,150164,137177,150118,132007,136228,149989,29768,149782,28837,149878,37508,29670,37727,132350,37681,166606,166422,37766,166887,153045,18741,166530,29035,149827,134399,22180,132634,134123,134328,21762,31172,137210,32254,136898,150096,137298,17710,37889,14090,166592,149933,22960,137407,137347,160900,23201,14050,146779,14000,37471,23161,166529,137314,37748,15565,133812,19094,14730,20724,15721,15692,136092,29045,17147,164376,28175,168164,17643,27991,163407,28775,27823,15574,147437,146989,28162,28428,15727,132085,30033,14012,13512,18048,16090,18545,22980,37486,18750,36673,166940,158656,22546,22472,14038,136274,28926,148322,150129,143331,135856,140221,26809,26983,136088,144613,162804,145119,166531,145366,144378,150687,27162,145069,158903,33854,17631,17614,159014,159057,158850,159710,28439,160009,33597,137018,33773,158848,159827,137179,22921,23170,137139,23137,23153,137477,147964,14125,23023,137020,14023,29070,37776,26266,148133,23150,23083,148115,27179,147193,161590,148571,148170,28957,148057,166369,20400,159016,23746,148686,163405,148413,27148,148054,135940,28838,28979,148457,15781,27871,194597,150095,32357,23019,23855,15859,24412,150109,137183,32164,33830,21637,146170,144128,131604,22398,133333,132633,16357,139166,172726,28675,168283,23920,29583,31955,166489,168992,20424,32743,29389,29456,162548,29496,29497,153334,29505,29512,16041,162584,36972,29173,149746,29665,33270,16074,30476,16081,27810,22269,29721,29726,29727,16098,16112,16116,16122,29907,16142,16211,30018,30061,30066,30093,16252,30152,30172,16320,30285,16343,30324,16348,30330,151388,29064,22051,35200,22633,16413,30531,16441,26465,16453,13787,30616,16490,16495,23646,30654,30667,22770,30744,28857,30748,16552,30777,30791,30801,30822,33864,152885,31027,26627,31026,16643,16649,31121,31129,36795,31238,36796,16743,31377,16818,31420,33401,16836,31439,31451,16847,20001,31586,31596,31611,31762,31771,16992,17018,31867,31900,17036,31928,17044,31981,36755,28864,134351,32207,32212,32208,32253,32686,32692,29343,17303,32800,32805,31545,32814,32817,32852,15820,22452,28832,32951,33001,17389,33036,29482,33038,33042,30048,33044,17409,15161,33110,33113,33114,17427,22586,33148,33156,17445,33171,17453,33189,22511,33217,33252,33364,17551,33446,33398,33482,33496,33535,17584,33623,38505,27018,33797,28917,33892,24803,33928,17668,33982,34017,34040,34064,34104,34130,17723,34159,34160,34272,17783,34418,34450,34482,34543,38469,34699,17926,17943,34990,35071,35108,35143,35217,162151,35369,35384,35476,35508,35921,36052,36082,36124,18328,22623,36291,18413,20206,36410,21976,22356,36465,22005,36528,18487,36558,36578,36580,36589,36594,36791,36801,36810,36812,36915,39364,18605,39136,37395,18718,37416,37464,37483,37553,37550,37567,37603,37611,37619,37620,37629,37699,37764,37805,18757,18769,40639,37911,21249,37917,37933,37950,18794,37972,38009,38189,38306,18855,38388,38451,18917,26528,18980,38720,18997,38834,38850,22100,19172,24808,39097,19225,39153,22596,39182,39193,20916,39196,39223,39234,39261,39266,19312,39365,19357,39484,39695,31363,39785,39809,39901,39921,39924,19565,39968,14191,138178,40265,39994,40702,22096,40339,40381,40384,40444,38134,36790,40571,40620,40625,40637,40646,38108,40674,40689,40696,31432,40772,131220,131767,132000,26906,38083,22956,132311,22592,38081,14265,132565,132629,132726,136890,22359,29043,133826,133837,134079,21610,194619,134091,21662,134139,134203,134227,134245,134268,24807,134285,22138,134325,134365,134381,134511,134578,134600,26965,39983,34725,134660,134670,134871,135056,134957,134771,23584,135100,24075,135260,135247,135286,26398,135291,135304,135318,13895,135359,135379,135471,135483,21348,33965,135907,136053,135990,35713,136567,136729,137155,137159,20088,28859,137261,137578,137773,137797,138282,138352,138412,138952,25283,138965,139029,29080,26709,139333,27113,14024,139900,140247,140282,141098,141425,141647,33533,141671,141715,142037,35237,142056,36768,142094,38840,142143,38983,39613,142412,null,142472,142519,154600,142600,142610,142775,142741,142914,143220,143308,143411,143462,144159,144350,24497,26184,26303,162425,144743,144883,29185,149946,30679,144922,145174,32391,131910,22709,26382,26904,146087,161367,155618,146961,147129,161278,139418,18640,19128,147737,166554,148206,148237,147515,148276,148374,150085,132554,20946,132625,22943,138920,15294,146687,148484,148694,22408,149108,14747,149295,165352,170441,14178,139715,35678,166734,39382,149522,149755,150037,29193,150208,134264,22885,151205,151430,132985,36570,151596,21135,22335,29041,152217,152601,147274,150183,21948,152646,152686,158546,37332,13427,152895,161330,152926,18200,152930,152934,153543,149823,153693,20582,13563,144332,24798,153859,18300,166216,154286,154505,154630,138640,22433,29009,28598,155906,162834,36950,156082,151450,35682,156674,156746,23899,158711,36662,156804,137500,35562,150006,156808,147439,156946,19392,157119,157365,141083,37989,153569,24981,23079,194765,20411,22201,148769,157436,20074,149812,38486,28047,158909,13848,35191,157593,157806,156689,157790,29151,157895,31554,168128,133649,157990,37124,158009,31301,40432,158202,39462,158253,13919,156777,131105,31107,158260,158555,23852,144665,33743,158621,18128,158884,30011,34917,159150,22710,14108,140685,159819,160205,15444,160384,160389,37505,139642,160395,37680,160486,149968,27705,38047,160848,134904,34855,35061,141606,164979,137137,28344,150058,137248,14756,14009,23568,31203,17727,26294,171181,170148,35139,161740,161880,22230,16607,136714,14753,145199,164072,136133,29101,33638,162269,168360,23143,19639,159919,166315,162301,162314,162571,163174,147834,31555,31102,163849,28597,172767,27139,164632,21410,159239,37823,26678,38749,164207,163875,158133,136173,143919,163912,23941,166960,163971,22293,38947,166217,23979,149896,26046,27093,21458,150181,147329,15377,26422,163984,164084,164142,139169,164175,164233,164271,164378,164614,164655,164746,13770,164968,165546,18682,25574,166230,30728,37461,166328,17394,166375,17375,166376,166726,166868,23032,166921,36619,167877,168172,31569,168208,168252,15863,168286,150218,36816,29327,22155,169191,169449,169392,169400,169778,170193,170313,170346,170435,170536,170766,171354,171419,32415,171768,171811,19620,38215,172691,29090,172799,19857,36882,173515,19868,134300,36798,21953,36794,140464,36793,150163,17673,32383,28502,27313,20202,13540,166700,161949,14138,36480,137205,163876,166764,166809,162366,157359,15851,161365,146615,153141,153942,20122,155265,156248,22207,134765,36366,23405,147080,150686,25566,25296,137206,137339,25904,22061,154698,21530,152337,15814,171416,19581,22050,22046,32585,155352,22901,146752,34672,19996,135146,134473,145082,33047,40286,36120,30267,40005,30286,30649,37701,21554,33096,33527,22053,33074,33816,32957,21994,31074,22083,21526,134813,13774,22021,22001,26353,164578,13869,30004,22000,21946,21655,21874,134209,134294,24272,151880,134774,142434,134818,40619,32090,21982,135285,25245,38765,21652,36045,29174,37238,25596,25529,25598,21865,142147,40050,143027,20890,13535,134567,20903,21581,21790,21779,30310,36397,157834,30129,32950,34820,34694,35015,33206,33820,135361,17644,29444,149254,23440,33547,157843,22139,141044,163119,147875,163187,159440,160438,37232,135641,37384,146684,173737,134828,134905,29286,138402,18254,151490,163833,135147,16634,40029,25887,142752,18675,149472,171388,135148,134666,24674,161187,135149,null,155720,135559,29091,32398,40272,19994,19972,13687,23309,27826,21351,13996,14812,21373,13989,149016,22682,150382,33325,21579,22442,154261,133497,null,14930,140389,29556,171692,19721,39917,146686,171824,19547,151465,169374,171998,33884,146870,160434,157619,145184,25390,32037,147191,146988,14890,36872,21196,15988,13946,17897,132238,30272,23280,134838,30842,163630,22695,16575,22140,39819,23924,30292,173108,40581,19681,30201,14331,24857,143578,148466,null,22109,135849,22439,149859,171526,21044,159918,13741,27722,40316,31830,39737,22494,137068,23635,25811,169168,156469,160100,34477,134440,159010,150242,134513,null,20990,139023,23950,38659,138705,40577,36940,31519,39682,23761,31651,25192,25397,39679,31695,39722,31870,39726,31810,31878,39957,31740,39689,40727,39963,149822,40794,21875,23491,20477,40600,20466,21088,15878,21201,22375,20566,22967,24082,38856,40363,36700,21609,38836,39232,38842,21292,24880,26924,21466,39946,40194,19515,38465,27008,20646,30022,137069,39386,21107,null,37209,38529,37212,null,37201,167575,25471,159011,27338,22033,37262,30074,25221,132092,29519,31856,154657,146685,null,149785,30422,39837,20010,134356,33726,34882,null,23626,27072,20717,22394,21023,24053,20174,27697,131570,20281,21660,21722,21146,36226,13822,24332,13811,null,27474,37244,40869,39831,38958,39092,39610,40616,40580,29050,31508,null,27642,34840,32632,null,22048,173642,36471,40787,null,36308,36431,40476,36353,25218,164733,36392,36469,31443,150135,31294,30936,27882,35431,30215,166490,40742,27854,34774,30147,172722,30803,194624,36108,29410,29553,35629,29442,29937,36075,150203,34351,24506,34976,17591,null,137275,159237,null,35454,140571,null,24829,30311,39639,40260,37742,39823,34805,null,34831,36087,29484,38689,39856,13782,29362,19463,31825,39242,155993,24921,19460,40598,24957,null,22367,24943,25254,25145,25294,14940,25058,21418,144373,25444,26626,13778,23895,166850,36826,167481,null,20697,138566,30982,21298,38456,134971,16485,null,30718,null,31938,155418,31962,31277,32870,32867,32077,29957,29938,35220,33306,26380,32866,160902,32859,29936,33027,30500,35209,157644,30035,159441,34729,34766,33224,34700,35401,36013,35651,30507,29944,34010,13877,27058,36262,null,35241,29800,28089,34753,147473,29927,15835,29046,24740,24988,15569,29026,24695,null,32625,166701,29264,24809,19326,21024,15384,146631,155351,161366,152881,137540,135934,170243,159196,159917,23745,156077,166415,145015,131310,157766,151310,17762,23327,156492,40784,40614,156267,12288,65292,12289,12290,65294,8231,65307,65306,65311,65281,65072,8230,8229,65104,65105,65106,183,65108,65109,65110,65111,65372,8211,65073,8212,65075,9588,65076,65103,65288,65289,65077,65078,65371,65373,65079,65080,12308,12309,65081,65082,12304,12305,65083,65084,12298,12299,65085,65086,12296,12297,65087,65088,12300,12301,65089,65090,12302,12303,65091,65092,65113,65114,65115,65116,65117,65118,8216,8217,8220,8221,12317,12318,8245,8242,65283,65286,65290,8251,167,12291,9675,9679,9651,9650,9678,9734,9733,9671,9670,9633,9632,9661,9660,12963,8453,175,65507,65343,717,65097,65098,65101,65102,65099,65100,65119,65120,65121,65291,65293,215,247,177,8730,65308,65310,65309,8806,8807,8800,8734,8786,8801,65122,65123,65124,65125,65126,65374,8745,8746,8869,8736,8735,8895,13266,13265,8747,8750,8757,8756,9792,9794,8853,8857,8593,8595,8592,8594,8598,8599,8601,8600,8741,8739,65295,65340,8725,65128,65284,65509,12306,65504,65505,65285,65312,8451,8457,65129,65130,65131,13269,13212,13213,13214,13262,13217,13198,13199,13252,176,20825,20827,20830,20829,20833,20835,21991,29929,31950,9601,9602,9603,9604,9605,9606,9607,9608,9615,9614,9613,9612,9611,9610,9609,9532,9524,9516,9508,9500,9620,9472,9474,9621,9484,9488,9492,9496,9581,9582,9584,9583,9552,9566,9578,9569,9698,9699,9701,9700,9585,9586,9587,65296,65297,65298,65299,65300,65301,65302,65303,65304,65305,8544,8545,8546,8547,8548,8549,8550,8551,8552,8553,12321,12322,12323,12324,12325,12326,12327,12328,12329,21313,21316,21317,65313,65314,65315,65316,65317,65318,65319,65320,65321,65322,65323,65324,65325,65326,65327,65328,65329,65330,65331,65332,65333,65334,65335,65336,65337,65338,65345,65346,65347,65348,65349,65350,65351,65352,65353,65354,65355,65356,65357,65358,65359,65360,65361,65362,65363,65364,65365,65366,65367,65368,65369,65370,913,914,915,916,917,918,919,920,921,922,923,924,925,926,927,928,929,931,932,933,934,935,936,937,945,946,947,948,949,950,951,952,953,954,955,956,957,958,959,960,961,963,964,965,966,967,968,969,12549,12550,12551,12552,12553,12554,12555,12556,12557,12558,12559,12560,12561,12562,12563,12564,12565,12566,12567,12568,12569,12570,12571,12572,12573,12574,12575,12576,12577,12578,12579,12580,12581,12582,12583,12584,12585,729,713,714,711,715,9216,9217,9218,9219,9220,9221,9222,9223,9224,9225,9226,9227,9228,9229,9230,9231,9232,9233,9234,9235,9236,9237,9238,9239,9240,9241,9242,9243,9244,9245,9246,9247,9249,8364,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,19968,20057,19969,19971,20035,20061,20102,20108,20154,20799,20837,20843,20960,20992,20993,21147,21269,21313,21340,21448,19977,19979,19976,19978,20011,20024,20961,20037,20040,20063,20062,20110,20129,20800,20995,21242,21315,21449,21475,22303,22763,22805,22823,22899,23376,23377,23379,23544,23567,23586,23608,23665,24029,24037,24049,24050,24051,24062,24178,24318,24331,24339,25165,19985,19984,19981,20013,20016,20025,20043,23609,20104,20113,20117,20114,20116,20130,20161,20160,20163,20166,20167,20173,20170,20171,20164,20803,20801,20839,20845,20846,20844,20887,20982,20998,20999,21000,21243,21246,21247,21270,21305,21320,21319,21317,21342,21380,21451,21450,21453,22764,22825,22827,22826,22829,23380,23569,23588,23610,23663,24052,24187,24319,24340,24341,24515,25096,25142,25163,25166,25903,25991,26007,26020,26041,26085,26352,26376,26408,27424,27490,27513,27595,27604,27611,27663,27700,28779,29226,29238,29243,29255,29273,29275,29356,29579,19993,19990,19989,19988,19992,20027,20045,20047,20046,20197,20184,20180,20181,20182,20183,20195,20196,20185,20190,20805,20804,20873,20874,20908,20985,20986,20984,21002,21152,21151,21253,21254,21271,21277,20191,21322,21321,21345,21344,21359,21358,21435,21487,21476,21491,21484,21486,21481,21480,21500,21496,21493,21483,21478,21482,21490,21489,21488,21477,21485,21499,22235,22234,22806,22830,22833,22900,22902,23381,23427,23612,24040,24039,24038,24066,24067,24179,24188,24321,24344,24343,24517,25098,25171,25172,25170,25169,26021,26086,26414,26412,26410,26411,26413,27491,27597,27665,27664,27704,27713,27712,27710,29359,29572,29577,29916,29926,29976,29983,29992,29993,30000,30001,30002,30003,30091,30333,30382,30399,30446,30683,30690,30707,31034,31166,31348,31435,19998,19999,20050,20051,20073,20121,20132,20134,20133,20223,20233,20249,20234,20245,20237,20240,20241,20239,20210,20214,20219,20208,20211,20221,20225,20235,20809,20807,20806,20808,20840,20849,20877,20912,21015,21009,21010,21006,21014,21155,21256,21281,21280,21360,21361,21513,21519,21516,21514,21520,21505,21515,21508,21521,21517,21512,21507,21518,21510,21522,22240,22238,22237,22323,22320,22312,22317,22316,22319,22313,22809,22810,22839,22840,22916,22904,22915,22909,22905,22914,22913,23383,23384,23431,23432,23429,23433,23546,23574,23673,24030,24070,24182,24180,24335,24347,24537,24534,25102,25100,25101,25104,25187,25179,25176,25910,26089,26088,26092,26093,26354,26355,26377,26429,26420,26417,26421,27425,27492,27515,27670,27741,27735,27737,27743,27744,27728,27733,27745,27739,27725,27726,28784,29279,29277,30334,31481,31859,31992,32566,32650,32701,32769,32771,32780,32786,32819,32895,32905,32907,32908,33251,33258,33267,33276,33292,33307,33311,33390,33394,33406,34411,34880,34892,34915,35199,38433,20018,20136,20301,20303,20295,20311,20318,20276,20315,20309,20272,20304,20305,20285,20282,20280,20291,20308,20284,20294,20323,20316,20320,20271,20302,20278,20313,20317,20296,20314,20812,20811,20813,20853,20918,20919,21029,21028,21033,21034,21032,21163,21161,21162,21164,21283,21363,21365,21533,21549,21534,21566,21542,21582,21543,21574,21571,21555,21576,21570,21531,21545,21578,21561,21563,21560,21550,21557,21558,21536,21564,21568,21553,21547,21535,21548,22250,22256,22244,22251,22346,22353,22336,22349,22343,22350,22334,22352,22351,22331,22767,22846,22941,22930,22952,22942,22947,22937,22934,22925,22948,22931,22922,22949,23389,23388,23386,23387,23436,23435,23439,23596,23616,23617,23615,23614,23696,23697,23700,23692,24043,24076,24207,24199,24202,24311,24324,24351,24420,24418,24439,24441,24536,24524,24535,24525,24561,24555,24568,24554,25106,25105,25220,25239,25238,25216,25206,25225,25197,25226,25212,25214,25209,25203,25234,25199,25240,25198,25237,25235,25233,25222,25913,25915,25912,26097,26356,26463,26446,26447,26448,26449,26460,26454,26462,26441,26438,26464,26451,26455,27493,27599,27714,27742,27801,27777,27784,27785,27781,27803,27754,27770,27792,27760,27788,27752,27798,27794,27773,27779,27762,27774,27764,27782,27766,27789,27796,27800,27778,28790,28796,28797,28792,29282,29281,29280,29380,29378,29590,29996,29995,30007,30008,30338,30447,30691,31169,31168,31167,31350,31995,32597,32918,32915,32925,32920,32923,32922,32946,33391,33426,33419,33421,35211,35282,35328,35895,35910,35925,35997,36196,36208,36275,36523,36554,36763,36784,36802,36806,36805,36804,24033,37009,37026,37034,37030,37027,37193,37318,37324,38450,38446,38449,38442,38444,20006,20054,20083,20107,20123,20126,20139,20140,20335,20381,20365,20339,20351,20332,20379,20363,20358,20355,20336,20341,20360,20329,20347,20374,20350,20367,20369,20346,20820,20818,20821,20841,20855,20854,20856,20925,20989,21051,21048,21047,21050,21040,21038,21046,21057,21182,21179,21330,21332,21331,21329,21350,21367,21368,21369,21462,21460,21463,21619,21621,21654,21624,21653,21632,21627,21623,21636,21650,21638,21628,21648,21617,21622,21644,21658,21602,21608,21643,21629,21646,22266,22403,22391,22378,22377,22369,22374,22372,22396,22812,22857,22855,22856,22852,22868,22974,22971,22996,22969,22958,22993,22982,22992,22989,22987,22995,22986,22959,22963,22994,22981,23391,23396,23395,23447,23450,23448,23452,23449,23451,23578,23624,23621,23622,23735,23713,23736,23721,23723,23729,23731,24088,24090,24086,24085,24091,24081,24184,24218,24215,24220,24213,24214,24310,24358,24359,24361,24448,24449,24447,24444,24541,24544,24573,24565,24575,24591,24596,24623,24629,24598,24618,24597,24609,24615,24617,24619,24603,25110,25109,25151,25150,25152,25215,25289,25292,25284,25279,25282,25273,25298,25307,25259,25299,25300,25291,25288,25256,25277,25276,25296,25305,25287,25293,25269,25306,25265,25304,25302,25303,25286,25260,25294,25918,26023,26044,26106,26132,26131,26124,26118,26114,26126,26112,26127,26133,26122,26119,26381,26379,26477,26507,26517,26481,26524,26483,26487,26503,26525,26519,26479,26480,26495,26505,26494,26512,26485,26522,26515,26492,26474,26482,27427,27494,27495,27519,27667,27675,27875,27880,27891,27825,27852,27877,27827,27837,27838,27836,27874,27819,27861,27859,27832,27844,27833,27841,27822,27863,27845,27889,27839,27835,27873,27867,27850,27820,27887,27868,27862,27872,28821,28814,28818,28810,28825,29228,29229,29240,29256,29287,29289,29376,29390,29401,29399,29392,29609,29608,29599,29611,29605,30013,30109,30105,30106,30340,30402,30450,30452,30693,30717,31038,31040,31041,31177,31176,31354,31353,31482,31998,32596,32652,32651,32773,32954,32933,32930,32945,32929,32939,32937,32948,32938,32943,33253,33278,33293,33459,33437,33433,33453,33469,33439,33465,33457,33452,33445,33455,33464,33443,33456,33470,33463,34382,34417,21021,34920,36555,36814,36820,36817,37045,37048,37041,37046,37319,37329,38263,38272,38428,38464,38463,38459,38468,38466,38585,38632,38738,38750,20127,20141,20142,20449,20405,20399,20415,20448,20433,20431,20445,20419,20406,20440,20447,20426,20439,20398,20432,20420,20418,20442,20430,20446,20407,20823,20882,20881,20896,21070,21059,21066,21069,21068,21067,21063,21191,21193,21187,21185,21261,21335,21371,21402,21467,21676,21696,21672,21710,21705,21688,21670,21683,21703,21698,21693,21674,21697,21700,21704,21679,21675,21681,21691,21673,21671,21695,22271,22402,22411,22432,22435,22434,22478,22446,22419,22869,22865,22863,22862,22864,23004,23000,23039,23011,23016,23043,23013,23018,23002,23014,23041,23035,23401,23459,23462,23460,23458,23461,23553,23630,23631,23629,23627,23769,23762,24055,24093,24101,24095,24189,24224,24230,24314,24328,24365,24421,24456,24453,24458,24459,24455,24460,24457,24594,24605,24608,24613,24590,24616,24653,24688,24680,24674,24646,24643,24684,24683,24682,24676,25153,25308,25366,25353,25340,25325,25345,25326,25341,25351,25329,25335,25327,25324,25342,25332,25361,25346,25919,25925,26027,26045,26082,26149,26157,26144,26151,26159,26143,26152,26161,26148,26359,26623,26579,26609,26580,26576,26604,26550,26543,26613,26601,26607,26564,26577,26548,26586,26597,26552,26575,26590,26611,26544,26585,26594,26589,26578,27498,27523,27526,27573,27602,27607,27679,27849,27915,27954,27946,27969,27941,27916,27953,27934,27927,27963,27965,27966,27958,27931,27893,27961,27943,27960,27945,27950,27957,27918,27947,28843,28858,28851,28844,28847,28845,28856,28846,28836,29232,29298,29295,29300,29417,29408,29409,29623,29642,29627,29618,29645,29632,29619,29978,29997,30031,30028,30030,30027,30123,30116,30117,30114,30115,30328,30342,30343,30344,30408,30406,30403,30405,30465,30457,30456,30473,30475,30462,30460,30471,30684,30722,30740,30732,30733,31046,31049,31048,31047,31161,31162,31185,31186,31179,31359,31361,31487,31485,31869,32002,32005,32000,32009,32007,32004,32006,32568,32654,32703,32772,32784,32781,32785,32822,32982,32997,32986,32963,32964,32972,32993,32987,32974,32990,32996,32989,33268,33314,33511,33539,33541,33507,33499,33510,33540,33509,33538,33545,33490,33495,33521,33537,33500,33492,33489,33502,33491,33503,33519,33542,34384,34425,34427,34426,34893,34923,35201,35284,35336,35330,35331,35998,36000,36212,36211,36276,36557,36556,36848,36838,36834,36842,36837,36845,36843,36836,36840,37066,37070,37057,37059,37195,37194,37325,38274,38480,38475,38476,38477,38754,38761,38859,38893,38899,38913,39080,39131,39135,39318,39321,20056,20147,20492,20493,20515,20463,20518,20517,20472,20521,20502,20486,20540,20511,20506,20498,20497,20474,20480,20500,20520,20465,20513,20491,20505,20504,20467,20462,20525,20522,20478,20523,20489,20860,20900,20901,20898,20941,20940,20934,20939,21078,21084,21076,21083,21085,21290,21375,21407,21405,21471,21736,21776,21761,21815,21756,21733,21746,21766,21754,21780,21737,21741,21729,21769,21742,21738,21734,21799,21767,21757,21775,22275,22276,22466,22484,22475,22467,22537,22799,22871,22872,22874,23057,23064,23068,23071,23067,23059,23020,23072,23075,23081,23077,23052,23049,23403,23640,23472,23475,23478,23476,23470,23477,23481,23480,23556,23633,23637,23632,23789,23805,23803,23786,23784,23792,23798,23809,23796,24046,24109,24107,24235,24237,24231,24369,24466,24465,24464,24665,24675,24677,24656,24661,24685,24681,24687,24708,24735,24730,24717,24724,24716,24709,24726,25159,25331,25352,25343,25422,25406,25391,25429,25410,25414,25423,25417,25402,25424,25405,25386,25387,25384,25421,25420,25928,25929,26009,26049,26053,26178,26185,26191,26179,26194,26188,26181,26177,26360,26388,26389,26391,26657,26680,26696,26694,26707,26681,26690,26708,26665,26803,26647,26700,26705,26685,26612,26704,26688,26684,26691,26666,26693,26643,26648,26689,27530,27529,27575,27683,27687,27688,27686,27684,27888,28010,28053,28040,28039,28006,28024,28023,27993,28051,28012,28041,28014,27994,28020,28009,28044,28042,28025,28037,28005,28052,28874,28888,28900,28889,28872,28879,29241,29305,29436,29433,29437,29432,29431,29574,29677,29705,29678,29664,29674,29662,30036,30045,30044,30042,30041,30142,30149,30151,30130,30131,30141,30140,30137,30146,30136,30347,30384,30410,30413,30414,30505,30495,30496,30504,30697,30768,30759,30776,30749,30772,30775,30757,30765,30752,30751,30770,31061,31056,31072,31071,31062,31070,31069,31063,31066,31204,31203,31207,31199,31206,31209,31192,31364,31368,31449,31494,31505,31881,32033,32023,32011,32010,32032,32034,32020,32016,32021,32026,32028,32013,32025,32027,32570,32607,32660,32709,32705,32774,32792,32789,32793,32791,32829,32831,33009,33026,33008,33029,33005,33012,33030,33016,33011,33032,33021,33034,33020,33007,33261,33260,33280,33296,33322,33323,33320,33324,33467,33579,33618,33620,33610,33592,33616,33609,33589,33588,33615,33586,33593,33590,33559,33600,33585,33576,33603,34388,34442,34474,34451,34468,34473,34444,34467,34460,34928,34935,34945,34946,34941,34937,35352,35344,35342,35340,35349,35338,35351,35347,35350,35343,35345,35912,35962,35961,36001,36002,36215,36524,36562,36564,36559,36785,36865,36870,36855,36864,36858,36852,36867,36861,36869,36856,37013,37089,37085,37090,37202,37197,37196,37336,37341,37335,37340,37337,38275,38498,38499,38497,38491,38493,38500,38488,38494,38587,39138,39340,39592,39640,39717,39730,39740,20094,20602,20605,20572,20551,20547,20556,20570,20553,20581,20598,20558,20565,20597,20596,20599,20559,20495,20591,20589,20828,20885,20976,21098,21103,21202,21209,21208,21205,21264,21263,21273,21311,21312,21310,21443,26364,21830,21866,21862,21828,21854,21857,21827,21834,21809,21846,21839,21845,21807,21860,21816,21806,21852,21804,21859,21811,21825,21847,22280,22283,22281,22495,22533,22538,22534,22496,22500,22522,22530,22581,22519,22521,22816,22882,23094,23105,23113,23142,23146,23104,23100,23138,23130,23110,23114,23408,23495,23493,23492,23490,23487,23494,23561,23560,23559,23648,23644,23645,23815,23814,23822,23835,23830,23842,23825,23849,23828,23833,23844,23847,23831,24034,24120,24118,24115,24119,24247,24248,24246,24245,24254,24373,24375,24407,24428,24425,24427,24471,24473,24478,24472,24481,24480,24476,24703,24739,24713,24736,24744,24779,24756,24806,24765,24773,24763,24757,24796,24764,24792,24789,24774,24799,24760,24794,24775,25114,25115,25160,25504,25511,25458,25494,25506,25509,25463,25447,25496,25514,25457,25513,25481,25475,25499,25451,25512,25476,25480,25497,25505,25516,25490,25487,25472,25467,25449,25448,25466,25949,25942,25937,25945,25943,21855,25935,25944,25941,25940,26012,26011,26028,26063,26059,26060,26062,26205,26202,26212,26216,26214,26206,26361,21207,26395,26753,26799,26786,26771,26805,26751,26742,26801,26791,26775,26800,26755,26820,26797,26758,26757,26772,26781,26792,26783,26785,26754,27442,27578,27627,27628,27691,28046,28092,28147,28121,28082,28129,28108,28132,28155,28154,28165,28103,28107,28079,28113,28078,28126,28153,28088,28151,28149,28101,28114,28186,28085,28122,28139,28120,28138,28145,28142,28136,28102,28100,28074,28140,28095,28134,28921,28937,28938,28925,28911,29245,29309,29313,29468,29467,29462,29459,29465,29575,29701,29706,29699,29702,29694,29709,29920,29942,29943,29980,29986,30053,30054,30050,30064,30095,30164,30165,30133,30154,30157,30350,30420,30418,30427,30519,30526,30524,30518,30520,30522,30827,30787,30798,31077,31080,31085,31227,31378,31381,31520,31528,31515,31532,31526,31513,31518,31534,31890,31895,31893,32070,32067,32113,32046,32057,32060,32064,32048,32051,32068,32047,32066,32050,32049,32573,32670,32666,32716,32718,32722,32796,32842,32838,33071,33046,33059,33067,33065,33072,33060,33282,33333,33335,33334,33337,33678,33694,33688,33656,33698,33686,33725,33707,33682,33674,33683,33673,33696,33655,33659,33660,33670,33703,34389,24426,34503,34496,34486,34500,34485,34502,34507,34481,34479,34505,34899,34974,34952,34987,34962,34966,34957,34955,35219,35215,35370,35357,35363,35365,35377,35373,35359,35355,35362,35913,35930,36009,36012,36011,36008,36010,36007,36199,36198,36286,36282,36571,36575,36889,36877,36890,36887,36899,36895,36893,36880,36885,36894,36896,36879,36898,36886,36891,36884,37096,37101,37117,37207,37326,37365,37350,37347,37351,37357,37353,38281,38506,38517,38515,38520,38512,38516,38518,38519,38508,38592,38634,38633,31456,31455,38914,38915,39770,40165,40565,40575,40613,40635,20642,20621,20613,20633,20625,20608,20630,20632,20634,26368,20977,21106,21108,21109,21097,21214,21213,21211,21338,21413,21883,21888,21927,21884,21898,21917,21912,21890,21916,21930,21908,21895,21899,21891,21939,21934,21919,21822,21938,21914,21947,21932,21937,21886,21897,21931,21913,22285,22575,22570,22580,22564,22576,22577,22561,22557,22560,22777,22778,22880,23159,23194,23167,23186,23195,23207,23411,23409,23506,23500,23507,23504,23562,23563,23601,23884,23888,23860,23879,24061,24133,24125,24128,24131,24190,24266,24257,24258,24260,24380,24429,24489,24490,24488,24785,24801,24754,24758,24800,24860,24867,24826,24853,24816,24827,24820,24936,24817,24846,24822,24841,24832,24850,25119,25161,25507,25484,25551,25536,25577,25545,25542,25549,25554,25571,25552,25569,25558,25581,25582,25462,25588,25578,25563,25682,25562,25593,25950,25958,25954,25955,26001,26000,26031,26222,26224,26228,26230,26223,26257,26234,26238,26231,26366,26367,26399,26397,26874,26837,26848,26840,26839,26885,26847,26869,26862,26855,26873,26834,26866,26851,26827,26829,26893,26898,26894,26825,26842,26990,26875,27454,27450,27453,27544,27542,27580,27631,27694,27695,27692,28207,28216,28244,28193,28210,28263,28234,28192,28197,28195,28187,28251,28248,28196,28246,28270,28205,28198,28271,28212,28237,28218,28204,28227,28189,28222,28363,28297,28185,28238,28259,28228,28274,28265,28255,28953,28954,28966,28976,28961,28982,29038,28956,29260,29316,29312,29494,29477,29492,29481,29754,29738,29747,29730,29733,29749,29750,29748,29743,29723,29734,29736,29989,29990,30059,30058,30178,30171,30179,30169,30168,30174,30176,30331,30332,30358,30355,30388,30428,30543,30701,30813,30828,30831,31245,31240,31243,31237,31232,31384,31383,31382,31461,31459,31561,31574,31558,31568,31570,31572,31565,31563,31567,31569,31903,31909,32094,32080,32104,32085,32043,32110,32114,32097,32102,32098,32112,32115,21892,32724,32725,32779,32850,32901,33109,33108,33099,33105,33102,33081,33094,33086,33100,33107,33140,33298,33308,33769,33795,33784,33805,33760,33733,33803,33729,33775,33777,33780,33879,33802,33776,33804,33740,33789,33778,33738,33848,33806,33796,33756,33799,33748,33759,34395,34527,34521,34541,34516,34523,34532,34512,34526,34903,35009,35010,34993,35203,35222,35387,35424,35413,35422,35388,35393,35412,35419,35408,35398,35380,35386,35382,35414,35937,35970,36015,36028,36019,36029,36033,36027,36032,36020,36023,36022,36031,36024,36234,36229,36225,36302,36317,36299,36314,36305,36300,36315,36294,36603,36600,36604,36764,36910,36917,36913,36920,36914,36918,37122,37109,37129,37118,37219,37221,37327,37396,37397,37411,37385,37406,37389,37392,37383,37393,38292,38287,38283,38289,38291,38290,38286,38538,38542,38539,38525,38533,38534,38541,38514,38532,38593,38597,38596,38598,38599,38639,38642,38860,38917,38918,38920,39143,39146,39151,39145,39154,39149,39342,39341,40643,40653,40657,20098,20653,20661,20658,20659,20677,20670,20652,20663,20667,20655,20679,21119,21111,21117,21215,21222,21220,21218,21219,21295,21983,21992,21971,21990,21966,21980,21959,21969,21987,21988,21999,21978,21985,21957,21958,21989,21961,22290,22291,22622,22609,22616,22615,22618,22612,22635,22604,22637,22602,22626,22610,22603,22887,23233,23241,23244,23230,23229,23228,23219,23234,23218,23913,23919,24140,24185,24265,24264,24338,24409,24492,24494,24858,24847,24904,24863,24819,24859,24825,24833,24840,24910,24908,24900,24909,24894,24884,24871,24845,24838,24887,25121,25122,25619,25662,25630,25642,25645,25661,25644,25615,25628,25620,25613,25654,25622,25623,25606,25964,26015,26032,26263,26249,26247,26248,26262,26244,26264,26253,26371,27028,26989,26970,26999,26976,26964,26997,26928,27010,26954,26984,26987,26974,26963,27001,27014,26973,26979,26971,27463,27506,27584,27583,27603,27645,28322,28335,28371,28342,28354,28304,28317,28359,28357,28325,28312,28348,28346,28331,28369,28310,28316,28356,28372,28330,28327,28340,29006,29017,29033,29028,29001,29031,29020,29036,29030,29004,29029,29022,28998,29032,29014,29242,29266,29495,29509,29503,29502,29807,29786,29781,29791,29790,29761,29759,29785,29787,29788,30070,30072,30208,30192,30209,30194,30193,30202,30207,30196,30195,30430,30431,30555,30571,30566,30558,30563,30585,30570,30572,30556,30565,30568,30562,30702,30862,30896,30871,30872,30860,30857,30844,30865,30867,30847,31098,31103,31105,33836,31165,31260,31258,31264,31252,31263,31262,31391,31392,31607,31680,31584,31598,31591,31921,31923,31925,32147,32121,32145,32129,32143,32091,32622,32617,32618,32626,32681,32680,32676,32854,32856,32902,32900,33137,33136,33144,33125,33134,33139,33131,33145,33146,33126,33285,33351,33922,33911,33853,33841,33909,33894,33899,33865,33900,33883,33852,33845,33889,33891,33897,33901,33862,34398,34396,34399,34553,34579,34568,34567,34560,34558,34555,34562,34563,34566,34570,34905,35039,35028,35033,35036,35032,35037,35041,35018,35029,35026,35228,35299,35435,35442,35443,35430,35433,35440,35463,35452,35427,35488,35441,35461,35437,35426,35438,35436,35449,35451,35390,35432,35938,35978,35977,36042,36039,36040,36036,36018,36035,36034,36037,36321,36319,36328,36335,36339,36346,36330,36324,36326,36530,36611,36617,36606,36618,36767,36786,36939,36938,36947,36930,36948,36924,36949,36944,36935,36943,36942,36941,36945,36926,36929,37138,37143,37228,37226,37225,37321,37431,37463,37432,37437,37440,37438,37467,37451,37476,37457,37428,37449,37453,37445,37433,37439,37466,38296,38552,38548,38549,38605,38603,38601,38602,38647,38651,38649,38646,38742,38772,38774,38928,38929,38931,38922,38930,38924,39164,39156,39165,39166,39347,39345,39348,39649,40169,40578,40718,40723,40736,20711,20718,20709,20694,20717,20698,20693,20687,20689,20721,20686,20713,20834,20979,21123,21122,21297,21421,22014,22016,22043,22039,22013,22036,22022,22025,22029,22030,22007,22038,22047,22024,22032,22006,22296,22294,22645,22654,22659,22675,22666,22649,22661,22653,22781,22821,22818,22820,22890,22889,23265,23270,23273,23255,23254,23256,23267,23413,23518,23527,23521,23525,23526,23528,23522,23524,23519,23565,23650,23940,23943,24155,24163,24149,24151,24148,24275,24278,24330,24390,24432,24505,24903,24895,24907,24951,24930,24931,24927,24922,24920,24949,25130,25735,25688,25684,25764,25720,25695,25722,25681,25703,25652,25709,25723,25970,26017,26071,26070,26274,26280,26269,27036,27048,27029,27073,27054,27091,27083,27035,27063,27067,27051,27060,27088,27085,27053,27084,27046,27075,27043,27465,27468,27699,28467,28436,28414,28435,28404,28457,28478,28448,28460,28431,28418,28450,28415,28399,28422,28465,28472,28466,28451,28437,28459,28463,28552,28458,28396,28417,28402,28364,28407,29076,29081,29053,29066,29060,29074,29246,29330,29334,29508,29520,29796,29795,29802,29808,29805,29956,30097,30247,30221,30219,30217,30227,30433,30435,30596,30589,30591,30561,30913,30879,30887,30899,30889,30883,31118,31119,31117,31278,31281,31402,31401,31469,31471,31649,31637,31627,31605,31639,31645,31636,31631,31672,31623,31620,31929,31933,31934,32187,32176,32156,32189,32190,32160,32202,32180,32178,32177,32186,32162,32191,32181,32184,32173,32210,32199,32172,32624,32736,32737,32735,32862,32858,32903,33104,33152,33167,33160,33162,33151,33154,33255,33274,33287,33300,33310,33355,33993,33983,33990,33988,33945,33950,33970,33948,33995,33976,33984,34003,33936,33980,34001,33994,34623,34588,34619,34594,34597,34612,34584,34645,34615,34601,35059,35074,35060,35065,35064,35069,35048,35098,35055,35494,35468,35486,35491,35469,35489,35475,35492,35498,35493,35496,35480,35473,35482,35495,35946,35981,35980,36051,36049,36050,36203,36249,36245,36348,36628,36626,36629,36627,36771,36960,36952,36956,36963,36953,36958,36962,36957,36955,37145,37144,37150,37237,37240,37239,37236,37496,37504,37509,37528,37526,37499,37523,37532,37544,37500,37521,38305,38312,38313,38307,38309,38308,38553,38556,38555,38604,38610,38656,38780,38789,38902,38935,38936,39087,39089,39171,39173,39180,39177,39361,39599,39600,39654,39745,39746,40180,40182,40179,40636,40763,40778,20740,20736,20731,20725,20729,20738,20744,20745,20741,20956,21127,21128,21129,21133,21130,21232,21426,22062,22075,22073,22066,22079,22068,22057,22099,22094,22103,22132,22070,22063,22064,22656,22687,22686,22707,22684,22702,22697,22694,22893,23305,23291,23307,23285,23308,23304,23534,23532,23529,23531,23652,23653,23965,23956,24162,24159,24161,24290,24282,24287,24285,24291,24288,24392,24433,24503,24501,24950,24935,24942,24925,24917,24962,24956,24944,24939,24958,24999,24976,25003,24974,25004,24986,24996,24980,25006,25134,25705,25711,25721,25758,25778,25736,25744,25776,25765,25747,25749,25769,25746,25774,25773,25771,25754,25772,25753,25762,25779,25973,25975,25976,26286,26283,26292,26289,27171,27167,27112,27137,27166,27161,27133,27169,27155,27146,27123,27138,27141,27117,27153,27472,27470,27556,27589,27590,28479,28540,28548,28497,28518,28500,28550,28525,28507,28536,28526,28558,28538,28528,28516,28567,28504,28373,28527,28512,28511,29087,29100,29105,29096,29270,29339,29518,29527,29801,29835,29827,29822,29824,30079,30240,30249,30239,30244,30246,30241,30242,30362,30394,30436,30606,30599,30604,30609,30603,30923,30917,30906,30922,30910,30933,30908,30928,31295,31292,31296,31293,31287,31291,31407,31406,31661,31665,31684,31668,31686,31687,31681,31648,31692,31946,32224,32244,32239,32251,32216,32236,32221,32232,32227,32218,32222,32233,32158,32217,32242,32249,32629,32631,32687,32745,32806,33179,33180,33181,33184,33178,33176,34071,34109,34074,34030,34092,34093,34067,34065,34083,34081,34068,34028,34085,34047,34054,34690,34676,34678,34656,34662,34680,34664,34649,34647,34636,34643,34907,34909,35088,35079,35090,35091,35093,35082,35516,35538,35527,35524,35477,35531,35576,35506,35529,35522,35519,35504,35542,35533,35510,35513,35547,35916,35918,35948,36064,36062,36070,36068,36076,36077,36066,36067,36060,36074,36065,36205,36255,36259,36395,36368,36381,36386,36367,36393,36383,36385,36382,36538,36637,36635,36639,36649,36646,36650,36636,36638,36645,36969,36974,36968,36973,36983,37168,37165,37159,37169,37255,37257,37259,37251,37573,37563,37559,37610,37548,37604,37569,37555,37564,37586,37575,37616,37554,38317,38321,38660,38662,38663,38665,38752,38797,38795,38799,38945,38955,38940,39091,39178,39187,39186,39192,39389,39376,39391,39387,39377,39381,39378,39385,39607,39662,39663,39719,39749,39748,39799,39791,40198,40201,40195,40617,40638,40654,22696,40786,20754,20760,20756,20752,20757,20864,20906,20957,21137,21139,21235,22105,22123,22137,22121,22116,22136,22122,22120,22117,22129,22127,22124,22114,22134,22721,22718,22727,22725,22894,23325,23348,23416,23536,23566,24394,25010,24977,25001,24970,25037,25014,25022,25034,25032,25136,25797,25793,25803,25787,25788,25818,25796,25799,25794,25805,25791,25810,25812,25790,25972,26310,26313,26297,26308,26311,26296,27197,27192,27194,27225,27243,27224,27193,27204,27234,27233,27211,27207,27189,27231,27208,27481,27511,27653,28610,28593,28577,28611,28580,28609,28583,28595,28608,28601,28598,28582,28576,28596,29118,29129,29136,29138,29128,29141,29113,29134,29145,29148,29123,29124,29544,29852,29859,29848,29855,29854,29922,29964,29965,30260,30264,30266,30439,30437,30624,30622,30623,30629,30952,30938,30956,30951,31142,31309,31310,31302,31308,31307,31418,31705,31761,31689,31716,31707,31713,31721,31718,31957,31958,32266,32273,32264,32283,32291,32286,32285,32265,32272,32633,32690,32752,32753,32750,32808,33203,33193,33192,33275,33288,33368,33369,34122,34137,34120,34152,34153,34115,34121,34157,34154,34142,34691,34719,34718,34722,34701,34913,35114,35122,35109,35115,35105,35242,35238,35558,35578,35563,35569,35584,35548,35559,35566,35582,35585,35586,35575,35565,35571,35574,35580,35947,35949,35987,36084,36420,36401,36404,36418,36409,36405,36667,36655,36664,36659,36776,36774,36981,36980,36984,36978,36988,36986,37172,37266,37664,37686,37624,37683,37679,37666,37628,37675,37636,37658,37648,37670,37665,37653,37678,37657,38331,38567,38568,38570,38613,38670,38673,38678,38669,38675,38671,38747,38748,38758,38808,38960,38968,38971,38967,38957,38969,38948,39184,39208,39198,39195,39201,39194,39405,39394,39409,39608,39612,39675,39661,39720,39825,40213,40227,40230,40232,40210,40219,40664,40660,40845,40860,20778,20767,20769,20786,21237,22158,22144,22160,22149,22151,22159,22741,22739,22737,22734,23344,23338,23332,23418,23607,23656,23996,23994,23997,23992,24171,24396,24509,25033,25026,25031,25062,25035,25138,25140,25806,25802,25816,25824,25840,25830,25836,25841,25826,25837,25986,25987,26329,26326,27264,27284,27268,27298,27292,27355,27299,27262,27287,27280,27296,27484,27566,27610,27656,28632,28657,28639,28640,28635,28644,28651,28655,28544,28652,28641,28649,28629,28654,28656,29159,29151,29166,29158,29157,29165,29164,29172,29152,29237,29254,29552,29554,29865,29872,29862,29864,30278,30274,30284,30442,30643,30634,30640,30636,30631,30637,30703,30967,30970,30964,30959,30977,31143,31146,31319,31423,31751,31757,31742,31735,31756,31712,31968,31964,31966,31970,31967,31961,31965,32302,32318,32326,32311,32306,32323,32299,32317,32305,32325,32321,32308,32313,32328,32309,32319,32303,32580,32755,32764,32881,32882,32880,32879,32883,33222,33219,33210,33218,33216,33215,33213,33225,33214,33256,33289,33393,34218,34180,34174,34204,34193,34196,34223,34203,34183,34216,34186,34407,34752,34769,34739,34770,34758,34731,34747,34746,34760,34763,35131,35126,35140,35128,35133,35244,35598,35607,35609,35611,35594,35616,35613,35588,35600,35905,35903,35955,36090,36093,36092,36088,36091,36264,36425,36427,36424,36426,36676,36670,36674,36677,36671,36991,36989,36996,36993,36994,36992,37177,37283,37278,37276,37709,37762,37672,37749,37706,37733,37707,37656,37758,37740,37723,37744,37722,37716,38346,38347,38348,38344,38342,38577,38584,38614,38684,38686,38816,38867,38982,39094,39221,39425,39423,39854,39851,39850,39853,40251,40255,40587,40655,40670,40668,40669,40667,40766,40779,21474,22165,22190,22745,22744,23352,24413,25059,25139,25844,25842,25854,25862,25850,25851,25847,26039,26332,26406,27315,27308,27331,27323,27320,27330,27310,27311,27487,27512,27567,28681,28683,28670,28678,28666,28689,28687,29179,29180,29182,29176,29559,29557,29863,29887,29973,30294,30296,30290,30653,30655,30651,30652,30990,31150,31329,31330,31328,31428,31429,31787,31783,31786,31774,31779,31777,31975,32340,32341,32350,32346,32353,32338,32345,32584,32761,32763,32887,32886,33229,33231,33290,34255,34217,34253,34256,34249,34224,34234,34233,34214,34799,34796,34802,34784,35206,35250,35316,35624,35641,35628,35627,35920,36101,36441,36451,36454,36452,36447,36437,36544,36681,36685,36999,36995,37000,37291,37292,37328,37780,37770,37782,37794,37811,37806,37804,37808,37784,37786,37783,38356,38358,38352,38357,38626,38620,38617,38619,38622,38692,38819,38822,38829,38905,38989,38991,38988,38990,38995,39098,39230,39231,39229,39214,39333,39438,39617,39683,39686,39759,39758,39757,39882,39881,39933,39880,39872,40273,40285,40288,40672,40725,40748,20787,22181,22750,22751,22754,23541,40848,24300,25074,25079,25078,25077,25856,25871,26336,26333,27365,27357,27354,27347,28699,28703,28712,28698,28701,28693,28696,29190,29197,29272,29346,29560,29562,29885,29898,29923,30087,30086,30303,30305,30663,31001,31153,31339,31337,31806,31807,31800,31805,31799,31808,32363,32365,32377,32361,32362,32645,32371,32694,32697,32696,33240,34281,34269,34282,34261,34276,34277,34295,34811,34821,34829,34809,34814,35168,35167,35158,35166,35649,35676,35672,35657,35674,35662,35663,35654,35673,36104,36106,36476,36466,36487,36470,36460,36474,36468,36692,36686,36781,37002,37003,37297,37294,37857,37841,37855,37827,37832,37852,37853,37846,37858,37837,37848,37860,37847,37864,38364,38580,38627,38698,38695,38753,38876,38907,39006,39000,39003,39100,39237,39241,39446,39449,39693,39912,39911,39894,39899,40329,40289,40306,40298,40300,40594,40599,40595,40628,21240,22184,22199,22198,22196,22204,22756,23360,23363,23421,23542,24009,25080,25082,25880,25876,25881,26342,26407,27372,28734,28720,28722,29200,29563,29903,30306,30309,31014,31018,31020,31019,31431,31478,31820,31811,31821,31983,31984,36782,32381,32380,32386,32588,32768,33242,33382,34299,34297,34321,34298,34310,34315,34311,34314,34836,34837,35172,35258,35320,35696,35692,35686,35695,35679,35691,36111,36109,36489,36481,36485,36482,37300,37323,37912,37891,37885,38369,38704,39108,39250,39249,39336,39467,39472,39479,39477,39955,39949,40569,40629,40680,40751,40799,40803,40801,20791,20792,22209,22208,22210,22804,23660,24013,25084,25086,25885,25884,26005,26345,27387,27396,27386,27570,28748,29211,29351,29910,29908,30313,30675,31824,32399,32396,32700,34327,34349,34330,34851,34850,34849,34847,35178,35180,35261,35700,35703,35709,36115,36490,36493,36491,36703,36783,37306,37934,37939,37941,37946,37944,37938,37931,38370,38712,38713,38706,38911,39015,39013,39255,39493,39491,39488,39486,39631,39764,39761,39981,39973,40367,40372,40386,40376,40605,40687,40729,40796,40806,40807,20796,20795,22216,22218,22217,23423,24020,24018,24398,25087,25892,27402,27489,28753,28760,29568,29924,30090,30318,30316,31155,31840,31839,32894,32893,33247,35186,35183,35324,35712,36118,36119,36497,36499,36705,37192,37956,37969,37970,38717,38718,38851,38849,39019,39253,39509,39501,39634,39706,40009,39985,39998,39995,40403,40407,40756,40812,40810,40852,22220,24022,25088,25891,25899,25898,26348,27408,29914,31434,31844,31843,31845,32403,32406,32404,33250,34360,34367,34865,35722,37008,37007,37987,37984,37988,38760,39023,39260,39514,39515,39511,39635,39636,39633,40020,40023,40022,40421,40607,40692,22225,22761,25900,28766,30321,30322,30679,32592,32648,34870,34873,34914,35731,35730,35734,33399,36123,37312,37994,38722,38728,38724,38854,39024,39519,39714,39768,40031,40441,40442,40572,40573,40711,40823,40818,24307,27414,28771,31852,31854,34875,35264,36513,37313,38002,38000,39025,39262,39638,39715,40652,28772,30682,35738,38007,38857,39522,39525,32412,35740,36522,37317,38013,38014,38012,40055,40056,40695,35924,38015,40474,29224,39530,39729,40475,40478,31858,9312,9313,9314,9315,9316,9317,9318,9319,9320,9321,9332,9333,9334,9335,9336,9337,9338,9339,9340,9341,8560,8561,8562,8563,8564,8565,8566,8567,8568,8569,20022,20031,20101,20128,20866,20886,20907,21241,21304,21353,21430,22794,23424,24027,12083,24191,24308,24400,24417,25908,26080,30098,30326,36789,38582,168,710,12541,12542,12445,12446,12291,20189,12293,12294,12295,12540,65339,65341,10045,12353,12354,12355,12356,12357,12358,12359,12360,12361,12362,12363,12364,12365,12366,12367,12368,12369,12370,12371,12372,12373,12374,12375,12376,12377,12378,12379,12380,12381,12382,12383,12384,12385,12386,12387,12388,12389,12390,12391,12392,12393,12394,12395,12396,12397,12398,12399,12400,12401,12402,12403,12404,12405,12406,12407,12408,12409,12410,12411,12412,12413,12414,12415,12416,12417,12418,12419,12420,12421,12422,12423,12424,12425,12426,12427,12428,12429,12430,12431,12432,12433,12434,12435,12449,12450,12451,12452,12453,12454,12455,12456,12457,12458,12459,12460,12461,12462,12463,12464,12465,12466,12467,12468,12469,12470,12471,12472,12473,12474,12475,12476,12477,12478,12479,12480,12481,12482,12483,12484,12485,12486,12487,12488,12489,12490,12491,12492,12493,12494,12495,12496,12497,12498,12499,12500,12501,12502,12503,12504,12505,12506,12507,12508,12509,12510,12511,12512,12513,12514,12515,12516,12517,12518,12519,12520,12521,12522,12523,12524,12525,12526,12527,12528,12529,12530,12531,12532,12533,12534,1040,1041,1042,1043,1044,1045,1025,1046,1047,1048,1049,1050,1051,1052,1053,1054,1055,1056,1057,1058,1059,1060,1061,1062,1063,1064,1065,1066,1067,1068,1069,1070,1071,1072,1073,1074,1075,1076,1077,1105,1078,1079,1080,1081,1082,1083,1084,1085,1086,1087,1088,1089,1090,1091,1092,1093,1094,1095,1096,1097,1098,1099,1100,1101,1102,1103,8679,8632,8633,12751,131276,20058,131210,20994,17553,40880,20872,40881,161287,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,65506,65508,65287,65282,12849,8470,8481,12443,12444,11904,11908,11910,11911,11912,11914,11916,11917,11925,11932,11933,11941,11943,11946,11948,11950,11958,11964,11966,11974,11978,11980,11981,11983,11990,11991,11998,12003,null,null,null,643,592,603,596,629,339,248,331,650,618,20034,20060,20981,21274,21378,19975,19980,20039,20109,22231,64012,23662,24435,19983,20871,19982,20014,20115,20162,20169,20168,20888,21244,21356,21433,22304,22787,22828,23568,24063,26081,27571,27596,27668,29247,20017,20028,20200,20188,20201,20193,20189,20186,21004,21276,21324,22306,22307,22807,22831,23425,23428,23570,23611,23668,23667,24068,24192,24194,24521,25097,25168,27669,27702,27715,27711,27707,29358,29360,29578,31160,32906,38430,20238,20248,20268,20213,20244,20209,20224,20215,20232,20253,20226,20229,20258,20243,20228,20212,20242,20913,21011,21001,21008,21158,21282,21279,21325,21386,21511,22241,22239,22318,22314,22324,22844,22912,22908,22917,22907,22910,22903,22911,23382,23573,23589,23676,23674,23675,23678,24031,24181,24196,24322,24346,24436,24533,24532,24527,25180,25182,25188,25185,25190,25186,25177,25184,25178,25189,26095,26094,26430,26425,26424,26427,26426,26431,26428,26419,27672,27718,27730,27740,27727,27722,27732,27723,27724,28785,29278,29364,29365,29582,29994,30335,31349,32593,33400,33404,33408,33405,33407,34381,35198,37017,37015,37016,37019,37012,38434,38436,38432,38435,20310,20283,20322,20297,20307,20324,20286,20327,20306,20319,20289,20312,20269,20275,20287,20321,20879,20921,21020,21022,21025,21165,21166,21257,21347,21362,21390,21391,21552,21559,21546,21588,21573,21529,21532,21541,21528,21565,21583,21569,21544,21540,21575,22254,22247,22245,22337,22341,22348,22345,22347,22354,22790,22848,22950,22936,22944,22935,22926,22946,22928,22927,22951,22945,23438,23442,23592,23594,23693,23695,23688,23691,23689,23698,23690,23686,23699,23701,24032,24074,24078,24203,24201,24204,24200,24205,24325,24349,24440,24438,24530,24529,24528,24557,24552,24558,24563,24545,24548,24547,24570,24559,24567,24571,24576,24564,25146,25219,25228,25230,25231,25236,25223,25201,25211,25210,25200,25217,25224,25207,25213,25202,25204,25911,26096,26100,26099,26098,26101,26437,26439,26457,26453,26444,26440,26461,26445,26458,26443,27600,27673,27674,27768,27751,27755,27780,27787,27791,27761,27759,27753,27802,27757,27783,27797,27804,27750,27763,27749,27771,27790,28788,28794,29283,29375,29373,29379,29382,29377,29370,29381,29589,29591,29587,29588,29586,30010,30009,30100,30101,30337,31037,32820,32917,32921,32912,32914,32924,33424,33423,33413,33422,33425,33427,33418,33411,33412,35960,36809,36799,37023,37025,37029,37022,37031,37024,38448,38440,38447,38445,20019,20376,20348,20357,20349,20352,20359,20342,20340,20361,20356,20343,20300,20375,20330,20378,20345,20353,20344,20368,20380,20372,20382,20370,20354,20373,20331,20334,20894,20924,20926,21045,21042,21043,21062,21041,21180,21258,21259,21308,21394,21396,21639,21631,21633,21649,21634,21640,21611,21626,21630,21605,21612,21620,21606,21645,21615,21601,21600,21656,21603,21607,21604,22263,22265,22383,22386,22381,22379,22385,22384,22390,22400,22389,22395,22387,22388,22370,22376,22397,22796,22853,22965,22970,22991,22990,22962,22988,22977,22966,22972,22979,22998,22961,22973,22976,22984,22964,22983,23394,23397,23443,23445,23620,23623,23726,23716,23712,23733,23727,23720,23724,23711,23715,23725,23714,23722,23719,23709,23717,23734,23728,23718,24087,24084,24089,24360,24354,24355,24356,24404,24450,24446,24445,24542,24549,24621,24614,24601,24626,24587,24628,24586,24599,24627,24602,24606,24620,24610,24589,24592,24622,24595,24593,24588,24585,24604,25108,25149,25261,25268,25297,25278,25258,25270,25290,25262,25267,25263,25275,25257,25264,25272,25917,26024,26043,26121,26108,26116,26130,26120,26107,26115,26123,26125,26117,26109,26129,26128,26358,26378,26501,26476,26510,26514,26486,26491,26520,26502,26500,26484,26509,26508,26490,26527,26513,26521,26499,26493,26497,26488,26489,26516,27429,27520,27518,27614,27677,27795,27884,27883,27886,27865,27830,27860,27821,27879,27831,27856,27842,27834,27843,27846,27885,27890,27858,27869,27828,27786,27805,27776,27870,27840,27952,27853,27847,27824,27897,27855,27881,27857,28820,28824,28805,28819,28806,28804,28817,28822,28802,28826,28803,29290,29398,29387,29400,29385,29404,29394,29396,29402,29388,29393,29604,29601,29613,29606,29602,29600,29612,29597,29917,29928,30015,30016,30014,30092,30104,30383,30451,30449,30448,30453,30712,30716,30713,30715,30714,30711,31042,31039,31173,31352,31355,31483,31861,31997,32821,32911,32942,32931,32952,32949,32941,33312,33440,33472,33451,33434,33432,33435,33461,33447,33454,33468,33438,33466,33460,33448,33441,33449,33474,33444,33475,33462,33442,34416,34415,34413,34414,35926,36818,36811,36819,36813,36822,36821,36823,37042,37044,37039,37043,37040,38457,38461,38460,38458,38467,20429,20421,20435,20402,20425,20427,20417,20436,20444,20441,20411,20403,20443,20423,20438,20410,20416,20409,20460,21060,21065,21184,21186,21309,21372,21399,21398,21401,21400,21690,21665,21677,21669,21711,21699,33549,21687,21678,21718,21686,21701,21702,21664,21616,21692,21666,21694,21618,21726,21680,22453,22430,22431,22436,22412,22423,22429,22427,22420,22424,22415,22425,22437,22426,22421,22772,22797,22867,23009,23006,23022,23040,23025,23005,23034,23037,23036,23030,23012,23026,23031,23003,23017,23027,23029,23008,23038,23028,23021,23464,23628,23760,23768,23756,23767,23755,23771,23774,23770,23753,23751,23754,23766,23763,23764,23759,23752,23750,23758,23775,23800,24057,24097,24098,24099,24096,24100,24240,24228,24226,24219,24227,24229,24327,24366,24406,24454,24631,24633,24660,24690,24670,24645,24659,24647,24649,24667,24652,24640,24642,24671,24612,24644,24664,24678,24686,25154,25155,25295,25357,25355,25333,25358,25347,25323,25337,25359,25356,25336,25334,25344,25363,25364,25338,25365,25339,25328,25921,25923,26026,26047,26166,26145,26162,26165,26140,26150,26146,26163,26155,26170,26141,26164,26169,26158,26383,26384,26561,26610,26568,26554,26588,26555,26616,26584,26560,26551,26565,26603,26596,26591,26549,26573,26547,26615,26614,26606,26595,26562,26553,26574,26599,26608,26546,26620,26566,26605,26572,26542,26598,26587,26618,26569,26570,26563,26602,26571,27432,27522,27524,27574,27606,27608,27616,27680,27681,27944,27956,27949,27935,27964,27967,27922,27914,27866,27955,27908,27929,27962,27930,27921,27904,27933,27970,27905,27928,27959,27907,27919,27968,27911,27936,27948,27912,27938,27913,27920,28855,28831,28862,28849,28848,28833,28852,28853,28841,29249,29257,29258,29292,29296,29299,29294,29386,29412,29416,29419,29407,29418,29414,29411,29573,29644,29634,29640,29637,29625,29622,29621,29620,29675,29631,29639,29630,29635,29638,29624,29643,29932,29934,29998,30023,30024,30119,30122,30329,30404,30472,30467,30468,30469,30474,30455,30459,30458,30695,30696,30726,30737,30738,30725,30736,30735,30734,30729,30723,30739,31050,31052,31051,31045,31044,31189,31181,31183,31190,31182,31360,31358,31441,31488,31489,31866,31864,31865,31871,31872,31873,32003,32008,32001,32600,32657,32653,32702,32775,32782,32783,32788,32823,32984,32967,32992,32977,32968,32962,32976,32965,32995,32985,32988,32970,32981,32969,32975,32983,32998,32973,33279,33313,33428,33497,33534,33529,33543,33512,33536,33493,33594,33515,33494,33524,33516,33505,33522,33525,33548,33531,33526,33520,33514,33508,33504,33530,33523,33517,34423,34420,34428,34419,34881,34894,34919,34922,34921,35283,35332,35335,36210,36835,36833,36846,36832,37105,37053,37055,37077,37061,37054,37063,37067,37064,37332,37331,38484,38479,38481,38483,38474,38478,20510,20485,20487,20499,20514,20528,20507,20469,20468,20531,20535,20524,20470,20471,20503,20508,20512,20519,20533,20527,20529,20494,20826,20884,20883,20938,20932,20933,20936,20942,21089,21082,21074,21086,21087,21077,21090,21197,21262,21406,21798,21730,21783,21778,21735,21747,21732,21786,21759,21764,21768,21739,21777,21765,21745,21770,21755,21751,21752,21728,21774,21763,21771,22273,22274,22476,22578,22485,22482,22458,22470,22461,22460,22456,22454,22463,22471,22480,22457,22465,22798,22858,23065,23062,23085,23086,23061,23055,23063,23050,23070,23091,23404,23463,23469,23468,23555,23638,23636,23788,23807,23790,23793,23799,23808,23801,24105,24104,24232,24238,24234,24236,24371,24368,24423,24669,24666,24679,24641,24738,24712,24704,24722,24705,24733,24707,24725,24731,24727,24711,24732,24718,25113,25158,25330,25360,25430,25388,25412,25413,25398,25411,25572,25401,25419,25418,25404,25385,25409,25396,25432,25428,25433,25389,25415,25395,25434,25425,25400,25431,25408,25416,25930,25926,26054,26051,26052,26050,26186,26207,26183,26193,26386,26387,26655,26650,26697,26674,26675,26683,26699,26703,26646,26673,26652,26677,26667,26669,26671,26702,26692,26676,26653,26642,26644,26662,26664,26670,26701,26682,26661,26656,27436,27439,27437,27441,27444,27501,32898,27528,27622,27620,27624,27619,27618,27623,27685,28026,28003,28004,28022,27917,28001,28050,27992,28002,28013,28015,28049,28045,28143,28031,28038,27998,28007,28000,28055,28016,28028,27999,28034,28056,27951,28008,28043,28030,28032,28036,27926,28035,28027,28029,28021,28048,28892,28883,28881,28893,28875,32569,28898,28887,28882,28894,28896,28884,28877,28869,28870,28871,28890,28878,28897,29250,29304,29303,29302,29440,29434,29428,29438,29430,29427,29435,29441,29651,29657,29669,29654,29628,29671,29667,29673,29660,29650,29659,29652,29661,29658,29655,29656,29672,29918,29919,29940,29941,29985,30043,30047,30128,30145,30139,30148,30144,30143,30134,30138,30346,30409,30493,30491,30480,30483,30482,30499,30481,30485,30489,30490,30498,30503,30755,30764,30754,30773,30767,30760,30766,30763,30753,30761,30771,30762,30769,31060,31067,31055,31068,31059,31058,31057,31211,31212,31200,31214,31213,31210,31196,31198,31197,31366,31369,31365,31371,31372,31370,31367,31448,31504,31492,31507,31493,31503,31496,31498,31502,31497,31506,31876,31889,31882,31884,31880,31885,31877,32030,32029,32017,32014,32024,32022,32019,32031,32018,32015,32012,32604,32609,32606,32608,32605,32603,32662,32658,32707,32706,32704,32790,32830,32825,33018,33010,33017,33013,33025,33019,33024,33281,33327,33317,33587,33581,33604,33561,33617,33573,33622,33599,33601,33574,33564,33570,33602,33614,33563,33578,33544,33596,33613,33558,33572,33568,33591,33583,33577,33607,33605,33612,33619,33566,33580,33611,33575,33608,34387,34386,34466,34472,34454,34445,34449,34462,34439,34455,34438,34443,34458,34437,34469,34457,34465,34471,34453,34456,34446,34461,34448,34452,34883,34884,34925,34933,34934,34930,34944,34929,34943,34927,34947,34942,34932,34940,35346,35911,35927,35963,36004,36003,36214,36216,36277,36279,36278,36561,36563,36862,36853,36866,36863,36859,36868,36860,36854,37078,37088,37081,37082,37091,37087,37093,37080,37083,37079,37084,37092,37200,37198,37199,37333,37346,37338,38492,38495,38588,39139,39647,39727,20095,20592,20586,20577,20574,20576,20563,20555,20573,20594,20552,20557,20545,20571,20554,20578,20501,20549,20575,20585,20587,20579,20580,20550,20544,20590,20595,20567,20561,20944,21099,21101,21100,21102,21206,21203,21293,21404,21877,21878,21820,21837,21840,21812,21802,21841,21858,21814,21813,21808,21842,21829,21772,21810,21861,21838,21817,21832,21805,21819,21824,21835,22282,22279,22523,22548,22498,22518,22492,22516,22528,22509,22525,22536,22520,22539,22515,22479,22535,22510,22499,22514,22501,22508,22497,22542,22524,22544,22503,22529,22540,22513,22505,22512,22541,22532,22876,23136,23128,23125,23143,23134,23096,23093,23149,23120,23135,23141,23148,23123,23140,23127,23107,23133,23122,23108,23131,23112,23182,23102,23117,23097,23116,23152,23145,23111,23121,23126,23106,23132,23410,23406,23489,23488,23641,23838,23819,23837,23834,23840,23820,23848,23821,23846,23845,23823,23856,23826,23843,23839,23854,24126,24116,24241,24244,24249,24242,24243,24374,24376,24475,24470,24479,24714,24720,24710,24766,24752,24762,24787,24788,24783,24804,24793,24797,24776,24753,24795,24759,24778,24767,24771,24781,24768,25394,25445,25482,25474,25469,25533,25502,25517,25501,25495,25515,25486,25455,25479,25488,25454,25519,25461,25500,25453,25518,25468,25508,25403,25503,25464,25477,25473,25489,25485,25456,25939,26061,26213,26209,26203,26201,26204,26210,26392,26745,26759,26768,26780,26733,26734,26798,26795,26966,26735,26787,26796,26793,26741,26740,26802,26767,26743,26770,26748,26731,26738,26794,26752,26737,26750,26779,26774,26763,26784,26761,26788,26744,26747,26769,26764,26762,26749,27446,27443,27447,27448,27537,27535,27533,27534,27532,27690,28096,28075,28084,28083,28276,28076,28137,28130,28087,28150,28116,28160,28104,28128,28127,28118,28094,28133,28124,28125,28123,28148,28106,28093,28141,28144,28090,28117,28098,28111,28105,28112,28146,28115,28157,28119,28109,28131,28091,28922,28941,28919,28951,28916,28940,28912,28932,28915,28944,28924,28927,28934,28947,28928,28920,28918,28939,28930,28942,29310,29307,29308,29311,29469,29463,29447,29457,29464,29450,29448,29439,29455,29470,29576,29686,29688,29685,29700,29697,29693,29703,29696,29690,29692,29695,29708,29707,29684,29704,30052,30051,30158,30162,30159,30155,30156,30161,30160,30351,30345,30419,30521,30511,30509,30513,30514,30516,30515,30525,30501,30523,30517,30792,30802,30793,30797,30794,30796,30758,30789,30800,31076,31079,31081,31082,31075,31083,31073,31163,31226,31224,31222,31223,31375,31380,31376,31541,31559,31540,31525,31536,31522,31524,31539,31512,31530,31517,31537,31531,31533,31535,31538,31544,31514,31523,31892,31896,31894,31907,32053,32061,32056,32054,32058,32069,32044,32041,32065,32071,32062,32063,32074,32059,32040,32611,32661,32668,32669,32667,32714,32715,32717,32720,32721,32711,32719,32713,32799,32798,32795,32839,32835,32840,33048,33061,33049,33051,33069,33055,33068,33054,33057,33045,33063,33053,33058,33297,33336,33331,33338,33332,33330,33396,33680,33699,33704,33677,33658,33651,33700,33652,33679,33665,33685,33689,33653,33684,33705,33661,33667,33676,33693,33691,33706,33675,33662,33701,33711,33672,33687,33712,33663,33702,33671,33710,33654,33690,34393,34390,34495,34487,34498,34497,34501,34490,34480,34504,34489,34483,34488,34508,34484,34491,34492,34499,34493,34494,34898,34953,34965,34984,34978,34986,34970,34961,34977,34975,34968,34983,34969,34971,34967,34980,34988,34956,34963,34958,35202,35286,35289,35285,35376,35367,35372,35358,35897,35899,35932,35933,35965,36005,36221,36219,36217,36284,36290,36281,36287,36289,36568,36574,36573,36572,36567,36576,36577,36900,36875,36881,36892,36876,36897,37103,37098,37104,37108,37106,37107,37076,37099,37100,37097,37206,37208,37210,37203,37205,37356,37364,37361,37363,37368,37348,37369,37354,37355,37367,37352,37358,38266,38278,38280,38524,38509,38507,38513,38511,38591,38762,38916,39141,39319,20635,20629,20628,20638,20619,20643,20611,20620,20622,20637,20584,20636,20626,20610,20615,20831,20948,21266,21265,21412,21415,21905,21928,21925,21933,21879,22085,21922,21907,21896,21903,21941,21889,21923,21906,21924,21885,21900,21926,21887,21909,21921,21902,22284,22569,22583,22553,22558,22567,22563,22568,22517,22600,22565,22556,22555,22579,22591,22582,22574,22585,22584,22573,22572,22587,22881,23215,23188,23199,23162,23202,23198,23160,23206,23164,23205,23212,23189,23214,23095,23172,23178,23191,23171,23179,23209,23163,23165,23180,23196,23183,23187,23197,23530,23501,23499,23508,23505,23498,23502,23564,23600,23863,23875,23915,23873,23883,23871,23861,23889,23886,23893,23859,23866,23890,23869,23857,23897,23874,23865,23881,23864,23868,23858,23862,23872,23877,24132,24129,24408,24486,24485,24491,24777,24761,24780,24802,24782,24772,24852,24818,24842,24854,24837,24821,24851,24824,24828,24830,24769,24835,24856,24861,24848,24831,24836,24843,25162,25492,25521,25520,25550,25573,25576,25583,25539,25757,25587,25546,25568,25590,25557,25586,25589,25697,25567,25534,25565,25564,25540,25560,25555,25538,25543,25548,25547,25544,25584,25559,25561,25906,25959,25962,25956,25948,25960,25957,25996,26013,26014,26030,26064,26066,26236,26220,26235,26240,26225,26233,26218,26226,26369,26892,26835,26884,26844,26922,26860,26858,26865,26895,26838,26871,26859,26852,26870,26899,26896,26867,26849,26887,26828,26888,26992,26804,26897,26863,26822,26900,26872,26832,26877,26876,26856,26891,26890,26903,26830,26824,26845,26846,26854,26868,26833,26886,26836,26857,26901,26917,26823,27449,27451,27455,27452,27540,27543,27545,27541,27581,27632,27634,27635,27696,28156,28230,28231,28191,28233,28296,28220,28221,28229,28258,28203,28223,28225,28253,28275,28188,28211,28235,28224,28241,28219,28163,28206,28254,28264,28252,28257,28209,28200,28256,28273,28267,28217,28194,28208,28243,28261,28199,28280,28260,28279,28245,28281,28242,28262,28213,28214,28250,28960,28958,28975,28923,28974,28977,28963,28965,28962,28978,28959,28968,28986,28955,29259,29274,29320,29321,29318,29317,29323,29458,29451,29488,29474,29489,29491,29479,29490,29485,29478,29475,29493,29452,29742,29740,29744,29739,29718,29722,29729,29741,29745,29732,29731,29725,29737,29728,29746,29947,29999,30063,30060,30183,30170,30177,30182,30173,30175,30180,30167,30357,30354,30426,30534,30535,30532,30541,30533,30538,30542,30539,30540,30686,30700,30816,30820,30821,30812,30829,30833,30826,30830,30832,30825,30824,30814,30818,31092,31091,31090,31088,31234,31242,31235,31244,31236,31385,31462,31460,31562,31547,31556,31560,31564,31566,31552,31576,31557,31906,31902,31912,31905,32088,32111,32099,32083,32086,32103,32106,32079,32109,32092,32107,32082,32084,32105,32081,32095,32078,32574,32575,32613,32614,32674,32672,32673,32727,32849,32847,32848,33022,32980,33091,33098,33106,33103,33095,33085,33101,33082,33254,33262,33271,33272,33273,33284,33340,33341,33343,33397,33595,33743,33785,33827,33728,33768,33810,33767,33764,33788,33782,33808,33734,33736,33771,33763,33727,33793,33757,33765,33752,33791,33761,33739,33742,33750,33781,33737,33801,33807,33758,33809,33798,33730,33779,33749,33786,33735,33745,33770,33811,33731,33772,33774,33732,33787,33751,33762,33819,33755,33790,34520,34530,34534,34515,34531,34522,34538,34525,34539,34524,34540,34537,34519,34536,34513,34888,34902,34901,35002,35031,35001,35000,35008,35006,34998,35004,34999,35005,34994,35073,35017,35221,35224,35223,35293,35290,35291,35406,35405,35385,35417,35392,35415,35416,35396,35397,35410,35400,35409,35402,35404,35407,35935,35969,35968,36026,36030,36016,36025,36021,36228,36224,36233,36312,36307,36301,36295,36310,36316,36303,36309,36313,36296,36311,36293,36591,36599,36602,36601,36582,36590,36581,36597,36583,36584,36598,36587,36593,36588,36596,36585,36909,36916,36911,37126,37164,37124,37119,37116,37128,37113,37115,37121,37120,37127,37125,37123,37217,37220,37215,37218,37216,37377,37386,37413,37379,37402,37414,37391,37388,37376,37394,37375,37373,37382,37380,37415,37378,37404,37412,37401,37399,37381,37398,38267,38285,38284,38288,38535,38526,38536,38537,38531,38528,38594,38600,38595,38641,38640,38764,38768,38766,38919,39081,39147,40166,40697,20099,20100,20150,20669,20671,20678,20654,20676,20682,20660,20680,20674,20656,20673,20666,20657,20683,20681,20662,20664,20951,21114,21112,21115,21116,21955,21979,21964,21968,21963,21962,21981,21952,21972,21956,21993,21951,21970,21901,21967,21973,21986,21974,21960,22002,21965,21977,21954,22292,22611,22632,22628,22607,22605,22601,22639,22613,22606,22621,22617,22629,22619,22589,22627,22641,22780,23239,23236,23243,23226,23224,23217,23221,23216,23231,23240,23227,23238,23223,23232,23242,23220,23222,23245,23225,23184,23510,23512,23513,23583,23603,23921,23907,23882,23909,23922,23916,23902,23912,23911,23906,24048,24143,24142,24138,24141,24139,24261,24268,24262,24267,24263,24384,24495,24493,24823,24905,24906,24875,24901,24886,24882,24878,24902,24879,24911,24873,24896,25120,37224,25123,25125,25124,25541,25585,25579,25616,25618,25609,25632,25636,25651,25667,25631,25621,25624,25657,25655,25634,25635,25612,25638,25648,25640,25665,25653,25647,25610,25626,25664,25637,25639,25611,25575,25627,25646,25633,25614,25967,26002,26067,26246,26252,26261,26256,26251,26250,26265,26260,26232,26400,26982,26975,26936,26958,26978,26993,26943,26949,26986,26937,26946,26967,26969,27002,26952,26953,26933,26988,26931,26941,26981,26864,27000,26932,26985,26944,26991,26948,26998,26968,26945,26996,26956,26939,26955,26935,26972,26959,26961,26930,26962,26927,27003,26940,27462,27461,27459,27458,27464,27457,27547,64013,27643,27644,27641,27639,27640,28315,28374,28360,28303,28352,28319,28307,28308,28320,28337,28345,28358,28370,28349,28353,28318,28361,28343,28336,28365,28326,28367,28338,28350,28355,28380,28376,28313,28306,28302,28301,28324,28321,28351,28339,28368,28362,28311,28334,28323,28999,29012,29010,29027,29024,28993,29021,29026,29042,29048,29034,29025,28994,29016,28995,29003,29040,29023,29008,29011,28996,29005,29018,29263,29325,29324,29329,29328,29326,29500,29506,29499,29498,29504,29514,29513,29764,29770,29771,29778,29777,29783,29760,29775,29776,29774,29762,29766,29773,29780,29921,29951,29950,29949,29981,30073,30071,27011,30191,30223,30211,30199,30206,30204,30201,30200,30224,30203,30198,30189,30197,30205,30361,30389,30429,30549,30559,30560,30546,30550,30554,30569,30567,30548,30553,30573,30688,30855,30874,30868,30863,30852,30869,30853,30854,30881,30851,30841,30873,30848,30870,30843,31100,31106,31101,31097,31249,31256,31257,31250,31255,31253,31266,31251,31259,31248,31395,31394,31390,31467,31590,31588,31597,31604,31593,31602,31589,31603,31601,31600,31585,31608,31606,31587,31922,31924,31919,32136,32134,32128,32141,32127,32133,32122,32142,32123,32131,32124,32140,32148,32132,32125,32146,32621,32619,32615,32616,32620,32678,32677,32679,32731,32732,32801,33124,33120,33143,33116,33129,33115,33122,33138,26401,33118,33142,33127,33135,33092,33121,33309,33353,33348,33344,33346,33349,34033,33855,33878,33910,33913,33935,33933,33893,33873,33856,33926,33895,33840,33869,33917,33882,33881,33908,33907,33885,34055,33886,33847,33850,33844,33914,33859,33912,33842,33861,33833,33753,33867,33839,33858,33837,33887,33904,33849,33870,33868,33874,33903,33989,33934,33851,33863,33846,33843,33896,33918,33860,33835,33888,33876,33902,33872,34571,34564,34551,34572,34554,34518,34549,34637,34552,34574,34569,34561,34550,34573,34565,35030,35019,35021,35022,35038,35035,35034,35020,35024,35205,35227,35295,35301,35300,35297,35296,35298,35292,35302,35446,35462,35455,35425,35391,35447,35458,35460,35445,35459,35457,35444,35450,35900,35915,35914,35941,35940,35942,35974,35972,35973,36044,36200,36201,36241,36236,36238,36239,36237,36243,36244,36240,36242,36336,36320,36332,36337,36334,36304,36329,36323,36322,36327,36338,36331,36340,36614,36607,36609,36608,36613,36615,36616,36610,36619,36946,36927,36932,36937,36925,37136,37133,37135,37137,37142,37140,37131,37134,37230,37231,37448,37458,37424,37434,37478,37427,37477,37470,37507,37422,37450,37446,37485,37484,37455,37472,37479,37487,37430,37473,37488,37425,37460,37475,37456,37490,37454,37459,37452,37462,37426,38303,38300,38302,38299,38546,38547,38545,38551,38606,38650,38653,38648,38645,38771,38775,38776,38770,38927,38925,38926,39084,39158,39161,39343,39346,39344,39349,39597,39595,39771,40170,40173,40167,40576,40701,20710,20692,20695,20712,20723,20699,20714,20701,20708,20691,20716,20720,20719,20707,20704,20952,21120,21121,21225,21227,21296,21420,22055,22037,22028,22034,22012,22031,22044,22017,22035,22018,22010,22045,22020,22015,22009,22665,22652,22672,22680,22662,22657,22655,22644,22667,22650,22663,22673,22670,22646,22658,22664,22651,22676,22671,22782,22891,23260,23278,23269,23253,23274,23258,23277,23275,23283,23266,23264,23259,23276,23262,23261,23257,23272,23263,23415,23520,23523,23651,23938,23936,23933,23942,23930,23937,23927,23946,23945,23944,23934,23932,23949,23929,23935,24152,24153,24147,24280,24273,24279,24270,24284,24277,24281,24274,24276,24388,24387,24431,24502,24876,24872,24897,24926,24945,24947,24914,24915,24946,24940,24960,24948,24916,24954,24923,24933,24891,24938,24929,24918,25129,25127,25131,25643,25677,25691,25693,25716,25718,25714,25715,25725,25717,25702,25766,25678,25730,25694,25692,25675,25683,25696,25680,25727,25663,25708,25707,25689,25701,25719,25971,26016,26273,26272,26271,26373,26372,26402,27057,27062,27081,27040,27086,27030,27056,27052,27068,27025,27033,27022,27047,27021,27049,27070,27055,27071,27076,27069,27044,27092,27065,27082,27034,27087,27059,27027,27050,27041,27038,27097,27031,27024,27074,27061,27045,27078,27466,27469,27467,27550,27551,27552,27587,27588,27646,28366,28405,28401,28419,28453,28408,28471,28411,28462,28425,28494,28441,28442,28455,28440,28475,28434,28397,28426,28470,28531,28409,28398,28461,28480,28464,28476,28469,28395,28423,28430,28483,28421,28413,28406,28473,28444,28412,28474,28447,28429,28446,28424,28449,29063,29072,29065,29056,29061,29058,29071,29051,29062,29057,29079,29252,29267,29335,29333,29331,29507,29517,29521,29516,29794,29811,29809,29813,29810,29799,29806,29952,29954,29955,30077,30096,30230,30216,30220,30229,30225,30218,30228,30392,30593,30588,30597,30594,30574,30592,30575,30590,30595,30898,30890,30900,30893,30888,30846,30891,30878,30885,30880,30892,30882,30884,31128,31114,31115,31126,31125,31124,31123,31127,31112,31122,31120,31275,31306,31280,31279,31272,31270,31400,31403,31404,31470,31624,31644,31626,31633,31632,31638,31629,31628,31643,31630,31621,31640,21124,31641,31652,31618,31931,31935,31932,31930,32167,32183,32194,32163,32170,32193,32192,32197,32157,32206,32196,32198,32203,32204,32175,32185,32150,32188,32159,32166,32174,32169,32161,32201,32627,32738,32739,32741,32734,32804,32861,32860,33161,33158,33155,33159,33165,33164,33163,33301,33943,33956,33953,33951,33978,33998,33986,33964,33966,33963,33977,33972,33985,33997,33962,33946,33969,34000,33949,33959,33979,33954,33940,33991,33996,33947,33961,33967,33960,34006,33944,33974,33999,33952,34007,34004,34002,34011,33968,33937,34401,34611,34595,34600,34667,34624,34606,34590,34593,34585,34587,34627,34604,34625,34622,34630,34592,34610,34602,34605,34620,34578,34618,34609,34613,34626,34598,34599,34616,34596,34586,34608,34577,35063,35047,35057,35058,35066,35070,35054,35068,35062,35067,35056,35052,35051,35229,35233,35231,35230,35305,35307,35304,35499,35481,35467,35474,35471,35478,35901,35944,35945,36053,36047,36055,36246,36361,36354,36351,36365,36349,36362,36355,36359,36358,36357,36350,36352,36356,36624,36625,36622,36621,37155,37148,37152,37154,37151,37149,37146,37156,37153,37147,37242,37234,37241,37235,37541,37540,37494,37531,37498,37536,37524,37546,37517,37542,37530,37547,37497,37527,37503,37539,37614,37518,37506,37525,37538,37501,37512,37537,37514,37510,37516,37529,37543,37502,37511,37545,37533,37515,37421,38558,38561,38655,38744,38781,38778,38782,38787,38784,38786,38779,38788,38785,38783,38862,38861,38934,39085,39086,39170,39168,39175,39325,39324,39363,39353,39355,39354,39362,39357,39367,39601,39651,39655,39742,39743,39776,39777,39775,40177,40178,40181,40615,20735,20739,20784,20728,20742,20743,20726,20734,20747,20748,20733,20746,21131,21132,21233,21231,22088,22082,22092,22069,22081,22090,22089,22086,22104,22106,22080,22067,22077,22060,22078,22072,22058,22074,22298,22699,22685,22705,22688,22691,22703,22700,22693,22689,22783,23295,23284,23293,23287,23286,23299,23288,23298,23289,23297,23303,23301,23311,23655,23961,23959,23967,23954,23970,23955,23957,23968,23964,23969,23962,23966,24169,24157,24160,24156,32243,24283,24286,24289,24393,24498,24971,24963,24953,25009,25008,24994,24969,24987,24979,25007,25005,24991,24978,25002,24993,24973,24934,25011,25133,25710,25712,25750,25760,25733,25751,25756,25743,25739,25738,25740,25763,25759,25704,25777,25752,25974,25978,25977,25979,26034,26035,26293,26288,26281,26290,26295,26282,26287,27136,27142,27159,27109,27128,27157,27121,27108,27168,27135,27116,27106,27163,27165,27134,27175,27122,27118,27156,27127,27111,27200,27144,27110,27131,27149,27132,27115,27145,27140,27160,27173,27151,27126,27174,27143,27124,27158,27473,27557,27555,27554,27558,27649,27648,27647,27650,28481,28454,28542,28551,28614,28562,28557,28553,28556,28514,28495,28549,28506,28566,28534,28524,28546,28501,28530,28498,28496,28503,28564,28563,28509,28416,28513,28523,28541,28519,28560,28499,28555,28521,28543,28565,28515,28535,28522,28539,29106,29103,29083,29104,29088,29082,29097,29109,29085,29093,29086,29092,29089,29098,29084,29095,29107,29336,29338,29528,29522,29534,29535,29536,29533,29531,29537,29530,29529,29538,29831,29833,29834,29830,29825,29821,29829,29832,29820,29817,29960,29959,30078,30245,30238,30233,30237,30236,30243,30234,30248,30235,30364,30365,30366,30363,30605,30607,30601,30600,30925,30907,30927,30924,30929,30926,30932,30920,30915,30916,30921,31130,31137,31136,31132,31138,31131,27510,31289,31410,31412,31411,31671,31691,31678,31660,31694,31663,31673,31690,31669,31941,31944,31948,31947,32247,32219,32234,32231,32215,32225,32259,32250,32230,32246,32241,32240,32238,32223,32630,32684,32688,32685,32749,32747,32746,32748,32742,32744,32868,32871,33187,33183,33182,33173,33186,33177,33175,33302,33359,33363,33362,33360,33358,33361,34084,34107,34063,34048,34089,34062,34057,34061,34079,34058,34087,34076,34043,34091,34042,34056,34060,34036,34090,34034,34069,34039,34027,34035,34044,34066,34026,34025,34070,34046,34088,34077,34094,34050,34045,34078,34038,34097,34086,34023,34024,34032,34031,34041,34072,34080,34096,34059,34073,34095,34402,34646,34659,34660,34679,34785,34675,34648,34644,34651,34642,34657,34650,34641,34654,34669,34666,34640,34638,34655,34653,34671,34668,34682,34670,34652,34661,34639,34683,34677,34658,34663,34665,34906,35077,35084,35092,35083,35095,35096,35097,35078,35094,35089,35086,35081,35234,35236,35235,35309,35312,35308,35535,35526,35512,35539,35537,35540,35541,35515,35543,35518,35520,35525,35544,35523,35514,35517,35545,35902,35917,35983,36069,36063,36057,36072,36058,36061,36071,36256,36252,36257,36251,36384,36387,36389,36388,36398,36373,36379,36374,36369,36377,36390,36391,36372,36370,36376,36371,36380,36375,36378,36652,36644,36632,36634,36640,36643,36630,36631,36979,36976,36975,36967,36971,37167,37163,37161,37162,37170,37158,37166,37253,37254,37258,37249,37250,37252,37248,37584,37571,37572,37568,37593,37558,37583,37617,37599,37592,37609,37591,37597,37580,37615,37570,37608,37578,37576,37582,37606,37581,37589,37577,37600,37598,37607,37585,37587,37557,37601,37574,37556,38268,38316,38315,38318,38320,38564,38562,38611,38661,38664,38658,38746,38794,38798,38792,38864,38863,38942,38941,38950,38953,38952,38944,38939,38951,39090,39176,39162,39185,39188,39190,39191,39189,39388,39373,39375,39379,39380,39374,39369,39382,39384,39371,39383,39372,39603,39660,39659,39667,39666,39665,39750,39747,39783,39796,39793,39782,39798,39797,39792,39784,39780,39788,40188,40186,40189,40191,40183,40199,40192,40185,40187,40200,40197,40196,40579,40659,40719,40720,20764,20755,20759,20762,20753,20958,21300,21473,22128,22112,22126,22131,22118,22115,22125,22130,22110,22135,22300,22299,22728,22717,22729,22719,22714,22722,22716,22726,23319,23321,23323,23329,23316,23315,23312,23318,23336,23322,23328,23326,23535,23980,23985,23977,23975,23989,23984,23982,23978,23976,23986,23981,23983,23988,24167,24168,24166,24175,24297,24295,24294,24296,24293,24395,24508,24989,25000,24982,25029,25012,25030,25025,25036,25018,25023,25016,24972,25815,25814,25808,25807,25801,25789,25737,25795,25819,25843,25817,25907,25983,25980,26018,26312,26302,26304,26314,26315,26319,26301,26299,26298,26316,26403,27188,27238,27209,27239,27186,27240,27198,27229,27245,27254,27227,27217,27176,27226,27195,27199,27201,27242,27236,27216,27215,27220,27247,27241,27232,27196,27230,27222,27221,27213,27214,27206,27477,27476,27478,27559,27562,27563,27592,27591,27652,27651,27654,28589,28619,28579,28615,28604,28622,28616,28510,28612,28605,28574,28618,28584,28676,28581,28590,28602,28588,28586,28623,28607,28600,28578,28617,28587,28621,28591,28594,28592,29125,29122,29119,29112,29142,29120,29121,29131,29140,29130,29127,29135,29117,29144,29116,29126,29146,29147,29341,29342,29545,29542,29543,29548,29541,29547,29546,29823,29850,29856,29844,29842,29845,29857,29963,30080,30255,30253,30257,30269,30259,30268,30261,30258,30256,30395,30438,30618,30621,30625,30620,30619,30626,30627,30613,30617,30615,30941,30953,30949,30954,30942,30947,30939,30945,30946,30957,30943,30944,31140,31300,31304,31303,31414,31416,31413,31409,31415,31710,31715,31719,31709,31701,31717,31706,31720,31737,31700,31722,31714,31708,31723,31704,31711,31954,31956,31959,31952,31953,32274,32289,32279,32268,32287,32288,32275,32270,32284,32277,32282,32290,32267,32271,32278,32269,32276,32293,32292,32579,32635,32636,32634,32689,32751,32810,32809,32876,33201,33190,33198,33209,33205,33195,33200,33196,33204,33202,33207,33191,33266,33365,33366,33367,34134,34117,34155,34125,34131,34145,34136,34112,34118,34148,34113,34146,34116,34129,34119,34147,34110,34139,34161,34126,34158,34165,34133,34151,34144,34188,34150,34141,34132,34149,34156,34403,34405,34404,34715,34703,34711,34707,34706,34696,34689,34710,34712,34681,34695,34723,34693,34704,34705,34717,34692,34708,34716,34714,34697,35102,35110,35120,35117,35118,35111,35121,35106,35113,35107,35119,35116,35103,35313,35552,35554,35570,35572,35573,35549,35604,35556,35551,35568,35528,35550,35553,35560,35583,35567,35579,35985,35986,35984,36085,36078,36081,36080,36083,36204,36206,36261,36263,36403,36414,36408,36416,36421,36406,36412,36413,36417,36400,36415,36541,36662,36654,36661,36658,36665,36663,36660,36982,36985,36987,36998,37114,37171,37173,37174,37267,37264,37265,37261,37263,37671,37662,37640,37663,37638,37647,37754,37688,37692,37659,37667,37650,37633,37702,37677,37646,37645,37579,37661,37626,37669,37651,37625,37623,37684,37634,37668,37631,37673,37689,37685,37674,37652,37644,37643,37630,37641,37632,37627,37654,38332,38349,38334,38329,38330,38326,38335,38325,38333,38569,38612,38667,38674,38672,38809,38807,38804,38896,38904,38965,38959,38962,39204,39199,39207,39209,39326,39406,39404,39397,39396,39408,39395,39402,39401,39399,39609,39615,39604,39611,39670,39674,39673,39671,39731,39808,39813,39815,39804,39806,39803,39810,39827,39826,39824,39802,39829,39805,39816,40229,40215,40224,40222,40212,40233,40221,40216,40226,40208,40217,40223,40584,40582,40583,40622,40621,40661,40662,40698,40722,40765,20774,20773,20770,20772,20768,20777,21236,22163,22156,22157,22150,22148,22147,22142,22146,22143,22145,22742,22740,22735,22738,23341,23333,23346,23331,23340,23335,23334,23343,23342,23419,23537,23538,23991,24172,24170,24510,24507,25027,25013,25020,25063,25056,25061,25060,25064,25054,25839,25833,25827,25835,25828,25832,25985,25984,26038,26074,26322,27277,27286,27265,27301,27273,27295,27291,27297,27294,27271,27283,27278,27285,27267,27304,27300,27281,27263,27302,27290,27269,27276,27282,27483,27565,27657,28620,28585,28660,28628,28643,28636,28653,28647,28646,28638,28658,28637,28642,28648,29153,29169,29160,29170,29156,29168,29154,29555,29550,29551,29847,29874,29867,29840,29866,29869,29873,29861,29871,29968,29969,29970,29967,30084,30275,30280,30281,30279,30372,30441,30645,30635,30642,30647,30646,30644,30641,30632,30704,30963,30973,30978,30971,30972,30962,30981,30969,30974,30980,31147,31144,31324,31323,31318,31320,31316,31322,31422,31424,31425,31749,31759,31730,31744,31743,31739,31758,31732,31755,31731,31746,31753,31747,31745,31736,31741,31750,31728,31729,31760,31754,31976,32301,32316,32322,32307,38984,32312,32298,32329,32320,32327,32297,32332,32304,32315,32310,32324,32314,32581,32639,32638,32637,32756,32754,32812,33211,33220,33228,33226,33221,33223,33212,33257,33371,33370,33372,34179,34176,34191,34215,34197,34208,34187,34211,34171,34212,34202,34206,34167,34172,34185,34209,34170,34168,34135,34190,34198,34182,34189,34201,34205,34177,34210,34178,34184,34181,34169,34166,34200,34192,34207,34408,34750,34730,34733,34757,34736,34732,34745,34741,34748,34734,34761,34755,34754,34764,34743,34735,34756,34762,34740,34742,34751,34744,34749,34782,34738,35125,35123,35132,35134,35137,35154,35127,35138,35245,35247,35246,35314,35315,35614,35608,35606,35601,35589,35595,35618,35599,35602,35605,35591,35597,35592,35590,35612,35603,35610,35919,35952,35954,35953,35951,35989,35988,36089,36207,36430,36429,36435,36432,36428,36423,36675,36672,36997,36990,37176,37274,37282,37275,37273,37279,37281,37277,37280,37793,37763,37807,37732,37718,37703,37756,37720,37724,37750,37705,37712,37713,37728,37741,37775,37708,37738,37753,37719,37717,37714,37711,37745,37751,37755,37729,37726,37731,37735,37760,37710,37721,38343,38336,38345,38339,38341,38327,38574,38576,38572,38688,38687,38680,38685,38681,38810,38817,38812,38814,38813,38869,38868,38897,38977,38980,38986,38985,38981,38979,39205,39211,39212,39210,39219,39218,39215,39213,39217,39216,39320,39331,39329,39426,39418,39412,39415,39417,39416,39414,39419,39421,39422,39420,39427,39614,39678,39677,39681,39676,39752,39834,39848,39838,39835,39846,39841,39845,39844,39814,39842,39840,39855,40243,40257,40295,40246,40238,40239,40241,40248,40240,40261,40258,40259,40254,40247,40256,40253,32757,40237,40586,40585,40589,40624,40648,40666,40699,40703,40740,40739,40738,40788,40864,20785,20781,20782,22168,22172,22167,22170,22173,22169,22896,23356,23657,23658,24000,24173,24174,25048,25055,25069,25070,25073,25066,25072,25067,25046,25065,25855,25860,25853,25848,25857,25859,25852,26004,26075,26330,26331,26328,27333,27321,27325,27361,27334,27322,27318,27319,27335,27316,27309,27486,27593,27659,28679,28684,28685,28673,28677,28692,28686,28671,28672,28667,28710,28668,28663,28682,29185,29183,29177,29187,29181,29558,29880,29888,29877,29889,29886,29878,29883,29890,29972,29971,30300,30308,30297,30288,30291,30295,30298,30374,30397,30444,30658,30650,30975,30988,30995,30996,30985,30992,30994,30993,31149,31148,31327,31772,31785,31769,31776,31775,31789,31773,31782,31784,31778,31781,31792,32348,32336,32342,32355,32344,32354,32351,32337,32352,32343,32339,32693,32691,32759,32760,32885,33233,33234,33232,33375,33374,34228,34246,34240,34243,34242,34227,34229,34237,34247,34244,34239,34251,34254,34248,34245,34225,34230,34258,34340,34232,34231,34238,34409,34791,34790,34786,34779,34795,34794,34789,34783,34803,34788,34772,34780,34771,34797,34776,34787,34724,34775,34777,34817,34804,34792,34781,35155,35147,35151,35148,35142,35152,35153,35145,35626,35623,35619,35635,35632,35637,35655,35631,35644,35646,35633,35621,35639,35622,35638,35630,35620,35643,35645,35642,35906,35957,35993,35992,35991,36094,36100,36098,36096,36444,36450,36448,36439,36438,36446,36453,36455,36443,36442,36449,36445,36457,36436,36678,36679,36680,36683,37160,37178,37179,37182,37288,37285,37287,37295,37290,37813,37772,37778,37815,37787,37789,37769,37799,37774,37802,37790,37798,37781,37768,37785,37791,37773,37809,37777,37810,37796,37800,37812,37795,37797,38354,38355,38353,38579,38615,38618,24002,38623,38616,38621,38691,38690,38693,38828,38830,38824,38827,38820,38826,38818,38821,38871,38873,38870,38872,38906,38992,38993,38994,39096,39233,39228,39226,39439,39435,39433,39437,39428,39441,39434,39429,39431,39430,39616,39644,39688,39684,39685,39721,39733,39754,39756,39755,39879,39878,39875,39871,39873,39861,39864,39891,39862,39876,39865,39869,40284,40275,40271,40266,40283,40267,40281,40278,40268,40279,40274,40276,40287,40280,40282,40590,40588,40671,40705,40704,40726,40741,40747,40746,40745,40744,40780,40789,20788,20789,21142,21239,21428,22187,22189,22182,22183,22186,22188,22746,22749,22747,22802,23357,23358,23359,24003,24176,24511,25083,25863,25872,25869,25865,25868,25870,25988,26078,26077,26334,27367,27360,27340,27345,27353,27339,27359,27356,27344,27371,27343,27341,27358,27488,27568,27660,28697,28711,28704,28694,28715,28705,28706,28707,28713,28695,28708,28700,28714,29196,29194,29191,29186,29189,29349,29350,29348,29347,29345,29899,29893,29879,29891,29974,30304,30665,30666,30660,30705,31005,31003,31009,31004,30999,31006,31152,31335,31336,31795,31804,31801,31788,31803,31980,31978,32374,32373,32376,32368,32375,32367,32378,32370,32372,32360,32587,32586,32643,32646,32695,32765,32766,32888,33239,33237,33380,33377,33379,34283,34289,34285,34265,34273,34280,34266,34263,34284,34290,34296,34264,34271,34275,34268,34257,34288,34278,34287,34270,34274,34816,34810,34819,34806,34807,34825,34828,34827,34822,34812,34824,34815,34826,34818,35170,35162,35163,35159,35169,35164,35160,35165,35161,35208,35255,35254,35318,35664,35656,35658,35648,35667,35670,35668,35659,35669,35665,35650,35666,35671,35907,35959,35958,35994,36102,36103,36105,36268,36266,36269,36267,36461,36472,36467,36458,36463,36475,36546,36690,36689,36687,36688,36691,36788,37184,37183,37296,37293,37854,37831,37839,37826,37850,37840,37881,37868,37836,37849,37801,37862,37834,37844,37870,37859,37845,37828,37838,37824,37842,37863,38269,38362,38363,38625,38697,38699,38700,38696,38694,38835,38839,38838,38877,38878,38879,39004,39001,39005,38999,39103,39101,39099,39102,39240,39239,39235,39334,39335,39450,39445,39461,39453,39460,39451,39458,39456,39463,39459,39454,39452,39444,39618,39691,39690,39694,39692,39735,39914,39915,39904,39902,39908,39910,39906,39920,39892,39895,39916,39900,39897,39909,39893,39905,39898,40311,40321,40330,40324,40328,40305,40320,40312,40326,40331,40332,40317,40299,40308,40309,40304,40297,40325,40307,40315,40322,40303,40313,40319,40327,40296,40596,40593,40640,40700,40749,40768,40769,40781,40790,40791,40792,21303,22194,22197,22195,22755,23365,24006,24007,24302,24303,24512,24513,25081,25879,25878,25877,25875,26079,26344,26339,26340,27379,27376,27370,27368,27385,27377,27374,27375,28732,28725,28719,28727,28724,28721,28738,28728,28735,28730,28729,28736,28731,28723,28737,29203,29204,29352,29565,29564,29882,30379,30378,30398,30445,30668,30670,30671,30669,30706,31013,31011,31015,31016,31012,31017,31154,31342,31340,31341,31479,31817,31816,31818,31815,31813,31982,32379,32382,32385,32384,32698,32767,32889,33243,33241,33291,33384,33385,34338,34303,34305,34302,34331,34304,34294,34308,34313,34309,34316,34301,34841,34832,34833,34839,34835,34838,35171,35174,35257,35319,35680,35690,35677,35688,35683,35685,35687,35693,36270,36486,36488,36484,36697,36694,36695,36693,36696,36698,37005,37187,37185,37303,37301,37298,37299,37899,37907,37883,37920,37903,37908,37886,37909,37904,37928,37913,37901,37877,37888,37879,37895,37902,37910,37906,37882,37897,37880,37898,37887,37884,37900,37878,37905,37894,38366,38368,38367,38702,38703,38841,38843,38909,38910,39008,39010,39011,39007,39105,39106,39248,39246,39257,39244,39243,39251,39474,39476,39473,39468,39466,39478,39465,39470,39480,39469,39623,39626,39622,39696,39698,39697,39947,39944,39927,39941,39954,39928,40000,39943,39950,39942,39959,39956,39945,40351,40345,40356,40349,40338,40344,40336,40347,40352,40340,40348,40362,40343,40353,40346,40354,40360,40350,40355,40383,40361,40342,40358,40359,40601,40603,40602,40677,40676,40679,40678,40752,40750,40795,40800,40798,40797,40793,40849,20794,20793,21144,21143,22211,22205,22206,23368,23367,24011,24015,24305,25085,25883,27394,27388,27395,27384,27392,28739,28740,28746,28744,28745,28741,28742,29213,29210,29209,29566,29975,30314,30672,31021,31025,31023,31828,31827,31986,32394,32391,32392,32395,32390,32397,32589,32699,32816,33245,34328,34346,34342,34335,34339,34332,34329,34343,34350,34337,34336,34345,34334,34341,34857,34845,34843,34848,34852,34844,34859,34890,35181,35177,35182,35179,35322,35705,35704,35653,35706,35707,36112,36116,36271,36494,36492,36702,36699,36701,37190,37188,37189,37305,37951,37947,37942,37929,37949,37948,37936,37945,37930,37943,37932,37952,37937,38373,38372,38371,38709,38714,38847,38881,39012,39113,39110,39104,39256,39254,39481,39485,39494,39492,39490,39489,39482,39487,39629,39701,39703,39704,39702,39738,39762,39979,39965,39964,39980,39971,39976,39977,39972,39969,40375,40374,40380,40385,40391,40394,40399,40382,40389,40387,40379,40373,40398,40377,40378,40364,40392,40369,40365,40396,40371,40397,40370,40570,40604,40683,40686,40685,40731,40728,40730,40753,40782,40805,40804,40850,20153,22214,22213,22219,22897,23371,23372,24021,24017,24306,25889,25888,25894,25890,27403,27400,27401,27661,28757,28758,28759,28754,29214,29215,29353,29567,29912,29909,29913,29911,30317,30381,31029,31156,31344,31345,31831,31836,31833,31835,31834,31988,31985,32401,32591,32647,33246,33387,34356,34357,34355,34348,34354,34358,34860,34856,34854,34858,34853,35185,35263,35262,35323,35710,35716,35714,35718,35717,35711,36117,36501,36500,36506,36498,36496,36502,36503,36704,36706,37191,37964,37968,37962,37963,37967,37959,37957,37960,37961,37958,38719,38883,39018,39017,39115,39252,39259,39502,39507,39508,39500,39503,39496,39498,39497,39506,39504,39632,39705,39723,39739,39766,39765,40006,40008,39999,40004,39993,39987,40001,39996,39991,39988,39986,39997,39990,40411,40402,40414,40410,40395,40400,40412,40401,40415,40425,40409,40408,40406,40437,40405,40413,40630,40688,40757,40755,40754,40770,40811,40853,40866,20797,21145,22760,22759,22898,23373,24024,34863,24399,25089,25091,25092,25897,25893,26006,26347,27409,27410,27407,27594,28763,28762,29218,29570,29569,29571,30320,30676,31847,31846,32405,33388,34362,34368,34361,34364,34353,34363,34366,34864,34866,34862,34867,35190,35188,35187,35326,35724,35726,35723,35720,35909,36121,36504,36708,36707,37308,37986,37973,37981,37975,37982,38852,38853,38912,39510,39513,39710,39711,39712,40018,40024,40016,40010,40013,40011,40021,40025,40012,40014,40443,40439,40431,40419,40427,40440,40420,40438,40417,40430,40422,40434,40432,40418,40428,40436,40435,40424,40429,40642,40656,40690,40691,40710,40732,40760,40759,40758,40771,40783,40817,40816,40814,40815,22227,22221,23374,23661,25901,26349,26350,27411,28767,28769,28765,28768,29219,29915,29925,30677,31032,31159,31158,31850,32407,32649,33389,34371,34872,34871,34869,34891,35732,35733,36510,36511,36512,36509,37310,37309,37314,37995,37992,37993,38629,38726,38723,38727,38855,38885,39518,39637,39769,40035,40039,40038,40034,40030,40032,40450,40446,40455,40451,40454,40453,40448,40449,40457,40447,40445,40452,40608,40734,40774,40820,40821,40822,22228,25902,26040,27416,27417,27415,27418,28770,29222,29354,30680,30681,31033,31849,31851,31990,32410,32408,32411,32409,33248,33249,34374,34375,34376,35193,35194,35196,35195,35327,35736,35737,36517,36516,36515,37998,37997,37999,38001,38003,38729,39026,39263,40040,40046,40045,40459,40461,40464,40463,40466,40465,40609,40693,40713,40775,40824,40827,40826,40825,22302,28774,31855,34876,36274,36518,37315,38004,38008,38006,38005,39520,40052,40051,40049,40053,40468,40467,40694,40714,40868,28776,28773,31991,34410,34878,34877,34879,35742,35996,36521,36553,38731,39027,39028,39116,39265,39339,39524,39526,39527,39716,40469,40471,40776,25095,27422,29223,34380,36520,38018,38016,38017,39529,39528,39726,40473,29225,34379,35743,38019,40057,40631,30325,39531,40058,40477,28777,28778,40612,40830,40777,40856,30849,37561,35023,22715,24658,31911,23290,9556,9574,9559,9568,9580,9571,9562,9577,9565,9554,9572,9557,9566,9578,9569,9560,9575,9563,9555,9573,9558,9567,9579,9570,9561,9576,9564,9553,9552,9581,9582,9584,9583,65517,132423,37595,132575,147397,34124,17077,29679,20917,13897,149826,166372,37700,137691,33518,146632,30780,26436,25311,149811,166314,131744,158643,135941,20395,140525,20488,159017,162436,144896,150193,140563,20521,131966,24484,131968,131911,28379,132127,20605,20737,13434,20750,39020,14147,33814,149924,132231,20832,144308,20842,134143,139516,131813,140592,132494,143923,137603,23426,34685,132531,146585,20914,20920,40244,20937,20943,20945,15580,20947,150182,20915,20962,21314,20973,33741,26942,145197,24443,21003,21030,21052,21173,21079,21140,21177,21189,31765,34114,21216,34317,158483,21253,166622,21833,28377,147328,133460,147436,21299,21316,134114,27851,136998,26651,29653,24650,16042,14540,136936,29149,17570,21357,21364,165547,21374,21375,136598,136723,30694,21395,166555,21408,21419,21422,29607,153458,16217,29596,21441,21445,27721,20041,22526,21465,15019,134031,21472,147435,142755,21494,134263,21523,28793,21803,26199,27995,21613,158547,134516,21853,21647,21668,18342,136973,134877,15796,134477,166332,140952,21831,19693,21551,29719,21894,21929,22021,137431,147514,17746,148533,26291,135348,22071,26317,144010,26276,26285,22093,22095,30961,22257,38791,21502,22272,22255,22253,166758,13859,135759,22342,147877,27758,28811,22338,14001,158846,22502,136214,22531,136276,148323,22566,150517,22620,22698,13665,22752,22748,135740,22779,23551,22339,172368,148088,37843,13729,22815,26790,14019,28249,136766,23076,21843,136850,34053,22985,134478,158849,159018,137180,23001,137211,137138,159142,28017,137256,136917,23033,159301,23211,23139,14054,149929,23159,14088,23190,29797,23251,159649,140628,15749,137489,14130,136888,24195,21200,23414,25992,23420,162318,16388,18525,131588,23509,24928,137780,154060,132517,23539,23453,19728,23557,138052,23571,29646,23572,138405,158504,23625,18653,23685,23785,23791,23947,138745,138807,23824,23832,23878,138916,23738,24023,33532,14381,149761,139337,139635,33415,14390,15298,24110,27274,24181,24186,148668,134355,21414,20151,24272,21416,137073,24073,24308,164994,24313,24315,14496,24316,26686,37915,24333,131521,194708,15070,18606,135994,24378,157832,140240,24408,140401,24419,38845,159342,24434,37696,166454,24487,23990,15711,152144,139114,159992,140904,37334,131742,166441,24625,26245,137335,14691,15815,13881,22416,141236,31089,15936,24734,24740,24755,149890,149903,162387,29860,20705,23200,24932,33828,24898,194726,159442,24961,20980,132694,24967,23466,147383,141407,25043,166813,170333,25040,14642,141696,141505,24611,24924,25886,25483,131352,25285,137072,25301,142861,25452,149983,14871,25656,25592,136078,137212,25744,28554,142902,38932,147596,153373,25825,25829,38011,14950,25658,14935,25933,28438,150056,150051,25989,25965,25951,143486,26037,149824,19255,26065,16600,137257,26080,26083,24543,144384,26136,143863,143864,26180,143780,143781,26187,134773,26215,152038,26227,26228,138813,143921,165364,143816,152339,30661,141559,39332,26370,148380,150049,15147,27130,145346,26462,26471,26466,147917,168173,26583,17641,26658,28240,37436,26625,144358,159136,26717,144495,27105,27147,166623,26995,26819,144845,26881,26880,15666,14849,144956,15232,26540,26977,166474,17148,26934,27032,15265,132041,33635,20624,27129,144985,139562,27205,145155,27293,15347,26545,27336,168348,15373,27421,133411,24798,27445,27508,141261,28341,146139,132021,137560,14144,21537,146266,27617,147196,27612,27703,140427,149745,158545,27738,33318,27769,146876,17605,146877,147876,149772,149760,146633,14053,15595,134450,39811,143865,140433,32655,26679,159013,159137,159211,28054,27996,28284,28420,149887,147589,159346,34099,159604,20935,27804,28189,33838,166689,28207,146991,29779,147330,31180,28239,23185,143435,28664,14093,28573,146992,28410,136343,147517,17749,37872,28484,28508,15694,28532,168304,15675,28575,147780,28627,147601,147797,147513,147440,147380,147775,20959,147798,147799,147776,156125,28747,28798,28839,28801,28876,28885,28886,28895,16644,15848,29108,29078,148087,28971,28997,23176,29002,29038,23708,148325,29007,37730,148161,28972,148570,150055,150050,29114,166888,28861,29198,37954,29205,22801,37955,29220,37697,153093,29230,29248,149876,26813,29269,29271,15957,143428,26637,28477,29314,29482,29483,149539,165931,18669,165892,29480,29486,29647,29610,134202,158254,29641,29769,147938,136935,150052,26147,14021,149943,149901,150011,29687,29717,26883,150054,29753,132547,16087,29788,141485,29792,167602,29767,29668,29814,33721,29804,14128,29812,37873,27180,29826,18771,150156,147807,150137,166799,23366,166915,137374,29896,137608,29966,29929,29982,167641,137803,23511,167596,37765,30029,30026,30055,30062,151426,16132,150803,30094,29789,30110,30132,30210,30252,30289,30287,30319,30326,156661,30352,33263,14328,157969,157966,30369,30373,30391,30412,159647,33890,151709,151933,138780,30494,30502,30528,25775,152096,30552,144044,30639,166244,166248,136897,30708,30729,136054,150034,26826,30895,30919,30931,38565,31022,153056,30935,31028,30897,161292,36792,34948,166699,155779,140828,31110,35072,26882,31104,153687,31133,162617,31036,31145,28202,160038,16040,31174,168205,31188],\n \"euc-kr\":[44034,44035,44037,44038,44043,44044,44045,44046,44047,44056,44062,44063,44065,44066,44067,44069,44070,44071,44072,44073,44074,44075,44078,44082,44083,44084,null,null,null,null,null,null,44085,44086,44087,44090,44091,44093,44094,44095,44097,44098,44099,44100,44101,44102,44103,44104,44105,44106,44108,44110,44111,44112,44113,44114,44115,44117,null,null,null,null,null,null,44118,44119,44121,44122,44123,44125,44126,44127,44128,44129,44130,44131,44132,44133,44134,44135,44136,44137,44138,44139,44140,44141,44142,44143,44146,44147,44149,44150,44153,44155,44156,44157,44158,44159,44162,44167,44168,44173,44174,44175,44177,44178,44179,44181,44182,44183,44184,44185,44186,44187,44190,44194,44195,44196,44197,44198,44199,44203,44205,44206,44209,44210,44211,44212,44213,44214,44215,44218,44222,44223,44224,44226,44227,44229,44230,44231,44233,44234,44235,44237,44238,44239,44240,44241,44242,44243,44244,44246,44248,44249,44250,44251,44252,44253,44254,44255,44258,44259,44261,44262,44265,44267,44269,44270,44274,44276,44279,44280,44281,44282,44283,44286,44287,44289,44290,44291,44293,44295,44296,44297,44298,44299,44302,44304,44306,44307,44308,44309,44310,44311,44313,44314,44315,44317,44318,44319,44321,44322,44323,44324,44325,44326,44327,44328,44330,44331,44334,44335,44336,44337,44338,44339,null,null,null,null,null,null,44342,44343,44345,44346,44347,44349,44350,44351,44352,44353,44354,44355,44358,44360,44362,44363,44364,44365,44366,44367,44369,44370,44371,44373,44374,44375,null,null,null,null,null,null,44377,44378,44379,44380,44381,44382,44383,44384,44386,44388,44389,44390,44391,44392,44393,44394,44395,44398,44399,44401,44402,44407,44408,44409,44410,44414,44416,44419,44420,44421,44422,44423,44426,44427,44429,44430,44431,44433,44434,44435,44436,44437,44438,44439,44440,44441,44442,44443,44446,44447,44448,44449,44450,44451,44453,44454,44455,44456,44457,44458,44459,44460,44461,44462,44463,44464,44465,44466,44467,44468,44469,44470,44472,44473,44474,44475,44476,44477,44478,44479,44482,44483,44485,44486,44487,44489,44490,44491,44492,44493,44494,44495,44498,44500,44501,44502,44503,44504,44505,44506,44507,44509,44510,44511,44513,44514,44515,44517,44518,44519,44520,44521,44522,44523,44524,44525,44526,44527,44528,44529,44530,44531,44532,44533,44534,44535,44538,44539,44541,44542,44546,44547,44548,44549,44550,44551,44554,44556,44558,44559,44560,44561,44562,44563,44565,44566,44567,44568,44569,44570,44571,44572,null,null,null,null,null,null,44573,44574,44575,44576,44577,44578,44579,44580,44581,44582,44583,44584,44585,44586,44587,44588,44589,44590,44591,44594,44595,44597,44598,44601,44603,44604,null,null,null,null,null,null,44605,44606,44607,44610,44612,44615,44616,44617,44619,44623,44625,44626,44627,44629,44631,44632,44633,44634,44635,44638,44642,44643,44644,44646,44647,44650,44651,44653,44654,44655,44657,44658,44659,44660,44661,44662,44663,44666,44670,44671,44672,44673,44674,44675,44678,44679,44680,44681,44682,44683,44685,44686,44687,44688,44689,44690,44691,44692,44693,44694,44695,44696,44697,44698,44699,44700,44701,44702,44703,44704,44705,44706,44707,44708,44709,44710,44711,44712,44713,44714,44715,44716,44717,44718,44719,44720,44721,44722,44723,44724,44725,44726,44727,44728,44729,44730,44731,44735,44737,44738,44739,44741,44742,44743,44744,44745,44746,44747,44750,44754,44755,44756,44757,44758,44759,44762,44763,44765,44766,44767,44768,44769,44770,44771,44772,44773,44774,44775,44777,44778,44780,44782,44783,44784,44785,44786,44787,44789,44790,44791,44793,44794,44795,44797,44798,44799,44800,44801,44802,44803,44804,44805,null,null,null,null,null,null,44806,44809,44810,44811,44812,44814,44815,44817,44818,44819,44820,44821,44822,44823,44824,44825,44826,44827,44828,44829,44830,44831,44832,44833,44834,44835,null,null,null,null,null,null,44836,44837,44838,44839,44840,44841,44842,44843,44846,44847,44849,44851,44853,44854,44855,44856,44857,44858,44859,44862,44864,44868,44869,44870,44871,44874,44875,44876,44877,44878,44879,44881,44882,44883,44884,44885,44886,44887,44888,44889,44890,44891,44894,44895,44896,44897,44898,44899,44902,44903,44904,44905,44906,44907,44908,44909,44910,44911,44912,44913,44914,44915,44916,44917,44918,44919,44920,44922,44923,44924,44925,44926,44927,44929,44930,44931,44933,44934,44935,44937,44938,44939,44940,44941,44942,44943,44946,44947,44948,44950,44951,44952,44953,44954,44955,44957,44958,44959,44960,44961,44962,44963,44964,44965,44966,44967,44968,44969,44970,44971,44972,44973,44974,44975,44976,44977,44978,44979,44980,44981,44982,44983,44986,44987,44989,44990,44991,44993,44994,44995,44996,44997,44998,45002,45004,45007,45008,45009,45010,45011,45013,45014,45015,45016,45017,45018,45019,45021,45022,45023,45024,45025,null,null,null,null,null,null,45026,45027,45028,45029,45030,45031,45034,45035,45036,45037,45038,45039,45042,45043,45045,45046,45047,45049,45050,45051,45052,45053,45054,45055,45058,45059,null,null,null,null,null,null,45061,45062,45063,45064,45065,45066,45067,45069,45070,45071,45073,45074,45075,45077,45078,45079,45080,45081,45082,45083,45086,45087,45088,45089,45090,45091,45092,45093,45094,45095,45097,45098,45099,45100,45101,45102,45103,45104,45105,45106,45107,45108,45109,45110,45111,45112,45113,45114,45115,45116,45117,45118,45119,45120,45121,45122,45123,45126,45127,45129,45131,45133,45135,45136,45137,45138,45142,45144,45146,45147,45148,45150,45151,45152,45153,45154,45155,45156,45157,45158,45159,45160,45161,45162,45163,45164,45165,45166,45167,45168,45169,45170,45171,45172,45173,45174,45175,45176,45177,45178,45179,45182,45183,45185,45186,45187,45189,45190,45191,45192,45193,45194,45195,45198,45200,45202,45203,45204,45205,45206,45207,45211,45213,45214,45219,45220,45221,45222,45223,45226,45232,45234,45238,45239,45241,45242,45243,45245,45246,45247,45248,45249,45250,45251,45254,45258,45259,45260,45261,45262,45263,45266,null,null,null,null,null,null,45267,45269,45270,45271,45273,45274,45275,45276,45277,45278,45279,45281,45282,45283,45284,45286,45287,45288,45289,45290,45291,45292,45293,45294,45295,45296,null,null,null,null,null,null,45297,45298,45299,45300,45301,45302,45303,45304,45305,45306,45307,45308,45309,45310,45311,45312,45313,45314,45315,45316,45317,45318,45319,45322,45325,45326,45327,45329,45332,45333,45334,45335,45338,45342,45343,45344,45345,45346,45350,45351,45353,45354,45355,45357,45358,45359,45360,45361,45362,45363,45366,45370,45371,45372,45373,45374,45375,45378,45379,45381,45382,45383,45385,45386,45387,45388,45389,45390,45391,45394,45395,45398,45399,45401,45402,45403,45405,45406,45407,45409,45410,45411,45412,45413,45414,45415,45416,45417,45418,45419,45420,45421,45422,45423,45424,45425,45426,45427,45428,45429,45430,45431,45434,45435,45437,45438,45439,45441,45443,45444,45445,45446,45447,45450,45452,45454,45455,45456,45457,45461,45462,45463,45465,45466,45467,45469,45470,45471,45472,45473,45474,45475,45476,45477,45478,45479,45481,45482,45483,45484,45485,45486,45487,45488,45489,45490,45491,45492,45493,45494,45495,45496,null,null,null,null,null,null,45497,45498,45499,45500,45501,45502,45503,45504,45505,45506,45507,45508,45509,45510,45511,45512,45513,45514,45515,45517,45518,45519,45521,45522,45523,45525,null,null,null,null,null,null,45526,45527,45528,45529,45530,45531,45534,45536,45537,45538,45539,45540,45541,45542,45543,45546,45547,45549,45550,45551,45553,45554,45555,45556,45557,45558,45559,45560,45562,45564,45566,45567,45568,45569,45570,45571,45574,45575,45577,45578,45581,45582,45583,45584,45585,45586,45587,45590,45592,45594,45595,45596,45597,45598,45599,45601,45602,45603,45604,45605,45606,45607,45608,45609,45610,45611,45612,45613,45614,45615,45616,45617,45618,45619,45621,45622,45623,45624,45625,45626,45627,45629,45630,45631,45632,45633,45634,45635,45636,45637,45638,45639,45640,45641,45642,45643,45644,45645,45646,45647,45648,45649,45650,45651,45652,45653,45654,45655,45657,45658,45659,45661,45662,45663,45665,45666,45667,45668,45669,45670,45671,45674,45675,45676,45677,45678,45679,45680,45681,45682,45683,45686,45687,45688,45689,45690,45691,45693,45694,45695,45696,45697,45698,45699,45702,45703,45704,45706,45707,45708,45709,45710,null,null,null,null,null,null,45711,45714,45715,45717,45718,45719,45723,45724,45725,45726,45727,45730,45732,45735,45736,45737,45739,45741,45742,45743,45745,45746,45747,45749,45750,45751,null,null,null,null,null,null,45752,45753,45754,45755,45756,45757,45758,45759,45760,45761,45762,45763,45764,45765,45766,45767,45770,45771,45773,45774,45775,45777,45779,45780,45781,45782,45783,45786,45788,45790,45791,45792,45793,45795,45799,45801,45802,45808,45809,45810,45814,45820,45821,45822,45826,45827,45829,45830,45831,45833,45834,45835,45836,45837,45838,45839,45842,45846,45847,45848,45849,45850,45851,45853,45854,45855,45856,45857,45858,45859,45860,45861,45862,45863,45864,45865,45866,45867,45868,45869,45870,45871,45872,45873,45874,45875,45876,45877,45878,45879,45880,45881,45882,45883,45884,45885,45886,45887,45888,45889,45890,45891,45892,45893,45894,45895,45896,45897,45898,45899,45900,45901,45902,45903,45904,45905,45906,45907,45911,45913,45914,45917,45920,45921,45922,45923,45926,45928,45930,45932,45933,45935,45938,45939,45941,45942,45943,45945,45946,45947,45948,45949,45950,45951,45954,45958,45959,45960,45961,45962,45963,45965,null,null,null,null,null,null,45966,45967,45969,45970,45971,45973,45974,45975,45976,45977,45978,45979,45980,45981,45982,45983,45986,45987,45988,45989,45990,45991,45993,45994,45995,45997,null,null,null,null,null,null,45998,45999,46000,46001,46002,46003,46004,46005,46006,46007,46008,46009,46010,46011,46012,46013,46014,46015,46016,46017,46018,46019,46022,46023,46025,46026,46029,46031,46033,46034,46035,46038,46040,46042,46044,46046,46047,46049,46050,46051,46053,46054,46055,46057,46058,46059,46060,46061,46062,46063,46064,46065,46066,46067,46068,46069,46070,46071,46072,46073,46074,46075,46077,46078,46079,46080,46081,46082,46083,46084,46085,46086,46087,46088,46089,46090,46091,46092,46093,46094,46095,46097,46098,46099,46100,46101,46102,46103,46105,46106,46107,46109,46110,46111,46113,46114,46115,46116,46117,46118,46119,46122,46124,46125,46126,46127,46128,46129,46130,46131,46133,46134,46135,46136,46137,46138,46139,46140,46141,46142,46143,46144,46145,46146,46147,46148,46149,46150,46151,46152,46153,46154,46155,46156,46157,46158,46159,46162,46163,46165,46166,46167,46169,46170,46171,46172,46173,46174,46175,46178,46180,46182,null,null,null,null,null,null,46183,46184,46185,46186,46187,46189,46190,46191,46192,46193,46194,46195,46196,46197,46198,46199,46200,46201,46202,46203,46204,46205,46206,46207,46209,46210,null,null,null,null,null,null,46211,46212,46213,46214,46215,46217,46218,46219,46220,46221,46222,46223,46224,46225,46226,46227,46228,46229,46230,46231,46232,46233,46234,46235,46236,46238,46239,46240,46241,46242,46243,46245,46246,46247,46249,46250,46251,46253,46254,46255,46256,46257,46258,46259,46260,46262,46264,46266,46267,46268,46269,46270,46271,46273,46274,46275,46277,46278,46279,46281,46282,46283,46284,46285,46286,46287,46289,46290,46291,46292,46294,46295,46296,46297,46298,46299,46302,46303,46305,46306,46309,46311,46312,46313,46314,46315,46318,46320,46322,46323,46324,46325,46326,46327,46329,46330,46331,46332,46333,46334,46335,46336,46337,46338,46339,46340,46341,46342,46343,46344,46345,46346,46347,46348,46349,46350,46351,46352,46353,46354,46355,46358,46359,46361,46362,46365,46366,46367,46368,46369,46370,46371,46374,46379,46380,46381,46382,46383,46386,46387,46389,46390,46391,46393,46394,46395,46396,46397,46398,46399,46402,46406,null,null,null,null,null,null,46407,46408,46409,46410,46414,46415,46417,46418,46419,46421,46422,46423,46424,46425,46426,46427,46430,46434,46435,46436,46437,46438,46439,46440,46441,46442,null,null,null,null,null,null,46443,46444,46445,46446,46447,46448,46449,46450,46451,46452,46453,46454,46455,46456,46457,46458,46459,46460,46461,46462,46463,46464,46465,46466,46467,46468,46469,46470,46471,46472,46473,46474,46475,46476,46477,46478,46479,46480,46481,46482,46483,46484,46485,46486,46487,46488,46489,46490,46491,46492,46493,46494,46495,46498,46499,46501,46502,46503,46505,46508,46509,46510,46511,46514,46518,46519,46520,46521,46522,46526,46527,46529,46530,46531,46533,46534,46535,46536,46537,46538,46539,46542,46546,46547,46548,46549,46550,46551,46553,46554,46555,46556,46557,46558,46559,46560,46561,46562,46563,46564,46565,46566,46567,46568,46569,46570,46571,46573,46574,46575,46576,46577,46578,46579,46580,46581,46582,46583,46584,46585,46586,46587,46588,46589,46590,46591,46592,46593,46594,46595,46596,46597,46598,46599,46600,46601,46602,46603,46604,46605,46606,46607,46610,46611,46613,46614,46615,46617,46618,46619,46620,46621,null,null,null,null,null,null,46622,46623,46624,46625,46626,46627,46628,46630,46631,46632,46633,46634,46635,46637,46638,46639,46640,46641,46642,46643,46645,46646,46647,46648,46649,46650,null,null,null,null,null,null,46651,46652,46653,46654,46655,46656,46657,46658,46659,46660,46661,46662,46663,46665,46666,46667,46668,46669,46670,46671,46672,46673,46674,46675,46676,46677,46678,46679,46680,46681,46682,46683,46684,46685,46686,46687,46688,46689,46690,46691,46693,46694,46695,46697,46698,46699,46700,46701,46702,46703,46704,46705,46706,46707,46708,46709,46710,46711,46712,46713,46714,46715,46716,46717,46718,46719,46720,46721,46722,46723,46724,46725,46726,46727,46728,46729,46730,46731,46732,46733,46734,46735,46736,46737,46738,46739,46740,46741,46742,46743,46744,46745,46746,46747,46750,46751,46753,46754,46755,46757,46758,46759,46760,46761,46762,46765,46766,46767,46768,46770,46771,46772,46773,46774,46775,46776,46777,46778,46779,46780,46781,46782,46783,46784,46785,46786,46787,46788,46789,46790,46791,46792,46793,46794,46795,46796,46797,46798,46799,46800,46801,46802,46803,46805,46806,46807,46808,46809,46810,46811,46812,46813,null,null,null,null,null,null,46814,46815,46816,46817,46818,46819,46820,46821,46822,46823,46824,46825,46826,46827,46828,46829,46830,46831,46833,46834,46835,46837,46838,46839,46841,46842,null,null,null,null,null,null,46843,46844,46845,46846,46847,46850,46851,46852,46854,46855,46856,46857,46858,46859,46860,46861,46862,46863,46864,46865,46866,46867,46868,46869,46870,46871,46872,46873,46874,46875,46876,46877,46878,46879,46880,46881,46882,46883,46884,46885,46886,46887,46890,46891,46893,46894,46897,46898,46899,46900,46901,46902,46903,46906,46908,46909,46910,46911,46912,46913,46914,46915,46917,46918,46919,46921,46922,46923,46925,46926,46927,46928,46929,46930,46931,46934,46935,46936,46937,46938,46939,46940,46941,46942,46943,46945,46946,46947,46949,46950,46951,46953,46954,46955,46956,46957,46958,46959,46962,46964,46966,46967,46968,46969,46970,46971,46974,46975,46977,46978,46979,46981,46982,46983,46984,46985,46986,46987,46990,46995,46996,46997,47002,47003,47005,47006,47007,47009,47010,47011,47012,47013,47014,47015,47018,47022,47023,47024,47025,47026,47027,47030,47031,47033,47034,47035,47036,47037,47038,47039,47040,47041,null,null,null,null,null,null,47042,47043,47044,47045,47046,47048,47050,47051,47052,47053,47054,47055,47056,47057,47058,47059,47060,47061,47062,47063,47064,47065,47066,47067,47068,47069,null,null,null,null,null,null,47070,47071,47072,47073,47074,47075,47076,47077,47078,47079,47080,47081,47082,47083,47086,47087,47089,47090,47091,47093,47094,47095,47096,47097,47098,47099,47102,47106,47107,47108,47109,47110,47114,47115,47117,47118,47119,47121,47122,47123,47124,47125,47126,47127,47130,47132,47134,47135,47136,47137,47138,47139,47142,47143,47145,47146,47147,47149,47150,47151,47152,47153,47154,47155,47158,47162,47163,47164,47165,47166,47167,47169,47170,47171,47173,47174,47175,47176,47177,47178,47179,47180,47181,47182,47183,47184,47186,47188,47189,47190,47191,47192,47193,47194,47195,47198,47199,47201,47202,47203,47205,47206,47207,47208,47209,47210,47211,47214,47216,47218,47219,47220,47221,47222,47223,47225,47226,47227,47229,47230,47231,47232,47233,47234,47235,47236,47237,47238,47239,47240,47241,47242,47243,47244,47246,47247,47248,47249,47250,47251,47252,47253,47254,47255,47256,47257,47258,47259,47260,47261,47262,47263,null,null,null,null,null,null,47264,47265,47266,47267,47268,47269,47270,47271,47273,47274,47275,47276,47277,47278,47279,47281,47282,47283,47285,47286,47287,47289,47290,47291,47292,47293,null,null,null,null,null,null,47294,47295,47298,47300,47302,47303,47304,47305,47306,47307,47309,47310,47311,47313,47314,47315,47317,47318,47319,47320,47321,47322,47323,47324,47326,47328,47330,47331,47332,47333,47334,47335,47338,47339,47341,47342,47343,47345,47346,47347,47348,47349,47350,47351,47354,47356,47358,47359,47360,47361,47362,47363,47365,47366,47367,47368,47369,47370,47371,47372,47373,47374,47375,47376,47377,47378,47379,47380,47381,47382,47383,47385,47386,47387,47388,47389,47390,47391,47393,47394,47395,47396,47397,47398,47399,47400,47401,47402,47403,47404,47405,47406,47407,47408,47409,47410,47411,47412,47413,47414,47415,47416,47417,47418,47419,47422,47423,47425,47426,47427,47429,47430,47431,47432,47433,47434,47435,47437,47438,47440,47442,47443,47444,47445,47446,47447,47450,47451,47453,47454,47455,47457,47458,47459,47460,47461,47462,47463,47466,47468,47470,47471,47472,47473,47474,47475,47478,47479,47481,47482,47483,47485,null,null,null,null,null,null,47486,47487,47488,47489,47490,47491,47494,47496,47499,47500,47503,47504,47505,47506,47507,47508,47509,47510,47511,47512,47513,47514,47515,47516,47517,47518,null,null,null,null,null,null,47519,47520,47521,47522,47523,47524,47525,47526,47527,47528,47529,47530,47531,47534,47535,47537,47538,47539,47541,47542,47543,47544,47545,47546,47547,47550,47552,47554,47555,47556,47557,47558,47559,47562,47563,47565,47571,47572,47573,47574,47575,47578,47580,47583,47584,47586,47590,47591,47593,47594,47595,47597,47598,47599,47600,47601,47602,47603,47606,47611,47612,47613,47614,47615,47618,47619,47620,47621,47622,47623,47625,47626,47627,47628,47629,47630,47631,47632,47633,47634,47635,47636,47638,47639,47640,47641,47642,47643,47644,47645,47646,47647,47648,47649,47650,47651,47652,47653,47654,47655,47656,47657,47658,47659,47660,47661,47662,47663,47664,47665,47666,47667,47668,47669,47670,47671,47674,47675,47677,47678,47679,47681,47683,47684,47685,47686,47687,47690,47692,47695,47696,47697,47698,47702,47703,47705,47706,47707,47709,47710,47711,47712,47713,47714,47715,47718,47722,47723,47724,47725,47726,47727,null,null,null,null,null,null,47730,47731,47733,47734,47735,47737,47738,47739,47740,47741,47742,47743,47744,47745,47746,47750,47752,47753,47754,47755,47757,47758,47759,47760,47761,47762,null,null,null,null,null,null,47763,47764,47765,47766,47767,47768,47769,47770,47771,47772,47773,47774,47775,47776,47777,47778,47779,47780,47781,47782,47783,47786,47789,47790,47791,47793,47795,47796,47797,47798,47799,47802,47804,47806,47807,47808,47809,47810,47811,47813,47814,47815,47817,47818,47819,47820,47821,47822,47823,47824,47825,47826,47827,47828,47829,47830,47831,47834,47835,47836,47837,47838,47839,47840,47841,47842,47843,47844,47845,47846,47847,47848,47849,47850,47851,47852,47853,47854,47855,47856,47857,47858,47859,47860,47861,47862,47863,47864,47865,47866,47867,47869,47870,47871,47873,47874,47875,47877,47878,47879,47880,47881,47882,47883,47884,47886,47888,47890,47891,47892,47893,47894,47895,47897,47898,47899,47901,47902,47903,47905,47906,47907,47908,47909,47910,47911,47912,47914,47916,47917,47918,47919,47920,47921,47922,47923,47927,47929,47930,47935,47936,47937,47938,47939,47942,47944,47946,47947,47948,47950,47953,47954,null,null,null,null,null,null,47955,47957,47958,47959,47961,47962,47963,47964,47965,47966,47967,47968,47970,47972,47973,47974,47975,47976,47977,47978,47979,47981,47982,47983,47984,47985,null,null,null,null,null,null,47986,47987,47988,47989,47990,47991,47992,47993,47994,47995,47996,47997,47998,47999,48000,48001,48002,48003,48004,48005,48006,48007,48009,48010,48011,48013,48014,48015,48017,48018,48019,48020,48021,48022,48023,48024,48025,48026,48027,48028,48029,48030,48031,48032,48033,48034,48035,48037,48038,48039,48041,48042,48043,48045,48046,48047,48048,48049,48050,48051,48053,48054,48056,48057,48058,48059,48060,48061,48062,48063,48065,48066,48067,48069,48070,48071,48073,48074,48075,48076,48077,48078,48079,48081,48082,48084,48085,48086,48087,48088,48089,48090,48091,48092,48093,48094,48095,48096,48097,48098,48099,48100,48101,48102,48103,48104,48105,48106,48107,48108,48109,48110,48111,48112,48113,48114,48115,48116,48117,48118,48119,48122,48123,48125,48126,48129,48131,48132,48133,48134,48135,48138,48142,48144,48146,48147,48153,48154,48160,48161,48162,48163,48166,48168,48170,48171,48172,48174,48175,48178,48179,48181,null,null,null,null,null,null,48182,48183,48185,48186,48187,48188,48189,48190,48191,48194,48198,48199,48200,48202,48203,48206,48207,48209,48210,48211,48212,48213,48214,48215,48216,48217,null,null,null,null,null,null,48218,48219,48220,48222,48223,48224,48225,48226,48227,48228,48229,48230,48231,48232,48233,48234,48235,48236,48237,48238,48239,48240,48241,48242,48243,48244,48245,48246,48247,48248,48249,48250,48251,48252,48253,48254,48255,48256,48257,48258,48259,48262,48263,48265,48266,48269,48271,48272,48273,48274,48275,48278,48280,48283,48284,48285,48286,48287,48290,48291,48293,48294,48297,48298,48299,48300,48301,48302,48303,48306,48310,48311,48312,48313,48314,48315,48318,48319,48321,48322,48323,48325,48326,48327,48328,48329,48330,48331,48332,48334,48338,48339,48340,48342,48343,48345,48346,48347,48349,48350,48351,48352,48353,48354,48355,48356,48357,48358,48359,48360,48361,48362,48363,48364,48365,48366,48367,48368,48369,48370,48371,48375,48377,48378,48379,48381,48382,48383,48384,48385,48386,48387,48390,48392,48394,48395,48396,48397,48398,48399,48401,48402,48403,48405,48406,48407,48408,48409,48410,48411,48412,48413,null,null,null,null,null,null,48414,48415,48416,48417,48418,48419,48421,48422,48423,48424,48425,48426,48427,48429,48430,48431,48432,48433,48434,48435,48436,48437,48438,48439,48440,48441,null,null,null,null,null,null,48442,48443,48444,48445,48446,48447,48449,48450,48451,48452,48453,48454,48455,48458,48459,48461,48462,48463,48465,48466,48467,48468,48469,48470,48471,48474,48475,48476,48477,48478,48479,48480,48481,48482,48483,48485,48486,48487,48489,48490,48491,48492,48493,48494,48495,48496,48497,48498,48499,48500,48501,48502,48503,48504,48505,48506,48507,48508,48509,48510,48511,48514,48515,48517,48518,48523,48524,48525,48526,48527,48530,48532,48534,48535,48536,48539,48541,48542,48543,48544,48545,48546,48547,48549,48550,48551,48552,48553,48554,48555,48556,48557,48558,48559,48561,48562,48563,48564,48565,48566,48567,48569,48570,48571,48572,48573,48574,48575,48576,48577,48578,48579,48580,48581,48582,48583,48584,48585,48586,48587,48588,48589,48590,48591,48592,48593,48594,48595,48598,48599,48601,48602,48603,48605,48606,48607,48608,48609,48610,48611,48612,48613,48614,48615,48616,48618,48619,48620,48621,48622,48623,48625,null,null,null,null,null,null,48626,48627,48629,48630,48631,48633,48634,48635,48636,48637,48638,48639,48641,48642,48644,48646,48647,48648,48649,48650,48651,48654,48655,48657,48658,48659,null,null,null,null,null,null,48661,48662,48663,48664,48665,48666,48667,48670,48672,48673,48674,48675,48676,48677,48678,48679,48680,48681,48682,48683,48684,48685,48686,48687,48688,48689,48690,48691,48692,48693,48694,48695,48696,48697,48698,48699,48700,48701,48702,48703,48704,48705,48706,48707,48710,48711,48713,48714,48715,48717,48719,48720,48721,48722,48723,48726,48728,48732,48733,48734,48735,48738,48739,48741,48742,48743,48745,48747,48748,48749,48750,48751,48754,48758,48759,48760,48761,48762,48766,48767,48769,48770,48771,48773,48774,48775,48776,48777,48778,48779,48782,48786,48787,48788,48789,48790,48791,48794,48795,48796,48797,48798,48799,48800,48801,48802,48803,48804,48805,48806,48807,48809,48810,48811,48812,48813,48814,48815,48816,48817,48818,48819,48820,48821,48822,48823,48824,48825,48826,48827,48828,48829,48830,48831,48832,48833,48834,48835,48836,48837,48838,48839,48840,48841,48842,48843,48844,48845,48846,48847,48850,48851,null,null,null,null,null,null,48853,48854,48857,48858,48859,48860,48861,48862,48863,48865,48866,48870,48871,48872,48873,48874,48875,48877,48878,48879,48880,48881,48882,48883,48884,48885,null,null,null,null,null,null,48886,48887,48888,48889,48890,48891,48892,48893,48894,48895,48896,48898,48899,48900,48901,48902,48903,48906,48907,48908,48909,48910,48911,48912,48913,48914,48915,48916,48917,48918,48919,48922,48926,48927,48928,48929,48930,48931,48932,48933,48934,48935,48936,48937,48938,48939,48940,48941,48942,48943,48944,48945,48946,48947,48948,48949,48950,48951,48952,48953,48954,48955,48956,48957,48958,48959,48962,48963,48965,48966,48967,48969,48970,48971,48972,48973,48974,48975,48978,48979,48980,48982,48983,48984,48985,48986,48987,48988,48989,48990,48991,48992,48993,48994,48995,48996,48997,48998,48999,49000,49001,49002,49003,49004,49005,49006,49007,49008,49009,49010,49011,49012,49013,49014,49015,49016,49017,49018,49019,49020,49021,49022,49023,49024,49025,49026,49027,49028,49029,49030,49031,49032,49033,49034,49035,49036,49037,49038,49039,49040,49041,49042,49043,49045,49046,49047,49048,49049,49050,49051,49052,49053,null,null,null,null,null,null,49054,49055,49056,49057,49058,49059,49060,49061,49062,49063,49064,49065,49066,49067,49068,49069,49070,49071,49073,49074,49075,49076,49077,49078,49079,49080,null,null,null,null,null,null,49081,49082,49083,49084,49085,49086,49087,49088,49089,49090,49091,49092,49094,49095,49096,49097,49098,49099,49102,49103,49105,49106,49107,49109,49110,49111,49112,49113,49114,49115,49117,49118,49120,49122,49123,49124,49125,49126,49127,49128,49129,49130,49131,49132,49133,49134,49135,49136,49137,49138,49139,49140,49141,49142,49143,49144,49145,49146,49147,49148,49149,49150,49151,49152,49153,49154,49155,49156,49157,49158,49159,49160,49161,49162,49163,49164,49165,49166,49167,49168,49169,49170,49171,49172,49173,49174,49175,49176,49177,49178,49179,49180,49181,49182,49183,49184,49185,49186,49187,49188,49189,49190,49191,49192,49193,49194,49195,49196,49197,49198,49199,49200,49201,49202,49203,49204,49205,49206,49207,49208,49209,49210,49211,49213,49214,49215,49216,49217,49218,49219,49220,49221,49222,49223,49224,49225,49226,49227,49228,49229,49230,49231,49232,49234,49235,49236,49237,49238,49239,49241,49242,49243,null,null,null,null,null,null,49245,49246,49247,49249,49250,49251,49252,49253,49254,49255,49258,49259,49260,49261,49262,49263,49264,49265,49266,49267,49268,49269,49270,49271,49272,49273,null,null,null,null,null,null,49274,49275,49276,49277,49278,49279,49280,49281,49282,49283,49284,49285,49286,49287,49288,49289,49290,49291,49292,49293,49294,49295,49298,49299,49301,49302,49303,49305,49306,49307,49308,49309,49310,49311,49314,49316,49318,49319,49320,49321,49322,49323,49326,49329,49330,49335,49336,49337,49338,49339,49342,49346,49347,49348,49350,49351,49354,49355,49357,49358,49359,49361,49362,49363,49364,49365,49366,49367,49370,49374,49375,49376,49377,49378,49379,49382,49383,49385,49386,49387,49389,49390,49391,49392,49393,49394,49395,49398,49400,49402,49403,49404,49405,49406,49407,49409,49410,49411,49413,49414,49415,49417,49418,49419,49420,49421,49422,49423,49425,49426,49427,49428,49430,49431,49432,49433,49434,49435,49441,49442,49445,49448,49449,49450,49451,49454,49458,49459,49460,49461,49463,49466,49467,49469,49470,49471,49473,49474,49475,49476,49477,49478,49479,49482,49486,49487,49488,49489,49490,49491,49494,49495,null,null,null,null,null,null,49497,49498,49499,49501,49502,49503,49504,49505,49506,49507,49510,49514,49515,49516,49517,49518,49519,49521,49522,49523,49525,49526,49527,49529,49530,49531,null,null,null,null,null,null,49532,49533,49534,49535,49536,49537,49538,49539,49540,49542,49543,49544,49545,49546,49547,49551,49553,49554,49555,49557,49559,49560,49561,49562,49563,49566,49568,49570,49571,49572,49574,49575,49578,49579,49581,49582,49583,49585,49586,49587,49588,49589,49590,49591,49592,49593,49594,49595,49596,49598,49599,49600,49601,49602,49603,49605,49606,49607,49609,49610,49611,49613,49614,49615,49616,49617,49618,49619,49621,49622,49625,49626,49627,49628,49629,49630,49631,49633,49634,49635,49637,49638,49639,49641,49642,49643,49644,49645,49646,49647,49650,49652,49653,49654,49655,49656,49657,49658,49659,49662,49663,49665,49666,49667,49669,49670,49671,49672,49673,49674,49675,49678,49680,49682,49683,49684,49685,49686,49687,49690,49691,49693,49694,49697,49698,49699,49700,49701,49702,49703,49706,49708,49710,49712,49715,49717,49718,49719,49720,49721,49722,49723,49724,49725,49726,49727,49728,49729,49730,49731,49732,49733,null,null,null,null,null,null,49734,49735,49737,49738,49739,49740,49741,49742,49743,49746,49747,49749,49750,49751,49753,49754,49755,49756,49757,49758,49759,49761,49762,49763,49764,49766,null,null,null,null,null,null,49767,49768,49769,49770,49771,49774,49775,49777,49778,49779,49781,49782,49783,49784,49785,49786,49787,49790,49792,49794,49795,49796,49797,49798,49799,49802,49803,49804,49805,49806,49807,49809,49810,49811,49812,49813,49814,49815,49817,49818,49820,49822,49823,49824,49825,49826,49827,49830,49831,49833,49834,49835,49838,49839,49840,49841,49842,49843,49846,49848,49850,49851,49852,49853,49854,49855,49856,49857,49858,49859,49860,49861,49862,49863,49864,49865,49866,49867,49868,49869,49870,49871,49872,49873,49874,49875,49876,49877,49878,49879,49880,49881,49882,49883,49886,49887,49889,49890,49893,49894,49895,49896,49897,49898,49902,49904,49906,49907,49908,49909,49911,49914,49917,49918,49919,49921,49922,49923,49924,49925,49926,49927,49930,49931,49934,49935,49936,49937,49938,49942,49943,49945,49946,49947,49949,49950,49951,49952,49953,49954,49955,49958,49959,49962,49963,49964,49965,49966,49967,49968,49969,49970,null,null,null,null,null,null,49971,49972,49973,49974,49975,49976,49977,49978,49979,49980,49981,49982,49983,49984,49985,49986,49987,49988,49990,49991,49992,49993,49994,49995,49996,49997,null,null,null,null,null,null,49998,49999,50000,50001,50002,50003,50004,50005,50006,50007,50008,50009,50010,50011,50012,50013,50014,50015,50016,50017,50018,50019,50020,50021,50022,50023,50026,50027,50029,50030,50031,50033,50035,50036,50037,50038,50039,50042,50043,50046,50047,50048,50049,50050,50051,50053,50054,50055,50057,50058,50059,50061,50062,50063,50064,50065,50066,50067,50068,50069,50070,50071,50072,50073,50074,50075,50076,50077,50078,50079,50080,50081,50082,50083,50084,50085,50086,50087,50088,50089,50090,50091,50092,50093,50094,50095,50096,50097,50098,50099,50100,50101,50102,50103,50104,50105,50106,50107,50108,50109,50110,50111,50113,50114,50115,50116,50117,50118,50119,50120,50121,50122,50123,50124,50125,50126,50127,50128,50129,50130,50131,50132,50133,50134,50135,50138,50139,50141,50142,50145,50147,50148,50149,50150,50151,50154,50155,50156,50158,50159,50160,50161,50162,50163,50166,50167,50169,50170,50171,50172,50173,50174,null,null,null,null,null,null,50175,50176,50177,50178,50179,50180,50181,50182,50183,50185,50186,50187,50188,50189,50190,50191,50193,50194,50195,50196,50197,50198,50199,50200,50201,50202,null,null,null,null,null,null,50203,50204,50205,50206,50207,50208,50209,50210,50211,50213,50214,50215,50216,50217,50218,50219,50221,50222,50223,50225,50226,50227,50229,50230,50231,50232,50233,50234,50235,50238,50239,50240,50241,50242,50243,50244,50245,50246,50247,50249,50250,50251,50252,50253,50254,50255,50256,50257,50258,50259,50260,50261,50262,50263,50264,50265,50266,50267,50268,50269,50270,50271,50272,50273,50274,50275,50278,50279,50281,50282,50283,50285,50286,50287,50288,50289,50290,50291,50294,50295,50296,50298,50299,50300,50301,50302,50303,50305,50306,50307,50308,50309,50310,50311,50312,50313,50314,50315,50316,50317,50318,50319,50320,50321,50322,50323,50325,50326,50327,50328,50329,50330,50331,50333,50334,50335,50336,50337,50338,50339,50340,50341,50342,50343,50344,50345,50346,50347,50348,50349,50350,50351,50352,50353,50354,50355,50356,50357,50358,50359,50361,50362,50363,50365,50366,50367,50368,50369,50370,50371,50372,50373,null,null,null,null,null,null,50374,50375,50376,50377,50378,50379,50380,50381,50382,50383,50384,50385,50386,50387,50388,50389,50390,50391,50392,50393,50394,50395,50396,50397,50398,50399,null,null,null,null,null,null,50400,50401,50402,50403,50404,50405,50406,50407,50408,50410,50411,50412,50413,50414,50415,50418,50419,50421,50422,50423,50425,50427,50428,50429,50430,50434,50435,50436,50437,50438,50439,50440,50441,50442,50443,50445,50446,50447,50449,50450,50451,50453,50454,50455,50456,50457,50458,50459,50461,50462,50463,50464,50465,50466,50467,50468,50469,50470,50471,50474,50475,50477,50478,50479,50481,50482,50483,50484,50485,50486,50487,50490,50492,50494,50495,50496,50497,50498,50499,50502,50503,50507,50511,50512,50513,50514,50518,50522,50523,50524,50527,50530,50531,50533,50534,50535,50537,50538,50539,50540,50541,50542,50543,50546,50550,50551,50552,50553,50554,50555,50558,50559,50561,50562,50563,50565,50566,50568,50569,50570,50571,50574,50576,50578,50579,50580,50582,50585,50586,50587,50589,50590,50591,50593,50594,50595,50596,50597,50598,50599,50600,50602,50603,50604,50605,50606,50607,50608,50609,50610,50611,50614,null,null,null,null,null,null,50615,50618,50623,50624,50625,50626,50627,50635,50637,50639,50642,50643,50645,50646,50647,50649,50650,50651,50652,50653,50654,50655,50658,50660,50662,50663,null,null,null,null,null,null,50664,50665,50666,50667,50671,50673,50674,50675,50677,50680,50681,50682,50683,50690,50691,50692,50697,50698,50699,50701,50702,50703,50705,50706,50707,50708,50709,50710,50711,50714,50717,50718,50719,50720,50721,50722,50723,50726,50727,50729,50730,50731,50735,50737,50738,50742,50744,50746,50748,50749,50750,50751,50754,50755,50757,50758,50759,50761,50762,50763,50764,50765,50766,50767,50770,50774,50775,50776,50777,50778,50779,50782,50783,50785,50786,50787,50788,50789,50790,50791,50792,50793,50794,50795,50797,50798,50800,50802,50803,50804,50805,50806,50807,50810,50811,50813,50814,50815,50817,50818,50819,50820,50821,50822,50823,50826,50828,50830,50831,50832,50833,50834,50835,50838,50839,50841,50842,50843,50845,50846,50847,50848,50849,50850,50851,50854,50856,50858,50859,50860,50861,50862,50863,50866,50867,50869,50870,50871,50875,50876,50877,50878,50879,50882,50884,50886,50887,50888,50889,50890,50891,50894,null,null,null,null,null,null,50895,50897,50898,50899,50901,50902,50903,50904,50905,50906,50907,50910,50911,50914,50915,50916,50917,50918,50919,50922,50923,50925,50926,50927,50929,50930,null,null,null,null,null,null,50931,50932,50933,50934,50935,50938,50939,50940,50942,50943,50944,50945,50946,50947,50950,50951,50953,50954,50955,50957,50958,50959,50960,50961,50962,50963,50966,50968,50970,50971,50972,50973,50974,50975,50978,50979,50981,50982,50983,50985,50986,50987,50988,50989,50990,50991,50994,50996,50998,51000,51001,51002,51003,51006,51007,51009,51010,51011,51013,51014,51015,51016,51017,51019,51022,51024,51033,51034,51035,51037,51038,51039,51041,51042,51043,51044,51045,51046,51047,51049,51050,51052,51053,51054,51055,51056,51057,51058,51059,51062,51063,51065,51066,51067,51071,51072,51073,51074,51078,51083,51084,51085,51087,51090,51091,51093,51097,51099,51100,51101,51102,51103,51106,51111,51112,51113,51114,51115,51118,51119,51121,51122,51123,51125,51126,51127,51128,51129,51130,51131,51134,51138,51139,51140,51141,51142,51143,51146,51147,51149,51151,51153,51154,51155,51156,51157,51158,51159,51161,51162,51163,51164,null,null,null,null,null,null,51166,51167,51168,51169,51170,51171,51173,51174,51175,51177,51178,51179,51181,51182,51183,51184,51185,51186,51187,51188,51189,51190,51191,51192,51193,51194,null,null,null,null,null,null,51195,51196,51197,51198,51199,51202,51203,51205,51206,51207,51209,51211,51212,51213,51214,51215,51218,51220,51223,51224,51225,51226,51227,51230,51231,51233,51234,51235,51237,51238,51239,51240,51241,51242,51243,51246,51248,51250,51251,51252,51253,51254,51255,51257,51258,51259,51261,51262,51263,51265,51266,51267,51268,51269,51270,51271,51274,51275,51278,51279,51280,51281,51282,51283,51285,51286,51287,51288,51289,51290,51291,51292,51293,51294,51295,51296,51297,51298,51299,51300,51301,51302,51303,51304,51305,51306,51307,51308,51309,51310,51311,51314,51315,51317,51318,51319,51321,51323,51324,51325,51326,51327,51330,51332,51336,51337,51338,51342,51343,51344,51345,51346,51347,51349,51350,51351,51352,51353,51354,51355,51356,51358,51360,51362,51363,51364,51365,51366,51367,51369,51370,51371,51372,51373,51374,51375,51376,51377,51378,51379,51380,51381,51382,51383,51384,51385,51386,51387,51390,51391,51392,51393,null,null,null,null,null,null,51394,51395,51397,51398,51399,51401,51402,51403,51405,51406,51407,51408,51409,51410,51411,51414,51416,51418,51419,51420,51421,51422,51423,51426,51427,51429,null,null,null,null,null,null,51430,51431,51432,51433,51434,51435,51436,51437,51438,51439,51440,51441,51442,51443,51444,51446,51447,51448,51449,51450,51451,51454,51455,51457,51458,51459,51463,51464,51465,51466,51467,51470,12288,12289,12290,183,8229,8230,168,12291,173,8213,8741,65340,8764,8216,8217,8220,8221,12308,12309,12296,12297,12298,12299,12300,12301,12302,12303,12304,12305,177,215,247,8800,8804,8805,8734,8756,176,8242,8243,8451,8491,65504,65505,65509,9794,9792,8736,8869,8978,8706,8711,8801,8786,167,8251,9734,9733,9675,9679,9678,9671,9670,9633,9632,9651,9650,9661,9660,8594,8592,8593,8595,8596,12307,8810,8811,8730,8765,8733,8757,8747,8748,8712,8715,8838,8839,8834,8835,8746,8745,8743,8744,65506,51472,51474,51475,51476,51477,51478,51479,51481,51482,51483,51484,51485,51486,51487,51488,51489,51490,51491,51492,51493,51494,51495,51496,51497,51498,51499,null,null,null,null,null,null,51501,51502,51503,51504,51505,51506,51507,51509,51510,51511,51512,51513,51514,51515,51516,51517,51518,51519,51520,51521,51522,51523,51524,51525,51526,51527,null,null,null,null,null,null,51528,51529,51530,51531,51532,51533,51534,51535,51538,51539,51541,51542,51543,51545,51546,51547,51548,51549,51550,51551,51554,51556,51557,51558,51559,51560,51561,51562,51563,51565,51566,51567,8658,8660,8704,8707,180,65374,711,728,733,730,729,184,731,161,191,720,8750,8721,8719,164,8457,8240,9665,9664,9655,9654,9828,9824,9825,9829,9831,9827,8857,9672,9635,9680,9681,9618,9636,9637,9640,9639,9638,9641,9832,9743,9742,9756,9758,182,8224,8225,8597,8599,8601,8598,8600,9837,9833,9834,9836,12927,12828,8470,13255,8482,13250,13272,8481,8364,174,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,51569,51570,51571,51573,51574,51575,51576,51577,51578,51579,51581,51582,51583,51584,51585,51586,51587,51588,51589,51590,51591,51594,51595,51597,51598,51599,null,null,null,null,null,null,51601,51602,51603,51604,51605,51606,51607,51610,51612,51614,51615,51616,51617,51618,51619,51620,51621,51622,51623,51624,51625,51626,51627,51628,51629,51630,null,null,null,null,null,null,51631,51632,51633,51634,51635,51636,51637,51638,51639,51640,51641,51642,51643,51644,51645,51646,51647,51650,51651,51653,51654,51657,51659,51660,51661,51662,51663,51666,51668,51671,51672,51675,65281,65282,65283,65284,65285,65286,65287,65288,65289,65290,65291,65292,65293,65294,65295,65296,65297,65298,65299,65300,65301,65302,65303,65304,65305,65306,65307,65308,65309,65310,65311,65312,65313,65314,65315,65316,65317,65318,65319,65320,65321,65322,65323,65324,65325,65326,65327,65328,65329,65330,65331,65332,65333,65334,65335,65336,65337,65338,65339,65510,65341,65342,65343,65344,65345,65346,65347,65348,65349,65350,65351,65352,65353,65354,65355,65356,65357,65358,65359,65360,65361,65362,65363,65364,65365,65366,65367,65368,65369,65370,65371,65372,65373,65507,51678,51679,51681,51683,51685,51686,51688,51689,51690,51691,51694,51698,51699,51700,51701,51702,51703,51706,51707,51709,51710,51711,51713,51714,51715,51716,null,null,null,null,null,null,51717,51718,51719,51722,51726,51727,51728,51729,51730,51731,51733,51734,51735,51737,51738,51739,51740,51741,51742,51743,51744,51745,51746,51747,51748,51749,null,null,null,null,null,null,51750,51751,51752,51754,51755,51756,51757,51758,51759,51760,51761,51762,51763,51764,51765,51766,51767,51768,51769,51770,51771,51772,51773,51774,51775,51776,51777,51778,51779,51780,51781,51782,12593,12594,12595,12596,12597,12598,12599,12600,12601,12602,12603,12604,12605,12606,12607,12608,12609,12610,12611,12612,12613,12614,12615,12616,12617,12618,12619,12620,12621,12622,12623,12624,12625,12626,12627,12628,12629,12630,12631,12632,12633,12634,12635,12636,12637,12638,12639,12640,12641,12642,12643,12644,12645,12646,12647,12648,12649,12650,12651,12652,12653,12654,12655,12656,12657,12658,12659,12660,12661,12662,12663,12664,12665,12666,12667,12668,12669,12670,12671,12672,12673,12674,12675,12676,12677,12678,12679,12680,12681,12682,12683,12684,12685,12686,51783,51784,51785,51786,51787,51790,51791,51793,51794,51795,51797,51798,51799,51800,51801,51802,51803,51806,51810,51811,51812,51813,51814,51815,51817,51818,null,null,null,null,null,null,51819,51820,51821,51822,51823,51824,51825,51826,51827,51828,51829,51830,51831,51832,51833,51834,51835,51836,51838,51839,51840,51841,51842,51843,51845,51846,null,null,null,null,null,null,51847,51848,51849,51850,51851,51852,51853,51854,51855,51856,51857,51858,51859,51860,51861,51862,51863,51865,51866,51867,51868,51869,51870,51871,51872,51873,51874,51875,51876,51877,51878,51879,8560,8561,8562,8563,8564,8565,8566,8567,8568,8569,null,null,null,null,null,8544,8545,8546,8547,8548,8549,8550,8551,8552,8553,null,null,null,null,null,null,null,913,914,915,916,917,918,919,920,921,922,923,924,925,926,927,928,929,931,932,933,934,935,936,937,null,null,null,null,null,null,null,null,945,946,947,948,949,950,951,952,953,954,955,956,957,958,959,960,961,963,964,965,966,967,968,969,null,null,null,null,null,null,51880,51881,51882,51883,51884,51885,51886,51887,51888,51889,51890,51891,51892,51893,51894,51895,51896,51897,51898,51899,51902,51903,51905,51906,51907,51909,null,null,null,null,null,null,51910,51911,51912,51913,51914,51915,51918,51920,51922,51924,51925,51926,51927,51930,51931,51932,51933,51934,51935,51937,51938,51939,51940,51941,51942,51943,null,null,null,null,null,null,51944,51945,51946,51947,51949,51950,51951,51952,51953,51954,51955,51957,51958,51959,51960,51961,51962,51963,51964,51965,51966,51967,51968,51969,51970,51971,51972,51973,51974,51975,51977,51978,9472,9474,9484,9488,9496,9492,9500,9516,9508,9524,9532,9473,9475,9487,9491,9499,9495,9507,9523,9515,9531,9547,9504,9519,9512,9527,9535,9501,9520,9509,9528,9538,9490,9489,9498,9497,9494,9493,9486,9485,9502,9503,9505,9506,9510,9511,9513,9514,9517,9518,9521,9522,9525,9526,9529,9530,9533,9534,9536,9537,9539,9540,9541,9542,9543,9544,9545,9546,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,51979,51980,51981,51982,51983,51985,51986,51987,51989,51990,51991,51993,51994,51995,51996,51997,51998,51999,52002,52003,52004,52005,52006,52007,52008,52009,null,null,null,null,null,null,52010,52011,52012,52013,52014,52015,52016,52017,52018,52019,52020,52021,52022,52023,52024,52025,52026,52027,52028,52029,52030,52031,52032,52034,52035,52036,null,null,null,null,null,null,52037,52038,52039,52042,52043,52045,52046,52047,52049,52050,52051,52052,52053,52054,52055,52058,52059,52060,52062,52063,52064,52065,52066,52067,52069,52070,52071,52072,52073,52074,52075,52076,13205,13206,13207,8467,13208,13252,13219,13220,13221,13222,13209,13210,13211,13212,13213,13214,13215,13216,13217,13218,13258,13197,13198,13199,13263,13192,13193,13256,13223,13224,13232,13233,13234,13235,13236,13237,13238,13239,13240,13241,13184,13185,13186,13187,13188,13242,13243,13244,13245,13246,13247,13200,13201,13202,13203,13204,8486,13248,13249,13194,13195,13196,13270,13253,13229,13230,13231,13275,13225,13226,13227,13228,13277,13264,13267,13251,13257,13276,13254,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,52077,52078,52079,52080,52081,52082,52083,52084,52085,52086,52087,52090,52091,52092,52093,52094,52095,52096,52097,52098,52099,52100,52101,52102,52103,52104,null,null,null,null,null,null,52105,52106,52107,52108,52109,52110,52111,52112,52113,52114,52115,52116,52117,52118,52119,52120,52121,52122,52123,52125,52126,52127,52128,52129,52130,52131,null,null,null,null,null,null,52132,52133,52134,52135,52136,52137,52138,52139,52140,52141,52142,52143,52144,52145,52146,52147,52148,52149,52150,52151,52153,52154,52155,52156,52157,52158,52159,52160,52161,52162,52163,52164,198,208,170,294,null,306,null,319,321,216,338,186,222,358,330,null,12896,12897,12898,12899,12900,12901,12902,12903,12904,12905,12906,12907,12908,12909,12910,12911,12912,12913,12914,12915,12916,12917,12918,12919,12920,12921,12922,12923,9424,9425,9426,9427,9428,9429,9430,9431,9432,9433,9434,9435,9436,9437,9438,9439,9440,9441,9442,9443,9444,9445,9446,9447,9448,9449,9312,9313,9314,9315,9316,9317,9318,9319,9320,9321,9322,9323,9324,9325,9326,189,8531,8532,188,190,8539,8540,8541,8542,52165,52166,52167,52168,52169,52170,52171,52172,52173,52174,52175,52176,52177,52178,52179,52181,52182,52183,52184,52185,52186,52187,52188,52189,52190,52191,null,null,null,null,null,null,52192,52193,52194,52195,52197,52198,52200,52202,52203,52204,52205,52206,52207,52208,52209,52210,52211,52212,52213,52214,52215,52216,52217,52218,52219,52220,null,null,null,null,null,null,52221,52222,52223,52224,52225,52226,52227,52228,52229,52230,52231,52232,52233,52234,52235,52238,52239,52241,52242,52243,52245,52246,52247,52248,52249,52250,52251,52254,52255,52256,52259,52260,230,273,240,295,305,307,312,320,322,248,339,223,254,359,331,329,12800,12801,12802,12803,12804,12805,12806,12807,12808,12809,12810,12811,12812,12813,12814,12815,12816,12817,12818,12819,12820,12821,12822,12823,12824,12825,12826,12827,9372,9373,9374,9375,9376,9377,9378,9379,9380,9381,9382,9383,9384,9385,9386,9387,9388,9389,9390,9391,9392,9393,9394,9395,9396,9397,9332,9333,9334,9335,9336,9337,9338,9339,9340,9341,9342,9343,9344,9345,9346,185,178,179,8308,8319,8321,8322,8323,8324,52261,52262,52266,52267,52269,52271,52273,52274,52275,52276,52277,52278,52279,52282,52287,52288,52289,52290,52291,52294,52295,52297,52298,52299,52301,52302,null,null,null,null,null,null,52303,52304,52305,52306,52307,52310,52314,52315,52316,52317,52318,52319,52321,52322,52323,52325,52327,52329,52330,52331,52332,52333,52334,52335,52337,52338,null,null,null,null,null,null,52339,52340,52342,52343,52344,52345,52346,52347,52348,52349,52350,52351,52352,52353,52354,52355,52356,52357,52358,52359,52360,52361,52362,52363,52364,52365,52366,52367,52368,52369,52370,52371,12353,12354,12355,12356,12357,12358,12359,12360,12361,12362,12363,12364,12365,12366,12367,12368,12369,12370,12371,12372,12373,12374,12375,12376,12377,12378,12379,12380,12381,12382,12383,12384,12385,12386,12387,12388,12389,12390,12391,12392,12393,12394,12395,12396,12397,12398,12399,12400,12401,12402,12403,12404,12405,12406,12407,12408,12409,12410,12411,12412,12413,12414,12415,12416,12417,12418,12419,12420,12421,12422,12423,12424,12425,12426,12427,12428,12429,12430,12431,12432,12433,12434,12435,null,null,null,null,null,null,null,null,null,null,null,52372,52373,52374,52375,52378,52379,52381,52382,52383,52385,52386,52387,52388,52389,52390,52391,52394,52398,52399,52400,52401,52402,52403,52406,52407,52409,null,null,null,null,null,null,52410,52411,52413,52414,52415,52416,52417,52418,52419,52422,52424,52426,52427,52428,52429,52430,52431,52433,52434,52435,52437,52438,52439,52440,52441,52442,null,null,null,null,null,null,52443,52444,52445,52446,52447,52448,52449,52450,52451,52453,52454,52455,52456,52457,52458,52459,52461,52462,52463,52465,52466,52467,52468,52469,52470,52471,52472,52473,52474,52475,52476,52477,12449,12450,12451,12452,12453,12454,12455,12456,12457,12458,12459,12460,12461,12462,12463,12464,12465,12466,12467,12468,12469,12470,12471,12472,12473,12474,12475,12476,12477,12478,12479,12480,12481,12482,12483,12484,12485,12486,12487,12488,12489,12490,12491,12492,12493,12494,12495,12496,12497,12498,12499,12500,12501,12502,12503,12504,12505,12506,12507,12508,12509,12510,12511,12512,12513,12514,12515,12516,12517,12518,12519,12520,12521,12522,12523,12524,12525,12526,12527,12528,12529,12530,12531,12532,12533,12534,null,null,null,null,null,null,null,null,52478,52479,52480,52482,52483,52484,52485,52486,52487,52490,52491,52493,52494,52495,52497,52498,52499,52500,52501,52502,52503,52506,52508,52510,52511,52512,null,null,null,null,null,null,52513,52514,52515,52517,52518,52519,52521,52522,52523,52525,52526,52527,52528,52529,52530,52531,52532,52533,52534,52535,52536,52538,52539,52540,52541,52542,null,null,null,null,null,null,52543,52544,52545,52546,52547,52548,52549,52550,52551,52552,52553,52554,52555,52556,52557,52558,52559,52560,52561,52562,52563,52564,52565,52566,52567,52568,52569,52570,52571,52573,52574,52575,1040,1041,1042,1043,1044,1045,1025,1046,1047,1048,1049,1050,1051,1052,1053,1054,1055,1056,1057,1058,1059,1060,1061,1062,1063,1064,1065,1066,1067,1068,1069,1070,1071,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,1072,1073,1074,1075,1076,1077,1105,1078,1079,1080,1081,1082,1083,1084,1085,1086,1087,1088,1089,1090,1091,1092,1093,1094,1095,1096,1097,1098,1099,1100,1101,1102,1103,null,null,null,null,null,null,null,null,null,null,null,null,null,52577,52578,52579,52581,52582,52583,52584,52585,52586,52587,52590,52592,52594,52595,52596,52597,52598,52599,52601,52602,52603,52604,52605,52606,52607,52608,null,null,null,null,null,null,52609,52610,52611,52612,52613,52614,52615,52617,52618,52619,52620,52621,52622,52623,52624,52625,52626,52627,52630,52631,52633,52634,52635,52637,52638,52639,null,null,null,null,null,null,52640,52641,52642,52643,52646,52648,52650,52651,52652,52653,52654,52655,52657,52658,52659,52660,52661,52662,52663,52664,52665,52666,52667,52668,52669,52670,52671,52672,52673,52674,52675,52677,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,52678,52679,52680,52681,52682,52683,52685,52686,52687,52689,52690,52691,52692,52693,52694,52695,52696,52697,52698,52699,52700,52701,52702,52703,52704,52705,null,null,null,null,null,null,52706,52707,52708,52709,52710,52711,52713,52714,52715,52717,52718,52719,52721,52722,52723,52724,52725,52726,52727,52730,52732,52734,52735,52736,52737,52738,null,null,null,null,null,null,52739,52741,52742,52743,52745,52746,52747,52749,52750,52751,52752,52753,52754,52755,52757,52758,52759,52760,52762,52763,52764,52765,52766,52767,52770,52771,52773,52774,52775,52777,52778,52779,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,52780,52781,52782,52783,52786,52788,52790,52791,52792,52793,52794,52795,52796,52797,52798,52799,52800,52801,52802,52803,52804,52805,52806,52807,52808,52809,null,null,null,null,null,null,52810,52811,52812,52813,52814,52815,52816,52817,52818,52819,52820,52821,52822,52823,52826,52827,52829,52830,52834,52835,52836,52837,52838,52839,52842,52844,null,null,null,null,null,null,52846,52847,52848,52849,52850,52851,52854,52855,52857,52858,52859,52861,52862,52863,52864,52865,52866,52867,52870,52872,52874,52875,52876,52877,52878,52879,52882,52883,52885,52886,52887,52889,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,52890,52891,52892,52893,52894,52895,52898,52902,52903,52904,52905,52906,52907,52910,52911,52912,52913,52914,52915,52916,52917,52918,52919,52920,52921,52922,null,null,null,null,null,null,52923,52924,52925,52926,52927,52928,52930,52931,52932,52933,52934,52935,52936,52937,52938,52939,52940,52941,52942,52943,52944,52945,52946,52947,52948,52949,null,null,null,null,null,null,52950,52951,52952,52953,52954,52955,52956,52957,52958,52959,52960,52961,52962,52963,52966,52967,52969,52970,52973,52974,52975,52976,52977,52978,52979,52982,52986,52987,52988,52989,52990,52991,44032,44033,44036,44039,44040,44041,44042,44048,44049,44050,44051,44052,44053,44054,44055,44057,44058,44059,44060,44061,44064,44068,44076,44077,44079,44080,44081,44088,44089,44092,44096,44107,44109,44116,44120,44124,44144,44145,44148,44151,44152,44154,44160,44161,44163,44164,44165,44166,44169,44170,44171,44172,44176,44180,44188,44189,44191,44192,44193,44200,44201,44202,44204,44207,44208,44216,44217,44219,44220,44221,44225,44228,44232,44236,44245,44247,44256,44257,44260,44263,44264,44266,44268,44271,44272,44273,44275,44277,44278,44284,44285,44288,44292,44294,52994,52995,52997,52998,52999,53001,53002,53003,53004,53005,53006,53007,53010,53012,53014,53015,53016,53017,53018,53019,53021,53022,53023,53025,53026,53027,null,null,null,null,null,null,53029,53030,53031,53032,53033,53034,53035,53038,53042,53043,53044,53045,53046,53047,53049,53050,53051,53052,53053,53054,53055,53056,53057,53058,53059,53060,null,null,null,null,null,null,53061,53062,53063,53064,53065,53066,53067,53068,53069,53070,53071,53072,53073,53074,53075,53078,53079,53081,53082,53083,53085,53086,53087,53088,53089,53090,53091,53094,53096,53098,53099,53100,44300,44301,44303,44305,44312,44316,44320,44329,44332,44333,44340,44341,44344,44348,44356,44357,44359,44361,44368,44372,44376,44385,44387,44396,44397,44400,44403,44404,44405,44406,44411,44412,44413,44415,44417,44418,44424,44425,44428,44432,44444,44445,44452,44471,44480,44481,44484,44488,44496,44497,44499,44508,44512,44516,44536,44537,44540,44543,44544,44545,44552,44553,44555,44557,44564,44592,44593,44596,44599,44600,44602,44608,44609,44611,44613,44614,44618,44620,44621,44622,44624,44628,44630,44636,44637,44639,44640,44641,44645,44648,44649,44652,44656,44664,53101,53102,53103,53106,53107,53109,53110,53111,53113,53114,53115,53116,53117,53118,53119,53121,53122,53123,53124,53126,53127,53128,53129,53130,53131,53133,null,null,null,null,null,null,53134,53135,53136,53137,53138,53139,53140,53141,53142,53143,53144,53145,53146,53147,53148,53149,53150,53151,53152,53154,53155,53156,53157,53158,53159,53161,null,null,null,null,null,null,53162,53163,53164,53165,53166,53167,53169,53170,53171,53172,53173,53174,53175,53176,53177,53178,53179,53180,53181,53182,53183,53184,53185,53186,53187,53189,53190,53191,53192,53193,53194,53195,44665,44667,44668,44669,44676,44677,44684,44732,44733,44734,44736,44740,44748,44749,44751,44752,44753,44760,44761,44764,44776,44779,44781,44788,44792,44796,44807,44808,44813,44816,44844,44845,44848,44850,44852,44860,44861,44863,44865,44866,44867,44872,44873,44880,44892,44893,44900,44901,44921,44928,44932,44936,44944,44945,44949,44956,44984,44985,44988,44992,44999,45000,45001,45003,45005,45006,45012,45020,45032,45033,45040,45041,45044,45048,45056,45057,45060,45068,45072,45076,45084,45085,45096,45124,45125,45128,45130,45132,45134,45139,45140,45141,45143,45145,53196,53197,53198,53199,53200,53201,53202,53203,53204,53205,53206,53207,53208,53209,53210,53211,53212,53213,53214,53215,53218,53219,53221,53222,53223,53225,null,null,null,null,null,null,53226,53227,53228,53229,53230,53231,53234,53236,53238,53239,53240,53241,53242,53243,53245,53246,53247,53249,53250,53251,53253,53254,53255,53256,53257,53258,null,null,null,null,null,null,53259,53260,53261,53262,53263,53264,53266,53267,53268,53269,53270,53271,53273,53274,53275,53276,53277,53278,53279,53280,53281,53282,53283,53284,53285,53286,53287,53288,53289,53290,53291,53292,45149,45180,45181,45184,45188,45196,45197,45199,45201,45208,45209,45210,45212,45215,45216,45217,45218,45224,45225,45227,45228,45229,45230,45231,45233,45235,45236,45237,45240,45244,45252,45253,45255,45256,45257,45264,45265,45268,45272,45280,45285,45320,45321,45323,45324,45328,45330,45331,45336,45337,45339,45340,45341,45347,45348,45349,45352,45356,45364,45365,45367,45368,45369,45376,45377,45380,45384,45392,45393,45396,45397,45400,45404,45408,45432,45433,45436,45440,45442,45448,45449,45451,45453,45458,45459,45460,45464,45468,45480,45516,45520,45524,45532,45533,53294,53295,53296,53297,53298,53299,53302,53303,53305,53306,53307,53309,53310,53311,53312,53313,53314,53315,53318,53320,53322,53323,53324,53325,53326,53327,null,null,null,null,null,null,53329,53330,53331,53333,53334,53335,53337,53338,53339,53340,53341,53342,53343,53345,53346,53347,53348,53349,53350,53351,53352,53353,53354,53355,53358,53359,null,null,null,null,null,null,53361,53362,53363,53365,53366,53367,53368,53369,53370,53371,53374,53375,53376,53378,53379,53380,53381,53382,53383,53384,53385,53386,53387,53388,53389,53390,53391,53392,53393,53394,53395,53396,45535,45544,45545,45548,45552,45561,45563,45565,45572,45573,45576,45579,45580,45588,45589,45591,45593,45600,45620,45628,45656,45660,45664,45672,45673,45684,45685,45692,45700,45701,45705,45712,45713,45716,45720,45721,45722,45728,45729,45731,45733,45734,45738,45740,45744,45748,45768,45769,45772,45776,45778,45784,45785,45787,45789,45794,45796,45797,45798,45800,45803,45804,45805,45806,45807,45811,45812,45813,45815,45816,45817,45818,45819,45823,45824,45825,45828,45832,45840,45841,45843,45844,45845,45852,45908,45909,45910,45912,45915,45916,45918,45919,45924,45925,53397,53398,53399,53400,53401,53402,53403,53404,53405,53406,53407,53408,53409,53410,53411,53414,53415,53417,53418,53419,53421,53422,53423,53424,53425,53426,null,null,null,null,null,null,53427,53430,53432,53434,53435,53436,53437,53438,53439,53442,53443,53445,53446,53447,53450,53451,53452,53453,53454,53455,53458,53462,53463,53464,53465,53466,null,null,null,null,null,null,53467,53470,53471,53473,53474,53475,53477,53478,53479,53480,53481,53482,53483,53486,53490,53491,53492,53493,53494,53495,53497,53498,53499,53500,53501,53502,53503,53504,53505,53506,53507,53508,45927,45929,45931,45934,45936,45937,45940,45944,45952,45953,45955,45956,45957,45964,45968,45972,45984,45985,45992,45996,46020,46021,46024,46027,46028,46030,46032,46036,46037,46039,46041,46043,46045,46048,46052,46056,46076,46096,46104,46108,46112,46120,46121,46123,46132,46160,46161,46164,46168,46176,46177,46179,46181,46188,46208,46216,46237,46244,46248,46252,46261,46263,46265,46272,46276,46280,46288,46293,46300,46301,46304,46307,46308,46310,46316,46317,46319,46321,46328,46356,46357,46360,46363,46364,46372,46373,46375,46376,46377,46378,46384,46385,46388,46392,53509,53510,53511,53512,53513,53514,53515,53516,53518,53519,53520,53521,53522,53523,53524,53525,53526,53527,53528,53529,53530,53531,53532,53533,53534,53535,null,null,null,null,null,null,53536,53537,53538,53539,53540,53541,53542,53543,53544,53545,53546,53547,53548,53549,53550,53551,53554,53555,53557,53558,53559,53561,53563,53564,53565,53566,null,null,null,null,null,null,53567,53570,53574,53575,53576,53577,53578,53579,53582,53583,53585,53586,53587,53589,53590,53591,53592,53593,53594,53595,53598,53600,53602,53603,53604,53605,53606,53607,53609,53610,53611,53613,46400,46401,46403,46404,46405,46411,46412,46413,46416,46420,46428,46429,46431,46432,46433,46496,46497,46500,46504,46506,46507,46512,46513,46515,46516,46517,46523,46524,46525,46528,46532,46540,46541,46543,46544,46545,46552,46572,46608,46609,46612,46616,46629,46636,46644,46664,46692,46696,46748,46749,46752,46756,46763,46764,46769,46804,46832,46836,46840,46848,46849,46853,46888,46889,46892,46895,46896,46904,46905,46907,46916,46920,46924,46932,46933,46944,46948,46952,46960,46961,46963,46965,46972,46973,46976,46980,46988,46989,46991,46992,46993,46994,46998,46999,53614,53615,53616,53617,53618,53619,53620,53621,53622,53623,53624,53625,53626,53627,53629,53630,53631,53632,53633,53634,53635,53637,53638,53639,53641,53642,null,null,null,null,null,null,53643,53644,53645,53646,53647,53648,53649,53650,53651,53652,53653,53654,53655,53656,53657,53658,53659,53660,53661,53662,53663,53666,53667,53669,53670,53671,null,null,null,null,null,null,53673,53674,53675,53676,53677,53678,53679,53682,53684,53686,53687,53688,53689,53691,53693,53694,53695,53697,53698,53699,53700,53701,53702,53703,53704,53705,53706,53707,53708,53709,53710,53711,47000,47001,47004,47008,47016,47017,47019,47020,47021,47028,47029,47032,47047,47049,47084,47085,47088,47092,47100,47101,47103,47104,47105,47111,47112,47113,47116,47120,47128,47129,47131,47133,47140,47141,47144,47148,47156,47157,47159,47160,47161,47168,47172,47185,47187,47196,47197,47200,47204,47212,47213,47215,47217,47224,47228,47245,47272,47280,47284,47288,47296,47297,47299,47301,47308,47312,47316,47325,47327,47329,47336,47337,47340,47344,47352,47353,47355,47357,47364,47384,47392,47420,47421,47424,47428,47436,47439,47441,47448,47449,47452,47456,47464,47465,53712,53713,53714,53715,53716,53717,53718,53719,53721,53722,53723,53724,53725,53726,53727,53728,53729,53730,53731,53732,53733,53734,53735,53736,53737,53738,null,null,null,null,null,null,53739,53740,53741,53742,53743,53744,53745,53746,53747,53749,53750,53751,53753,53754,53755,53756,53757,53758,53759,53760,53761,53762,53763,53764,53765,53766,null,null,null,null,null,null,53768,53770,53771,53772,53773,53774,53775,53777,53778,53779,53780,53781,53782,53783,53784,53785,53786,53787,53788,53789,53790,53791,53792,53793,53794,53795,53796,53797,53798,53799,53800,53801,47467,47469,47476,47477,47480,47484,47492,47493,47495,47497,47498,47501,47502,47532,47533,47536,47540,47548,47549,47551,47553,47560,47561,47564,47566,47567,47568,47569,47570,47576,47577,47579,47581,47582,47585,47587,47588,47589,47592,47596,47604,47605,47607,47608,47609,47610,47616,47617,47624,47637,47672,47673,47676,47680,47682,47688,47689,47691,47693,47694,47699,47700,47701,47704,47708,47716,47717,47719,47720,47721,47728,47729,47732,47736,47747,47748,47749,47751,47756,47784,47785,47787,47788,47792,47794,47800,47801,47803,47805,47812,47816,47832,47833,47868,53802,53803,53806,53807,53809,53810,53811,53813,53814,53815,53816,53817,53818,53819,53822,53824,53826,53827,53828,53829,53830,53831,53833,53834,53835,53836,null,null,null,null,null,null,53837,53838,53839,53840,53841,53842,53843,53844,53845,53846,53847,53848,53849,53850,53851,53853,53854,53855,53856,53857,53858,53859,53861,53862,53863,53864,null,null,null,null,null,null,53865,53866,53867,53868,53869,53870,53871,53872,53873,53874,53875,53876,53877,53878,53879,53880,53881,53882,53883,53884,53885,53886,53887,53890,53891,53893,53894,53895,53897,53898,53899,53900,47872,47876,47885,47887,47889,47896,47900,47904,47913,47915,47924,47925,47926,47928,47931,47932,47933,47934,47940,47941,47943,47945,47949,47951,47952,47956,47960,47969,47971,47980,48008,48012,48016,48036,48040,48044,48052,48055,48064,48068,48072,48080,48083,48120,48121,48124,48127,48128,48130,48136,48137,48139,48140,48141,48143,48145,48148,48149,48150,48151,48152,48155,48156,48157,48158,48159,48164,48165,48167,48169,48173,48176,48177,48180,48184,48192,48193,48195,48196,48197,48201,48204,48205,48208,48221,48260,48261,48264,48267,48268,48270,48276,48277,48279,53901,53902,53903,53906,53907,53908,53910,53911,53912,53913,53914,53915,53917,53918,53919,53921,53922,53923,53925,53926,53927,53928,53929,53930,53931,53933,null,null,null,null,null,null,53934,53935,53936,53938,53939,53940,53941,53942,53943,53946,53947,53949,53950,53953,53955,53956,53957,53958,53959,53962,53964,53965,53966,53967,53968,53969,null,null,null,null,null,null,53970,53971,53973,53974,53975,53977,53978,53979,53981,53982,53983,53984,53985,53986,53987,53990,53991,53992,53993,53994,53995,53996,53997,53998,53999,54002,54003,54005,54006,54007,54009,54010,48281,48282,48288,48289,48292,48295,48296,48304,48305,48307,48308,48309,48316,48317,48320,48324,48333,48335,48336,48337,48341,48344,48348,48372,48373,48374,48376,48380,48388,48389,48391,48393,48400,48404,48420,48428,48448,48456,48457,48460,48464,48472,48473,48484,48488,48512,48513,48516,48519,48520,48521,48522,48528,48529,48531,48533,48537,48538,48540,48548,48560,48568,48596,48597,48600,48604,48617,48624,48628,48632,48640,48643,48645,48652,48653,48656,48660,48668,48669,48671,48708,48709,48712,48716,48718,48724,48725,48727,48729,48730,48731,48736,48737,48740,54011,54012,54013,54014,54015,54018,54020,54022,54023,54024,54025,54026,54027,54031,54033,54034,54035,54037,54039,54040,54041,54042,54043,54046,54050,54051,null,null,null,null,null,null,54052,54054,54055,54058,54059,54061,54062,54063,54065,54066,54067,54068,54069,54070,54071,54074,54078,54079,54080,54081,54082,54083,54086,54087,54088,54089,null,null,null,null,null,null,54090,54091,54092,54093,54094,54095,54096,54097,54098,54099,54100,54101,54102,54103,54104,54105,54106,54107,54108,54109,54110,54111,54112,54113,54114,54115,54116,54117,54118,54119,54120,54121,48744,48746,48752,48753,48755,48756,48757,48763,48764,48765,48768,48772,48780,48781,48783,48784,48785,48792,48793,48808,48848,48849,48852,48855,48856,48864,48867,48868,48869,48876,48897,48904,48905,48920,48921,48923,48924,48925,48960,48961,48964,48968,48976,48977,48981,49044,49072,49093,49100,49101,49104,49108,49116,49119,49121,49212,49233,49240,49244,49248,49256,49257,49296,49297,49300,49304,49312,49313,49315,49317,49324,49325,49327,49328,49331,49332,49333,49334,49340,49341,49343,49344,49345,49349,49352,49353,49356,49360,49368,49369,49371,49372,49373,49380,54122,54123,54124,54125,54126,54127,54128,54129,54130,54131,54132,54133,54134,54135,54136,54137,54138,54139,54142,54143,54145,54146,54147,54149,54150,54151,null,null,null,null,null,null,54152,54153,54154,54155,54158,54162,54163,54164,54165,54166,54167,54170,54171,54173,54174,54175,54177,54178,54179,54180,54181,54182,54183,54186,54188,54190,null,null,null,null,null,null,54191,54192,54193,54194,54195,54197,54198,54199,54201,54202,54203,54205,54206,54207,54208,54209,54210,54211,54214,54215,54218,54219,54220,54221,54222,54223,54225,54226,54227,54228,54229,54230,49381,49384,49388,49396,49397,49399,49401,49408,49412,49416,49424,49429,49436,49437,49438,49439,49440,49443,49444,49446,49447,49452,49453,49455,49456,49457,49462,49464,49465,49468,49472,49480,49481,49483,49484,49485,49492,49493,49496,49500,49508,49509,49511,49512,49513,49520,49524,49528,49541,49548,49549,49550,49552,49556,49558,49564,49565,49567,49569,49573,49576,49577,49580,49584,49597,49604,49608,49612,49620,49623,49624,49632,49636,49640,49648,49649,49651,49660,49661,49664,49668,49676,49677,49679,49681,49688,49689,49692,49695,49696,49704,49705,49707,49709,54231,54233,54234,54235,54236,54237,54238,54239,54240,54242,54244,54245,54246,54247,54248,54249,54250,54251,54254,54255,54257,54258,54259,54261,54262,54263,null,null,null,null,null,null,54264,54265,54266,54267,54270,54272,54274,54275,54276,54277,54278,54279,54281,54282,54283,54284,54285,54286,54287,54288,54289,54290,54291,54292,54293,54294,null,null,null,null,null,null,54295,54296,54297,54298,54299,54300,54302,54303,54304,54305,54306,54307,54308,54309,54310,54311,54312,54313,54314,54315,54316,54317,54318,54319,54320,54321,54322,54323,54324,54325,54326,54327,49711,49713,49714,49716,49736,49744,49745,49748,49752,49760,49765,49772,49773,49776,49780,49788,49789,49791,49793,49800,49801,49808,49816,49819,49821,49828,49829,49832,49836,49837,49844,49845,49847,49849,49884,49885,49888,49891,49892,49899,49900,49901,49903,49905,49910,49912,49913,49915,49916,49920,49928,49929,49932,49933,49939,49940,49941,49944,49948,49956,49957,49960,49961,49989,50024,50025,50028,50032,50034,50040,50041,50044,50045,50052,50056,50060,50112,50136,50137,50140,50143,50144,50146,50152,50153,50157,50164,50165,50168,50184,50192,50212,50220,50224,54328,54329,54330,54331,54332,54333,54334,54335,54337,54338,54339,54341,54342,54343,54344,54345,54346,54347,54348,54349,54350,54351,54352,54353,54354,54355,null,null,null,null,null,null,54356,54357,54358,54359,54360,54361,54362,54363,54365,54366,54367,54369,54370,54371,54373,54374,54375,54376,54377,54378,54379,54380,54382,54384,54385,54386,null,null,null,null,null,null,54387,54388,54389,54390,54391,54394,54395,54397,54398,54401,54403,54404,54405,54406,54407,54410,54412,54414,54415,54416,54417,54418,54419,54421,54422,54423,54424,54425,54426,54427,54428,54429,50228,50236,50237,50248,50276,50277,50280,50284,50292,50293,50297,50304,50324,50332,50360,50364,50409,50416,50417,50420,50424,50426,50431,50432,50433,50444,50448,50452,50460,50472,50473,50476,50480,50488,50489,50491,50493,50500,50501,50504,50505,50506,50508,50509,50510,50515,50516,50517,50519,50520,50521,50525,50526,50528,50529,50532,50536,50544,50545,50547,50548,50549,50556,50557,50560,50564,50567,50572,50573,50575,50577,50581,50583,50584,50588,50592,50601,50612,50613,50616,50617,50619,50620,50621,50622,50628,50629,50630,50631,50632,50633,50634,50636,50638,54430,54431,54432,54433,54434,54435,54436,54437,54438,54439,54440,54442,54443,54444,54445,54446,54447,54448,54449,54450,54451,54452,54453,54454,54455,54456,null,null,null,null,null,null,54457,54458,54459,54460,54461,54462,54463,54464,54465,54466,54467,54468,54469,54470,54471,54472,54473,54474,54475,54477,54478,54479,54481,54482,54483,54485,null,null,null,null,null,null,54486,54487,54488,54489,54490,54491,54493,54494,54496,54497,54498,54499,54500,54501,54502,54503,54505,54506,54507,54509,54510,54511,54513,54514,54515,54516,54517,54518,54519,54521,54522,54524,50640,50641,50644,50648,50656,50657,50659,50661,50668,50669,50670,50672,50676,50678,50679,50684,50685,50686,50687,50688,50689,50693,50694,50695,50696,50700,50704,50712,50713,50715,50716,50724,50725,50728,50732,50733,50734,50736,50739,50740,50741,50743,50745,50747,50752,50753,50756,50760,50768,50769,50771,50772,50773,50780,50781,50784,50796,50799,50801,50808,50809,50812,50816,50824,50825,50827,50829,50836,50837,50840,50844,50852,50853,50855,50857,50864,50865,50868,50872,50873,50874,50880,50881,50883,50885,50892,50893,50896,50900,50908,50909,50912,50913,50920,54526,54527,54528,54529,54530,54531,54533,54534,54535,54537,54538,54539,54541,54542,54543,54544,54545,54546,54547,54550,54552,54553,54554,54555,54556,54557,null,null,null,null,null,null,54558,54559,54560,54561,54562,54563,54564,54565,54566,54567,54568,54569,54570,54571,54572,54573,54574,54575,54576,54577,54578,54579,54580,54581,54582,54583,null,null,null,null,null,null,54584,54585,54586,54587,54590,54591,54593,54594,54595,54597,54598,54599,54600,54601,54602,54603,54606,54608,54610,54611,54612,54613,54614,54615,54618,54619,54621,54622,54623,54625,54626,54627,50921,50924,50928,50936,50937,50941,50948,50949,50952,50956,50964,50965,50967,50969,50976,50977,50980,50984,50992,50993,50995,50997,50999,51004,51005,51008,51012,51018,51020,51021,51023,51025,51026,51027,51028,51029,51030,51031,51032,51036,51040,51048,51051,51060,51061,51064,51068,51069,51070,51075,51076,51077,51079,51080,51081,51082,51086,51088,51089,51092,51094,51095,51096,51098,51104,51105,51107,51108,51109,51110,51116,51117,51120,51124,51132,51133,51135,51136,51137,51144,51145,51148,51150,51152,51160,51165,51172,51176,51180,51200,51201,51204,51208,51210,54628,54630,54631,54634,54636,54638,54639,54640,54641,54642,54643,54646,54647,54649,54650,54651,54653,54654,54655,54656,54657,54658,54659,54662,54666,54667,null,null,null,null,null,null,54668,54669,54670,54671,54673,54674,54675,54676,54677,54678,54679,54680,54681,54682,54683,54684,54685,54686,54687,54688,54689,54690,54691,54692,54694,54695,null,null,null,null,null,null,54696,54697,54698,54699,54700,54701,54702,54703,54704,54705,54706,54707,54708,54709,54710,54711,54712,54713,54714,54715,54716,54717,54718,54719,54720,54721,54722,54723,54724,54725,54726,54727,51216,51217,51219,51221,51222,51228,51229,51232,51236,51244,51245,51247,51249,51256,51260,51264,51272,51273,51276,51277,51284,51312,51313,51316,51320,51322,51328,51329,51331,51333,51334,51335,51339,51340,51341,51348,51357,51359,51361,51368,51388,51389,51396,51400,51404,51412,51413,51415,51417,51424,51425,51428,51445,51452,51453,51456,51460,51461,51462,51468,51469,51471,51473,51480,51500,51508,51536,51537,51540,51544,51552,51553,51555,51564,51568,51572,51580,51592,51593,51596,51600,51608,51609,51611,51613,51648,51649,51652,51655,51656,51658,51664,51665,51667,54730,54731,54733,54734,54735,54737,54739,54740,54741,54742,54743,54746,54748,54750,54751,54752,54753,54754,54755,54758,54759,54761,54762,54763,54765,54766,null,null,null,null,null,null,54767,54768,54769,54770,54771,54774,54776,54778,54779,54780,54781,54782,54783,54786,54787,54789,54790,54791,54793,54794,54795,54796,54797,54798,54799,54802,null,null,null,null,null,null,54806,54807,54808,54809,54810,54811,54813,54814,54815,54817,54818,54819,54821,54822,54823,54824,54825,54826,54827,54828,54830,54831,54832,54833,54834,54835,54836,54837,54838,54839,54842,54843,51669,51670,51673,51674,51676,51677,51680,51682,51684,51687,51692,51693,51695,51696,51697,51704,51705,51708,51712,51720,51721,51723,51724,51725,51732,51736,51753,51788,51789,51792,51796,51804,51805,51807,51808,51809,51816,51837,51844,51864,51900,51901,51904,51908,51916,51917,51919,51921,51923,51928,51929,51936,51948,51956,51976,51984,51988,51992,52000,52001,52033,52040,52041,52044,52048,52056,52057,52061,52068,52088,52089,52124,52152,52180,52196,52199,52201,52236,52237,52240,52244,52252,52253,52257,52258,52263,52264,52265,52268,52270,52272,52280,52281,52283,54845,54846,54847,54849,54850,54851,54852,54854,54855,54858,54860,54862,54863,54864,54866,54867,54870,54871,54873,54874,54875,54877,54878,54879,54880,54881,null,null,null,null,null,null,54882,54883,54884,54885,54886,54888,54890,54891,54892,54893,54894,54895,54898,54899,54901,54902,54903,54904,54905,54906,54907,54908,54909,54910,54911,54912,null,null,null,null,null,null,54913,54914,54916,54918,54919,54920,54921,54922,54923,54926,54927,54929,54930,54931,54933,54934,54935,54936,54937,54938,54939,54940,54942,54944,54946,54947,54948,54949,54950,54951,54953,54954,52284,52285,52286,52292,52293,52296,52300,52308,52309,52311,52312,52313,52320,52324,52326,52328,52336,52341,52376,52377,52380,52384,52392,52393,52395,52396,52397,52404,52405,52408,52412,52420,52421,52423,52425,52432,52436,52452,52460,52464,52481,52488,52489,52492,52496,52504,52505,52507,52509,52516,52520,52524,52537,52572,52576,52580,52588,52589,52591,52593,52600,52616,52628,52629,52632,52636,52644,52645,52647,52649,52656,52676,52684,52688,52712,52716,52720,52728,52729,52731,52733,52740,52744,52748,52756,52761,52768,52769,52772,52776,52784,52785,52787,52789,54955,54957,54958,54959,54961,54962,54963,54964,54965,54966,54967,54968,54970,54972,54973,54974,54975,54976,54977,54978,54979,54982,54983,54985,54986,54987,null,null,null,null,null,null,54989,54990,54991,54992,54994,54995,54997,54998,55000,55002,55003,55004,55005,55006,55007,55009,55010,55011,55013,55014,55015,55017,55018,55019,55020,55021,null,null,null,null,null,null,55022,55023,55025,55026,55027,55028,55030,55031,55032,55033,55034,55035,55038,55039,55041,55042,55043,55045,55046,55047,55048,55049,55050,55051,55052,55053,55054,55055,55056,55058,55059,55060,52824,52825,52828,52831,52832,52833,52840,52841,52843,52845,52852,52853,52856,52860,52868,52869,52871,52873,52880,52881,52884,52888,52896,52897,52899,52900,52901,52908,52909,52929,52964,52965,52968,52971,52972,52980,52981,52983,52984,52985,52992,52993,52996,53000,53008,53009,53011,53013,53020,53024,53028,53036,53037,53039,53040,53041,53048,53076,53077,53080,53084,53092,53093,53095,53097,53104,53105,53108,53112,53120,53125,53132,53153,53160,53168,53188,53216,53217,53220,53224,53232,53233,53235,53237,53244,53248,53252,53265,53272,53293,53300,53301,53304,53308,55061,55062,55063,55066,55067,55069,55070,55071,55073,55074,55075,55076,55077,55078,55079,55082,55084,55086,55087,55088,55089,55090,55091,55094,55095,55097,null,null,null,null,null,null,55098,55099,55101,55102,55103,55104,55105,55106,55107,55109,55110,55112,55114,55115,55116,55117,55118,55119,55122,55123,55125,55130,55131,55132,55133,55134,null,null,null,null,null,null,55135,55138,55140,55142,55143,55144,55146,55147,55149,55150,55151,55153,55154,55155,55157,55158,55159,55160,55161,55162,55163,55166,55167,55168,55170,55171,55172,55173,55174,55175,55178,55179,53316,53317,53319,53321,53328,53332,53336,53344,53356,53357,53360,53364,53372,53373,53377,53412,53413,53416,53420,53428,53429,53431,53433,53440,53441,53444,53448,53449,53456,53457,53459,53460,53461,53468,53469,53472,53476,53484,53485,53487,53488,53489,53496,53517,53552,53553,53556,53560,53562,53568,53569,53571,53572,53573,53580,53581,53584,53588,53596,53597,53599,53601,53608,53612,53628,53636,53640,53664,53665,53668,53672,53680,53681,53683,53685,53690,53692,53696,53720,53748,53752,53767,53769,53776,53804,53805,53808,53812,53820,53821,53823,53825,53832,53852,55181,55182,55183,55185,55186,55187,55188,55189,55190,55191,55194,55196,55198,55199,55200,55201,55202,55203,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,53860,53888,53889,53892,53896,53904,53905,53909,53916,53920,53924,53932,53937,53944,53945,53948,53951,53952,53954,53960,53961,53963,53972,53976,53980,53988,53989,54000,54001,54004,54008,54016,54017,54019,54021,54028,54029,54030,54032,54036,54038,54044,54045,54047,54048,54049,54053,54056,54057,54060,54064,54072,54073,54075,54076,54077,54084,54085,54140,54141,54144,54148,54156,54157,54159,54160,54161,54168,54169,54172,54176,54184,54185,54187,54189,54196,54200,54204,54212,54213,54216,54217,54224,54232,54241,54243,54252,54253,54256,54260,54268,54269,54271,54273,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,54280,54301,54336,54340,54364,54368,54372,54381,54383,54392,54393,54396,54399,54400,54402,54408,54409,54411,54413,54420,54441,54476,54480,54484,54492,54495,54504,54508,54512,54520,54523,54525,54532,54536,54540,54548,54549,54551,54588,54589,54592,54596,54604,54605,54607,54609,54616,54617,54620,54624,54629,54632,54633,54635,54637,54644,54645,54648,54652,54660,54661,54663,54664,54665,54672,54693,54728,54729,54732,54736,54738,54744,54745,54747,54749,54756,54757,54760,54764,54772,54773,54775,54777,54784,54785,54788,54792,54800,54801,54803,54804,54805,54812,54816,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,54820,54829,54840,54841,54844,54848,54853,54856,54857,54859,54861,54865,54868,54869,54872,54876,54887,54889,54896,54897,54900,54915,54917,54924,54925,54928,54932,54941,54943,54945,54952,54956,54960,54969,54971,54980,54981,54984,54988,54993,54996,54999,55001,55008,55012,55016,55024,55029,55036,55037,55040,55044,55057,55064,55065,55068,55072,55080,55081,55083,55085,55092,55093,55096,55100,55108,55111,55113,55120,55121,55124,55126,55127,55128,55129,55136,55137,55139,55141,55145,55148,55152,55156,55164,55165,55169,55176,55177,55180,55184,55192,55193,55195,55197,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,20285,20339,20551,20729,21152,21487,21621,21733,22025,23233,23478,26247,26550,26551,26607,27468,29634,30146,31292,33499,33540,34903,34952,35382,36040,36303,36603,36838,39381,21051,21364,21508,24682,24932,27580,29647,33050,35258,35282,38307,20355,21002,22718,22904,23014,24178,24185,25031,25536,26438,26604,26751,28567,30286,30475,30965,31240,31487,31777,32925,33390,33393,35563,38291,20075,21917,26359,28212,30883,31469,33883,35088,34638,38824,21208,22350,22570,23884,24863,25022,25121,25954,26577,27204,28187,29976,30131,30435,30640,32058,37039,37969,37970,40853,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,21283,23724,30002,32987,37440,38296,21083,22536,23004,23713,23831,24247,24378,24394,24951,27743,30074,30086,31968,32115,32177,32652,33108,33313,34193,35137,35611,37628,38477,40007,20171,20215,20491,20977,22607,24887,24894,24936,25913,27114,28433,30117,30342,30422,31623,33445,33995,63744,37799,38283,21888,23458,22353,63745,31923,32697,37301,20520,21435,23621,24040,25298,25454,25818,25831,28192,28844,31067,36317,36382,63746,36989,37445,37624,20094,20214,20581,24062,24314,24838,26967,33137,34388,36423,37749,39467,20062,20625,26480,26688,20745,21133,21138,27298,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,30652,37392,40660,21163,24623,36850,20552,25001,25581,25802,26684,27268,28608,33160,35233,38548,22533,29309,29356,29956,32121,32365,32937,35211,35700,36963,40273,25225,27770,28500,32080,32570,35363,20860,24906,31645,35609,37463,37772,20140,20435,20510,20670,20742,21185,21197,21375,22384,22659,24218,24465,24950,25004,25806,25964,26223,26299,26356,26775,28039,28805,28913,29855,29861,29898,30169,30828,30956,31455,31478,32069,32147,32789,32831,33051,33686,35686,36629,36885,37857,38915,38968,39514,39912,20418,21843,22586,22865,23395,23622,24760,25106,26690,26800,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,26856,28330,30028,30328,30926,31293,31995,32363,32380,35336,35489,35903,38542,40388,21476,21481,21578,21617,22266,22993,23396,23611,24235,25335,25911,25925,25970,26272,26543,27073,27837,30204,30352,30590,31295,32660,32771,32929,33167,33510,33533,33776,34241,34865,34996,35493,63747,36764,37678,38599,39015,39640,40723,21741,26011,26354,26767,31296,35895,40288,22256,22372,23825,26118,26801,26829,28414,29736,34974,39908,27752,63748,39592,20379,20844,20849,21151,23380,24037,24656,24685,25329,25511,25915,29657,31354,34467,36002,38799,20018,23521,25096,26524,29916,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,31185,33747,35463,35506,36328,36942,37707,38982,24275,27112,34303,37101,63749,20896,23448,23532,24931,26874,27454,28748,29743,29912,31649,32592,33733,35264,36011,38364,39208,21038,24669,25324,36866,20362,20809,21281,22745,24291,26336,27960,28826,29378,29654,31568,33009,37979,21350,25499,32619,20054,20608,22602,22750,24618,24871,25296,27088,39745,23439,32024,32945,36703,20132,20689,21676,21932,23308,23968,24039,25898,25934,26657,27211,29409,30350,30703,32094,32761,33184,34126,34527,36611,36686,37066,39171,39509,39851,19992,20037,20061,20167,20465,20855,21246,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,21312,21475,21477,21646,22036,22389,22434,23495,23943,24272,25084,25304,25937,26552,26601,27083,27472,27590,27628,27714,28317,28792,29399,29590,29699,30655,30697,31350,32127,32777,33276,33285,33290,33503,34914,35635,36092,36544,36881,37041,37476,37558,39378,39493,40169,40407,40860,22283,23616,33738,38816,38827,40628,21531,31384,32676,35033,36557,37089,22528,23624,25496,31391,23470,24339,31353,31406,33422,36524,20518,21048,21240,21367,22280,25331,25458,27402,28099,30519,21413,29527,34152,36470,38357,26426,27331,28528,35437,36556,39243,63750,26231,27512,36020,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,39740,63751,21483,22317,22862,25542,27131,29674,30789,31418,31429,31998,33909,35215,36211,36917,38312,21243,22343,30023,31584,33740,37406,63752,27224,20811,21067,21127,25119,26840,26997,38553,20677,21156,21220,25027,26020,26681,27135,29822,31563,33465,33771,35250,35641,36817,39241,63753,20170,22935,25810,26129,27278,29748,31105,31165,33449,34942,34943,35167,63754,37670,20235,21450,24613,25201,27762,32026,32102,20120,20834,30684,32943,20225,20238,20854,20864,21980,22120,22331,22522,22524,22804,22855,22931,23492,23696,23822,24049,24190,24524,25216,26071,26083,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,26398,26399,26462,26827,26820,27231,27450,27683,27773,27778,28103,29592,29734,29738,29826,29859,30072,30079,30849,30959,31041,31047,31048,31098,31637,32000,32186,32648,32774,32813,32908,35352,35663,35912,36215,37665,37668,39138,39249,39438,39439,39525,40594,32202,20342,21513,25326,26708,37329,21931,20794,63755,63756,23068,25062,63757,25295,25343,63758,63759,63760,63761,63762,63763,37027,63764,63765,63766,63767,63768,35582,63769,63770,63771,63772,26262,63773,29014,63774,63775,38627,63776,25423,25466,21335,63777,26511,26976,28275,63778,30007,63779,63780,63781,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,32013,63782,63783,34930,22218,23064,63784,63785,63786,63787,63788,20035,63789,20839,22856,26608,32784,63790,22899,24180,25754,31178,24565,24684,25288,25467,23527,23511,21162,63791,22900,24361,24594,63792,63793,63794,29785,63795,63796,63797,63798,63799,63800,39377,63801,63802,63803,63804,63805,63806,63807,63808,63809,63810,63811,28611,63812,63813,33215,36786,24817,63814,63815,33126,63816,63817,23615,63818,63819,63820,63821,63822,63823,63824,63825,23273,35365,26491,32016,63826,63827,63828,63829,63830,63831,33021,63832,63833,23612,27877,21311,28346,22810,33590,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,20025,20150,20294,21934,22296,22727,24406,26039,26086,27264,27573,28237,30701,31471,31774,32222,34507,34962,37170,37723,25787,28606,29562,30136,36948,21846,22349,25018,25812,26311,28129,28251,28525,28601,30192,32835,33213,34113,35203,35527,35674,37663,27795,30035,31572,36367,36957,21776,22530,22616,24162,25095,25758,26848,30070,31958,34739,40680,20195,22408,22382,22823,23565,23729,24118,24453,25140,25825,29619,33274,34955,36024,38538,40667,23429,24503,24755,20498,20992,21040,22294,22581,22615,23566,23648,23798,23947,24230,24466,24764,25361,25481,25623,26691,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,26873,27330,28120,28193,28372,28644,29182,30428,30585,31153,31291,33796,35241,36077,36339,36424,36867,36884,36947,37117,37709,38518,38876,27602,28678,29272,29346,29544,30563,31167,31716,32411,35712,22697,24775,25958,26109,26302,27788,28958,29129,35930,38931,20077,31361,20189,20908,20941,21205,21516,24999,26481,26704,26847,27934,28540,30140,30643,31461,33012,33891,37509,20828,26007,26460,26515,30168,31431,33651,63834,35910,36887,38957,23663,33216,33434,36929,36975,37389,24471,23965,27225,29128,30331,31561,34276,35588,37159,39472,21895,25078,63835,30313,32645,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,34367,34746,35064,37007,63836,27931,28889,29662,32097,33853,63837,37226,39409,63838,20098,21365,27396,27410,28734,29211,34349,40478,21068,36771,23888,25829,25900,27414,28651,31811,32412,34253,35172,35261,25289,33240,34847,24266,26391,28010,29436,29701,29807,34690,37086,20358,23821,24480,33802,20919,25504,30053,20142,20486,20841,20937,26753,27153,31918,31921,31975,33391,35538,36635,37327,20406,20791,21237,21570,24300,24942,25150,26053,27354,28670,31018,34268,34851,38317,39522,39530,40599,40654,21147,26310,27511,28701,31019,36706,38722,24976,25088,25891,28451,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,29001,29833,32244,32879,34030,36646,36899,37706,20925,21015,21155,27916,28872,35010,24265,25986,27566,28610,31806,29557,20196,20278,22265,63839,23738,23994,24604,29618,31533,32666,32718,32838,36894,37428,38646,38728,38936,40801,20363,28583,31150,37300,38583,21214,63840,25736,25796,27347,28510,28696,29200,30439,32769,34310,34396,36335,36613,38706,39791,40442,40565,30860,31103,32160,33737,37636,40575,40595,35542,22751,24324,26407,28711,29903,31840,32894,20769,28712,29282,30922,36034,36058,36084,38647,20102,20698,23534,24278,26009,29134,30274,30637,32842,34044,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,36988,39719,40845,22744,23105,23650,27155,28122,28431,30267,32047,32311,34078,35128,37860,38475,21129,26066,26611,27060,27969,28316,28687,29705,29792,30041,30244,30827,35628,39006,20845,25134,38520,20374,20523,23833,28138,32184,36650,24459,24900,26647,63841,38534,21202,32907,20956,20940,26974,31260,32190,33777,38517,20442,21033,21400,21519,21774,23653,24743,26446,26792,28012,29313,29432,29702,29827,63842,30178,31852,32633,32696,33673,35023,35041,37324,37328,38626,39881,21533,28542,29136,29848,34298,36522,38563,40023,40607,26519,28107,29747,33256,38678,30764,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,31435,31520,31890,25705,29802,30194,30908,30952,39340,39764,40635,23518,24149,28448,33180,33707,37000,19975,21325,23081,24018,24398,24930,25405,26217,26364,28415,28459,28771,30622,33836,34067,34875,36627,39237,39995,21788,25273,26411,27819,33545,35178,38778,20129,22916,24536,24537,26395,32178,32596,33426,33579,33725,36638,37017,22475,22969,23186,23504,26151,26522,26757,27599,29028,32629,36023,36067,36993,39749,33032,35978,38476,39488,40613,23391,27667,29467,30450,30431,33804,20906,35219,20813,20885,21193,26825,27796,30468,30496,32191,32236,38754,40629,28357,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,34065,20901,21517,21629,26126,26269,26919,28319,30399,30609,33559,33986,34719,37225,37528,40180,34946,20398,20882,21215,22982,24125,24917,25720,25721,26286,26576,27169,27597,27611,29279,29281,29761,30520,30683,32791,33468,33541,35584,35624,35980,26408,27792,29287,30446,30566,31302,40361,27519,27794,22818,26406,33945,21359,22675,22937,24287,25551,26164,26483,28218,29483,31447,33495,37672,21209,24043,25006,25035,25098,25287,25771,26080,26969,27494,27595,28961,29687,30045,32326,33310,33538,34154,35491,36031,38695,40289,22696,40664,20497,21006,21563,21839,25991,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,27766,32010,32011,32862,34442,38272,38639,21247,27797,29289,21619,23194,23614,23883,24396,24494,26410,26806,26979,28220,28228,30473,31859,32654,34183,35598,36855,38753,40692,23735,24758,24845,25003,25935,26107,26108,27665,27887,29599,29641,32225,38292,23494,34588,35600,21085,21338,25293,25615,25778,26420,27192,27850,29632,29854,31636,31893,32283,33162,33334,34180,36843,38649,39361,20276,21322,21453,21467,25292,25644,25856,26001,27075,27886,28504,29677,30036,30242,30436,30460,30928,30971,31020,32070,33324,34784,36820,38930,39151,21187,25300,25765,28196,28497,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,30332,36299,37297,37474,39662,39747,20515,20621,22346,22952,23592,24135,24439,25151,25918,26041,26049,26121,26507,27036,28354,30917,32033,32938,33152,33323,33459,33953,34444,35370,35607,37030,38450,40848,20493,20467,63843,22521,24472,25308,25490,26479,28227,28953,30403,32972,32986,35060,35061,35097,36064,36649,37197,38506,20271,20336,24091,26575,26658,30333,30334,39748,24161,27146,29033,29140,30058,63844,32321,34115,34281,39132,20240,31567,32624,38309,20961,24070,26805,27710,27726,27867,29359,31684,33539,27861,29754,20731,21128,22721,25816,27287,29863,30294,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,30887,34327,38370,38713,63845,21342,24321,35722,36776,36783,37002,21029,30629,40009,40712,19993,20482,20853,23643,24183,26142,26170,26564,26821,28851,29953,30149,31177,31453,36647,39200,39432,20445,22561,22577,23542,26222,27493,27921,28282,28541,29668,29995,33769,35036,35091,35676,36628,20239,20693,21264,21340,23443,24489,26381,31119,33145,33583,34068,35079,35206,36665,36667,39333,39954,26412,20086,20472,22857,23553,23791,23792,25447,26834,28925,29090,29739,32299,34028,34562,36898,37586,40179,19981,20184,20463,20613,21078,21103,21542,21648,22496,22827,23142,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,23386,23413,23500,24220,63846,25206,25975,26023,28014,28325,29238,31526,31807,32566,33104,33105,33178,33344,33433,33705,35331,36000,36070,36091,36212,36282,37096,37340,38428,38468,39385,40167,21271,20998,21545,22132,22707,22868,22894,24575,24996,25198,26128,27774,28954,30406,31881,31966,32027,33452,36033,38640,63847,20315,24343,24447,25282,23849,26379,26842,30844,32323,40300,19989,20633,21269,21290,21329,22915,23138,24199,24754,24970,25161,25209,26000,26503,27047,27604,27606,27607,27608,27832,63848,29749,30202,30738,30865,31189,31192,31875,32203,32737,32933,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,33086,33218,33778,34586,35048,35513,35692,36027,37145,38750,39131,40763,22188,23338,24428,25996,27315,27567,27996,28657,28693,29277,29613,36007,36051,38971,24977,27703,32856,39425,20045,20107,20123,20181,20282,20284,20351,20447,20735,21490,21496,21766,21987,22235,22763,22882,23057,23531,23546,23556,24051,24107,24473,24605,25448,26012,26031,26614,26619,26797,27515,27801,27863,28195,28681,29509,30722,31038,31040,31072,31169,31721,32023,32114,32902,33293,33678,34001,34503,35039,35408,35422,35613,36060,36198,36781,37034,39164,39391,40605,21066,63849,26388,63850,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,20632,21034,23665,25955,27733,29642,29987,30109,31639,33948,37240,38704,20087,25746,27578,29022,34217,19977,63851,26441,26862,28183,33439,34072,34923,25591,28545,37394,39087,19978,20663,20687,20767,21830,21930,22039,23360,23577,23776,24120,24202,24224,24258,24819,26705,27233,28248,29245,29248,29376,30456,31077,31665,32724,35059,35316,35443,35937,36062,38684,22622,29885,36093,21959,63852,31329,32034,33394,29298,29983,29989,63853,31513,22661,22779,23996,24207,24246,24464,24661,25234,25471,25933,26257,26329,26360,26646,26866,29312,29790,31598,32110,32214,32626,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,32997,33298,34223,35199,35475,36893,37604,40653,40736,22805,22893,24109,24796,26132,26227,26512,27728,28101,28511,30707,30889,33990,37323,37675,20185,20682,20808,21892,23307,23459,25159,25982,26059,28210,29053,29697,29764,29831,29887,30316,31146,32218,32341,32680,33146,33203,33337,34330,34796,35445,36323,36984,37521,37925,39245,39854,21352,23633,26964,27844,27945,28203,33292,34203,35131,35373,35498,38634,40807,21089,26297,27570,32406,34814,36109,38275,38493,25885,28041,29166,63854,22478,22995,23468,24615,24826,25104,26143,26207,29481,29689,30427,30465,31596,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,32854,32882,33125,35488,37266,19990,21218,27506,27927,31237,31545,32048,63855,36016,21484,22063,22609,23477,23567,23569,24034,25152,25475,25620,26157,26803,27836,28040,28335,28703,28836,29138,29990,30095,30094,30233,31505,31712,31787,32032,32057,34092,34157,34311,35380,36877,36961,37045,37559,38902,39479,20439,23660,26463,28049,31903,32396,35606,36118,36895,23403,24061,25613,33984,36956,39137,29575,23435,24730,26494,28126,35359,35494,36865,38924,21047,63856,28753,30862,37782,34928,37335,20462,21463,22013,22234,22402,22781,23234,23432,23723,23744,24101,24833,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,25101,25163,25480,25628,25910,25976,27193,27530,27700,27929,28465,29159,29417,29560,29703,29874,30246,30561,31168,31319,31466,31929,32143,32172,32353,32670,33065,33585,33936,34010,34282,34966,35504,35728,36664,36930,36995,37228,37526,37561,38539,38567,38568,38614,38656,38920,39318,39635,39706,21460,22654,22809,23408,23487,28113,28506,29087,29729,29881,32901,33789,24033,24455,24490,24642,26092,26642,26991,27219,27529,27957,28147,29667,30462,30636,31565,32020,33059,33308,33600,34036,34147,35426,35524,37255,37662,38918,39348,25100,34899,36848,37477,23815,23847,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,23913,29791,33181,34664,28629,25342,32722,35126,35186,19998,20056,20711,21213,21319,25215,26119,32361,34821,38494,20365,21273,22070,22987,23204,23608,23630,23629,24066,24337,24643,26045,26159,26178,26558,26612,29468,30690,31034,32709,33940,33997,35222,35430,35433,35553,35925,35962,22516,23508,24335,24687,25325,26893,27542,28252,29060,31698,34645,35672,36606,39135,39166,20280,20353,20449,21627,23072,23480,24892,26032,26216,29180,30003,31070,32051,33102,33251,33688,34218,34254,34563,35338,36523,36763,63857,36805,22833,23460,23526,24713,23529,23563,24515,27777,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,63858,28145,28683,29978,33455,35574,20160,21313,63859,38617,27663,20126,20420,20818,21854,23077,23784,25105,29273,33469,33706,34558,34905,35357,38463,38597,39187,40201,40285,22538,23731,23997,24132,24801,24853,25569,27138,28197,37122,37716,38990,39952,40823,23433,23736,25353,26191,26696,30524,38593,38797,38996,39839,26017,35585,36555,38332,21813,23721,24022,24245,26263,30284,33780,38343,22739,25276,29390,40232,20208,22830,24591,26171,27523,31207,40230,21395,21696,22467,23830,24859,26326,28079,30861,33406,38552,38724,21380,25212,25494,28082,32266,33099,38989,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,27387,32588,40367,40474,20063,20539,20918,22812,24825,25590,26928,29242,32822,63860,37326,24369,63861,63862,32004,33509,33903,33979,34277,36493,63863,20335,63864,63865,22756,23363,24665,25562,25880,25965,26264,63866,26954,27171,27915,28673,29036,30162,30221,31155,31344,63867,32650,63868,35140,63869,35731,37312,38525,63870,39178,22276,24481,26044,28417,30208,31142,35486,39341,39770,40812,20740,25014,25233,27277,33222,20547,22576,24422,28937,35328,35578,23420,34326,20474,20796,22196,22852,25513,28153,23978,26989,20870,20104,20313,63871,63872,63873,22914,63874,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,63875,27487,27741,63876,29877,30998,63877,33287,33349,33593,36671,36701,63878,39192,63879,63880,63881,20134,63882,22495,24441,26131,63883,63884,30123,32377,35695,63885,36870,39515,22181,22567,23032,23071,23476,63886,24310,63887,63888,25424,25403,63889,26941,27783,27839,28046,28051,28149,28436,63890,28895,28982,29017,63891,29123,29141,63892,30799,30831,63893,31605,32227,63894,32303,63895,34893,36575,63896,63897,63898,37467,63899,40182,63900,63901,63902,24709,28037,63903,29105,63904,63905,38321,21421,63906,63907,63908,26579,63909,28814,28976,29744,33398,33490,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,63910,38331,39653,40573,26308,63911,29121,33865,63912,63913,22603,63914,63915,23992,24433,63916,26144,26254,27001,27054,27704,27891,28214,28481,28634,28699,28719,29008,29151,29552,63917,29787,63918,29908,30408,31310,32403,63919,63920,33521,35424,36814,63921,37704,63922,38681,63923,63924,20034,20522,63925,21000,21473,26355,27757,28618,29450,30591,31330,33454,34269,34306,63926,35028,35427,35709,35947,63927,37555,63928,38675,38928,20116,20237,20425,20658,21320,21566,21555,21978,22626,22714,22887,23067,23524,24735,63929,25034,25942,26111,26212,26791,27738,28595,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,28879,29100,29522,31613,34568,35492,39986,40711,23627,27779,29508,29577,37434,28331,29797,30239,31337,32277,34314,20800,22725,25793,29934,29973,30320,32705,37013,38605,39252,28198,29926,31401,31402,33253,34521,34680,35355,23113,23436,23451,26785,26880,28003,29609,29715,29740,30871,32233,32747,33048,33109,33694,35916,38446,38929,26352,24448,26106,26505,27754,29579,20525,23043,27498,30702,22806,23916,24013,29477,30031,63930,63931,20709,20985,22575,22829,22934,23002,23525,63932,63933,23970,25303,25622,25747,25854,63934,26332,63935,27208,63936,29183,29796,63937,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,31368,31407,32327,32350,32768,33136,63938,34799,35201,35616,36953,63939,36992,39250,24958,27442,28020,32287,35109,36785,20433,20653,20887,21191,22471,22665,23481,24248,24898,27029,28044,28263,28342,29076,29794,29992,29996,32883,33592,33993,36362,37780,37854,63940,20110,20305,20598,20778,21448,21451,21491,23431,23507,23588,24858,24962,26100,29275,29591,29760,30402,31056,31121,31161,32006,32701,33419,34261,34398,36802,36935,37109,37354,38533,38632,38633,21206,24423,26093,26161,26671,29020,31286,37057,38922,20113,63941,27218,27550,28560,29065,32792,33464,34131,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,36939,38549,38642,38907,34074,39729,20112,29066,38596,20803,21407,21729,22291,22290,22435,23195,23236,23491,24616,24895,25588,27781,27961,28274,28304,29232,29503,29783,33489,34945,36677,36960,63942,38498,39000,40219,26376,36234,37470,20301,20553,20702,21361,22285,22996,23041,23561,24944,26256,28205,29234,29771,32239,32963,33806,33894,34111,34655,34907,35096,35586,36949,38859,39759,20083,20369,20754,20842,63943,21807,21929,23418,23461,24188,24189,24254,24736,24799,24840,24841,25540,25912,26377,63944,26580,26586,63945,26977,26978,27833,27943,63946,28216,63947,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,28641,29494,29495,63948,29788,30001,63949,30290,63950,63951,32173,33278,33848,35029,35480,35547,35565,36400,36418,36938,36926,36986,37193,37321,37742,63952,63953,22537,63954,27603,32905,32946,63955,63956,20801,22891,23609,63957,63958,28516,29607,32996,36103,63959,37399,38287,63960,63961,63962,63963,32895,25102,28700,32104,34701,63964,22432,24681,24903,27575,35518,37504,38577,20057,21535,28139,34093,38512,38899,39150,25558,27875,37009,20957,25033,33210,40441,20381,20506,20736,23452,24847,25087,25836,26885,27589,30097,30691,32681,33380,34191,34811,34915,35516,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,35696,37291,20108,20197,20234,63965,63966,22839,23016,63967,24050,24347,24411,24609,63968,63969,63970,63971,29246,29669,63972,30064,30157,63973,31227,63974,32780,32819,32900,33505,33617,63975,63976,36029,36019,36999,63977,63978,39156,39180,63979,63980,28727,30410,32714,32716,32764,35610,20154,20161,20995,21360,63981,21693,22240,23035,23493,24341,24525,28270,63982,63983,32106,33589,63984,34451,35469,63985,38765,38775,63986,63987,19968,20314,20350,22777,26085,28322,36920,37808,39353,20219,22764,22922,23001,24641,63988,63989,31252,63990,33615,36035,20837,21316,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,63991,63992,63993,20173,21097,23381,33471,20180,21050,21672,22985,23039,23376,23383,23388,24675,24904,28363,28825,29038,29574,29943,30133,30913,32043,32773,33258,33576,34071,34249,35566,36039,38604,20316,21242,22204,26027,26152,28796,28856,29237,32189,33421,37196,38592,40306,23409,26855,27544,28538,30430,23697,26283,28507,31668,31786,34870,38620,19976,20183,21280,22580,22715,22767,22892,23559,24115,24196,24373,25484,26290,26454,27167,27299,27404,28479,29254,63994,29520,29835,31456,31911,33144,33247,33255,33674,33900,34083,34196,34255,35037,36115,37292,38263,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,38556,20877,21705,22312,23472,25165,26448,26685,26771,28221,28371,28797,32289,35009,36001,36617,40779,40782,29229,31631,35533,37658,20295,20302,20786,21632,22992,24213,25269,26485,26990,27159,27822,28186,29401,29482,30141,31672,32053,33511,33785,33879,34295,35419,36015,36487,36889,37048,38606,40799,21219,21514,23265,23490,25688,25973,28404,29380,63995,30340,31309,31515,31821,32318,32735,33659,35627,36042,36196,36321,36447,36842,36857,36969,37841,20291,20346,20659,20840,20856,21069,21098,22625,22652,22880,23560,23637,24283,24731,25136,26643,27583,27656,28593,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,29006,29728,30000,30008,30033,30322,31564,31627,31661,31686,32399,35438,36670,36681,37439,37523,37666,37931,38651,39002,39019,39198,20999,25130,25240,27993,30308,31434,31680,32118,21344,23742,24215,28472,28857,31896,38673,39822,40670,25509,25722,34678,19969,20117,20141,20572,20597,21576,22979,23450,24128,24237,24311,24449,24773,25402,25919,25972,26060,26230,26232,26622,26984,27273,27491,27712,28096,28136,28191,28254,28702,28833,29582,29693,30010,30555,30855,31118,31243,31357,31934,32142,33351,35330,35562,35998,37165,37194,37336,37478,37580,37664,38662,38742,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,38748,38914,40718,21046,21137,21884,22564,24093,24351,24716,25552,26799,28639,31085,31532,33229,34234,35069,35576,36420,37261,38500,38555,38717,38988,40778,20430,20806,20939,21161,22066,24340,24427,25514,25805,26089,26177,26362,26361,26397,26781,26839,27133,28437,28526,29031,29157,29226,29866,30522,31062,31066,31199,31264,31381,31895,31967,32068,32368,32903,34299,34468,35412,35519,36249,36481,36896,36973,37347,38459,38613,40165,26063,31751,36275,37827,23384,23562,21330,25305,29469,20519,23447,24478,24752,24939,26837,28121,29742,31278,32066,32156,32305,33131,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,36394,36405,37758,37912,20304,22352,24038,24231,25387,32618,20027,20303,20367,20570,23005,32964,21610,21608,22014,22863,23449,24030,24282,26205,26417,26609,26666,27880,27954,28234,28557,28855,29664,30087,31820,32002,32044,32162,33311,34523,35387,35461,36208,36490,36659,36913,37198,37202,37956,39376,31481,31909,20426,20737,20934,22472,23535,23803,26201,27197,27994,28310,28652,28940,30063,31459,34850,36897,36981,38603,39423,33537,20013,20210,34886,37325,21373,27355,26987,27713,33914,22686,24974,26366,25327,28893,29969,30151,32338,33976,35657,36104,20043,21482,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,21675,22320,22336,24535,25345,25351,25711,25903,26088,26234,26525,26547,27490,27744,27802,28460,30693,30757,31049,31063,32025,32930,33026,33267,33437,33463,34584,35468,63996,36100,36286,36978,30452,31257,31287,32340,32887,21767,21972,22645,25391,25634,26185,26187,26733,27035,27524,27941,28337,29645,29800,29857,30043,30137,30433,30494,30603,31206,32265,32285,33275,34095,34967,35386,36049,36587,36784,36914,37805,38499,38515,38663,20356,21489,23018,23241,24089,26702,29894,30142,31209,31378,33187,34541,36074,36300,36845,26015,26389,63997,22519,28503,32221,36655,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,37878,38598,24501,25074,28548,19988,20376,20511,21449,21983,23919,24046,27425,27492,30923,31642,63998,36425,36554,36974,25417,25662,30528,31364,37679,38015,40810,25776,28591,29158,29864,29914,31428,31762,32386,31922,32408,35738,36106,38013,39184,39244,21049,23519,25830,26413,32046,20717,21443,22649,24920,24921,25082,26028,31449,35730,35734,20489,20513,21109,21809,23100,24288,24432,24884,25950,26124,26166,26274,27085,28356,28466,29462,30241,31379,33081,33369,33750,33980,20661,22512,23488,23528,24425,25505,30758,32181,33756,34081,37319,37365,20874,26613,31574,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,36012,20932,22971,24765,34389,20508,63999,21076,23610,24957,25114,25299,25842,26021,28364,30240,33034,36448,38495,38587,20191,21315,21912,22825,24029,25797,27849,28154,29588,31359,33307,34214,36068,36368,36983,37351,38369,38433,38854,20984,21746,21894,24505,25764,28552,32180,36639,36685,37941,20681,23574,27838,28155,29979,30651,31805,31844,35449,35522,22558,22974,24086,25463,29266,30090,30571,35548,36028,36626,24307,26228,28152,32893,33729,35531,38737,39894,64000,21059,26367,28053,28399,32224,35558,36910,36958,39636,21021,21119,21736,24980,25220,25307,26786,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,26898,26970,27189,28818,28966,30813,30977,30990,31186,31245,32918,33400,33493,33609,34121,35970,36229,37218,37259,37294,20419,22225,29165,30679,34560,35320,23544,24534,26449,37032,21474,22618,23541,24740,24961,25696,32317,32880,34085,37507,25774,20652,23828,26368,22684,25277,25512,26894,27000,27166,28267,30394,31179,33467,33833,35535,36264,36861,37138,37195,37276,37648,37656,37786,38619,39478,39949,19985,30044,31069,31482,31569,31689,32302,33988,36441,36468,36600,36880,26149,26943,29763,20986,26414,40668,20805,24544,27798,34802,34909,34935,24756,33205,33795,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,36101,21462,21561,22068,23094,23601,28810,32736,32858,33030,33261,36259,37257,39519,40434,20596,20164,21408,24827,28204,23652,20360,20516,21988,23769,24159,24677,26772,27835,28100,29118,30164,30196,30305,31258,31305,32199,32251,32622,33268,34473,36636,38601,39347,40786,21063,21189,39149,35242,19971,26578,28422,20405,23522,26517,27784,28024,29723,30759,37341,37756,34756,31204,31281,24555,20182,21668,21822,22702,22949,24816,25171,25302,26422,26965,33333,38464,39345,39389,20524,21331,21828,22396,64001,25176,64002,25826,26219,26589,28609,28655,29730,29752,35351,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,37944,21585,22022,22374,24392,24986,27470,28760,28845,32187,35477,22890,33067,25506,30472,32829,36010,22612,25645,27067,23445,24081,28271,64003,34153,20812,21488,22826,24608,24907,27526,27760,27888,31518,32974,33492,36294,37040,39089,64004,25799,28580,25745,25860,20814,21520,22303,35342,24927,26742,64005,30171,31570,32113,36890,22534,27084,33151,35114,36864,38969,20600,22871,22956,25237,36879,39722,24925,29305,38358,22369,23110,24052,25226,25773,25850,26487,27874,27966,29228,29750,30772,32631,33453,36315,38935,21028,22338,26495,29256,29923,36009,36774,37393,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,38442,20843,21485,25420,20329,21764,24726,25943,27803,28031,29260,29437,31255,35207,35997,24429,28558,28921,33192,24846,20415,20559,25153,29255,31687,32232,32745,36941,38829,39449,36022,22378,24179,26544,33805,35413,21536,23318,24163,24290,24330,25987,32954,34109,38281,38491,20296,21253,21261,21263,21638,21754,22275,24067,24598,25243,25265,25429,64006,27873,28006,30129,30770,32990,33071,33502,33889,33970,34957,35090,36875,37610,39165,39825,24133,26292,26333,28689,29190,64007,20469,21117,24426,24915,26451,27161,28418,29922,31080,34920,35961,39111,39108,39491,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,21697,31263,26963,35575,35914,39080,39342,24444,25259,30130,30382,34987,36991,38466,21305,24380,24517,27852,29644,30050,30091,31558,33534,39325,20047,36924,19979,20309,21414,22799,24264,26160,27827,29781,33655,34662,36032,36944,38686,39957,22737,23416,34384,35604,40372,23506,24680,24717,26097,27735,28450,28579,28698,32597,32752,38289,38290,38480,38867,21106,36676,20989,21547,21688,21859,21898,27323,28085,32216,33382,37532,38519,40569,21512,21704,30418,34532,38308,38356,38492,20130,20233,23022,23270,24055,24658,25239,26477,26689,27782,28207,32568,32923,33322,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,64008,64009,38917,20133,20565,21683,22419,22874,23401,23475,25032,26999,28023,28707,34809,35299,35442,35559,36994,39405,39608,21182,26680,20502,24184,26447,33607,34892,20139,21521,22190,29670,37141,38911,39177,39255,39321,22099,22687,34395,35377,25010,27382,29563,36562,27463,38570,39511,22869,29184,36203,38761,20436,23796,24358,25080,26203,27883,28843,29572,29625,29694,30505,30541,32067,32098,32291,33335,34898,64010,36066,37449,39023,23377,31348,34880,38913,23244,20448,21332,22846,23805,25406,28025,29433,33029,33031,33698,37583,38960,20136,20804,21009,22411,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,24418,27842,28366,28677,28752,28847,29074,29673,29801,33610,34722,34913,36872,37026,37795,39336,20846,24407,24800,24935,26291,34137,36426,37295,38795,20046,20114,21628,22741,22778,22909,23733,24359,25142,25160,26122,26215,27627,28009,28111,28246,28408,28564,28640,28649,28765,29392,29733,29786,29920,30355,31068,31946,32286,32993,33446,33899,33983,34382,34399,34676,35703,35946,37804,38912,39013,24785,25110,37239,23130,26127,28151,28222,29759,39746,24573,24794,31503,21700,24344,27742,27859,27946,28888,32005,34425,35340,40251,21270,21644,23301,27194,28779,30069,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,31117,31166,33457,33775,35441,35649,36008,38772,64011,25844,25899,30906,30907,31339,20024,21914,22864,23462,24187,24739,25563,27489,26213,26707,28185,29029,29872,32008,36996,39529,39973,27963,28369,29502,35905,38346,20976,24140,24488,24653,24822,24880,24908,26179,26180,27045,27841,28255,28361,28514,29004,29852,30343,31681,31783,33618,34647,36945,38541,40643,21295,22238,24315,24458,24674,24724,25079,26214,26371,27292,28142,28590,28784,29546,32362,33214,33588,34516,35496,36036,21123,29554,23446,27243,37892,21742,22150,23389,25928,25989,26313,26783,28045,28102,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,29243,32948,37237,39501,20399,20505,21402,21518,21564,21897,21957,24127,24460,26429,29030,29661,36869,21211,21235,22628,22734,28932,29071,29179,34224,35347,26248,34216,21927,26244,29002,33841,21321,21913,27585,24409,24509,25582,26249,28999,35569,36637,40638,20241,25658,28875,30054,34407,24676,35662,40440,20807,20982,21256,27958,33016,40657,26133,27427,28824,30165,21507,23673,32007,35350,27424,27453,27462,21560,24688,27965,32725,33288,20694,20958,21916,22123,22221,23020,23305,24076,24985,24984,25137,26206,26342,29081,29113,29114,29351,31143,31232,32690,35440,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null],\n \"gb18030\":[19970,19972,19973,19974,19983,19986,19991,19999,20000,20001,20003,20006,20009,20014,20015,20017,20019,20021,20023,20028,20032,20033,20034,20036,20038,20042,20049,20053,20055,20058,20059,20066,20067,20068,20069,20071,20072,20074,20075,20076,20077,20078,20079,20082,20084,20085,20086,20087,20088,20089,20090,20091,20092,20093,20095,20096,20097,20098,20099,20100,20101,20103,20106,20112,20118,20119,20121,20124,20125,20126,20131,20138,20143,20144,20145,20148,20150,20151,20152,20153,20156,20157,20158,20168,20172,20175,20176,20178,20186,20187,20188,20192,20194,20198,20199,20201,20205,20206,20207,20209,20212,20216,20217,20218,20220,20222,20224,20226,20227,20228,20229,20230,20231,20232,20235,20236,20242,20243,20244,20245,20246,20252,20253,20257,20259,20264,20265,20268,20269,20270,20273,20275,20277,20279,20281,20283,20286,20287,20288,20289,20290,20292,20293,20295,20296,20297,20298,20299,20300,20306,20308,20310,20321,20322,20326,20328,20330,20331,20333,20334,20337,20338,20341,20343,20344,20345,20346,20349,20352,20353,20354,20357,20358,20359,20362,20364,20366,20368,20370,20371,20373,20374,20376,20377,20378,20380,20382,20383,20385,20386,20388,20395,20397,20400,20401,20402,20403,20404,20406,20407,20408,20409,20410,20411,20412,20413,20414,20416,20417,20418,20422,20423,20424,20425,20427,20428,20429,20434,20435,20436,20437,20438,20441,20443,20448,20450,20452,20453,20455,20459,20460,20464,20466,20468,20469,20470,20471,20473,20475,20476,20477,20479,20480,20481,20482,20483,20484,20485,20486,20487,20488,20489,20490,20491,20494,20496,20497,20499,20501,20502,20503,20507,20509,20510,20512,20514,20515,20516,20519,20523,20527,20528,20529,20530,20531,20532,20533,20534,20535,20536,20537,20539,20541,20543,20544,20545,20546,20548,20549,20550,20553,20554,20555,20557,20560,20561,20562,20563,20564,20566,20567,20568,20569,20571,20573,20574,20575,20576,20577,20578,20579,20580,20582,20583,20584,20585,20586,20587,20589,20590,20591,20592,20593,20594,20595,20596,20597,20600,20601,20602,20604,20605,20609,20610,20611,20612,20614,20615,20617,20618,20619,20620,20622,20623,20624,20625,20626,20627,20628,20629,20630,20631,20632,20633,20634,20635,20636,20637,20638,20639,20640,20641,20642,20644,20646,20650,20651,20653,20654,20655,20656,20657,20659,20660,20661,20662,20663,20664,20665,20668,20669,20670,20671,20672,20673,20674,20675,20676,20677,20678,20679,20680,20681,20682,20683,20684,20685,20686,20688,20689,20690,20691,20692,20693,20695,20696,20697,20699,20700,20701,20702,20703,20704,20705,20706,20707,20708,20709,20712,20713,20714,20715,20719,20720,20721,20722,20724,20726,20727,20728,20729,20730,20732,20733,20734,20735,20736,20737,20738,20739,20740,20741,20744,20745,20746,20748,20749,20750,20751,20752,20753,20755,20756,20757,20758,20759,20760,20761,20762,20763,20764,20765,20766,20767,20768,20770,20771,20772,20773,20774,20775,20776,20777,20778,20779,20780,20781,20782,20783,20784,20785,20786,20787,20788,20789,20790,20791,20792,20793,20794,20795,20796,20797,20798,20802,20807,20810,20812,20814,20815,20816,20818,20819,20823,20824,20825,20827,20829,20830,20831,20832,20833,20835,20836,20838,20839,20841,20842,20847,20850,20858,20862,20863,20867,20868,20870,20871,20874,20875,20878,20879,20880,20881,20883,20884,20888,20890,20893,20894,20895,20897,20899,20902,20903,20904,20905,20906,20909,20910,20916,20920,20921,20922,20926,20927,20929,20930,20931,20933,20936,20938,20941,20942,20944,20946,20947,20948,20949,20950,20951,20952,20953,20954,20956,20958,20959,20962,20963,20965,20966,20967,20968,20969,20970,20972,20974,20977,20978,20980,20983,20990,20996,20997,21001,21003,21004,21007,21008,21011,21012,21013,21020,21022,21023,21025,21026,21027,21029,21030,21031,21034,21036,21039,21041,21042,21044,21045,21052,21054,21060,21061,21062,21063,21064,21065,21067,21070,21071,21074,21075,21077,21079,21080,21081,21082,21083,21085,21087,21088,21090,21091,21092,21094,21096,21099,21100,21101,21102,21104,21105,21107,21108,21109,21110,21111,21112,21113,21114,21115,21116,21118,21120,21123,21124,21125,21126,21127,21129,21130,21131,21132,21133,21134,21135,21137,21138,21140,21141,21142,21143,21144,21145,21146,21148,21156,21157,21158,21159,21166,21167,21168,21172,21173,21174,21175,21176,21177,21178,21179,21180,21181,21184,21185,21186,21188,21189,21190,21192,21194,21196,21197,21198,21199,21201,21203,21204,21205,21207,21209,21210,21211,21212,21213,21214,21216,21217,21218,21219,21221,21222,21223,21224,21225,21226,21227,21228,21229,21230,21231,21233,21234,21235,21236,21237,21238,21239,21240,21243,21244,21245,21249,21250,21251,21252,21255,21257,21258,21259,21260,21262,21265,21266,21267,21268,21272,21275,21276,21278,21279,21282,21284,21285,21287,21288,21289,21291,21292,21293,21295,21296,21297,21298,21299,21300,21301,21302,21303,21304,21308,21309,21312,21314,21316,21318,21323,21324,21325,21328,21332,21336,21337,21339,21341,21349,21352,21354,21356,21357,21362,21366,21369,21371,21372,21373,21374,21376,21377,21379,21383,21384,21386,21390,21391,21392,21393,21394,21395,21396,21398,21399,21401,21403,21404,21406,21408,21409,21412,21415,21418,21419,21420,21421,21423,21424,21425,21426,21427,21428,21429,21431,21432,21433,21434,21436,21437,21438,21440,21443,21444,21445,21446,21447,21454,21455,21456,21458,21459,21461,21466,21468,21469,21470,21473,21474,21479,21492,21498,21502,21503,21504,21506,21509,21511,21515,21524,21528,21529,21530,21532,21538,21540,21541,21546,21552,21555,21558,21559,21562,21565,21567,21569,21570,21572,21573,21575,21577,21580,21581,21582,21583,21585,21594,21597,21598,21599,21600,21601,21603,21605,21607,21609,21610,21611,21612,21613,21614,21615,21616,21620,21625,21626,21630,21631,21633,21635,21637,21639,21640,21641,21642,21645,21649,21651,21655,21656,21660,21662,21663,21664,21665,21666,21669,21678,21680,21682,21685,21686,21687,21689,21690,21692,21694,21699,21701,21706,21707,21718,21720,21723,21728,21729,21730,21731,21732,21739,21740,21743,21744,21745,21748,21749,21750,21751,21752,21753,21755,21758,21760,21762,21763,21764,21765,21768,21770,21771,21772,21773,21774,21778,21779,21781,21782,21783,21784,21785,21786,21788,21789,21790,21791,21793,21797,21798,21800,21801,21803,21805,21810,21812,21813,21814,21816,21817,21818,21819,21821,21824,21826,21829,21831,21832,21835,21836,21837,21838,21839,21841,21842,21843,21844,21847,21848,21849,21850,21851,21853,21854,21855,21856,21858,21859,21864,21865,21867,21871,21872,21873,21874,21875,21876,21881,21882,21885,21887,21893,21894,21900,21901,21902,21904,21906,21907,21909,21910,21911,21914,21915,21918,21920,21921,21922,21923,21924,21925,21926,21928,21929,21930,21931,21932,21933,21934,21935,21936,21938,21940,21942,21944,21946,21948,21951,21952,21953,21954,21955,21958,21959,21960,21962,21963,21966,21967,21968,21973,21975,21976,21977,21978,21979,21982,21984,21986,21991,21993,21997,21998,22000,22001,22004,22006,22008,22009,22010,22011,22012,22015,22018,22019,22020,22021,22022,22023,22026,22027,22029,22032,22033,22034,22035,22036,22037,22038,22039,22041,22042,22044,22045,22048,22049,22050,22053,22054,22056,22057,22058,22059,22062,22063,22064,22067,22069,22071,22072,22074,22076,22077,22078,22080,22081,22082,22083,22084,22085,22086,22087,22088,22089,22090,22091,22095,22096,22097,22098,22099,22101,22102,22106,22107,22109,22110,22111,22112,22113,22115,22117,22118,22119,22125,22126,22127,22128,22130,22131,22132,22133,22135,22136,22137,22138,22141,22142,22143,22144,22145,22146,22147,22148,22151,22152,22153,22154,22155,22156,22157,22160,22161,22162,22164,22165,22166,22167,22168,22169,22170,22171,22172,22173,22174,22175,22176,22177,22178,22180,22181,22182,22183,22184,22185,22186,22187,22188,22189,22190,22192,22193,22194,22195,22196,22197,22198,22200,22201,22202,22203,22205,22206,22207,22208,22209,22210,22211,22212,22213,22214,22215,22216,22217,22219,22220,22221,22222,22223,22224,22225,22226,22227,22229,22230,22232,22233,22236,22243,22245,22246,22247,22248,22249,22250,22252,22254,22255,22258,22259,22262,22263,22264,22267,22268,22272,22273,22274,22277,22279,22283,22284,22285,22286,22287,22288,22289,22290,22291,22292,22293,22294,22295,22296,22297,22298,22299,22301,22302,22304,22305,22306,22308,22309,22310,22311,22315,22321,22322,22324,22325,22326,22327,22328,22332,22333,22335,22337,22339,22340,22341,22342,22344,22345,22347,22354,22355,22356,22357,22358,22360,22361,22370,22371,22373,22375,22380,22382,22384,22385,22386,22388,22389,22392,22393,22394,22397,22398,22399,22400,22401,22407,22408,22409,22410,22413,22414,22415,22416,22417,22420,22421,22422,22423,22424,22425,22426,22428,22429,22430,22431,22437,22440,22442,22444,22447,22448,22449,22451,22453,22454,22455,22457,22458,22459,22460,22461,22462,22463,22464,22465,22468,22469,22470,22471,22472,22473,22474,22476,22477,22480,22481,22483,22486,22487,22491,22492,22494,22497,22498,22499,22501,22502,22503,22504,22505,22506,22507,22508,22510,22512,22513,22514,22515,22517,22518,22519,22523,22524,22526,22527,22529,22531,22532,22533,22536,22537,22538,22540,22542,22543,22544,22546,22547,22548,22550,22551,22552,22554,22555,22556,22557,22559,22562,22563,22565,22566,22567,22568,22569,22571,22572,22573,22574,22575,22577,22578,22579,22580,22582,22583,22584,22585,22586,22587,22588,22589,22590,22591,22592,22593,22594,22595,22597,22598,22599,22600,22601,22602,22603,22606,22607,22608,22610,22611,22613,22614,22615,22617,22618,22619,22620,22621,22623,22624,22625,22626,22627,22628,22630,22631,22632,22633,22634,22637,22638,22639,22640,22641,22642,22643,22644,22645,22646,22647,22648,22649,22650,22651,22652,22653,22655,22658,22660,22662,22663,22664,22666,22667,22668,22669,22670,22671,22672,22673,22676,22677,22678,22679,22680,22683,22684,22685,22688,22689,22690,22691,22692,22693,22694,22695,22698,22699,22700,22701,22702,22703,22704,22705,22706,22707,22708,22709,22710,22711,22712,22713,22714,22715,22717,22718,22719,22720,22722,22723,22724,22726,22727,22728,22729,22730,22731,22732,22733,22734,22735,22736,22738,22739,22740,22742,22743,22744,22745,22746,22747,22748,22749,22750,22751,22752,22753,22754,22755,22757,22758,22759,22760,22761,22762,22765,22767,22769,22770,22772,22773,22775,22776,22778,22779,22780,22781,22782,22783,22784,22785,22787,22789,22790,22792,22793,22794,22795,22796,22798,22800,22801,22802,22803,22807,22808,22811,22813,22814,22816,22817,22818,22819,22822,22824,22828,22832,22834,22835,22837,22838,22843,22845,22846,22847,22848,22851,22853,22854,22858,22860,22861,22864,22866,22867,22873,22875,22876,22877,22878,22879,22881,22883,22884,22886,22887,22888,22889,22890,22891,22892,22893,22894,22895,22896,22897,22898,22901,22903,22906,22907,22908,22910,22911,22912,22917,22921,22923,22924,22926,22927,22928,22929,22932,22933,22936,22938,22939,22940,22941,22943,22944,22945,22946,22950,22951,22956,22957,22960,22961,22963,22964,22965,22966,22967,22968,22970,22972,22973,22975,22976,22977,22978,22979,22980,22981,22983,22984,22985,22988,22989,22990,22991,22997,22998,23001,23003,23006,23007,23008,23009,23010,23012,23014,23015,23017,23018,23019,23021,23022,23023,23024,23025,23026,23027,23028,23029,23030,23031,23032,23034,23036,23037,23038,23040,23042,23050,23051,23053,23054,23055,23056,23058,23060,23061,23062,23063,23065,23066,23067,23069,23070,23073,23074,23076,23078,23079,23080,23082,23083,23084,23085,23086,23087,23088,23091,23093,23095,23096,23097,23098,23099,23101,23102,23103,23105,23106,23107,23108,23109,23111,23112,23115,23116,23117,23118,23119,23120,23121,23122,23123,23124,23126,23127,23128,23129,23131,23132,23133,23134,23135,23136,23137,23139,23140,23141,23142,23144,23145,23147,23148,23149,23150,23151,23152,23153,23154,23155,23160,23161,23163,23164,23165,23166,23168,23169,23170,23171,23172,23173,23174,23175,23176,23177,23178,23179,23180,23181,23182,23183,23184,23185,23187,23188,23189,23190,23191,23192,23193,23196,23197,23198,23199,23200,23201,23202,23203,23204,23205,23206,23207,23208,23209,23211,23212,23213,23214,23215,23216,23217,23220,23222,23223,23225,23226,23227,23228,23229,23231,23232,23235,23236,23237,23238,23239,23240,23242,23243,23245,23246,23247,23248,23249,23251,23253,23255,23257,23258,23259,23261,23262,23263,23266,23268,23269,23271,23272,23274,23276,23277,23278,23279,23280,23282,23283,23284,23285,23286,23287,23288,23289,23290,23291,23292,23293,23294,23295,23296,23297,23298,23299,23300,23301,23302,23303,23304,23306,23307,23308,23309,23310,23311,23312,23313,23314,23315,23316,23317,23320,23321,23322,23323,23324,23325,23326,23327,23328,23329,23330,23331,23332,23333,23334,23335,23336,23337,23338,23339,23340,23341,23342,23343,23344,23345,23347,23349,23350,23352,23353,23354,23355,23356,23357,23358,23359,23361,23362,23363,23364,23365,23366,23367,23368,23369,23370,23371,23372,23373,23374,23375,23378,23382,23390,23392,23393,23399,23400,23403,23405,23406,23407,23410,23412,23414,23415,23416,23417,23419,23420,23422,23423,23426,23430,23434,23437,23438,23440,23441,23442,23444,23446,23455,23463,23464,23465,23468,23469,23470,23471,23473,23474,23479,23482,23483,23484,23488,23489,23491,23496,23497,23498,23499,23501,23502,23503,23505,23508,23509,23510,23511,23512,23513,23514,23515,23516,23520,23522,23523,23526,23527,23529,23530,23531,23532,23533,23535,23537,23538,23539,23540,23541,23542,23543,23549,23550,23552,23554,23555,23557,23559,23560,23563,23564,23565,23566,23568,23570,23571,23575,23577,23579,23582,23583,23584,23585,23587,23590,23592,23593,23594,23595,23597,23598,23599,23600,23602,23603,23605,23606,23607,23619,23620,23622,23623,23628,23629,23634,23635,23636,23638,23639,23640,23642,23643,23644,23645,23647,23650,23652,23655,23656,23657,23658,23659,23660,23661,23664,23666,23667,23668,23669,23670,23671,23672,23675,23676,23677,23678,23680,23683,23684,23685,23686,23687,23689,23690,23691,23694,23695,23698,23699,23701,23709,23710,23711,23712,23713,23716,23717,23718,23719,23720,23722,23726,23727,23728,23730,23732,23734,23737,23738,23739,23740,23742,23744,23746,23747,23749,23750,23751,23752,23753,23754,23756,23757,23758,23759,23760,23761,23763,23764,23765,23766,23767,23768,23770,23771,23772,23773,23774,23775,23776,23778,23779,23783,23785,23787,23788,23790,23791,23793,23794,23795,23796,23797,23798,23799,23800,23801,23802,23804,23805,23806,23807,23808,23809,23812,23813,23816,23817,23818,23819,23820,23821,23823,23824,23825,23826,23827,23829,23831,23832,23833,23834,23836,23837,23839,23840,23841,23842,23843,23845,23848,23850,23851,23852,23855,23856,23857,23858,23859,23861,23862,23863,23864,23865,23866,23867,23868,23871,23872,23873,23874,23875,23876,23877,23878,23880,23881,23885,23886,23887,23888,23889,23890,23891,23892,23893,23894,23895,23897,23898,23900,23902,23903,23904,23905,23906,23907,23908,23909,23910,23911,23912,23914,23917,23918,23920,23921,23922,23923,23925,23926,23927,23928,23929,23930,23931,23932,23933,23934,23935,23936,23937,23939,23940,23941,23942,23943,23944,23945,23946,23947,23948,23949,23950,23951,23952,23953,23954,23955,23956,23957,23958,23959,23960,23962,23963,23964,23966,23967,23968,23969,23970,23971,23972,23973,23974,23975,23976,23977,23978,23979,23980,23981,23982,23983,23984,23985,23986,23987,23988,23989,23990,23992,23993,23994,23995,23996,23997,23998,23999,24000,24001,24002,24003,24004,24006,24007,24008,24009,24010,24011,24012,24014,24015,24016,24017,24018,24019,24020,24021,24022,24023,24024,24025,24026,24028,24031,24032,24035,24036,24042,24044,24045,24048,24053,24054,24056,24057,24058,24059,24060,24063,24064,24068,24071,24073,24074,24075,24077,24078,24082,24083,24087,24094,24095,24096,24097,24098,24099,24100,24101,24104,24105,24106,24107,24108,24111,24112,24114,24115,24116,24117,24118,24121,24122,24126,24127,24128,24129,24131,24134,24135,24136,24137,24138,24139,24141,24142,24143,24144,24145,24146,24147,24150,24151,24152,24153,24154,24156,24157,24159,24160,24163,24164,24165,24166,24167,24168,24169,24170,24171,24172,24173,24174,24175,24176,24177,24181,24183,24185,24190,24193,24194,24195,24197,24200,24201,24204,24205,24206,24210,24216,24219,24221,24225,24226,24227,24228,24232,24233,24234,24235,24236,24238,24239,24240,24241,24242,24244,24250,24251,24252,24253,24255,24256,24257,24258,24259,24260,24261,24262,24263,24264,24267,24268,24269,24270,24271,24272,24276,24277,24279,24280,24281,24282,24284,24285,24286,24287,24288,24289,24290,24291,24292,24293,24294,24295,24297,24299,24300,24301,24302,24303,24304,24305,24306,24307,24309,24312,24313,24315,24316,24317,24325,24326,24327,24329,24332,24333,24334,24336,24338,24340,24342,24345,24346,24348,24349,24350,24353,24354,24355,24356,24360,24363,24364,24366,24368,24370,24371,24372,24373,24374,24375,24376,24379,24381,24382,24383,24385,24386,24387,24388,24389,24390,24391,24392,24393,24394,24395,24396,24397,24398,24399,24401,24404,24409,24410,24411,24412,24414,24415,24416,24419,24421,24423,24424,24427,24430,24431,24434,24436,24437,24438,24440,24442,24445,24446,24447,24451,24454,24461,24462,24463,24465,24467,24468,24470,24474,24475,24477,24478,24479,24480,24482,24483,24484,24485,24486,24487,24489,24491,24492,24495,24496,24497,24498,24499,24500,24502,24504,24505,24506,24507,24510,24511,24512,24513,24514,24519,24520,24522,24523,24526,24531,24532,24533,24538,24539,24540,24542,24543,24546,24547,24549,24550,24552,24553,24556,24559,24560,24562,24563,24564,24566,24567,24569,24570,24572,24583,24584,24585,24587,24588,24592,24593,24595,24599,24600,24602,24606,24607,24610,24611,24612,24620,24621,24622,24624,24625,24626,24627,24628,24630,24631,24632,24633,24634,24637,24638,24640,24644,24645,24646,24647,24648,24649,24650,24652,24654,24655,24657,24659,24660,24662,24663,24664,24667,24668,24670,24671,24672,24673,24677,24678,24686,24689,24690,24692,24693,24695,24702,24704,24705,24706,24709,24710,24711,24712,24714,24715,24718,24719,24720,24721,24723,24725,24727,24728,24729,24732,24734,24737,24738,24740,24741,24743,24745,24746,24750,24752,24755,24757,24758,24759,24761,24762,24765,24766,24767,24768,24769,24770,24771,24772,24775,24776,24777,24780,24781,24782,24783,24784,24786,24787,24788,24790,24791,24793,24795,24798,24801,24802,24803,24804,24805,24810,24817,24818,24821,24823,24824,24827,24828,24829,24830,24831,24834,24835,24836,24837,24839,24842,24843,24844,24848,24849,24850,24851,24852,24854,24855,24856,24857,24859,24860,24861,24862,24865,24866,24869,24872,24873,24874,24876,24877,24878,24879,24880,24881,24882,24883,24884,24885,24886,24887,24888,24889,24890,24891,24892,24893,24894,24896,24897,24898,24899,24900,24901,24902,24903,24905,24907,24909,24911,24912,24914,24915,24916,24918,24919,24920,24921,24922,24923,24924,24926,24927,24928,24929,24931,24932,24933,24934,24937,24938,24939,24940,24941,24942,24943,24945,24946,24947,24948,24950,24952,24953,24954,24955,24956,24957,24958,24959,24960,24961,24962,24963,24964,24965,24966,24967,24968,24969,24970,24972,24973,24975,24976,24977,24978,24979,24981,24982,24983,24984,24985,24986,24987,24988,24990,24991,24992,24993,24994,24995,24996,24997,24998,25002,25003,25005,25006,25007,25008,25009,25010,25011,25012,25013,25014,25016,25017,25018,25019,25020,25021,25023,25024,25025,25027,25028,25029,25030,25031,25033,25036,25037,25038,25039,25040,25043,25045,25046,25047,25048,25049,25050,25051,25052,25053,25054,25055,25056,25057,25058,25059,25060,25061,25063,25064,25065,25066,25067,25068,25069,25070,25071,25072,25073,25074,25075,25076,25078,25079,25080,25081,25082,25083,25084,25085,25086,25088,25089,25090,25091,25092,25093,25095,25097,25107,25108,25113,25116,25117,25118,25120,25123,25126,25127,25128,25129,25131,25133,25135,25136,25137,25138,25141,25142,25144,25145,25146,25147,25148,25154,25156,25157,25158,25162,25167,25168,25173,25174,25175,25177,25178,25180,25181,25182,25183,25184,25185,25186,25188,25189,25192,25201,25202,25204,25205,25207,25208,25210,25211,25213,25217,25218,25219,25221,25222,25223,25224,25227,25228,25229,25230,25231,25232,25236,25241,25244,25245,25246,25251,25254,25255,25257,25258,25261,25262,25263,25264,25266,25267,25268,25270,25271,25272,25274,25278,25280,25281,25283,25291,25295,25297,25301,25309,25310,25312,25313,25316,25322,25323,25328,25330,25333,25336,25337,25338,25339,25344,25347,25348,25349,25350,25354,25355,25356,25357,25359,25360,25362,25363,25364,25365,25367,25368,25369,25372,25382,25383,25385,25388,25389,25390,25392,25393,25395,25396,25397,25398,25399,25400,25403,25404,25406,25407,25408,25409,25412,25415,25416,25418,25425,25426,25427,25428,25430,25431,25432,25433,25434,25435,25436,25437,25440,25444,25445,25446,25448,25450,25451,25452,25455,25456,25458,25459,25460,25461,25464,25465,25468,25469,25470,25471,25473,25475,25476,25477,25478,25483,25485,25489,25491,25492,25493,25495,25497,25498,25499,25500,25501,25502,25503,25505,25508,25510,25515,25519,25521,25522,25525,25526,25529,25531,25533,25535,25536,25537,25538,25539,25541,25543,25544,25546,25547,25548,25553,25555,25556,25557,25559,25560,25561,25562,25563,25564,25565,25567,25570,25572,25573,25574,25575,25576,25579,25580,25582,25583,25584,25585,25587,25589,25591,25593,25594,25595,25596,25598,25603,25604,25606,25607,25608,25609,25610,25613,25614,25617,25618,25621,25622,25623,25624,25625,25626,25629,25631,25634,25635,25636,25637,25639,25640,25641,25643,25646,25647,25648,25649,25650,25651,25653,25654,25655,25656,25657,25659,25660,25662,25664,25666,25667,25673,25675,25676,25677,25678,25679,25680,25681,25683,25685,25686,25687,25689,25690,25691,25692,25693,25695,25696,25697,25698,25699,25700,25701,25702,25704,25706,25707,25708,25710,25711,25712,25713,25714,25715,25716,25717,25718,25719,25723,25724,25725,25726,25727,25728,25729,25731,25734,25736,25737,25738,25739,25740,25741,25742,25743,25744,25747,25748,25751,25752,25754,25755,25756,25757,25759,25760,25761,25762,25763,25765,25766,25767,25768,25770,25771,25775,25777,25778,25779,25780,25782,25785,25787,25789,25790,25791,25793,25795,25796,25798,25799,25800,25801,25802,25803,25804,25807,25809,25811,25812,25813,25814,25817,25818,25819,25820,25821,25823,25824,25825,25827,25829,25831,25832,25833,25834,25835,25836,25837,25838,25839,25840,25841,25842,25843,25844,25845,25846,25847,25848,25849,25850,25851,25852,25853,25854,25855,25857,25858,25859,25860,25861,25862,25863,25864,25866,25867,25868,25869,25870,25871,25872,25873,25875,25876,25877,25878,25879,25881,25882,25883,25884,25885,25886,25887,25888,25889,25890,25891,25892,25894,25895,25896,25897,25898,25900,25901,25904,25905,25906,25907,25911,25914,25916,25917,25920,25921,25922,25923,25924,25926,25927,25930,25931,25933,25934,25936,25938,25939,25940,25943,25944,25946,25948,25951,25952,25953,25956,25957,25959,25960,25961,25962,25965,25966,25967,25969,25971,25973,25974,25976,25977,25978,25979,25980,25981,25982,25983,25984,25985,25986,25987,25988,25989,25990,25992,25993,25994,25997,25998,25999,26002,26004,26005,26006,26008,26010,26013,26014,26016,26018,26019,26022,26024,26026,26028,26030,26033,26034,26035,26036,26037,26038,26039,26040,26042,26043,26046,26047,26048,26050,26055,26056,26057,26058,26061,26064,26065,26067,26068,26069,26072,26073,26074,26075,26076,26077,26078,26079,26081,26083,26084,26090,26091,26098,26099,26100,26101,26104,26105,26107,26108,26109,26110,26111,26113,26116,26117,26119,26120,26121,26123,26125,26128,26129,26130,26134,26135,26136,26138,26139,26140,26142,26145,26146,26147,26148,26150,26153,26154,26155,26156,26158,26160,26162,26163,26167,26168,26169,26170,26171,26173,26175,26176,26178,26180,26181,26182,26183,26184,26185,26186,26189,26190,26192,26193,26200,26201,26203,26204,26205,26206,26208,26210,26211,26213,26215,26217,26218,26219,26220,26221,26225,26226,26227,26229,26232,26233,26235,26236,26237,26239,26240,26241,26243,26245,26246,26248,26249,26250,26251,26253,26254,26255,26256,26258,26259,26260,26261,26264,26265,26266,26267,26268,26270,26271,26272,26273,26274,26275,26276,26277,26278,26281,26282,26283,26284,26285,26287,26288,26289,26290,26291,26293,26294,26295,26296,26298,26299,26300,26301,26303,26304,26305,26306,26307,26308,26309,26310,26311,26312,26313,26314,26315,26316,26317,26318,26319,26320,26321,26322,26323,26324,26325,26326,26327,26328,26330,26334,26335,26336,26337,26338,26339,26340,26341,26343,26344,26346,26347,26348,26349,26350,26351,26353,26357,26358,26360,26362,26363,26365,26369,26370,26371,26372,26373,26374,26375,26380,26382,26383,26385,26386,26387,26390,26392,26393,26394,26396,26398,26400,26401,26402,26403,26404,26405,26407,26409,26414,26416,26418,26419,26422,26423,26424,26425,26427,26428,26430,26431,26433,26436,26437,26439,26442,26443,26445,26450,26452,26453,26455,26456,26457,26458,26459,26461,26466,26467,26468,26470,26471,26475,26476,26478,26481,26484,26486,26488,26489,26490,26491,26493,26496,26498,26499,26501,26502,26504,26506,26508,26509,26510,26511,26513,26514,26515,26516,26518,26521,26523,26527,26528,26529,26532,26534,26537,26540,26542,26545,26546,26548,26553,26554,26555,26556,26557,26558,26559,26560,26562,26565,26566,26567,26568,26569,26570,26571,26572,26573,26574,26581,26582,26583,26587,26591,26593,26595,26596,26598,26599,26600,26602,26603,26605,26606,26610,26613,26614,26615,26616,26617,26618,26619,26620,26622,26625,26626,26627,26628,26630,26637,26640,26642,26644,26645,26648,26649,26650,26651,26652,26654,26655,26656,26658,26659,26660,26661,26662,26663,26664,26667,26668,26669,26670,26671,26672,26673,26676,26677,26678,26682,26683,26687,26695,26699,26701,26703,26706,26710,26711,26712,26713,26714,26715,26716,26717,26718,26719,26730,26732,26733,26734,26735,26736,26737,26738,26739,26741,26744,26745,26746,26747,26748,26749,26750,26751,26752,26754,26756,26759,26760,26761,26762,26763,26764,26765,26766,26768,26769,26770,26772,26773,26774,26776,26777,26778,26779,26780,26781,26782,26783,26784,26785,26787,26788,26789,26793,26794,26795,26796,26798,26801,26802,26804,26806,26807,26808,26809,26810,26811,26812,26813,26814,26815,26817,26819,26820,26821,26822,26823,26824,26826,26828,26830,26831,26832,26833,26835,26836,26838,26839,26841,26843,26844,26845,26846,26847,26849,26850,26852,26853,26854,26855,26856,26857,26858,26859,26860,26861,26863,26866,26867,26868,26870,26871,26872,26875,26877,26878,26879,26880,26882,26883,26884,26886,26887,26888,26889,26890,26892,26895,26897,26899,26900,26901,26902,26903,26904,26905,26906,26907,26908,26909,26910,26913,26914,26915,26917,26918,26919,26920,26921,26922,26923,26924,26926,26927,26929,26930,26931,26933,26934,26935,26936,26938,26939,26940,26942,26944,26945,26947,26948,26949,26950,26951,26952,26953,26954,26955,26956,26957,26958,26959,26960,26961,26962,26963,26965,26966,26968,26969,26971,26972,26975,26977,26978,26980,26981,26983,26984,26985,26986,26988,26989,26991,26992,26994,26995,26996,26997,26998,27002,27003,27005,27006,27007,27009,27011,27013,27018,27019,27020,27022,27023,27024,27025,27026,27027,27030,27031,27033,27034,27037,27038,27039,27040,27041,27042,27043,27044,27045,27046,27049,27050,27052,27054,27055,27056,27058,27059,27061,27062,27064,27065,27066,27068,27069,27070,27071,27072,27074,27075,27076,27077,27078,27079,27080,27081,27083,27085,27087,27089,27090,27091,27093,27094,27095,27096,27097,27098,27100,27101,27102,27105,27106,27107,27108,27109,27110,27111,27112,27113,27114,27115,27116,27118,27119,27120,27121,27123,27124,27125,27126,27127,27128,27129,27130,27131,27132,27134,27136,27137,27138,27139,27140,27141,27142,27143,27144,27145,27147,27148,27149,27150,27151,27152,27153,27154,27155,27156,27157,27158,27161,27162,27163,27164,27165,27166,27168,27170,27171,27172,27173,27174,27175,27177,27179,27180,27181,27182,27184,27186,27187,27188,27190,27191,27192,27193,27194,27195,27196,27199,27200,27201,27202,27203,27205,27206,27208,27209,27210,27211,27212,27213,27214,27215,27217,27218,27219,27220,27221,27222,27223,27226,27228,27229,27230,27231,27232,27234,27235,27236,27238,27239,27240,27241,27242,27243,27244,27245,27246,27247,27248,27250,27251,27252,27253,27254,27255,27256,27258,27259,27261,27262,27263,27265,27266,27267,27269,27270,27271,27272,27273,27274,27275,27276,27277,27279,27282,27283,27284,27285,27286,27288,27289,27290,27291,27292,27293,27294,27295,27297,27298,27299,27300,27301,27302,27303,27304,27306,27309,27310,27311,27312,27313,27314,27315,27316,27317,27318,27319,27320,27321,27322,27323,27324,27325,27326,27327,27328,27329,27330,27331,27332,27333,27334,27335,27336,27337,27338,27339,27340,27341,27342,27343,27344,27345,27346,27347,27348,27349,27350,27351,27352,27353,27354,27355,27356,27357,27358,27359,27360,27361,27362,27363,27364,27365,27366,27367,27368,27369,27370,27371,27372,27373,27374,27375,27376,27377,27378,27379,27380,27381,27382,27383,27384,27385,27386,27387,27388,27389,27390,27391,27392,27393,27394,27395,27396,27397,27398,27399,27400,27401,27402,27403,27404,27405,27406,27407,27408,27409,27410,27411,27412,27413,27414,27415,27416,27417,27418,27419,27420,27421,27422,27423,27429,27430,27432,27433,27434,27435,27436,27437,27438,27439,27440,27441,27443,27444,27445,27446,27448,27451,27452,27453,27455,27456,27457,27458,27460,27461,27464,27466,27467,27469,27470,27471,27472,27473,27474,27475,27476,27477,27478,27479,27480,27482,27483,27484,27485,27486,27487,27488,27489,27496,27497,27499,27500,27501,27502,27503,27504,27505,27506,27507,27508,27509,27510,27511,27512,27514,27517,27518,27519,27520,27525,27528,27532,27534,27535,27536,27537,27540,27541,27543,27544,27545,27548,27549,27550,27551,27552,27554,27555,27556,27557,27558,27559,27560,27561,27563,27564,27565,27566,27567,27568,27569,27570,27574,27576,27577,27578,27579,27580,27581,27582,27584,27587,27588,27590,27591,27592,27593,27594,27596,27598,27600,27601,27608,27610,27612,27613,27614,27615,27616,27618,27619,27620,27621,27622,27623,27624,27625,27628,27629,27630,27632,27633,27634,27636,27638,27639,27640,27642,27643,27644,27646,27647,27648,27649,27650,27651,27652,27656,27657,27658,27659,27660,27662,27666,27671,27676,27677,27678,27680,27683,27685,27691,27692,27693,27697,27699,27702,27703,27705,27706,27707,27708,27710,27711,27715,27716,27717,27720,27723,27724,27725,27726,27727,27729,27730,27731,27734,27736,27737,27738,27746,27747,27749,27750,27751,27755,27756,27757,27758,27759,27761,27763,27765,27767,27768,27770,27771,27772,27775,27776,27780,27783,27786,27787,27789,27790,27793,27794,27797,27798,27799,27800,27802,27804,27805,27806,27808,27810,27816,27820,27823,27824,27828,27829,27830,27831,27834,27840,27841,27842,27843,27846,27847,27848,27851,27853,27854,27855,27857,27858,27864,27865,27866,27868,27869,27871,27876,27878,27879,27881,27884,27885,27890,27892,27897,27903,27904,27906,27907,27909,27910,27912,27913,27914,27917,27919,27920,27921,27923,27924,27925,27926,27928,27932,27933,27935,27936,27937,27938,27939,27940,27942,27944,27945,27948,27949,27951,27952,27956,27958,27959,27960,27962,27967,27968,27970,27972,27977,27980,27984,27989,27990,27991,27992,27995,27997,27999,28001,28002,28004,28005,28007,28008,28011,28012,28013,28016,28017,28018,28019,28021,28022,28025,28026,28027,28029,28030,28031,28032,28033,28035,28036,28038,28039,28042,28043,28045,28047,28048,28050,28054,28055,28056,28057,28058,28060,28066,28069,28076,28077,28080,28081,28083,28084,28086,28087,28089,28090,28091,28092,28093,28094,28097,28098,28099,28104,28105,28106,28109,28110,28111,28112,28114,28115,28116,28117,28119,28122,28123,28124,28127,28130,28131,28133,28135,28136,28137,28138,28141,28143,28144,28146,28148,28149,28150,28152,28154,28157,28158,28159,28160,28161,28162,28163,28164,28166,28167,28168,28169,28171,28175,28178,28179,28181,28184,28185,28187,28188,28190,28191,28194,28198,28199,28200,28202,28204,28206,28208,28209,28211,28213,28214,28215,28217,28219,28220,28221,28222,28223,28224,28225,28226,28229,28230,28231,28232,28233,28234,28235,28236,28239,28240,28241,28242,28245,28247,28249,28250,28252,28253,28254,28256,28257,28258,28259,28260,28261,28262,28263,28264,28265,28266,28268,28269,28271,28272,28273,28274,28275,28276,28277,28278,28279,28280,28281,28282,28283,28284,28285,28288,28289,28290,28292,28295,28296,28298,28299,28300,28301,28302,28305,28306,28307,28308,28309,28310,28311,28313,28314,28315,28317,28318,28320,28321,28323,28324,28326,28328,28329,28331,28332,28333,28334,28336,28339,28341,28344,28345,28348,28350,28351,28352,28355,28356,28357,28358,28360,28361,28362,28364,28365,28366,28368,28370,28374,28376,28377,28379,28380,28381,28387,28391,28394,28395,28396,28397,28398,28399,28400,28401,28402,28403,28405,28406,28407,28408,28410,28411,28412,28413,28414,28415,28416,28417,28419,28420,28421,28423,28424,28426,28427,28428,28429,28430,28432,28433,28434,28438,28439,28440,28441,28442,28443,28444,28445,28446,28447,28449,28450,28451,28453,28454,28455,28456,28460,28462,28464,28466,28468,28469,28471,28472,28473,28474,28475,28476,28477,28479,28480,28481,28482,28483,28484,28485,28488,28489,28490,28492,28494,28495,28496,28497,28498,28499,28500,28501,28502,28503,28505,28506,28507,28509,28511,28512,28513,28515,28516,28517,28519,28520,28521,28522,28523,28524,28527,28528,28529,28531,28533,28534,28535,28537,28539,28541,28542,28543,28544,28545,28546,28547,28549,28550,28551,28554,28555,28559,28560,28561,28562,28563,28564,28565,28566,28567,28568,28569,28570,28571,28573,28574,28575,28576,28578,28579,28580,28581,28582,28584,28585,28586,28587,28588,28589,28590,28591,28592,28593,28594,28596,28597,28599,28600,28602,28603,28604,28605,28606,28607,28609,28611,28612,28613,28614,28615,28616,28618,28619,28620,28621,28622,28623,28624,28627,28628,28629,28630,28631,28632,28633,28634,28635,28636,28637,28639,28642,28643,28644,28645,28646,28647,28648,28649,28650,28651,28652,28653,28656,28657,28658,28659,28660,28661,28662,28663,28664,28665,28666,28667,28668,28669,28670,28671,28672,28673,28674,28675,28676,28677,28678,28679,28680,28681,28682,28683,28684,28685,28686,28687,28688,28690,28691,28692,28693,28694,28695,28696,28697,28700,28701,28702,28703,28704,28705,28706,28708,28709,28710,28711,28712,28713,28714,28715,28716,28717,28718,28719,28720,28721,28722,28723,28724,28726,28727,28728,28730,28731,28732,28733,28734,28735,28736,28737,28738,28739,28740,28741,28742,28743,28744,28745,28746,28747,28749,28750,28752,28753,28754,28755,28756,28757,28758,28759,28760,28761,28762,28763,28764,28765,28767,28768,28769,28770,28771,28772,28773,28774,28775,28776,28777,28778,28782,28785,28786,28787,28788,28791,28793,28794,28795,28797,28801,28802,28803,28804,28806,28807,28808,28811,28812,28813,28815,28816,28817,28819,28823,28824,28826,28827,28830,28831,28832,28833,28834,28835,28836,28837,28838,28839,28840,28841,28842,28848,28850,28852,28853,28854,28858,28862,28863,28868,28869,28870,28871,28873,28875,28876,28877,28878,28879,28880,28881,28882,28883,28884,28885,28886,28887,28890,28892,28893,28894,28896,28897,28898,28899,28901,28906,28910,28912,28913,28914,28915,28916,28917,28918,28920,28922,28923,28924,28926,28927,28928,28929,28930,28931,28932,28933,28934,28935,28936,28939,28940,28941,28942,28943,28945,28946,28948,28951,28955,28956,28957,28958,28959,28960,28961,28962,28963,28964,28965,28967,28968,28969,28970,28971,28972,28973,28974,28978,28979,28980,28981,28983,28984,28985,28986,28987,28988,28989,28990,28991,28992,28993,28994,28995,28996,28998,28999,29000,29001,29003,29005,29007,29008,29009,29010,29011,29012,29013,29014,29015,29016,29017,29018,29019,29021,29023,29024,29025,29026,29027,29029,29033,29034,29035,29036,29037,29039,29040,29041,29044,29045,29046,29047,29049,29051,29052,29054,29055,29056,29057,29058,29059,29061,29062,29063,29064,29065,29067,29068,29069,29070,29072,29073,29074,29075,29077,29078,29079,29082,29083,29084,29085,29086,29089,29090,29091,29092,29093,29094,29095,29097,29098,29099,29101,29102,29103,29104,29105,29106,29108,29110,29111,29112,29114,29115,29116,29117,29118,29119,29120,29121,29122,29124,29125,29126,29127,29128,29129,29130,29131,29132,29133,29135,29136,29137,29138,29139,29142,29143,29144,29145,29146,29147,29148,29149,29150,29151,29153,29154,29155,29156,29158,29160,29161,29162,29163,29164,29165,29167,29168,29169,29170,29171,29172,29173,29174,29175,29176,29178,29179,29180,29181,29182,29183,29184,29185,29186,29187,29188,29189,29191,29192,29193,29194,29195,29196,29197,29198,29199,29200,29201,29202,29203,29204,29205,29206,29207,29208,29209,29210,29211,29212,29214,29215,29216,29217,29218,29219,29220,29221,29222,29223,29225,29227,29229,29230,29231,29234,29235,29236,29242,29244,29246,29248,29249,29250,29251,29252,29253,29254,29257,29258,29259,29262,29263,29264,29265,29267,29268,29269,29271,29272,29274,29276,29278,29280,29283,29284,29285,29288,29290,29291,29292,29293,29296,29297,29299,29300,29302,29303,29304,29307,29308,29309,29314,29315,29317,29318,29319,29320,29321,29324,29326,29328,29329,29331,29332,29333,29334,29335,29336,29337,29338,29339,29340,29341,29342,29344,29345,29346,29347,29348,29349,29350,29351,29352,29353,29354,29355,29358,29361,29362,29363,29365,29370,29371,29372,29373,29374,29375,29376,29381,29382,29383,29385,29386,29387,29388,29391,29393,29395,29396,29397,29398,29400,29402,29403,58566,58567,58568,58569,58570,58571,58572,58573,58574,58575,58576,58577,58578,58579,58580,58581,58582,58583,58584,58585,58586,58587,58588,58589,58590,58591,58592,58593,58594,58595,58596,58597,58598,58599,58600,58601,58602,58603,58604,58605,58606,58607,58608,58609,58610,58611,58612,58613,58614,58615,58616,58617,58618,58619,58620,58621,58622,58623,58624,58625,58626,58627,58628,58629,58630,58631,58632,58633,58634,58635,58636,58637,58638,58639,58640,58641,58642,58643,58644,58645,58646,58647,58648,58649,58650,58651,58652,58653,58654,58655,58656,58657,58658,58659,58660,58661,12288,12289,12290,183,713,711,168,12291,12293,8212,65374,8214,8230,8216,8217,8220,8221,12308,12309,12296,12297,12298,12299,12300,12301,12302,12303,12310,12311,12304,12305,177,215,247,8758,8743,8744,8721,8719,8746,8745,8712,8759,8730,8869,8741,8736,8978,8857,8747,8750,8801,8780,8776,8765,8733,8800,8814,8815,8804,8805,8734,8757,8756,9794,9792,176,8242,8243,8451,65284,164,65504,65505,8240,167,8470,9734,9733,9675,9679,9678,9671,9670,9633,9632,9651,9650,8251,8594,8592,8593,8595,12307,58662,58663,58664,58665,58666,58667,58668,58669,58670,58671,58672,58673,58674,58675,58676,58677,58678,58679,58680,58681,58682,58683,58684,58685,58686,58687,58688,58689,58690,58691,58692,58693,58694,58695,58696,58697,58698,58699,58700,58701,58702,58703,58704,58705,58706,58707,58708,58709,58710,58711,58712,58713,58714,58715,58716,58717,58718,58719,58720,58721,58722,58723,58724,58725,58726,58727,58728,58729,58730,58731,58732,58733,58734,58735,58736,58737,58738,58739,58740,58741,58742,58743,58744,58745,58746,58747,58748,58749,58750,58751,58752,58753,58754,58755,58756,58757,8560,8561,8562,8563,8564,8565,8566,8567,8568,8569,59238,59239,59240,59241,59242,59243,9352,9353,9354,9355,9356,9357,9358,9359,9360,9361,9362,9363,9364,9365,9366,9367,9368,9369,9370,9371,9332,9333,9334,9335,9336,9337,9338,9339,9340,9341,9342,9343,9344,9345,9346,9347,9348,9349,9350,9351,9312,9313,9314,9315,9316,9317,9318,9319,9320,9321,8364,59245,12832,12833,12834,12835,12836,12837,12838,12839,12840,12841,59246,59247,8544,8545,8546,8547,8548,8549,8550,8551,8552,8553,8554,8555,59248,59249,58758,58759,58760,58761,58762,58763,58764,58765,58766,58767,58768,58769,58770,58771,58772,58773,58774,58775,58776,58777,58778,58779,58780,58781,58782,58783,58784,58785,58786,58787,58788,58789,58790,58791,58792,58793,58794,58795,58796,58797,58798,58799,58800,58801,58802,58803,58804,58805,58806,58807,58808,58809,58810,58811,58812,58813,58814,58815,58816,58817,58818,58819,58820,58821,58822,58823,58824,58825,58826,58827,58828,58829,58830,58831,58832,58833,58834,58835,58836,58837,58838,58839,58840,58841,58842,58843,58844,58845,58846,58847,58848,58849,58850,58851,58852,12288,65281,65282,65283,65509,65285,65286,65287,65288,65289,65290,65291,65292,65293,65294,65295,65296,65297,65298,65299,65300,65301,65302,65303,65304,65305,65306,65307,65308,65309,65310,65311,65312,65313,65314,65315,65316,65317,65318,65319,65320,65321,65322,65323,65324,65325,65326,65327,65328,65329,65330,65331,65332,65333,65334,65335,65336,65337,65338,65339,65340,65341,65342,65343,65344,65345,65346,65347,65348,65349,65350,65351,65352,65353,65354,65355,65356,65357,65358,65359,65360,65361,65362,65363,65364,65365,65366,65367,65368,65369,65370,65371,65372,65373,65507,58854,58855,58856,58857,58858,58859,58860,58861,58862,58863,58864,58865,58866,58867,58868,58869,58870,58871,58872,58873,58874,58875,58876,58877,58878,58879,58880,58881,58882,58883,58884,58885,58886,58887,58888,58889,58890,58891,58892,58893,58894,58895,58896,58897,58898,58899,58900,58901,58902,58903,58904,58905,58906,58907,58908,58909,58910,58911,58912,58913,58914,58915,58916,58917,58918,58919,58920,58921,58922,58923,58924,58925,58926,58927,58928,58929,58930,58931,58932,58933,58934,58935,58936,58937,58938,58939,58940,58941,58942,58943,58944,58945,58946,58947,58948,58949,12353,12354,12355,12356,12357,12358,12359,12360,12361,12362,12363,12364,12365,12366,12367,12368,12369,12370,12371,12372,12373,12374,12375,12376,12377,12378,12379,12380,12381,12382,12383,12384,12385,12386,12387,12388,12389,12390,12391,12392,12393,12394,12395,12396,12397,12398,12399,12400,12401,12402,12403,12404,12405,12406,12407,12408,12409,12410,12411,12412,12413,12414,12415,12416,12417,12418,12419,12420,12421,12422,12423,12424,12425,12426,12427,12428,12429,12430,12431,12432,12433,12434,12435,59250,59251,59252,59253,59254,59255,59256,59257,59258,59259,59260,58950,58951,58952,58953,58954,58955,58956,58957,58958,58959,58960,58961,58962,58963,58964,58965,58966,58967,58968,58969,58970,58971,58972,58973,58974,58975,58976,58977,58978,58979,58980,58981,58982,58983,58984,58985,58986,58987,58988,58989,58990,58991,58992,58993,58994,58995,58996,58997,58998,58999,59000,59001,59002,59003,59004,59005,59006,59007,59008,59009,59010,59011,59012,59013,59014,59015,59016,59017,59018,59019,59020,59021,59022,59023,59024,59025,59026,59027,59028,59029,59030,59031,59032,59033,59034,59035,59036,59037,59038,59039,59040,59041,59042,59043,59044,59045,12449,12450,12451,12452,12453,12454,12455,12456,12457,12458,12459,12460,12461,12462,12463,12464,12465,12466,12467,12468,12469,12470,12471,12472,12473,12474,12475,12476,12477,12478,12479,12480,12481,12482,12483,12484,12485,12486,12487,12488,12489,12490,12491,12492,12493,12494,12495,12496,12497,12498,12499,12500,12501,12502,12503,12504,12505,12506,12507,12508,12509,12510,12511,12512,12513,12514,12515,12516,12517,12518,12519,12520,12521,12522,12523,12524,12525,12526,12527,12528,12529,12530,12531,12532,12533,12534,59261,59262,59263,59264,59265,59266,59267,59268,59046,59047,59048,59049,59050,59051,59052,59053,59054,59055,59056,59057,59058,59059,59060,59061,59062,59063,59064,59065,59066,59067,59068,59069,59070,59071,59072,59073,59074,59075,59076,59077,59078,59079,59080,59081,59082,59083,59084,59085,59086,59087,59088,59089,59090,59091,59092,59093,59094,59095,59096,59097,59098,59099,59100,59101,59102,59103,59104,59105,59106,59107,59108,59109,59110,59111,59112,59113,59114,59115,59116,59117,59118,59119,59120,59121,59122,59123,59124,59125,59126,59127,59128,59129,59130,59131,59132,59133,59134,59135,59136,59137,59138,59139,59140,59141,913,914,915,916,917,918,919,920,921,922,923,924,925,926,927,928,929,931,932,933,934,935,936,937,59269,59270,59271,59272,59273,59274,59275,59276,945,946,947,948,949,950,951,952,953,954,955,956,957,958,959,960,961,963,964,965,966,967,968,969,59277,59278,59279,59280,59281,59282,59283,65077,65078,65081,65082,65087,65088,65085,65086,65089,65090,65091,65092,59284,59285,65083,65084,65079,65080,65073,59286,65075,65076,59287,59288,59289,59290,59291,59292,59293,59294,59295,59142,59143,59144,59145,59146,59147,59148,59149,59150,59151,59152,59153,59154,59155,59156,59157,59158,59159,59160,59161,59162,59163,59164,59165,59166,59167,59168,59169,59170,59171,59172,59173,59174,59175,59176,59177,59178,59179,59180,59181,59182,59183,59184,59185,59186,59187,59188,59189,59190,59191,59192,59193,59194,59195,59196,59197,59198,59199,59200,59201,59202,59203,59204,59205,59206,59207,59208,59209,59210,59211,59212,59213,59214,59215,59216,59217,59218,59219,59220,59221,59222,59223,59224,59225,59226,59227,59228,59229,59230,59231,59232,59233,59234,59235,59236,59237,1040,1041,1042,1043,1044,1045,1025,1046,1047,1048,1049,1050,1051,1052,1053,1054,1055,1056,1057,1058,1059,1060,1061,1062,1063,1064,1065,1066,1067,1068,1069,1070,1071,59296,59297,59298,59299,59300,59301,59302,59303,59304,59305,59306,59307,59308,59309,59310,1072,1073,1074,1075,1076,1077,1105,1078,1079,1080,1081,1082,1083,1084,1085,1086,1087,1088,1089,1090,1091,1092,1093,1094,1095,1096,1097,1098,1099,1100,1101,1102,1103,59311,59312,59313,59314,59315,59316,59317,59318,59319,59320,59321,59322,59323,714,715,729,8211,8213,8229,8245,8453,8457,8598,8599,8600,8601,8725,8735,8739,8786,8806,8807,8895,9552,9553,9554,9555,9556,9557,9558,9559,9560,9561,9562,9563,9564,9565,9566,9567,9568,9569,9570,9571,9572,9573,9574,9575,9576,9577,9578,9579,9580,9581,9582,9583,9584,9585,9586,9587,9601,9602,9603,9604,9605,9606,9607,9608,9609,9610,9611,9612,9613,9614,9615,9619,9620,9621,9660,9661,9698,9699,9700,9701,9737,8853,12306,12317,12318,59324,59325,59326,59327,59328,59329,59330,59331,59332,59333,59334,257,225,462,224,275,233,283,232,299,237,464,236,333,243,466,242,363,250,468,249,470,472,474,476,252,234,593,7743,324,328,505,609,59337,59338,59339,59340,12549,12550,12551,12552,12553,12554,12555,12556,12557,12558,12559,12560,12561,12562,12563,12564,12565,12566,12567,12568,12569,12570,12571,12572,12573,12574,12575,12576,12577,12578,12579,12580,12581,12582,12583,12584,12585,59341,59342,59343,59344,59345,59346,59347,59348,59349,59350,59351,59352,59353,59354,59355,59356,59357,59358,59359,59360,59361,12321,12322,12323,12324,12325,12326,12327,12328,12329,12963,13198,13199,13212,13213,13214,13217,13252,13262,13265,13266,13269,65072,65506,65508,59362,8481,12849,59363,8208,59364,59365,59366,12540,12443,12444,12541,12542,12294,12445,12446,65097,65098,65099,65100,65101,65102,65103,65104,65105,65106,65108,65109,65110,65111,65113,65114,65115,65116,65117,65118,65119,65120,65121,65122,65123,65124,65125,65126,65128,65129,65130,65131,12350,12272,12273,12274,12275,12276,12277,12278,12279,12280,12281,12282,12283,12295,59380,59381,59382,59383,59384,59385,59386,59387,59388,59389,59390,59391,59392,9472,9473,9474,9475,9476,9477,9478,9479,9480,9481,9482,9483,9484,9485,9486,9487,9488,9489,9490,9491,9492,9493,9494,9495,9496,9497,9498,9499,9500,9501,9502,9503,9504,9505,9506,9507,9508,9509,9510,9511,9512,9513,9514,9515,9516,9517,9518,9519,9520,9521,9522,9523,9524,9525,9526,9527,9528,9529,9530,9531,9532,9533,9534,9535,9536,9537,9538,9539,9540,9541,9542,9543,9544,9545,9546,9547,59393,59394,59395,59396,59397,59398,59399,59400,59401,59402,59403,59404,59405,59406,59407,29404,29405,29407,29410,29411,29412,29413,29414,29415,29418,29419,29429,29430,29433,29437,29438,29439,29440,29442,29444,29445,29446,29447,29448,29449,29451,29452,29453,29455,29456,29457,29458,29460,29464,29465,29466,29471,29472,29475,29476,29478,29479,29480,29485,29487,29488,29490,29491,29493,29494,29498,29499,29500,29501,29504,29505,29506,29507,29508,29509,29510,29511,29512,29513,29514,29515,29516,29518,29519,29521,29523,29524,29525,29526,29528,29529,29530,29531,29532,29533,29534,29535,29537,29538,29539,29540,29541,29542,29543,29544,29545,29546,29547,29550,29552,29553,57344,57345,57346,57347,57348,57349,57350,57351,57352,57353,57354,57355,57356,57357,57358,57359,57360,57361,57362,57363,57364,57365,57366,57367,57368,57369,57370,57371,57372,57373,57374,57375,57376,57377,57378,57379,57380,57381,57382,57383,57384,57385,57386,57387,57388,57389,57390,57391,57392,57393,57394,57395,57396,57397,57398,57399,57400,57401,57402,57403,57404,57405,57406,57407,57408,57409,57410,57411,57412,57413,57414,57415,57416,57417,57418,57419,57420,57421,57422,57423,57424,57425,57426,57427,57428,57429,57430,57431,57432,57433,57434,57435,57436,57437,29554,29555,29556,29557,29558,29559,29560,29561,29562,29563,29564,29565,29567,29568,29569,29570,29571,29573,29574,29576,29578,29580,29581,29583,29584,29586,29587,29588,29589,29591,29592,29593,29594,29596,29597,29598,29600,29601,29603,29604,29605,29606,29607,29608,29610,29612,29613,29617,29620,29621,29622,29624,29625,29628,29629,29630,29631,29633,29635,29636,29637,29638,29639,29643,29644,29646,29650,29651,29652,29653,29654,29655,29656,29658,29659,29660,29661,29663,29665,29666,29667,29668,29670,29672,29674,29675,29676,29678,29679,29680,29681,29683,29684,29685,29686,29687,57438,57439,57440,57441,57442,57443,57444,57445,57446,57447,57448,57449,57450,57451,57452,57453,57454,57455,57456,57457,57458,57459,57460,57461,57462,57463,57464,57465,57466,57467,57468,57469,57470,57471,57472,57473,57474,57475,57476,57477,57478,57479,57480,57481,57482,57483,57484,57485,57486,57487,57488,57489,57490,57491,57492,57493,57494,57495,57496,57497,57498,57499,57500,57501,57502,57503,57504,57505,57506,57507,57508,57509,57510,57511,57512,57513,57514,57515,57516,57517,57518,57519,57520,57521,57522,57523,57524,57525,57526,57527,57528,57529,57530,57531,29688,29689,29690,29691,29692,29693,29694,29695,29696,29697,29698,29700,29703,29704,29707,29708,29709,29710,29713,29714,29715,29716,29717,29718,29719,29720,29721,29724,29725,29726,29727,29728,29729,29731,29732,29735,29737,29739,29741,29743,29745,29746,29751,29752,29753,29754,29755,29757,29758,29759,29760,29762,29763,29764,29765,29766,29767,29768,29769,29770,29771,29772,29773,29774,29775,29776,29777,29778,29779,29780,29782,29784,29789,29792,29793,29794,29795,29796,29797,29798,29799,29800,29801,29802,29803,29804,29806,29807,29809,29810,29811,29812,29813,29816,29817,29818,57532,57533,57534,57535,57536,57537,57538,57539,57540,57541,57542,57543,57544,57545,57546,57547,57548,57549,57550,57551,57552,57553,57554,57555,57556,57557,57558,57559,57560,57561,57562,57563,57564,57565,57566,57567,57568,57569,57570,57571,57572,57573,57574,57575,57576,57577,57578,57579,57580,57581,57582,57583,57584,57585,57586,57587,57588,57589,57590,57591,57592,57593,57594,57595,57596,57597,57598,57599,57600,57601,57602,57603,57604,57605,57606,57607,57608,57609,57610,57611,57612,57613,57614,57615,57616,57617,57618,57619,57620,57621,57622,57623,57624,57625,29819,29820,29821,29823,29826,29828,29829,29830,29832,29833,29834,29836,29837,29839,29841,29842,29843,29844,29845,29846,29847,29848,29849,29850,29851,29853,29855,29856,29857,29858,29859,29860,29861,29862,29866,29867,29868,29869,29870,29871,29872,29873,29874,29875,29876,29877,29878,29879,29880,29881,29883,29884,29885,29886,29887,29888,29889,29890,29891,29892,29893,29894,29895,29896,29897,29898,29899,29900,29901,29902,29903,29904,29905,29907,29908,29909,29910,29911,29912,29913,29914,29915,29917,29919,29921,29925,29927,29928,29929,29930,29931,29932,29933,29936,29937,29938,57626,57627,57628,57629,57630,57631,57632,57633,57634,57635,57636,57637,57638,57639,57640,57641,57642,57643,57644,57645,57646,57647,57648,57649,57650,57651,57652,57653,57654,57655,57656,57657,57658,57659,57660,57661,57662,57663,57664,57665,57666,57667,57668,57669,57670,57671,57672,57673,57674,57675,57676,57677,57678,57679,57680,57681,57682,57683,57684,57685,57686,57687,57688,57689,57690,57691,57692,57693,57694,57695,57696,57697,57698,57699,57700,57701,57702,57703,57704,57705,57706,57707,57708,57709,57710,57711,57712,57713,57714,57715,57716,57717,57718,57719,29939,29941,29944,29945,29946,29947,29948,29949,29950,29952,29953,29954,29955,29957,29958,29959,29960,29961,29962,29963,29964,29966,29968,29970,29972,29973,29974,29975,29979,29981,29982,29984,29985,29986,29987,29988,29990,29991,29994,29998,30004,30006,30009,30012,30013,30015,30017,30018,30019,30020,30022,30023,30025,30026,30029,30032,30033,30034,30035,30037,30038,30039,30040,30045,30046,30047,30048,30049,30050,30051,30052,30055,30056,30057,30059,30060,30061,30062,30063,30064,30065,30067,30069,30070,30071,30074,30075,30076,30077,30078,30080,30081,30082,30084,30085,30087,57720,57721,57722,57723,57724,57725,57726,57727,57728,57729,57730,57731,57732,57733,57734,57735,57736,57737,57738,57739,57740,57741,57742,57743,57744,57745,57746,57747,57748,57749,57750,57751,57752,57753,57754,57755,57756,57757,57758,57759,57760,57761,57762,57763,57764,57765,57766,57767,57768,57769,57770,57771,57772,57773,57774,57775,57776,57777,57778,57779,57780,57781,57782,57783,57784,57785,57786,57787,57788,57789,57790,57791,57792,57793,57794,57795,57796,57797,57798,57799,57800,57801,57802,57803,57804,57805,57806,57807,57808,57809,57810,57811,57812,57813,30088,30089,30090,30092,30093,30094,30096,30099,30101,30104,30107,30108,30110,30114,30118,30119,30120,30121,30122,30125,30134,30135,30138,30139,30143,30144,30145,30150,30155,30156,30158,30159,30160,30161,30163,30167,30169,30170,30172,30173,30175,30176,30177,30181,30185,30188,30189,30190,30191,30194,30195,30197,30198,30199,30200,30202,30203,30205,30206,30210,30212,30214,30215,30216,30217,30219,30221,30222,30223,30225,30226,30227,30228,30230,30234,30236,30237,30238,30241,30243,30247,30248,30252,30254,30255,30257,30258,30262,30263,30265,30266,30267,30269,30273,30274,30276,57814,57815,57816,57817,57818,57819,57820,57821,57822,57823,57824,57825,57826,57827,57828,57829,57830,57831,57832,57833,57834,57835,57836,57837,57838,57839,57840,57841,57842,57843,57844,57845,57846,57847,57848,57849,57850,57851,57852,57853,57854,57855,57856,57857,57858,57859,57860,57861,57862,57863,57864,57865,57866,57867,57868,57869,57870,57871,57872,57873,57874,57875,57876,57877,57878,57879,57880,57881,57882,57883,57884,57885,57886,57887,57888,57889,57890,57891,57892,57893,57894,57895,57896,57897,57898,57899,57900,57901,57902,57903,57904,57905,57906,57907,30277,30278,30279,30280,30281,30282,30283,30286,30287,30288,30289,30290,30291,30293,30295,30296,30297,30298,30299,30301,30303,30304,30305,30306,30308,30309,30310,30311,30312,30313,30314,30316,30317,30318,30320,30321,30322,30323,30324,30325,30326,30327,30329,30330,30332,30335,30336,30337,30339,30341,30345,30346,30348,30349,30351,30352,30354,30356,30357,30359,30360,30362,30363,30364,30365,30366,30367,30368,30369,30370,30371,30373,30374,30375,30376,30377,30378,30379,30380,30381,30383,30384,30387,30389,30390,30391,30392,30393,30394,30395,30396,30397,30398,30400,30401,30403,21834,38463,22467,25384,21710,21769,21696,30353,30284,34108,30702,33406,30861,29233,38552,38797,27688,23433,20474,25353,26263,23736,33018,26696,32942,26114,30414,20985,25942,29100,32753,34948,20658,22885,25034,28595,33453,25420,25170,21485,21543,31494,20843,30116,24052,25300,36299,38774,25226,32793,22365,38712,32610,29240,30333,26575,30334,25670,20336,36133,25308,31255,26001,29677,25644,25203,33324,39041,26495,29256,25198,25292,20276,29923,21322,21150,32458,37030,24110,26758,27036,33152,32465,26834,30917,34444,38225,20621,35876,33502,32990,21253,35090,21093,30404,30407,30409,30411,30412,30419,30421,30425,30426,30428,30429,30430,30432,30433,30434,30435,30436,30438,30439,30440,30441,30442,30443,30444,30445,30448,30451,30453,30454,30455,30458,30459,30461,30463,30464,30466,30467,30469,30470,30474,30476,30478,30479,30480,30481,30482,30483,30484,30485,30486,30487,30488,30491,30492,30493,30494,30497,30499,30500,30501,30503,30506,30507,30508,30510,30512,30513,30514,30515,30516,30521,30523,30525,30526,30527,30530,30532,30533,30534,30536,30537,30538,30539,30540,30541,30542,30543,30546,30547,30548,30549,30550,30551,30552,30553,30556,34180,38649,20445,22561,39281,23453,25265,25253,26292,35961,40077,29190,26479,30865,24754,21329,21271,36744,32972,36125,38049,20493,29384,22791,24811,28953,34987,22868,33519,26412,31528,23849,32503,29997,27893,36454,36856,36924,40763,27604,37145,31508,24444,30887,34006,34109,27605,27609,27606,24065,24199,30201,38381,25949,24330,24517,36767,22721,33218,36991,38491,38829,36793,32534,36140,25153,20415,21464,21342,36776,36777,36779,36941,26631,24426,33176,34920,40150,24971,21035,30250,24428,25996,28626,28392,23486,25672,20853,20912,26564,19993,31177,39292,28851,30557,30558,30559,30560,30564,30567,30569,30570,30573,30574,30575,30576,30577,30578,30579,30580,30581,30582,30583,30584,30586,30587,30588,30593,30594,30595,30598,30599,30600,30601,30602,30603,30607,30608,30611,30612,30613,30614,30615,30616,30617,30618,30619,30620,30621,30622,30625,30627,30628,30630,30632,30635,30637,30638,30639,30641,30642,30644,30646,30647,30648,30649,30650,30652,30654,30656,30657,30658,30659,30660,30661,30662,30663,30664,30665,30666,30667,30668,30670,30671,30672,30673,30674,30675,30676,30677,30678,30680,30681,30682,30685,30686,30687,30688,30689,30692,30149,24182,29627,33760,25773,25320,38069,27874,21338,21187,25615,38082,31636,20271,24091,33334,33046,33162,28196,27850,39539,25429,21340,21754,34917,22496,19981,24067,27493,31807,37096,24598,25830,29468,35009,26448,25165,36130,30572,36393,37319,24425,33756,34081,39184,21442,34453,27531,24813,24808,28799,33485,33329,20179,27815,34255,25805,31961,27133,26361,33609,21397,31574,20391,20876,27979,23618,36461,25554,21449,33580,33590,26597,30900,25661,23519,23700,24046,35815,25286,26612,35962,25600,25530,34633,39307,35863,32544,38130,20135,38416,39076,26124,29462,30694,30696,30698,30703,30704,30705,30706,30708,30709,30711,30713,30714,30715,30716,30723,30724,30725,30726,30727,30728,30730,30731,30734,30735,30736,30739,30741,30745,30747,30750,30752,30753,30754,30756,30760,30762,30763,30766,30767,30769,30770,30771,30773,30774,30781,30783,30785,30786,30787,30788,30790,30792,30793,30794,30795,30797,30799,30801,30803,30804,30808,30809,30810,30811,30812,30814,30815,30816,30817,30818,30819,30820,30821,30822,30823,30824,30825,30831,30832,30833,30834,30835,30836,30837,30838,30840,30841,30842,30843,30845,30846,30847,30848,30849,30850,30851,22330,23581,24120,38271,20607,32928,21378,25950,30021,21809,20513,36229,25220,38046,26397,22066,28526,24034,21557,28818,36710,25199,25764,25507,24443,28552,37108,33251,36784,23576,26216,24561,27785,38472,36225,34924,25745,31216,22478,27225,25104,21576,20056,31243,24809,28548,35802,25215,36894,39563,31204,21507,30196,25345,21273,27744,36831,24347,39536,32827,40831,20360,23610,36196,32709,26021,28861,20805,20914,34411,23815,23456,25277,37228,30068,36364,31264,24833,31609,20167,32504,30597,19985,33261,21021,20986,27249,21416,36487,38148,38607,28353,38500,26970,30852,30853,30854,30856,30858,30859,30863,30864,30866,30868,30869,30870,30873,30877,30878,30880,30882,30884,30886,30888,30889,30890,30891,30892,30893,30894,30895,30901,30902,30903,30904,30906,30907,30908,30909,30911,30912,30914,30915,30916,30918,30919,30920,30924,30925,30926,30927,30929,30930,30931,30934,30935,30936,30938,30939,30940,30941,30942,30943,30944,30945,30946,30947,30948,30949,30950,30951,30953,30954,30955,30957,30958,30959,30960,30961,30963,30965,30966,30968,30969,30971,30972,30973,30974,30975,30976,30978,30979,30980,30982,30983,30984,30985,30986,30987,30988,30784,20648,30679,25616,35302,22788,25571,24029,31359,26941,20256,33337,21912,20018,30126,31383,24162,24202,38383,21019,21561,28810,25462,38180,22402,26149,26943,37255,21767,28147,32431,34850,25139,32496,30133,33576,30913,38604,36766,24904,29943,35789,27492,21050,36176,27425,32874,33905,22257,21254,20174,19995,20945,31895,37259,31751,20419,36479,31713,31388,25703,23828,20652,33030,30209,31929,28140,32736,26449,23384,23544,30923,25774,25619,25514,25387,38169,25645,36798,31572,30249,25171,22823,21574,27513,20643,25140,24102,27526,20195,36151,34955,24453,36910,30989,30990,30991,30992,30993,30994,30996,30997,30998,30999,31000,31001,31002,31003,31004,31005,31007,31008,31009,31010,31011,31013,31014,31015,31016,31017,31018,31019,31020,31021,31022,31023,31024,31025,31026,31027,31029,31030,31031,31032,31033,31037,31039,31042,31043,31044,31045,31047,31050,31051,31052,31053,31054,31055,31056,31057,31058,31060,31061,31064,31065,31073,31075,31076,31078,31081,31082,31083,31084,31086,31088,31089,31090,31091,31092,31093,31094,31097,31099,31100,31101,31102,31103,31106,31107,31110,31111,31112,31113,31115,31116,31117,31118,31120,31121,31122,24608,32829,25285,20025,21333,37112,25528,32966,26086,27694,20294,24814,28129,35806,24377,34507,24403,25377,20826,33633,26723,20992,25443,36424,20498,23707,31095,23548,21040,31291,24764,36947,30423,24503,24471,30340,36460,28783,30331,31561,30634,20979,37011,22564,20302,28404,36842,25932,31515,29380,28068,32735,23265,25269,24213,22320,33922,31532,24093,24351,36882,32532,39072,25474,28359,30872,28857,20856,38747,22443,30005,20291,30008,24215,24806,22880,28096,27583,30857,21500,38613,20939,20993,25481,21514,38035,35843,36300,29241,30879,34678,36845,35853,21472,31123,31124,31125,31126,31127,31128,31129,31131,31132,31133,31134,31135,31136,31137,31138,31139,31140,31141,31142,31144,31145,31146,31147,31148,31149,31150,31151,31152,31153,31154,31156,31157,31158,31159,31160,31164,31167,31170,31172,31173,31175,31176,31178,31180,31182,31183,31184,31187,31188,31190,31191,31193,31194,31195,31196,31197,31198,31200,31201,31202,31205,31208,31210,31212,31214,31217,31218,31219,31220,31221,31222,31223,31225,31226,31228,31230,31231,31233,31236,31237,31239,31240,31241,31242,31244,31247,31248,31249,31250,31251,31253,31254,31256,31257,31259,31260,19969,30447,21486,38025,39030,40718,38189,23450,35746,20002,19996,20908,33891,25026,21160,26635,20375,24683,20923,27934,20828,25238,26007,38497,35910,36887,30168,37117,30563,27602,29322,29420,35835,22581,30585,36172,26460,38208,32922,24230,28193,22930,31471,30701,38203,27573,26029,32526,22534,20817,38431,23545,22697,21544,36466,25958,39039,22244,38045,30462,36929,25479,21702,22810,22842,22427,36530,26421,36346,33333,21057,24816,22549,34558,23784,40517,20420,39069,35769,23077,24694,21380,25212,36943,37122,39295,24681,32780,20799,32819,23572,39285,27953,20108,31261,31263,31265,31266,31268,31269,31270,31271,31272,31273,31274,31275,31276,31277,31278,31279,31280,31281,31282,31284,31285,31286,31288,31290,31294,31296,31297,31298,31299,31300,31301,31303,31304,31305,31306,31307,31308,31309,31310,31311,31312,31314,31315,31316,31317,31318,31320,31321,31322,31323,31324,31325,31326,31327,31328,31329,31330,31331,31332,31333,31334,31335,31336,31337,31338,31339,31340,31341,31342,31343,31345,31346,31347,31349,31355,31356,31357,31358,31362,31365,31367,31369,31370,31371,31372,31374,31375,31376,31379,31380,31385,31386,31387,31390,31393,31394,36144,21457,32602,31567,20240,20047,38400,27861,29648,34281,24070,30058,32763,27146,30718,38034,32321,20961,28902,21453,36820,33539,36137,29359,39277,27867,22346,33459,26041,32938,25151,38450,22952,20223,35775,32442,25918,33778,38750,21857,39134,32933,21290,35837,21536,32954,24223,27832,36153,33452,37210,21545,27675,20998,32439,22367,28954,27774,31881,22859,20221,24575,24868,31914,20016,23553,26539,34562,23792,38155,39118,30127,28925,36898,20911,32541,35773,22857,20964,20315,21542,22827,25975,32932,23413,25206,25282,36752,24133,27679,31526,20239,20440,26381,31395,31396,31399,31401,31402,31403,31406,31407,31408,31409,31410,31412,31413,31414,31415,31416,31417,31418,31419,31420,31421,31422,31424,31425,31426,31427,31428,31429,31430,31431,31432,31433,31434,31436,31437,31438,31439,31440,31441,31442,31443,31444,31445,31447,31448,31450,31451,31452,31453,31457,31458,31460,31463,31464,31465,31466,31467,31468,31470,31472,31473,31474,31475,31476,31477,31478,31479,31480,31483,31484,31486,31488,31489,31490,31493,31495,31497,31500,31501,31502,31504,31506,31507,31510,31511,31512,31514,31516,31517,31519,31521,31522,31523,31527,31529,31533,28014,28074,31119,34993,24343,29995,25242,36741,20463,37340,26023,33071,33105,24220,33104,36212,21103,35206,36171,22797,20613,20184,38428,29238,33145,36127,23500,35747,38468,22919,32538,21648,22134,22030,35813,25913,27010,38041,30422,28297,24178,29976,26438,26577,31487,32925,36214,24863,31174,25954,36195,20872,21018,38050,32568,32923,32434,23703,28207,26464,31705,30347,39640,33167,32660,31957,25630,38224,31295,21578,21733,27468,25601,25096,40509,33011,30105,21106,38761,33883,26684,34532,38401,38548,38124,20010,21508,32473,26681,36319,32789,26356,24218,32697,31535,31536,31538,31540,31541,31542,31543,31545,31547,31549,31551,31552,31553,31554,31555,31556,31558,31560,31562,31565,31566,31571,31573,31575,31577,31580,31582,31583,31585,31587,31588,31589,31590,31591,31592,31593,31594,31595,31596,31597,31599,31600,31603,31604,31606,31608,31610,31612,31613,31615,31617,31618,31619,31620,31622,31623,31624,31625,31626,31627,31628,31630,31631,31633,31634,31635,31638,31640,31641,31642,31643,31646,31647,31648,31651,31652,31653,31662,31663,31664,31666,31667,31669,31670,31671,31673,31674,31675,31676,31677,31678,31679,31680,31682,31683,31684,22466,32831,26775,24037,25915,21151,24685,40858,20379,36524,20844,23467,24339,24041,27742,25329,36129,20849,38057,21246,27807,33503,29399,22434,26500,36141,22815,36764,33735,21653,31629,20272,27837,23396,22993,40723,21476,34506,39592,35895,32929,25925,39038,22266,38599,21038,29916,21072,23521,25346,35074,20054,25296,24618,26874,20851,23448,20896,35266,31649,39302,32592,24815,28748,36143,20809,24191,36891,29808,35268,22317,30789,24402,40863,38394,36712,39740,35809,30328,26690,26588,36330,36149,21053,36746,28378,26829,38149,37101,22269,26524,35065,36807,21704,31685,31688,31689,31690,31691,31693,31694,31695,31696,31698,31700,31701,31702,31703,31704,31707,31708,31710,31711,31712,31714,31715,31716,31719,31720,31721,31723,31724,31725,31727,31728,31730,31731,31732,31733,31734,31736,31737,31738,31739,31741,31743,31744,31745,31746,31747,31748,31749,31750,31752,31753,31754,31757,31758,31760,31761,31762,31763,31764,31765,31767,31768,31769,31770,31771,31772,31773,31774,31776,31777,31778,31779,31780,31781,31784,31785,31787,31788,31789,31790,31791,31792,31793,31794,31795,31796,31797,31798,31799,31801,31802,31803,31804,31805,31806,31810,39608,23401,28023,27686,20133,23475,39559,37219,25000,37039,38889,21547,28085,23506,20989,21898,32597,32752,25788,25421,26097,25022,24717,28938,27735,27721,22831,26477,33322,22741,22158,35946,27627,37085,22909,32791,21495,28009,21621,21917,33655,33743,26680,31166,21644,20309,21512,30418,35977,38402,27827,28088,36203,35088,40548,36154,22079,40657,30165,24456,29408,24680,21756,20136,27178,34913,24658,36720,21700,28888,34425,40511,27946,23439,24344,32418,21897,20399,29492,21564,21402,20505,21518,21628,20046,24573,29786,22774,33899,32993,34676,29392,31946,28246,31811,31812,31813,31814,31815,31816,31817,31818,31819,31820,31822,31823,31824,31825,31826,31827,31828,31829,31830,31831,31832,31833,31834,31835,31836,31837,31838,31839,31840,31841,31842,31843,31844,31845,31846,31847,31848,31849,31850,31851,31852,31853,31854,31855,31856,31857,31858,31861,31862,31863,31864,31865,31866,31870,31871,31872,31873,31874,31875,31876,31877,31878,31879,31880,31882,31883,31884,31885,31886,31887,31888,31891,31892,31894,31897,31898,31899,31904,31905,31907,31910,31911,31912,31913,31915,31916,31917,31919,31920,31924,31925,31926,31927,31928,31930,31931,24359,34382,21804,25252,20114,27818,25143,33457,21719,21326,29502,28369,30011,21010,21270,35805,27088,24458,24576,28142,22351,27426,29615,26707,36824,32531,25442,24739,21796,30186,35938,28949,28067,23462,24187,33618,24908,40644,30970,34647,31783,30343,20976,24822,29004,26179,24140,24653,35854,28784,25381,36745,24509,24674,34516,22238,27585,24724,24935,21321,24800,26214,36159,31229,20250,28905,27719,35763,35826,32472,33636,26127,23130,39746,27985,28151,35905,27963,20249,28779,33719,25110,24785,38669,36135,31096,20987,22334,22522,26426,30072,31293,31215,31637,31935,31936,31938,31939,31940,31942,31945,31947,31950,31951,31952,31953,31954,31955,31956,31960,31962,31963,31965,31966,31969,31970,31971,31972,31973,31974,31975,31977,31978,31979,31980,31981,31982,31984,31985,31986,31987,31988,31989,31990,31991,31993,31994,31996,31997,31998,31999,32000,32001,32002,32003,32004,32005,32006,32007,32008,32009,32011,32012,32013,32014,32015,32016,32017,32018,32019,32020,32021,32022,32023,32024,32025,32026,32027,32028,32029,32030,32031,32033,32035,32036,32037,32038,32040,32041,32042,32044,32045,32046,32048,32049,32050,32051,32052,32053,32054,32908,39269,36857,28608,35749,40481,23020,32489,32521,21513,26497,26840,36753,31821,38598,21450,24613,30142,27762,21363,23241,32423,25380,20960,33034,24049,34015,25216,20864,23395,20238,31085,21058,24760,27982,23492,23490,35745,35760,26082,24524,38469,22931,32487,32426,22025,26551,22841,20339,23478,21152,33626,39050,36158,30002,38078,20551,31292,20215,26550,39550,23233,27516,30417,22362,23574,31546,38388,29006,20860,32937,33392,22904,32516,33575,26816,26604,30897,30839,25315,25441,31616,20461,21098,20943,33616,27099,37492,36341,36145,35265,38190,31661,20214,32055,32056,32057,32058,32059,32060,32061,32062,32063,32064,32065,32066,32067,32068,32069,32070,32071,32072,32073,32074,32075,32076,32077,32078,32079,32080,32081,32082,32083,32084,32085,32086,32087,32088,32089,32090,32091,32092,32093,32094,32095,32096,32097,32098,32099,32100,32101,32102,32103,32104,32105,32106,32107,32108,32109,32111,32112,32113,32114,32115,32116,32117,32118,32120,32121,32122,32123,32124,32125,32126,32127,32128,32129,32130,32131,32132,32133,32134,32135,32136,32137,32138,32139,32140,32141,32142,32143,32144,32145,32146,32147,32148,32149,32150,32151,32152,20581,33328,21073,39279,28176,28293,28071,24314,20725,23004,23558,27974,27743,30086,33931,26728,22870,35762,21280,37233,38477,34121,26898,30977,28966,33014,20132,37066,27975,39556,23047,22204,25605,38128,30699,20389,33050,29409,35282,39290,32564,32478,21119,25945,37237,36735,36739,21483,31382,25581,25509,30342,31224,34903,38454,25130,21163,33410,26708,26480,25463,30571,31469,27905,32467,35299,22992,25106,34249,33445,30028,20511,20171,30117,35819,23626,24062,31563,26020,37329,20170,27941,35167,32039,38182,20165,35880,36827,38771,26187,31105,36817,28908,28024,32153,32154,32155,32156,32157,32158,32159,32160,32161,32162,32163,32164,32165,32167,32168,32169,32170,32171,32172,32173,32175,32176,32177,32178,32179,32180,32181,32182,32183,32184,32185,32186,32187,32188,32189,32190,32191,32192,32193,32194,32195,32196,32197,32198,32199,32200,32201,32202,32203,32204,32205,32206,32207,32208,32209,32210,32211,32212,32213,32214,32215,32216,32217,32218,32219,32220,32221,32222,32223,32224,32225,32226,32227,32228,32229,32230,32231,32232,32233,32234,32235,32236,32237,32238,32239,32240,32241,32242,32243,32244,32245,32246,32247,32248,32249,32250,23613,21170,33606,20834,33550,30555,26230,40120,20140,24778,31934,31923,32463,20117,35686,26223,39048,38745,22659,25964,38236,24452,30153,38742,31455,31454,20928,28847,31384,25578,31350,32416,29590,38893,20037,28792,20061,37202,21417,25937,26087,33276,33285,21646,23601,30106,38816,25304,29401,30141,23621,39545,33738,23616,21632,30697,20030,27822,32858,25298,25454,24040,20855,36317,36382,38191,20465,21477,24807,28844,21095,25424,40515,23071,20518,30519,21367,32482,25733,25899,25225,25496,20500,29237,35273,20915,35776,32477,22343,33740,38055,20891,21531,23803,32251,32252,32253,32254,32255,32256,32257,32258,32259,32260,32261,32262,32263,32264,32265,32266,32267,32268,32269,32270,32271,32272,32273,32274,32275,32276,32277,32278,32279,32280,32281,32282,32283,32284,32285,32286,32287,32288,32289,32290,32291,32292,32293,32294,32295,32296,32297,32298,32299,32300,32301,32302,32303,32304,32305,32306,32307,32308,32309,32310,32311,32312,32313,32314,32316,32317,32318,32319,32320,32322,32323,32324,32325,32326,32328,32329,32330,32331,32332,32333,32334,32335,32336,32337,32338,32339,32340,32341,32342,32343,32344,32345,32346,32347,32348,32349,20426,31459,27994,37089,39567,21888,21654,21345,21679,24320,25577,26999,20975,24936,21002,22570,21208,22350,30733,30475,24247,24951,31968,25179,25239,20130,28821,32771,25335,28900,38752,22391,33499,26607,26869,30933,39063,31185,22771,21683,21487,28212,20811,21051,23458,35838,32943,21827,22438,24691,22353,21549,31354,24656,23380,25511,25248,21475,25187,23495,26543,21741,31391,33510,37239,24211,35044,22840,22446,25358,36328,33007,22359,31607,20393,24555,23485,27454,21281,31568,29378,26694,30719,30518,26103,20917,20111,30420,23743,31397,33909,22862,39745,20608,32350,32351,32352,32353,32354,32355,32356,32357,32358,32359,32360,32361,32362,32363,32364,32365,32366,32367,32368,32369,32370,32371,32372,32373,32374,32375,32376,32377,32378,32379,32380,32381,32382,32383,32384,32385,32387,32388,32389,32390,32391,32392,32393,32394,32395,32396,32397,32398,32399,32400,32401,32402,32403,32404,32405,32406,32407,32408,32409,32410,32412,32413,32414,32430,32436,32443,32444,32470,32484,32492,32505,32522,32528,32542,32567,32569,32571,32572,32573,32574,32575,32576,32577,32579,32582,32583,32584,32585,32586,32587,32588,32589,32590,32591,32594,32595,39304,24871,28291,22372,26118,25414,22256,25324,25193,24275,38420,22403,25289,21895,34593,33098,36771,21862,33713,26469,36182,34013,23146,26639,25318,31726,38417,20848,28572,35888,25597,35272,25042,32518,28866,28389,29701,27028,29436,24266,37070,26391,28010,25438,21171,29282,32769,20332,23013,37226,28889,28061,21202,20048,38647,38253,34174,30922,32047,20769,22418,25794,32907,31867,27882,26865,26974,20919,21400,26792,29313,40654,31729,29432,31163,28435,29702,26446,37324,40100,31036,33673,33620,21519,26647,20029,21385,21169,30782,21382,21033,20616,20363,20432,32598,32601,32603,32604,32605,32606,32608,32611,32612,32613,32614,32615,32619,32620,32621,32623,32624,32627,32629,32630,32631,32632,32634,32635,32636,32637,32639,32640,32642,32643,32644,32645,32646,32647,32648,32649,32651,32653,32655,32656,32657,32658,32659,32661,32662,32663,32664,32665,32667,32668,32672,32674,32675,32677,32678,32680,32681,32682,32683,32684,32685,32686,32689,32691,32692,32693,32694,32695,32698,32699,32702,32704,32706,32707,32708,32710,32711,32712,32713,32715,32717,32719,32720,32721,32722,32723,32726,32727,32729,32730,32731,32732,32733,32734,32738,32739,30178,31435,31890,27813,38582,21147,29827,21737,20457,32852,33714,36830,38256,24265,24604,28063,24088,25947,33080,38142,24651,28860,32451,31918,20937,26753,31921,33391,20004,36742,37327,26238,20142,35845,25769,32842,20698,30103,29134,23525,36797,28518,20102,25730,38243,24278,26009,21015,35010,28872,21155,29454,29747,26519,30967,38678,20020,37051,40158,28107,20955,36161,21533,25294,29618,33777,38646,40836,38083,20278,32666,20940,28789,38517,23725,39046,21478,20196,28316,29705,27060,30827,39311,30041,21016,30244,27969,26611,20845,40857,32843,21657,31548,31423,32740,32743,32744,32746,32747,32748,32749,32751,32754,32756,32757,32758,32759,32760,32761,32762,32765,32766,32767,32770,32775,32776,32777,32778,32782,32783,32785,32787,32794,32795,32797,32798,32799,32801,32803,32804,32811,32812,32813,32814,32815,32816,32818,32820,32825,32826,32828,32830,32832,32833,32836,32837,32839,32840,32841,32846,32847,32848,32849,32851,32853,32854,32855,32857,32859,32860,32861,32862,32863,32864,32865,32866,32867,32868,32869,32870,32871,32872,32875,32876,32877,32878,32879,32880,32882,32883,32884,32885,32886,32887,32888,32889,32890,32891,32892,32893,38534,22404,25314,38471,27004,23044,25602,31699,28431,38475,33446,21346,39045,24208,28809,25523,21348,34383,40065,40595,30860,38706,36335,36162,40575,28510,31108,24405,38470,25134,39540,21525,38109,20387,26053,23653,23649,32533,34385,27695,24459,29575,28388,32511,23782,25371,23402,28390,21365,20081,25504,30053,25249,36718,20262,20177,27814,32438,35770,33821,34746,32599,36923,38179,31657,39585,35064,33853,27931,39558,32476,22920,40635,29595,30721,34434,39532,39554,22043,21527,22475,20080,40614,21334,36808,33033,30610,39314,34542,28385,34067,26364,24930,28459,32894,32897,32898,32901,32904,32906,32909,32910,32911,32912,32913,32914,32916,32917,32919,32921,32926,32931,32934,32935,32936,32940,32944,32947,32949,32950,32952,32953,32955,32965,32967,32968,32969,32970,32971,32975,32976,32977,32978,32979,32980,32981,32984,32991,32992,32994,32995,32998,33006,33013,33015,33017,33019,33022,33023,33024,33025,33027,33028,33029,33031,33032,33035,33036,33045,33047,33049,33051,33052,33053,33055,33056,33057,33058,33059,33060,33061,33062,33063,33064,33065,33066,33067,33069,33070,33072,33075,33076,33077,33079,33081,33082,33083,33084,33085,33087,35881,33426,33579,30450,27667,24537,33725,29483,33541,38170,27611,30683,38086,21359,33538,20882,24125,35980,36152,20040,29611,26522,26757,37238,38665,29028,27809,30473,23186,38209,27599,32654,26151,23504,22969,23194,38376,38391,20204,33804,33945,27308,30431,38192,29467,26790,23391,30511,37274,38753,31964,36855,35868,24357,31859,31192,35269,27852,34588,23494,24130,26825,30496,32501,20885,20813,21193,23081,32517,38754,33495,25551,30596,34256,31186,28218,24217,22937,34065,28781,27665,25279,30399,25935,24751,38397,26126,34719,40483,38125,21517,21629,35884,25720,33088,33089,33090,33091,33092,33093,33095,33097,33101,33102,33103,33106,33110,33111,33112,33115,33116,33117,33118,33119,33121,33122,33123,33124,33126,33128,33130,33131,33132,33135,33138,33139,33141,33142,33143,33144,33153,33155,33156,33157,33158,33159,33161,33163,33164,33165,33166,33168,33170,33171,33172,33173,33174,33175,33177,33178,33182,33183,33184,33185,33186,33188,33189,33191,33193,33195,33196,33197,33198,33199,33200,33201,33202,33204,33205,33206,33207,33208,33209,33212,33213,33214,33215,33220,33221,33223,33224,33225,33227,33229,33230,33231,33232,33233,33234,33235,25721,34321,27169,33180,30952,25705,39764,25273,26411,33707,22696,40664,27819,28448,23518,38476,35851,29279,26576,25287,29281,20137,22982,27597,22675,26286,24149,21215,24917,26408,30446,30566,29287,31302,25343,21738,21584,38048,37027,23068,32435,27670,20035,22902,32784,22856,21335,30007,38590,22218,25376,33041,24700,38393,28118,21602,39297,20869,23273,33021,22958,38675,20522,27877,23612,25311,20320,21311,33147,36870,28346,34091,25288,24180,30910,25781,25467,24565,23064,37247,40479,23615,25423,32834,23421,21870,38218,38221,28037,24744,26592,29406,20957,23425,33236,33237,33238,33239,33240,33241,33242,33243,33244,33245,33246,33247,33248,33249,33250,33252,33253,33254,33256,33257,33259,33262,33263,33264,33265,33266,33269,33270,33271,33272,33273,33274,33277,33279,33283,33287,33288,33289,33290,33291,33294,33295,33297,33299,33301,33302,33303,33304,33305,33306,33309,33312,33316,33317,33318,33319,33321,33326,33330,33338,33340,33341,33343,33344,33345,33346,33347,33349,33350,33352,33354,33356,33357,33358,33360,33361,33362,33363,33364,33365,33366,33367,33369,33371,33372,33373,33374,33376,33377,33378,33379,33380,33381,33382,33383,33385,25319,27870,29275,25197,38062,32445,33043,27987,20892,24324,22900,21162,24594,22899,26262,34384,30111,25386,25062,31983,35834,21734,27431,40485,27572,34261,21589,20598,27812,21866,36276,29228,24085,24597,29750,25293,25490,29260,24472,28227,27966,25856,28504,30424,30928,30460,30036,21028,21467,20051,24222,26049,32810,32982,25243,21638,21032,28846,34957,36305,27873,21624,32986,22521,35060,36180,38506,37197,20329,27803,21943,30406,30768,25256,28921,28558,24429,34028,26842,30844,31735,33192,26379,40527,25447,30896,22383,30738,38713,25209,25259,21128,29749,27607,33386,33387,33388,33389,33393,33397,33398,33399,33400,33403,33404,33408,33409,33411,33413,33414,33415,33417,33420,33424,33427,33428,33429,33430,33434,33435,33438,33440,33442,33443,33447,33458,33461,33462,33466,33467,33468,33471,33472,33474,33475,33477,33478,33481,33488,33494,33497,33498,33501,33506,33511,33512,33513,33514,33516,33517,33518,33520,33522,33523,33525,33526,33528,33530,33532,33533,33534,33535,33536,33546,33547,33549,33552,33554,33555,33558,33560,33561,33565,33566,33567,33568,33569,33570,33571,33572,33573,33574,33577,33578,33582,33584,33586,33591,33595,33597,21860,33086,30130,30382,21305,30174,20731,23617,35692,31687,20559,29255,39575,39128,28418,29922,31080,25735,30629,25340,39057,36139,21697,32856,20050,22378,33529,33805,24179,20973,29942,35780,23631,22369,27900,39047,23110,30772,39748,36843,31893,21078,25169,38138,20166,33670,33889,33769,33970,22484,26420,22275,26222,28006,35889,26333,28689,26399,27450,26646,25114,22971,19971,20932,28422,26578,27791,20854,26827,22855,27495,30054,23822,33040,40784,26071,31048,31041,39569,36215,23682,20062,20225,21551,22865,30732,22120,27668,36804,24323,27773,27875,35755,25488,33598,33599,33601,33602,33604,33605,33608,33610,33611,33612,33613,33614,33619,33621,33622,33623,33624,33625,33629,33634,33648,33649,33650,33651,33652,33653,33654,33657,33658,33662,33663,33664,33665,33666,33667,33668,33671,33672,33674,33675,33676,33677,33679,33680,33681,33684,33685,33686,33687,33689,33690,33693,33695,33697,33698,33699,33700,33701,33702,33703,33708,33709,33710,33711,33717,33723,33726,33727,33730,33731,33732,33734,33736,33737,33739,33741,33742,33744,33745,33746,33747,33749,33751,33753,33754,33755,33758,33762,33763,33764,33766,33767,33768,33771,33772,33773,24688,27965,29301,25190,38030,38085,21315,36801,31614,20191,35878,20094,40660,38065,38067,21069,28508,36963,27973,35892,22545,23884,27424,27465,26538,21595,33108,32652,22681,34103,24378,25250,27207,38201,25970,24708,26725,30631,20052,20392,24039,38808,25772,32728,23789,20431,31373,20999,33540,19988,24623,31363,38054,20405,20146,31206,29748,21220,33465,25810,31165,23517,27777,38738,36731,27682,20542,21375,28165,25806,26228,27696,24773,39031,35831,24198,29756,31351,31179,19992,37041,29699,27714,22234,37195,27845,36235,21306,34502,26354,36527,23624,39537,28192,33774,33775,33779,33780,33781,33782,33783,33786,33787,33788,33790,33791,33792,33794,33797,33799,33800,33801,33802,33808,33810,33811,33812,33813,33814,33815,33817,33818,33819,33822,33823,33824,33825,33826,33827,33833,33834,33835,33836,33837,33838,33839,33840,33842,33843,33844,33845,33846,33847,33849,33850,33851,33854,33855,33856,33857,33858,33859,33860,33861,33863,33864,33865,33866,33867,33868,33869,33870,33871,33872,33874,33875,33876,33877,33878,33880,33885,33886,33887,33888,33890,33892,33893,33894,33895,33896,33898,33902,33903,33904,33906,33908,33911,33913,33915,33916,21462,23094,40843,36259,21435,22280,39079,26435,37275,27849,20840,30154,25331,29356,21048,21149,32570,28820,30264,21364,40522,27063,30830,38592,35033,32676,28982,29123,20873,26579,29924,22756,25880,22199,35753,39286,25200,32469,24825,28909,22764,20161,20154,24525,38887,20219,35748,20995,22922,32427,25172,20173,26085,25102,33592,33993,33635,34701,29076,28342,23481,32466,20887,25545,26580,32905,33593,34837,20754,23418,22914,36785,20083,27741,20837,35109,36719,38446,34122,29790,38160,38384,28070,33509,24369,25746,27922,33832,33134,40131,22622,36187,19977,21441,33917,33918,33919,33920,33921,33923,33924,33925,33926,33930,33933,33935,33936,33937,33938,33939,33940,33941,33942,33944,33946,33947,33949,33950,33951,33952,33954,33955,33956,33957,33958,33959,33960,33961,33962,33963,33964,33965,33966,33968,33969,33971,33973,33974,33975,33979,33980,33982,33984,33986,33987,33989,33990,33991,33992,33995,33996,33998,33999,34002,34004,34005,34007,34008,34009,34010,34011,34012,34014,34017,34018,34020,34023,34024,34025,34026,34027,34029,34030,34031,34033,34034,34035,34036,34037,34038,34039,34040,34041,34042,34043,34045,34046,34048,34049,34050,20254,25955,26705,21971,20007,25620,39578,25195,23234,29791,33394,28073,26862,20711,33678,30722,26432,21049,27801,32433,20667,21861,29022,31579,26194,29642,33515,26441,23665,21024,29053,34923,38378,38485,25797,36193,33203,21892,27733,25159,32558,22674,20260,21830,36175,26188,19978,23578,35059,26786,25422,31245,28903,33421,21242,38902,23569,21736,37045,32461,22882,36170,34503,33292,33293,36198,25668,23556,24913,28041,31038,35774,30775,30003,21627,20280,36523,28145,23072,32453,31070,27784,23457,23158,29978,32958,24910,28183,22768,29983,29989,29298,21319,32499,34051,34052,34053,34054,34055,34056,34057,34058,34059,34061,34062,34063,34064,34066,34068,34069,34070,34072,34073,34075,34076,34077,34078,34080,34082,34083,34084,34085,34086,34087,34088,34089,34090,34093,34094,34095,34096,34097,34098,34099,34100,34101,34102,34110,34111,34112,34113,34114,34116,34117,34118,34119,34123,34124,34125,34126,34127,34128,34129,34130,34131,34132,34133,34135,34136,34138,34139,34140,34141,34143,34144,34145,34146,34147,34149,34150,34151,34153,34154,34155,34156,34157,34158,34159,34160,34161,34163,34165,34166,34167,34168,34172,34173,34175,34176,34177,30465,30427,21097,32988,22307,24072,22833,29422,26045,28287,35799,23608,34417,21313,30707,25342,26102,20160,39135,34432,23454,35782,21490,30690,20351,23630,39542,22987,24335,31034,22763,19990,26623,20107,25325,35475,36893,21183,26159,21980,22124,36866,20181,20365,37322,39280,27663,24066,24643,23460,35270,35797,25910,25163,39318,23432,23551,25480,21806,21463,30246,20861,34092,26530,26803,27530,25234,36755,21460,33298,28113,30095,20070,36174,23408,29087,34223,26257,26329,32626,34560,40653,40736,23646,26415,36848,26641,26463,25101,31446,22661,24246,25968,28465,34178,34179,34182,34184,34185,34186,34187,34188,34189,34190,34192,34193,34194,34195,34196,34197,34198,34199,34200,34201,34202,34205,34206,34207,34208,34209,34210,34211,34213,34214,34215,34217,34219,34220,34221,34225,34226,34227,34228,34229,34230,34232,34234,34235,34236,34237,34238,34239,34240,34242,34243,34244,34245,34246,34247,34248,34250,34251,34252,34253,34254,34257,34258,34260,34262,34263,34264,34265,34266,34267,34269,34270,34271,34272,34273,34274,34275,34277,34278,34279,34280,34282,34283,34284,34285,34286,34287,34288,34289,34290,34291,34292,34293,34294,34295,34296,24661,21047,32781,25684,34928,29993,24069,26643,25332,38684,21452,29245,35841,27700,30561,31246,21550,30636,39034,33308,35828,30805,26388,28865,26031,25749,22070,24605,31169,21496,19997,27515,32902,23546,21987,22235,20282,20284,39282,24051,26494,32824,24578,39042,36865,23435,35772,35829,25628,33368,25822,22013,33487,37221,20439,32032,36895,31903,20723,22609,28335,23487,35785,32899,37240,33948,31639,34429,38539,38543,32485,39635,30862,23681,31319,36930,38567,31071,23385,25439,31499,34001,26797,21766,32553,29712,32034,38145,25152,22604,20182,23427,22905,22612,34297,34298,34300,34301,34302,34304,34305,34306,34307,34308,34310,34311,34312,34313,34314,34315,34316,34317,34318,34319,34320,34322,34323,34324,34325,34327,34328,34329,34330,34331,34332,34333,34334,34335,34336,34337,34338,34339,34340,34341,34342,34344,34346,34347,34348,34349,34350,34351,34352,34353,34354,34355,34356,34357,34358,34359,34361,34362,34363,34365,34366,34367,34368,34369,34370,34371,34372,34373,34374,34375,34376,34377,34378,34379,34380,34386,34387,34389,34390,34391,34392,34393,34395,34396,34397,34399,34400,34401,34403,34404,34405,34406,34407,34408,34409,34410,29549,25374,36427,36367,32974,33492,25260,21488,27888,37214,22826,24577,27760,22349,25674,36138,30251,28393,22363,27264,30192,28525,35885,35848,22374,27631,34962,30899,25506,21497,28845,27748,22616,25642,22530,26848,33179,21776,31958,20504,36538,28108,36255,28907,25487,28059,28372,32486,33796,26691,36867,28120,38518,35752,22871,29305,34276,33150,30140,35466,26799,21076,36386,38161,25552,39064,36420,21884,20307,26367,22159,24789,28053,21059,23625,22825,28155,22635,30000,29980,24684,33300,33094,25361,26465,36834,30522,36339,36148,38081,24086,21381,21548,28867,34413,34415,34416,34418,34419,34420,34421,34422,34423,34424,34435,34436,34437,34438,34439,34440,34441,34446,34447,34448,34449,34450,34452,34454,34455,34456,34457,34458,34459,34462,34463,34464,34465,34466,34469,34470,34475,34477,34478,34482,34483,34487,34488,34489,34491,34492,34493,34494,34495,34497,34498,34499,34501,34504,34508,34509,34514,34515,34517,34518,34519,34522,34524,34525,34528,34529,34530,34531,34533,34534,34535,34536,34538,34539,34540,34543,34549,34550,34551,34554,34555,34556,34557,34559,34561,34564,34565,34566,34571,34572,34574,34575,34576,34577,34580,34582,27712,24311,20572,20141,24237,25402,33351,36890,26704,37230,30643,21516,38108,24420,31461,26742,25413,31570,32479,30171,20599,25237,22836,36879,20984,31171,31361,22270,24466,36884,28034,23648,22303,21520,20820,28237,22242,25512,39059,33151,34581,35114,36864,21534,23663,33216,25302,25176,33073,40501,38464,39534,39548,26925,22949,25299,21822,25366,21703,34521,27964,23043,29926,34972,27498,22806,35916,24367,28286,29609,39037,20024,28919,23436,30871,25405,26202,30358,24779,23451,23113,19975,33109,27754,29579,20129,26505,32593,24448,26106,26395,24536,22916,23041,34585,34587,34589,34591,34592,34596,34598,34599,34600,34602,34603,34604,34605,34607,34608,34610,34611,34613,34614,34616,34617,34618,34620,34621,34624,34625,34626,34627,34628,34629,34630,34634,34635,34637,34639,34640,34641,34642,34644,34645,34646,34648,34650,34651,34652,34653,34654,34655,34657,34658,34662,34663,34664,34665,34666,34667,34668,34669,34671,34673,34674,34675,34677,34679,34680,34681,34682,34687,34688,34689,34692,34694,34695,34697,34698,34700,34702,34703,34704,34705,34706,34708,34709,34710,34712,34713,34714,34715,34716,34717,34718,34720,34721,34722,34723,34724,24013,24494,21361,38886,36829,26693,22260,21807,24799,20026,28493,32500,33479,33806,22996,20255,20266,23614,32428,26410,34074,21619,30031,32963,21890,39759,20301,28205,35859,23561,24944,21355,30239,28201,34442,25991,38395,32441,21563,31283,32010,38382,21985,32705,29934,25373,34583,28065,31389,25105,26017,21351,25569,27779,24043,21596,38056,20044,27745,35820,23627,26080,33436,26791,21566,21556,27595,27494,20116,25410,21320,33310,20237,20398,22366,25098,38654,26212,29289,21247,21153,24735,35823,26132,29081,26512,35199,30802,30717,26224,22075,21560,38177,29306,34725,34726,34727,34729,34730,34734,34736,34737,34738,34740,34742,34743,34744,34745,34747,34748,34750,34751,34753,34754,34755,34756,34757,34759,34760,34761,34764,34765,34766,34767,34768,34772,34773,34774,34775,34776,34777,34778,34780,34781,34782,34783,34785,34786,34787,34788,34790,34791,34792,34793,34795,34796,34797,34799,34800,34801,34802,34803,34804,34805,34806,34807,34808,34810,34811,34812,34813,34815,34816,34817,34818,34820,34821,34822,34823,34824,34825,34827,34828,34829,34830,34831,34832,34833,34834,34836,34839,34840,34841,34842,34844,34845,34846,34847,34848,34851,31232,24687,24076,24713,33181,22805,24796,29060,28911,28330,27728,29312,27268,34989,24109,20064,23219,21916,38115,27927,31995,38553,25103,32454,30606,34430,21283,38686,36758,26247,23777,20384,29421,19979,21414,22799,21523,25472,38184,20808,20185,40092,32420,21688,36132,34900,33335,38386,28046,24358,23244,26174,38505,29616,29486,21439,33146,39301,32673,23466,38519,38480,32447,30456,21410,38262,39321,31665,35140,28248,20065,32724,31077,35814,24819,21709,20139,39033,24055,27233,20687,21521,35937,33831,30813,38660,21066,21742,22179,38144,28040,23477,28102,26195,34852,34853,34854,34855,34856,34857,34858,34859,34860,34861,34862,34863,34864,34865,34867,34868,34869,34870,34871,34872,34874,34875,34877,34878,34879,34881,34882,34883,34886,34887,34888,34889,34890,34891,34894,34895,34896,34897,34898,34899,34901,34902,34904,34906,34907,34908,34909,34910,34911,34912,34918,34919,34922,34925,34927,34929,34931,34932,34933,34934,34936,34937,34938,34939,34940,34944,34947,34950,34951,34953,34954,34956,34958,34959,34960,34961,34963,34964,34965,34967,34968,34969,34970,34971,34973,34974,34975,34976,34977,34979,34981,34982,34983,34984,34985,34986,23567,23389,26657,32918,21880,31505,25928,26964,20123,27463,34638,38795,21327,25375,25658,37034,26012,32961,35856,20889,26800,21368,34809,25032,27844,27899,35874,23633,34218,33455,38156,27427,36763,26032,24571,24515,20449,34885,26143,33125,29481,24826,20852,21009,22411,24418,37026,34892,37266,24184,26447,24615,22995,20804,20982,33016,21256,27769,38596,29066,20241,20462,32670,26429,21957,38152,31168,34966,32483,22687,25100,38656,34394,22040,39035,24464,35768,33988,37207,21465,26093,24207,30044,24676,32110,23167,32490,32493,36713,21927,23459,24748,26059,29572,34988,34990,34991,34992,34994,34995,34996,34997,34998,35000,35001,35002,35003,35005,35006,35007,35008,35011,35012,35015,35016,35018,35019,35020,35021,35023,35024,35025,35027,35030,35031,35034,35035,35036,35037,35038,35040,35041,35046,35047,35049,35050,35051,35052,35053,35054,35055,35058,35061,35062,35063,35066,35067,35069,35071,35072,35073,35075,35076,35077,35078,35079,35080,35081,35083,35084,35085,35086,35087,35089,35092,35093,35094,35095,35096,35100,35101,35102,35103,35104,35106,35107,35108,35110,35111,35112,35113,35116,35117,35118,35119,35121,35122,35123,35125,35127,36873,30307,30505,32474,38772,34203,23398,31348,38634,34880,21195,29071,24490,26092,35810,23547,39535,24033,27529,27739,35757,35759,36874,36805,21387,25276,40486,40493,21568,20011,33469,29273,34460,23830,34905,28079,38597,21713,20122,35766,28937,21693,38409,28895,28153,30416,20005,30740,34578,23721,24310,35328,39068,38414,28814,27839,22852,25513,30524,34893,28436,33395,22576,29141,21388,30746,38593,21761,24422,28976,23476,35866,39564,27523,22830,40495,31207,26472,25196,20335,30113,32650,27915,38451,27687,20208,30162,20859,26679,28478,36992,33136,22934,29814,35128,35129,35130,35131,35132,35133,35134,35135,35136,35138,35139,35141,35142,35143,35144,35145,35146,35147,35148,35149,35150,35151,35152,35153,35154,35155,35156,35157,35158,35159,35160,35161,35162,35163,35164,35165,35168,35169,35170,35171,35172,35173,35175,35176,35177,35178,35179,35180,35181,35182,35183,35184,35185,35186,35187,35188,35189,35190,35191,35192,35193,35194,35196,35197,35198,35200,35202,35204,35205,35207,35208,35209,35210,35211,35212,35213,35214,35215,35216,35217,35218,35219,35220,35221,35222,35223,35224,35225,35226,35227,35228,35229,35230,35231,35232,35233,25671,23591,36965,31377,35875,23002,21676,33280,33647,35201,32768,26928,22094,32822,29239,37326,20918,20063,39029,25494,19994,21494,26355,33099,22812,28082,19968,22777,21307,25558,38129,20381,20234,34915,39056,22839,36951,31227,20202,33008,30097,27778,23452,23016,24413,26885,34433,20506,24050,20057,30691,20197,33402,25233,26131,37009,23673,20159,24441,33222,36920,32900,30123,20134,35028,24847,27589,24518,20041,30410,28322,35811,35758,35850,35793,24322,32764,32716,32462,33589,33643,22240,27575,38899,38452,23035,21535,38134,28139,23493,39278,23609,24341,38544,35234,35235,35236,35237,35238,35239,35240,35241,35242,35243,35244,35245,35246,35247,35248,35249,35250,35251,35252,35253,35254,35255,35256,35257,35258,35259,35260,35261,35262,35263,35264,35267,35277,35283,35284,35285,35287,35288,35289,35291,35293,35295,35296,35297,35298,35300,35303,35304,35305,35306,35308,35309,35310,35312,35313,35314,35316,35317,35318,35319,35320,35321,35322,35323,35324,35325,35326,35327,35329,35330,35331,35332,35333,35334,35336,35337,35338,35339,35340,35341,35342,35343,35344,35345,35346,35347,35348,35349,35350,35351,35352,35353,35354,35355,35356,35357,21360,33521,27185,23156,40560,24212,32552,33721,33828,33829,33639,34631,36814,36194,30408,24433,39062,30828,26144,21727,25317,20323,33219,30152,24248,38605,36362,34553,21647,27891,28044,27704,24703,21191,29992,24189,20248,24736,24551,23588,30001,37038,38080,29369,27833,28216,37193,26377,21451,21491,20305,37321,35825,21448,24188,36802,28132,20110,30402,27014,34398,24858,33286,20313,20446,36926,40060,24841,28189,28180,38533,20104,23089,38632,19982,23679,31161,23431,35821,32701,29577,22495,33419,37057,21505,36935,21947,23786,24481,24840,27442,29425,32946,35465,35358,35359,35360,35361,35362,35363,35364,35365,35366,35367,35368,35369,35370,35371,35372,35373,35374,35375,35376,35377,35378,35379,35380,35381,35382,35383,35384,35385,35386,35387,35388,35389,35391,35392,35393,35394,35395,35396,35397,35398,35399,35401,35402,35403,35404,35405,35406,35407,35408,35409,35410,35411,35412,35413,35414,35415,35416,35417,35418,35419,35420,35421,35422,35423,35424,35425,35426,35427,35428,35429,35430,35431,35432,35433,35434,35435,35436,35437,35438,35439,35440,35441,35442,35443,35444,35445,35446,35447,35448,35450,35451,35452,35453,35454,35455,35456,28020,23507,35029,39044,35947,39533,40499,28170,20900,20803,22435,34945,21407,25588,36757,22253,21592,22278,29503,28304,32536,36828,33489,24895,24616,38498,26352,32422,36234,36291,38053,23731,31908,26376,24742,38405,32792,20113,37095,21248,38504,20801,36816,34164,37213,26197,38901,23381,21277,30776,26434,26685,21705,28798,23472,36733,20877,22312,21681,25874,26242,36190,36163,33039,33900,36973,31967,20991,34299,26531,26089,28577,34468,36481,22122,36896,30338,28790,29157,36131,25321,21017,27901,36156,24590,22686,24974,26366,36192,25166,21939,28195,26413,36711,35457,35458,35459,35460,35461,35462,35463,35464,35467,35468,35469,35470,35471,35472,35473,35474,35476,35477,35478,35479,35480,35481,35482,35483,35484,35485,35486,35487,35488,35489,35490,35491,35492,35493,35494,35495,35496,35497,35498,35499,35500,35501,35502,35503,35504,35505,35506,35507,35508,35509,35510,35511,35512,35513,35514,35515,35516,35517,35518,35519,35520,35521,35522,35523,35524,35525,35526,35527,35528,35529,35530,35531,35532,35533,35534,35535,35536,35537,35538,35539,35540,35541,35542,35543,35544,35545,35546,35547,35548,35549,35550,35551,35552,35553,35554,35555,38113,38392,30504,26629,27048,21643,20045,28856,35784,25688,25995,23429,31364,20538,23528,30651,27617,35449,31896,27838,30415,26025,36759,23853,23637,34360,26632,21344,25112,31449,28251,32509,27167,31456,24432,28467,24352,25484,28072,26454,19976,24080,36134,20183,32960,30260,38556,25307,26157,25214,27836,36213,29031,32617,20806,32903,21484,36974,25240,21746,34544,36761,32773,38167,34071,36825,27993,29645,26015,30495,29956,30759,33275,36126,38024,20390,26517,30137,35786,38663,25391,38215,38453,33976,25379,30529,24449,29424,20105,24596,25972,25327,27491,25919,35556,35557,35558,35559,35560,35561,35562,35563,35564,35565,35566,35567,35568,35569,35570,35571,35572,35573,35574,35575,35576,35577,35578,35579,35580,35581,35582,35583,35584,35585,35586,35587,35588,35589,35590,35592,35593,35594,35595,35596,35597,35598,35599,35600,35601,35602,35603,35604,35605,35606,35607,35608,35609,35610,35611,35612,35613,35614,35615,35616,35617,35618,35619,35620,35621,35623,35624,35625,35626,35627,35628,35629,35630,35631,35632,35633,35634,35635,35636,35637,35638,35639,35640,35641,35642,35643,35644,35645,35646,35647,35648,35649,35650,35651,35652,35653,24103,30151,37073,35777,33437,26525,25903,21553,34584,30693,32930,33026,27713,20043,32455,32844,30452,26893,27542,25191,20540,20356,22336,25351,27490,36286,21482,26088,32440,24535,25370,25527,33267,33268,32622,24092,23769,21046,26234,31209,31258,36136,28825,30164,28382,27835,31378,20013,30405,24544,38047,34935,32456,31181,32959,37325,20210,20247,33311,21608,24030,27954,35788,31909,36724,32920,24090,21650,30385,23449,26172,39588,29664,26666,34523,26417,29482,35832,35803,36880,31481,28891,29038,25284,30633,22065,20027,33879,26609,21161,34496,36142,38136,31569,35654,35655,35656,35657,35658,35659,35660,35661,35662,35663,35664,35665,35666,35667,35668,35669,35670,35671,35672,35673,35674,35675,35676,35677,35678,35679,35680,35681,35682,35683,35684,35685,35687,35688,35689,35690,35691,35693,35694,35695,35696,35697,35698,35699,35700,35701,35702,35703,35704,35705,35706,35707,35708,35709,35710,35711,35712,35713,35714,35715,35716,35717,35718,35719,35720,35721,35722,35723,35724,35725,35726,35727,35728,35729,35730,35731,35732,35733,35734,35735,35736,35737,35738,35739,35740,35741,35742,35743,35756,35761,35771,35783,35792,35818,35849,35870,20303,27880,31069,39547,25235,29226,25341,19987,30742,36716,25776,36186,31686,26729,24196,35013,22918,25758,22766,29366,26894,38181,36861,36184,22368,32512,35846,20934,25417,25305,21331,26700,29730,33537,37196,21828,30528,28796,27978,20857,21672,36164,23039,28363,28100,23388,32043,20180,31869,28371,23376,33258,28173,23383,39683,26837,36394,23447,32508,24635,32437,37049,36208,22863,25549,31199,36275,21330,26063,31062,35781,38459,32452,38075,32386,22068,37257,26368,32618,23562,36981,26152,24038,20304,26590,20570,20316,22352,24231,59408,59409,59410,59411,59412,35896,35897,35898,35899,35900,35901,35902,35903,35904,35906,35907,35908,35909,35912,35914,35915,35917,35918,35919,35920,35921,35922,35923,35924,35926,35927,35928,35929,35931,35932,35933,35934,35935,35936,35939,35940,35941,35942,35943,35944,35945,35948,35949,35950,35951,35952,35953,35954,35956,35957,35958,35959,35963,35964,35965,35966,35967,35968,35969,35971,35972,35974,35975,35976,35979,35981,35982,35983,35984,35985,35986,35987,35989,35990,35991,35993,35994,35995,35996,35997,35998,35999,36000,36001,36002,36003,36004,36005,36006,36007,36008,36009,36010,36011,36012,36013,20109,19980,20800,19984,24319,21317,19989,20120,19998,39730,23404,22121,20008,31162,20031,21269,20039,22829,29243,21358,27664,22239,32996,39319,27603,30590,40727,20022,20127,40720,20060,20073,20115,33416,23387,21868,22031,20164,21389,21405,21411,21413,21422,38757,36189,21274,21493,21286,21294,21310,36188,21350,21347,20994,21000,21006,21037,21043,21055,21056,21068,21086,21089,21084,33967,21117,21122,21121,21136,21139,20866,32596,20155,20163,20169,20162,20200,20193,20203,20190,20251,20211,20258,20324,20213,20261,20263,20233,20267,20318,20327,25912,20314,20317,36014,36015,36016,36017,36018,36019,36020,36021,36022,36023,36024,36025,36026,36027,36028,36029,36030,36031,36032,36033,36034,36035,36036,36037,36038,36039,36040,36041,36042,36043,36044,36045,36046,36047,36048,36049,36050,36051,36052,36053,36054,36055,36056,36057,36058,36059,36060,36061,36062,36063,36064,36065,36066,36067,36068,36069,36070,36071,36072,36073,36074,36075,36076,36077,36078,36079,36080,36081,36082,36083,36084,36085,36086,36087,36088,36089,36090,36091,36092,36093,36094,36095,36096,36097,36098,36099,36100,36101,36102,36103,36104,36105,36106,36107,36108,36109,20319,20311,20274,20285,20342,20340,20369,20361,20355,20367,20350,20347,20394,20348,20396,20372,20454,20456,20458,20421,20442,20451,20444,20433,20447,20472,20521,20556,20467,20524,20495,20526,20525,20478,20508,20492,20517,20520,20606,20547,20565,20552,20558,20588,20603,20645,20647,20649,20666,20694,20742,20717,20716,20710,20718,20743,20747,20189,27709,20312,20325,20430,40864,27718,31860,20846,24061,40649,39320,20865,22804,21241,21261,35335,21264,20971,22809,20821,20128,20822,20147,34926,34980,20149,33044,35026,31104,23348,34819,32696,20907,20913,20925,20924,36110,36111,36112,36113,36114,36115,36116,36117,36118,36119,36120,36121,36122,36123,36124,36128,36177,36178,36183,36191,36197,36200,36201,36202,36204,36206,36207,36209,36210,36216,36217,36218,36219,36220,36221,36222,36223,36224,36226,36227,36230,36231,36232,36233,36236,36237,36238,36239,36240,36242,36243,36245,36246,36247,36248,36249,36250,36251,36252,36253,36254,36256,36257,36258,36260,36261,36262,36263,36264,36265,36266,36267,36268,36269,36270,36271,36272,36274,36278,36279,36281,36283,36285,36288,36289,36290,36293,36295,36296,36297,36298,36301,36304,36306,36307,36308,20935,20886,20898,20901,35744,35750,35751,35754,35764,35765,35767,35778,35779,35787,35791,35790,35794,35795,35796,35798,35800,35801,35804,35807,35808,35812,35816,35817,35822,35824,35827,35830,35833,35836,35839,35840,35842,35844,35847,35852,35855,35857,35858,35860,35861,35862,35865,35867,35864,35869,35871,35872,35873,35877,35879,35882,35883,35886,35887,35890,35891,35893,35894,21353,21370,38429,38434,38433,38449,38442,38461,38460,38466,38473,38484,38495,38503,38508,38514,38516,38536,38541,38551,38576,37015,37019,37021,37017,37036,37025,37044,37043,37046,37050,36309,36312,36313,36316,36320,36321,36322,36325,36326,36327,36329,36333,36334,36336,36337,36338,36340,36342,36348,36350,36351,36352,36353,36354,36355,36356,36358,36359,36360,36363,36365,36366,36368,36369,36370,36371,36373,36374,36375,36376,36377,36378,36379,36380,36384,36385,36388,36389,36390,36391,36392,36395,36397,36400,36402,36403,36404,36406,36407,36408,36411,36412,36414,36415,36419,36421,36422,36428,36429,36430,36431,36432,36435,36436,36437,36438,36439,36440,36442,36443,36444,36445,36446,36447,36448,36449,36450,36451,36452,36453,36455,36456,36458,36459,36462,36465,37048,37040,37071,37061,37054,37072,37060,37063,37075,37094,37090,37084,37079,37083,37099,37103,37118,37124,37154,37150,37155,37169,37167,37177,37187,37190,21005,22850,21154,21164,21165,21182,21759,21200,21206,21232,21471,29166,30669,24308,20981,20988,39727,21430,24321,30042,24047,22348,22441,22433,22654,22716,22725,22737,22313,22316,22314,22323,22329,22318,22319,22364,22331,22338,22377,22405,22379,22406,22396,22395,22376,22381,22390,22387,22445,22436,22412,22450,22479,22439,22452,22419,22432,22485,22488,22490,22489,22482,22456,22516,22511,22520,22500,22493,36467,36469,36471,36472,36473,36474,36475,36477,36478,36480,36482,36483,36484,36486,36488,36489,36490,36491,36492,36493,36494,36497,36498,36499,36501,36502,36503,36504,36505,36506,36507,36509,36511,36512,36513,36514,36515,36516,36517,36518,36519,36520,36521,36522,36525,36526,36528,36529,36531,36532,36533,36534,36535,36536,36537,36539,36540,36541,36542,36543,36544,36545,36546,36547,36548,36549,36550,36551,36552,36553,36554,36555,36556,36557,36559,36560,36561,36562,36563,36564,36565,36566,36567,36568,36569,36570,36571,36572,36573,36574,36575,36576,36577,36578,36579,36580,22539,22541,22525,22509,22528,22558,22553,22596,22560,22629,22636,22657,22665,22682,22656,39336,40729,25087,33401,33405,33407,33423,33418,33448,33412,33422,33425,33431,33433,33451,33464,33470,33456,33480,33482,33507,33432,33463,33454,33483,33484,33473,33449,33460,33441,33450,33439,33476,33486,33444,33505,33545,33527,33508,33551,33543,33500,33524,33490,33496,33548,33531,33491,33553,33562,33542,33556,33557,33504,33493,33564,33617,33627,33628,33544,33682,33596,33588,33585,33691,33630,33583,33615,33607,33603,33631,33600,33559,33632,33581,33594,33587,33638,33637,36581,36582,36583,36584,36585,36586,36587,36588,36589,36590,36591,36592,36593,36594,36595,36596,36597,36598,36599,36600,36601,36602,36603,36604,36605,36606,36607,36608,36609,36610,36611,36612,36613,36614,36615,36616,36617,36618,36619,36620,36621,36622,36623,36624,36625,36626,36627,36628,36629,36630,36631,36632,36633,36634,36635,36636,36637,36638,36639,36640,36641,36642,36643,36644,36645,36646,36647,36648,36649,36650,36651,36652,36653,36654,36655,36656,36657,36658,36659,36660,36661,36662,36663,36664,36665,36666,36667,36668,36669,36670,36671,36672,36673,36674,36675,36676,33640,33563,33641,33644,33642,33645,33646,33712,33656,33715,33716,33696,33706,33683,33692,33669,33660,33718,33705,33661,33720,33659,33688,33694,33704,33722,33724,33729,33793,33765,33752,22535,33816,33803,33757,33789,33750,33820,33848,33809,33798,33748,33759,33807,33795,33784,33785,33770,33733,33728,33830,33776,33761,33884,33873,33882,33881,33907,33927,33928,33914,33929,33912,33852,33862,33897,33910,33932,33934,33841,33901,33985,33997,34000,34022,33981,34003,33994,33983,33978,34016,33953,33977,33972,33943,34021,34019,34060,29965,34104,34032,34105,34079,34106,36677,36678,36679,36680,36681,36682,36683,36684,36685,36686,36687,36688,36689,36690,36691,36692,36693,36694,36695,36696,36697,36698,36699,36700,36701,36702,36703,36704,36705,36706,36707,36708,36709,36714,36736,36748,36754,36765,36768,36769,36770,36772,36773,36774,36775,36778,36780,36781,36782,36783,36786,36787,36788,36789,36791,36792,36794,36795,36796,36799,36800,36803,36806,36809,36810,36811,36812,36813,36815,36818,36822,36823,36826,36832,36833,36835,36839,36844,36847,36849,36850,36852,36853,36854,36858,36859,36860,36862,36863,36871,36872,36876,36878,36883,36885,36888,34134,34107,34047,34044,34137,34120,34152,34148,34142,34170,30626,34115,34162,34171,34212,34216,34183,34191,34169,34222,34204,34181,34233,34231,34224,34259,34241,34268,34303,34343,34309,34345,34326,34364,24318,24328,22844,22849,32823,22869,22874,22872,21263,23586,23589,23596,23604,25164,25194,25247,25275,25290,25306,25303,25326,25378,25334,25401,25419,25411,25517,25590,25457,25466,25486,25524,25453,25516,25482,25449,25518,25532,25586,25592,25568,25599,25540,25566,25550,25682,25542,25534,25669,25665,25611,25627,25632,25612,25638,25633,25694,25732,25709,25750,36889,36892,36899,36900,36901,36903,36904,36905,36906,36907,36908,36912,36913,36914,36915,36916,36919,36921,36922,36925,36927,36928,36931,36933,36934,36936,36937,36938,36939,36940,36942,36948,36949,36950,36953,36954,36956,36957,36958,36959,36960,36961,36964,36966,36967,36969,36970,36971,36972,36975,36976,36977,36978,36979,36982,36983,36984,36985,36986,36987,36988,36990,36993,36996,36997,36998,36999,37001,37002,37004,37005,37006,37007,37008,37010,37012,37014,37016,37018,37020,37022,37023,37024,37028,37029,37031,37032,37033,37035,37037,37042,37047,37052,37053,37055,37056,25722,25783,25784,25753,25786,25792,25808,25815,25828,25826,25865,25893,25902,24331,24530,29977,24337,21343,21489,21501,21481,21480,21499,21522,21526,21510,21579,21586,21587,21588,21590,21571,21537,21591,21593,21539,21554,21634,21652,21623,21617,21604,21658,21659,21636,21622,21606,21661,21712,21677,21698,21684,21714,21671,21670,21715,21716,21618,21667,21717,21691,21695,21708,21721,21722,21724,21673,21674,21668,21725,21711,21726,21787,21735,21792,21757,21780,21747,21794,21795,21775,21777,21799,21802,21863,21903,21941,21833,21869,21825,21845,21823,21840,21820,37058,37059,37062,37064,37065,37067,37068,37069,37074,37076,37077,37078,37080,37081,37082,37086,37087,37088,37091,37092,37093,37097,37098,37100,37102,37104,37105,37106,37107,37109,37110,37111,37113,37114,37115,37116,37119,37120,37121,37123,37125,37126,37127,37128,37129,37130,37131,37132,37133,37134,37135,37136,37137,37138,37139,37140,37141,37142,37143,37144,37146,37147,37148,37149,37151,37152,37153,37156,37157,37158,37159,37160,37161,37162,37163,37164,37165,37166,37168,37170,37171,37172,37173,37174,37175,37176,37178,37179,37180,37181,37182,37183,37184,37185,37186,37188,21815,21846,21877,21878,21879,21811,21808,21852,21899,21970,21891,21937,21945,21896,21889,21919,21886,21974,21905,21883,21983,21949,21950,21908,21913,21994,22007,21961,22047,21969,21995,21996,21972,21990,21981,21956,21999,21989,22002,22003,21964,21965,21992,22005,21988,36756,22046,22024,22028,22017,22052,22051,22014,22016,22055,22061,22104,22073,22103,22060,22093,22114,22105,22108,22092,22100,22150,22116,22129,22123,22139,22140,22149,22163,22191,22228,22231,22237,22241,22261,22251,22265,22271,22276,22282,22281,22300,24079,24089,24084,24081,24113,24123,24124,37189,37191,37192,37201,37203,37204,37205,37206,37208,37209,37211,37212,37215,37216,37222,37223,37224,37227,37229,37235,37242,37243,37244,37248,37249,37250,37251,37252,37254,37256,37258,37262,37263,37267,37268,37269,37270,37271,37272,37273,37276,37277,37278,37279,37280,37281,37284,37285,37286,37287,37288,37289,37291,37292,37296,37297,37298,37299,37302,37303,37304,37305,37307,37308,37309,37310,37311,37312,37313,37314,37315,37316,37317,37318,37320,37323,37328,37330,37331,37332,37333,37334,37335,37336,37337,37338,37339,37341,37342,37343,37344,37345,37346,37347,37348,37349,24119,24132,24148,24155,24158,24161,23692,23674,23693,23696,23702,23688,23704,23705,23697,23706,23708,23733,23714,23741,23724,23723,23729,23715,23745,23735,23748,23762,23780,23755,23781,23810,23811,23847,23846,23854,23844,23838,23814,23835,23896,23870,23860,23869,23916,23899,23919,23901,23915,23883,23882,23913,23924,23938,23961,23965,35955,23991,24005,24435,24439,24450,24455,24457,24460,24469,24473,24476,24488,24493,24501,24508,34914,24417,29357,29360,29364,29367,29368,29379,29377,29390,29389,29394,29416,29423,29417,29426,29428,29431,29441,29427,29443,29434,37350,37351,37352,37353,37354,37355,37356,37357,37358,37359,37360,37361,37362,37363,37364,37365,37366,37367,37368,37369,37370,37371,37372,37373,37374,37375,37376,37377,37378,37379,37380,37381,37382,37383,37384,37385,37386,37387,37388,37389,37390,37391,37392,37393,37394,37395,37396,37397,37398,37399,37400,37401,37402,37403,37404,37405,37406,37407,37408,37409,37410,37411,37412,37413,37414,37415,37416,37417,37418,37419,37420,37421,37422,37423,37424,37425,37426,37427,37428,37429,37430,37431,37432,37433,37434,37435,37436,37437,37438,37439,37440,37441,37442,37443,37444,37445,29435,29463,29459,29473,29450,29470,29469,29461,29474,29497,29477,29484,29496,29489,29520,29517,29527,29536,29548,29551,29566,33307,22821,39143,22820,22786,39267,39271,39272,39273,39274,39275,39276,39284,39287,39293,39296,39300,39303,39306,39309,39312,39313,39315,39316,39317,24192,24209,24203,24214,24229,24224,24249,24245,24254,24243,36179,24274,24273,24283,24296,24298,33210,24516,24521,24534,24527,24579,24558,24580,24545,24548,24574,24581,24582,24554,24557,24568,24601,24629,24614,24603,24591,24589,24617,24619,24586,24639,24609,24696,24697,24699,24698,24642,37446,37447,37448,37449,37450,37451,37452,37453,37454,37455,37456,37457,37458,37459,37460,37461,37462,37463,37464,37465,37466,37467,37468,37469,37470,37471,37472,37473,37474,37475,37476,37477,37478,37479,37480,37481,37482,37483,37484,37485,37486,37487,37488,37489,37490,37491,37493,37494,37495,37496,37497,37498,37499,37500,37501,37502,37503,37504,37505,37506,37507,37508,37509,37510,37511,37512,37513,37514,37515,37516,37517,37519,37520,37521,37522,37523,37524,37525,37526,37527,37528,37529,37530,37531,37532,37533,37534,37535,37536,37537,37538,37539,37540,37541,37542,37543,24682,24701,24726,24730,24749,24733,24707,24722,24716,24731,24812,24763,24753,24797,24792,24774,24794,24756,24864,24870,24853,24867,24820,24832,24846,24875,24906,24949,25004,24980,24999,25015,25044,25077,24541,38579,38377,38379,38385,38387,38389,38390,38396,38398,38403,38404,38406,38408,38410,38411,38412,38413,38415,38418,38421,38422,38423,38425,38426,20012,29247,25109,27701,27732,27740,27722,27811,27781,27792,27796,27788,27752,27753,27764,27766,27782,27817,27856,27860,27821,27895,27896,27889,27863,27826,27872,27862,27898,27883,27886,27825,27859,27887,27902,37544,37545,37546,37547,37548,37549,37551,37552,37553,37554,37555,37556,37557,37558,37559,37560,37561,37562,37563,37564,37565,37566,37567,37568,37569,37570,37571,37572,37573,37574,37575,37577,37578,37579,37580,37581,37582,37583,37584,37585,37586,37587,37588,37589,37590,37591,37592,37593,37594,37595,37596,37597,37598,37599,37600,37601,37602,37603,37604,37605,37606,37607,37608,37609,37610,37611,37612,37613,37614,37615,37616,37617,37618,37619,37620,37621,37622,37623,37624,37625,37626,37627,37628,37629,37630,37631,37632,37633,37634,37635,37636,37637,37638,37639,37640,37641,27961,27943,27916,27971,27976,27911,27908,27929,27918,27947,27981,27950,27957,27930,27983,27986,27988,27955,28049,28015,28062,28064,27998,28051,28052,27996,28000,28028,28003,28186,28103,28101,28126,28174,28095,28128,28177,28134,28125,28121,28182,28075,28172,28078,28203,28270,28238,28267,28338,28255,28294,28243,28244,28210,28197,28228,28383,28337,28312,28384,28461,28386,28325,28327,28349,28347,28343,28375,28340,28367,28303,28354,28319,28514,28486,28487,28452,28437,28409,28463,28470,28491,28532,28458,28425,28457,28553,28557,28556,28536,28530,28540,28538,28625,37642,37643,37644,37645,37646,37647,37648,37649,37650,37651,37652,37653,37654,37655,37656,37657,37658,37659,37660,37661,37662,37663,37664,37665,37666,37667,37668,37669,37670,37671,37672,37673,37674,37675,37676,37677,37678,37679,37680,37681,37682,37683,37684,37685,37686,37687,37688,37689,37690,37691,37692,37693,37695,37696,37697,37698,37699,37700,37701,37702,37703,37704,37705,37706,37707,37708,37709,37710,37711,37712,37713,37714,37715,37716,37717,37718,37719,37720,37721,37722,37723,37724,37725,37726,37727,37728,37729,37730,37731,37732,37733,37734,37735,37736,37737,37739,28617,28583,28601,28598,28610,28641,28654,28638,28640,28655,28698,28707,28699,28729,28725,28751,28766,23424,23428,23445,23443,23461,23480,29999,39582,25652,23524,23534,35120,23536,36423,35591,36790,36819,36821,36837,36846,36836,36841,36838,36851,36840,36869,36868,36875,36902,36881,36877,36886,36897,36917,36918,36909,36911,36932,36945,36946,36944,36968,36952,36962,36955,26297,36980,36989,36994,37000,36995,37003,24400,24407,24406,24408,23611,21675,23632,23641,23409,23651,23654,32700,24362,24361,24365,33396,24380,39739,23662,22913,22915,22925,22953,22954,22947,37740,37741,37742,37743,37744,37745,37746,37747,37748,37749,37750,37751,37752,37753,37754,37755,37756,37757,37758,37759,37760,37761,37762,37763,37764,37765,37766,37767,37768,37769,37770,37771,37772,37773,37774,37776,37777,37778,37779,37780,37781,37782,37783,37784,37785,37786,37787,37788,37789,37790,37791,37792,37793,37794,37795,37796,37797,37798,37799,37800,37801,37802,37803,37804,37805,37806,37807,37808,37809,37810,37811,37812,37813,37814,37815,37816,37817,37818,37819,37820,37821,37822,37823,37824,37825,37826,37827,37828,37829,37830,37831,37832,37833,37835,37836,37837,22935,22986,22955,22942,22948,22994,22962,22959,22999,22974,23045,23046,23005,23048,23011,23000,23033,23052,23049,23090,23092,23057,23075,23059,23104,23143,23114,23125,23100,23138,23157,33004,23210,23195,23159,23162,23230,23275,23218,23250,23252,23224,23264,23267,23281,23254,23270,23256,23260,23305,23319,23318,23346,23351,23360,23573,23580,23386,23397,23411,23377,23379,23394,39541,39543,39544,39546,39551,39549,39552,39553,39557,39560,39562,39568,39570,39571,39574,39576,39579,39580,39581,39583,39584,39586,39587,39589,39591,32415,32417,32419,32421,32424,32425,37838,37839,37840,37841,37842,37843,37844,37845,37847,37848,37849,37850,37851,37852,37853,37854,37855,37856,37857,37858,37859,37860,37861,37862,37863,37864,37865,37866,37867,37868,37869,37870,37871,37872,37873,37874,37875,37876,37877,37878,37879,37880,37881,37882,37883,37884,37885,37886,37887,37888,37889,37890,37891,37892,37893,37894,37895,37896,37897,37898,37899,37900,37901,37902,37903,37904,37905,37906,37907,37908,37909,37910,37911,37912,37913,37914,37915,37916,37917,37918,37919,37920,37921,37922,37923,37924,37925,37926,37927,37928,37929,37930,37931,37932,37933,37934,32429,32432,32446,32448,32449,32450,32457,32459,32460,32464,32468,32471,32475,32480,32481,32488,32491,32494,32495,32497,32498,32525,32502,32506,32507,32510,32513,32514,32515,32519,32520,32523,32524,32527,32529,32530,32535,32537,32540,32539,32543,32545,32546,32547,32548,32549,32550,32551,32554,32555,32556,32557,32559,32560,32561,32562,32563,32565,24186,30079,24027,30014,37013,29582,29585,29614,29602,29599,29647,29634,29649,29623,29619,29632,29641,29640,29669,29657,39036,29706,29673,29671,29662,29626,29682,29711,29738,29787,29734,29733,29736,29744,29742,29740,37935,37936,37937,37938,37939,37940,37941,37942,37943,37944,37945,37946,37947,37948,37949,37951,37952,37953,37954,37955,37956,37957,37958,37959,37960,37961,37962,37963,37964,37965,37966,37967,37968,37969,37970,37971,37972,37973,37974,37975,37976,37977,37978,37979,37980,37981,37982,37983,37984,37985,37986,37987,37988,37989,37990,37991,37992,37993,37994,37996,37997,37998,37999,38000,38001,38002,38003,38004,38005,38006,38007,38008,38009,38010,38011,38012,38013,38014,38015,38016,38017,38018,38019,38020,38033,38038,38040,38087,38095,38099,38100,38106,38118,38139,38172,38176,29723,29722,29761,29788,29783,29781,29785,29815,29805,29822,29852,29838,29824,29825,29831,29835,29854,29864,29865,29840,29863,29906,29882,38890,38891,38892,26444,26451,26462,26440,26473,26533,26503,26474,26483,26520,26535,26485,26536,26526,26541,26507,26487,26492,26608,26633,26584,26634,26601,26544,26636,26585,26549,26586,26547,26589,26624,26563,26552,26594,26638,26561,26621,26674,26675,26720,26721,26702,26722,26692,26724,26755,26653,26709,26726,26689,26727,26688,26686,26698,26697,26665,26805,26767,26740,26743,26771,26731,26818,26990,26876,26911,26912,26873,38183,38195,38205,38211,38216,38219,38229,38234,38240,38254,38260,38261,38263,38264,38265,38266,38267,38268,38269,38270,38272,38273,38274,38275,38276,38277,38278,38279,38280,38281,38282,38283,38284,38285,38286,38287,38288,38289,38290,38291,38292,38293,38294,38295,38296,38297,38298,38299,38300,38301,38302,38303,38304,38305,38306,38307,38308,38309,38310,38311,38312,38313,38314,38315,38316,38317,38318,38319,38320,38321,38322,38323,38324,38325,38326,38327,38328,38329,38330,38331,38332,38333,38334,38335,38336,38337,38338,38339,38340,38341,38342,38343,38344,38345,38346,38347,26916,26864,26891,26881,26967,26851,26896,26993,26937,26976,26946,26973,27012,26987,27008,27032,27000,26932,27084,27015,27016,27086,27017,26982,26979,27001,27035,27047,27067,27051,27053,27092,27057,27073,27082,27103,27029,27104,27021,27135,27183,27117,27159,27160,27237,27122,27204,27198,27296,27216,27227,27189,27278,27257,27197,27176,27224,27260,27281,27280,27305,27287,27307,29495,29522,27521,27522,27527,27524,27538,27539,27533,27546,27547,27553,27562,36715,36717,36721,36722,36723,36725,36726,36728,36727,36729,36730,36732,36734,36737,36738,36740,36743,36747,38348,38349,38350,38351,38352,38353,38354,38355,38356,38357,38358,38359,38360,38361,38362,38363,38364,38365,38366,38367,38368,38369,38370,38371,38372,38373,38374,38375,38380,38399,38407,38419,38424,38427,38430,38432,38435,38436,38437,38438,38439,38440,38441,38443,38444,38445,38447,38448,38455,38456,38457,38458,38462,38465,38467,38474,38478,38479,38481,38482,38483,38486,38487,38488,38489,38490,38492,38493,38494,38496,38499,38501,38502,38507,38509,38510,38511,38512,38513,38515,38520,38521,38522,38523,38524,38525,38526,38527,38528,38529,38530,38531,38532,38535,38537,38538,36749,36750,36751,36760,36762,36558,25099,25111,25115,25119,25122,25121,25125,25124,25132,33255,29935,29940,29951,29967,29969,29971,25908,26094,26095,26096,26122,26137,26482,26115,26133,26112,28805,26359,26141,26164,26161,26166,26165,32774,26207,26196,26177,26191,26198,26209,26199,26231,26244,26252,26279,26269,26302,26331,26332,26342,26345,36146,36147,36150,36155,36157,36160,36165,36166,36168,36169,36167,36173,36181,36185,35271,35274,35275,35276,35278,35279,35280,35281,29294,29343,29277,29286,29295,29310,29311,29316,29323,29325,29327,29330,25352,25394,25520,38540,38542,38545,38546,38547,38549,38550,38554,38555,38557,38558,38559,38560,38561,38562,38563,38564,38565,38566,38568,38569,38570,38571,38572,38573,38574,38575,38577,38578,38580,38581,38583,38584,38586,38587,38591,38594,38595,38600,38602,38603,38608,38609,38611,38612,38614,38615,38616,38617,38618,38619,38620,38621,38622,38623,38625,38626,38627,38628,38629,38630,38631,38635,38636,38637,38638,38640,38641,38642,38644,38645,38648,38650,38651,38652,38653,38655,38658,38659,38661,38666,38667,38668,38672,38673,38674,38676,38677,38679,38680,38681,38682,38683,38685,38687,38688,25663,25816,32772,27626,27635,27645,27637,27641,27653,27655,27654,27661,27669,27672,27673,27674,27681,27689,27684,27690,27698,25909,25941,25963,29261,29266,29270,29232,34402,21014,32927,32924,32915,32956,26378,32957,32945,32939,32941,32948,32951,32999,33000,33001,33002,32987,32962,32964,32985,32973,32983,26384,32989,33003,33009,33012,33005,33037,33038,33010,33020,26389,33042,35930,33078,33054,33068,33048,33074,33096,33100,33107,33140,33113,33114,33137,33120,33129,33148,33149,33133,33127,22605,23221,33160,33154,33169,28373,33187,33194,33228,26406,33226,33211,38689,38690,38691,38692,38693,38694,38695,38696,38697,38699,38700,38702,38703,38705,38707,38708,38709,38710,38711,38714,38715,38716,38717,38719,38720,38721,38722,38723,38724,38725,38726,38727,38728,38729,38730,38731,38732,38733,38734,38735,38736,38737,38740,38741,38743,38744,38746,38748,38749,38751,38755,38756,38758,38759,38760,38762,38763,38764,38765,38766,38767,38768,38769,38770,38773,38775,38776,38777,38778,38779,38781,38782,38783,38784,38785,38786,38787,38788,38790,38791,38792,38793,38794,38796,38798,38799,38800,38803,38805,38806,38807,38809,38810,38811,38812,38813,33217,33190,27428,27447,27449,27459,27462,27481,39121,39122,39123,39125,39129,39130,27571,24384,27586,35315,26000,40785,26003,26044,26054,26052,26051,26060,26062,26066,26070,28800,28828,28822,28829,28859,28864,28855,28843,28849,28904,28874,28944,28947,28950,28975,28977,29043,29020,29032,28997,29042,29002,29048,29050,29080,29107,29109,29096,29088,29152,29140,29159,29177,29213,29224,28780,28952,29030,29113,25150,25149,25155,25160,25161,31035,31040,31046,31049,31067,31068,31059,31066,31074,31063,31072,31087,31079,31098,31109,31114,31130,31143,31155,24529,24528,38814,38815,38817,38818,38820,38821,38822,38823,38824,38825,38826,38828,38830,38832,38833,38835,38837,38838,38839,38840,38841,38842,38843,38844,38845,38846,38847,38848,38849,38850,38851,38852,38853,38854,38855,38856,38857,38858,38859,38860,38861,38862,38863,38864,38865,38866,38867,38868,38869,38870,38871,38872,38873,38874,38875,38876,38877,38878,38879,38880,38881,38882,38883,38884,38885,38888,38894,38895,38896,38897,38898,38900,38903,38904,38905,38906,38907,38908,38909,38910,38911,38912,38913,38914,38915,38916,38917,38918,38919,38920,38921,38922,38923,38924,38925,38926,24636,24669,24666,24679,24641,24665,24675,24747,24838,24845,24925,25001,24989,25035,25041,25094,32896,32895,27795,27894,28156,30710,30712,30720,30729,30743,30744,30737,26027,30765,30748,30749,30777,30778,30779,30751,30780,30757,30764,30755,30761,30798,30829,30806,30807,30758,30800,30791,30796,30826,30875,30867,30874,30855,30876,30881,30883,30898,30905,30885,30932,30937,30921,30956,30962,30981,30964,30995,31012,31006,31028,40859,40697,40699,40700,30449,30468,30477,30457,30471,30472,30490,30498,30489,30509,30502,30517,30520,30544,30545,30535,30531,30554,30568,38927,38928,38929,38930,38931,38932,38933,38934,38935,38936,38937,38938,38939,38940,38941,38942,38943,38944,38945,38946,38947,38948,38949,38950,38951,38952,38953,38954,38955,38956,38957,38958,38959,38960,38961,38962,38963,38964,38965,38966,38967,38968,38969,38970,38971,38972,38973,38974,38975,38976,38977,38978,38979,38980,38981,38982,38983,38984,38985,38986,38987,38988,38989,38990,38991,38992,38993,38994,38995,38996,38997,38998,38999,39000,39001,39002,39003,39004,39005,39006,39007,39008,39009,39010,39011,39012,39013,39014,39015,39016,39017,39018,39019,39020,39021,39022,30562,30565,30591,30605,30589,30592,30604,30609,30623,30624,30640,30645,30653,30010,30016,30030,30027,30024,30043,30066,30073,30083,32600,32609,32607,35400,32616,32628,32625,32633,32641,32638,30413,30437,34866,38021,38022,38023,38027,38026,38028,38029,38031,38032,38036,38039,38037,38042,38043,38044,38051,38052,38059,38058,38061,38060,38063,38064,38066,38068,38070,38071,38072,38073,38074,38076,38077,38079,38084,38088,38089,38090,38091,38092,38093,38094,38096,38097,38098,38101,38102,38103,38105,38104,38107,38110,38111,38112,38114,38116,38117,38119,38120,38122,39023,39024,39025,39026,39027,39028,39051,39054,39058,39061,39065,39075,39080,39081,39082,39083,39084,39085,39086,39087,39088,39089,39090,39091,39092,39093,39094,39095,39096,39097,39098,39099,39100,39101,39102,39103,39104,39105,39106,39107,39108,39109,39110,39111,39112,39113,39114,39115,39116,39117,39119,39120,39124,39126,39127,39131,39132,39133,39136,39137,39138,39139,39140,39141,39142,39145,39146,39147,39148,39149,39150,39151,39152,39153,39154,39155,39156,39157,39158,39159,39160,39161,39162,39163,39164,39165,39166,39167,39168,39169,39170,39171,39172,39173,39174,39175,38121,38123,38126,38127,38131,38132,38133,38135,38137,38140,38141,38143,38147,38146,38150,38151,38153,38154,38157,38158,38159,38162,38163,38164,38165,38166,38168,38171,38173,38174,38175,38178,38186,38187,38185,38188,38193,38194,38196,38198,38199,38200,38204,38206,38207,38210,38197,38212,38213,38214,38217,38220,38222,38223,38226,38227,38228,38230,38231,38232,38233,38235,38238,38239,38237,38241,38242,38244,38245,38246,38247,38248,38249,38250,38251,38252,38255,38257,38258,38259,38202,30695,30700,38601,31189,31213,31203,31211,31238,23879,31235,31234,31262,31252,39176,39177,39178,39179,39180,39182,39183,39185,39186,39187,39188,39189,39190,39191,39192,39193,39194,39195,39196,39197,39198,39199,39200,39201,39202,39203,39204,39205,39206,39207,39208,39209,39210,39211,39212,39213,39215,39216,39217,39218,39219,39220,39221,39222,39223,39224,39225,39226,39227,39228,39229,39230,39231,39232,39233,39234,39235,39236,39237,39238,39239,39240,39241,39242,39243,39244,39245,39246,39247,39248,39249,39250,39251,39254,39255,39256,39257,39258,39259,39260,39261,39262,39263,39264,39265,39266,39268,39270,39283,39288,39289,39291,39294,39298,39299,39305,31289,31287,31313,40655,39333,31344,30344,30350,30355,30361,30372,29918,29920,29996,40480,40482,40488,40489,40490,40491,40492,40498,40497,40502,40504,40503,40505,40506,40510,40513,40514,40516,40518,40519,40520,40521,40523,40524,40526,40529,40533,40535,40538,40539,40540,40542,40547,40550,40551,40552,40553,40554,40555,40556,40561,40557,40563,30098,30100,30102,30112,30109,30124,30115,30131,30132,30136,30148,30129,30128,30147,30146,30166,30157,30179,30184,30182,30180,30187,30183,30211,30193,30204,30207,30224,30208,30213,30220,30231,30218,30245,30232,30229,30233,39308,39310,39322,39323,39324,39325,39326,39327,39328,39329,39330,39331,39332,39334,39335,39337,39338,39339,39340,39341,39342,39343,39344,39345,39346,39347,39348,39349,39350,39351,39352,39353,39354,39355,39356,39357,39358,39359,39360,39361,39362,39363,39364,39365,39366,39367,39368,39369,39370,39371,39372,39373,39374,39375,39376,39377,39378,39379,39380,39381,39382,39383,39384,39385,39386,39387,39388,39389,39390,39391,39392,39393,39394,39395,39396,39397,39398,39399,39400,39401,39402,39403,39404,39405,39406,39407,39408,39409,39410,39411,39412,39413,39414,39415,39416,39417,30235,30268,30242,30240,30272,30253,30256,30271,30261,30275,30270,30259,30285,30302,30292,30300,30294,30315,30319,32714,31462,31352,31353,31360,31366,31368,31381,31398,31392,31404,31400,31405,31411,34916,34921,34930,34941,34943,34946,34978,35014,34999,35004,35017,35042,35022,35043,35045,35057,35098,35068,35048,35070,35056,35105,35097,35091,35099,35082,35124,35115,35126,35137,35174,35195,30091,32997,30386,30388,30684,32786,32788,32790,32796,32800,32802,32805,32806,32807,32809,32808,32817,32779,32821,32835,32838,32845,32850,32873,32881,35203,39032,39040,39043,39418,39419,39420,39421,39422,39423,39424,39425,39426,39427,39428,39429,39430,39431,39432,39433,39434,39435,39436,39437,39438,39439,39440,39441,39442,39443,39444,39445,39446,39447,39448,39449,39450,39451,39452,39453,39454,39455,39456,39457,39458,39459,39460,39461,39462,39463,39464,39465,39466,39467,39468,39469,39470,39471,39472,39473,39474,39475,39476,39477,39478,39479,39480,39481,39482,39483,39484,39485,39486,39487,39488,39489,39490,39491,39492,39493,39494,39495,39496,39497,39498,39499,39500,39501,39502,39503,39504,39505,39506,39507,39508,39509,39510,39511,39512,39513,39049,39052,39053,39055,39060,39066,39067,39070,39071,39073,39074,39077,39078,34381,34388,34412,34414,34431,34426,34428,34427,34472,34445,34443,34476,34461,34471,34467,34474,34451,34473,34486,34500,34485,34510,34480,34490,34481,34479,34505,34511,34484,34537,34545,34546,34541,34547,34512,34579,34526,34548,34527,34520,34513,34563,34567,34552,34568,34570,34573,34569,34595,34619,34590,34597,34606,34586,34622,34632,34612,34609,34601,34615,34623,34690,34594,34685,34686,34683,34656,34672,34636,34670,34699,34643,34659,34684,34660,34649,34661,34707,34735,34728,34770,39514,39515,39516,39517,39518,39519,39520,39521,39522,39523,39524,39525,39526,39527,39528,39529,39530,39531,39538,39555,39561,39565,39566,39572,39573,39577,39590,39593,39594,39595,39596,39597,39598,39599,39602,39603,39604,39605,39609,39611,39613,39614,39615,39619,39620,39622,39623,39624,39625,39626,39629,39630,39631,39632,39634,39636,39637,39638,39639,39641,39642,39643,39644,39645,39646,39648,39650,39651,39652,39653,39655,39656,39657,39658,39660,39662,39664,39665,39666,39667,39668,39669,39670,39671,39672,39674,39676,39677,39678,39679,39680,39681,39682,39684,39685,39686,34758,34696,34693,34733,34711,34691,34731,34789,34732,34741,34739,34763,34771,34749,34769,34752,34762,34779,34794,34784,34798,34838,34835,34814,34826,34843,34849,34873,34876,32566,32578,32580,32581,33296,31482,31485,31496,31491,31492,31509,31498,31531,31503,31559,31544,31530,31513,31534,31537,31520,31525,31524,31539,31550,31518,31576,31578,31557,31605,31564,31581,31584,31598,31611,31586,31602,31601,31632,31654,31655,31672,31660,31645,31656,31621,31658,31644,31650,31659,31668,31697,31681,31692,31709,31706,31717,31718,31722,31756,31742,31740,31759,31766,31755,39687,39689,39690,39691,39692,39693,39694,39696,39697,39698,39700,39701,39702,39703,39704,39705,39706,39707,39708,39709,39710,39712,39713,39714,39716,39717,39718,39719,39720,39721,39722,39723,39724,39725,39726,39728,39729,39731,39732,39733,39734,39735,39736,39737,39738,39741,39742,39743,39744,39750,39754,39755,39756,39758,39760,39762,39763,39765,39766,39767,39768,39769,39770,39771,39772,39773,39774,39775,39776,39777,39778,39779,39780,39781,39782,39783,39784,39785,39786,39787,39788,39789,39790,39791,39792,39793,39794,39795,39796,39797,39798,39799,39800,39801,39802,39803,31775,31786,31782,31800,31809,31808,33278,33281,33282,33284,33260,34884,33313,33314,33315,33325,33327,33320,33323,33336,33339,33331,33332,33342,33348,33353,33355,33359,33370,33375,33384,34942,34949,34952,35032,35039,35166,32669,32671,32679,32687,32688,32690,31868,25929,31889,31901,31900,31902,31906,31922,31932,31933,31937,31943,31948,31949,31944,31941,31959,31976,33390,26280,32703,32718,32725,32741,32737,32742,32745,32750,32755,31992,32119,32166,32174,32327,32411,40632,40628,36211,36228,36244,36241,36273,36199,36205,35911,35913,37194,37200,37198,37199,37220,39804,39805,39806,39807,39808,39809,39810,39811,39812,39813,39814,39815,39816,39817,39818,39819,39820,39821,39822,39823,39824,39825,39826,39827,39828,39829,39830,39831,39832,39833,39834,39835,39836,39837,39838,39839,39840,39841,39842,39843,39844,39845,39846,39847,39848,39849,39850,39851,39852,39853,39854,39855,39856,39857,39858,39859,39860,39861,39862,39863,39864,39865,39866,39867,39868,39869,39870,39871,39872,39873,39874,39875,39876,39877,39878,39879,39880,39881,39882,39883,39884,39885,39886,39887,39888,39889,39890,39891,39892,39893,39894,39895,39896,39897,39898,39899,37218,37217,37232,37225,37231,37245,37246,37234,37236,37241,37260,37253,37264,37261,37265,37282,37283,37290,37293,37294,37295,37301,37300,37306,35925,40574,36280,36331,36357,36441,36457,36277,36287,36284,36282,36292,36310,36311,36314,36318,36302,36303,36315,36294,36332,36343,36344,36323,36345,36347,36324,36361,36349,36372,36381,36383,36396,36398,36387,36399,36410,36416,36409,36405,36413,36401,36425,36417,36418,36433,36434,36426,36464,36470,36476,36463,36468,36485,36495,36500,36496,36508,36510,35960,35970,35978,35973,35992,35988,26011,35286,35294,35290,35292,39900,39901,39902,39903,39904,39905,39906,39907,39908,39909,39910,39911,39912,39913,39914,39915,39916,39917,39918,39919,39920,39921,39922,39923,39924,39925,39926,39927,39928,39929,39930,39931,39932,39933,39934,39935,39936,39937,39938,39939,39940,39941,39942,39943,39944,39945,39946,39947,39948,39949,39950,39951,39952,39953,39954,39955,39956,39957,39958,39959,39960,39961,39962,39963,39964,39965,39966,39967,39968,39969,39970,39971,39972,39973,39974,39975,39976,39977,39978,39979,39980,39981,39982,39983,39984,39985,39986,39987,39988,39989,39990,39991,39992,39993,39994,39995,35301,35307,35311,35390,35622,38739,38633,38643,38639,38662,38657,38664,38671,38670,38698,38701,38704,38718,40832,40835,40837,40838,40839,40840,40841,40842,40844,40702,40715,40717,38585,38588,38589,38606,38610,30655,38624,37518,37550,37576,37694,37738,37834,37775,37950,37995,40063,40066,40069,40070,40071,40072,31267,40075,40078,40080,40081,40082,40084,40085,40090,40091,40094,40095,40096,40097,40098,40099,40101,40102,40103,40104,40105,40107,40109,40110,40112,40113,40114,40115,40116,40117,40118,40119,40122,40123,40124,40125,40132,40133,40134,40135,40138,40139,39996,39997,39998,39999,40000,40001,40002,40003,40004,40005,40006,40007,40008,40009,40010,40011,40012,40013,40014,40015,40016,40017,40018,40019,40020,40021,40022,40023,40024,40025,40026,40027,40028,40029,40030,40031,40032,40033,40034,40035,40036,40037,40038,40039,40040,40041,40042,40043,40044,40045,40046,40047,40048,40049,40050,40051,40052,40053,40054,40055,40056,40057,40058,40059,40061,40062,40064,40067,40068,40073,40074,40076,40079,40083,40086,40087,40088,40089,40093,40106,40108,40111,40121,40126,40127,40128,40129,40130,40136,40137,40145,40146,40154,40155,40160,40161,40140,40141,40142,40143,40144,40147,40148,40149,40151,40152,40153,40156,40157,40159,40162,38780,38789,38801,38802,38804,38831,38827,38819,38834,38836,39601,39600,39607,40536,39606,39610,39612,39617,39616,39621,39618,39627,39628,39633,39749,39747,39751,39753,39752,39757,39761,39144,39181,39214,39253,39252,39647,39649,39654,39663,39659,39675,39661,39673,39688,39695,39699,39711,39715,40637,40638,32315,40578,40583,40584,40587,40594,37846,40605,40607,40667,40668,40669,40672,40671,40674,40681,40679,40677,40682,40687,40738,40748,40751,40761,40759,40765,40766,40772,40163,40164,40165,40166,40167,40168,40169,40170,40171,40172,40173,40174,40175,40176,40177,40178,40179,40180,40181,40182,40183,40184,40185,40186,40187,40188,40189,40190,40191,40192,40193,40194,40195,40196,40197,40198,40199,40200,40201,40202,40203,40204,40205,40206,40207,40208,40209,40210,40211,40212,40213,40214,40215,40216,40217,40218,40219,40220,40221,40222,40223,40224,40225,40226,40227,40228,40229,40230,40231,40232,40233,40234,40235,40236,40237,40238,40239,40240,40241,40242,40243,40244,40245,40246,40247,40248,40249,40250,40251,40252,40253,40254,40255,40256,40257,40258,57908,57909,57910,57911,57912,57913,57914,57915,57916,57917,57918,57919,57920,57921,57922,57923,57924,57925,57926,57927,57928,57929,57930,57931,57932,57933,57934,57935,57936,57937,57938,57939,57940,57941,57942,57943,57944,57945,57946,57947,57948,57949,57950,57951,57952,57953,57954,57955,57956,57957,57958,57959,57960,57961,57962,57963,57964,57965,57966,57967,57968,57969,57970,57971,57972,57973,57974,57975,57976,57977,57978,57979,57980,57981,57982,57983,57984,57985,57986,57987,57988,57989,57990,57991,57992,57993,57994,57995,57996,57997,57998,57999,58000,58001,40259,40260,40261,40262,40263,40264,40265,40266,40267,40268,40269,40270,40271,40272,40273,40274,40275,40276,40277,40278,40279,40280,40281,40282,40283,40284,40285,40286,40287,40288,40289,40290,40291,40292,40293,40294,40295,40296,40297,40298,40299,40300,40301,40302,40303,40304,40305,40306,40307,40308,40309,40310,40311,40312,40313,40314,40315,40316,40317,40318,40319,40320,40321,40322,40323,40324,40325,40326,40327,40328,40329,40330,40331,40332,40333,40334,40335,40336,40337,40338,40339,40340,40341,40342,40343,40344,40345,40346,40347,40348,40349,40350,40351,40352,40353,40354,58002,58003,58004,58005,58006,58007,58008,58009,58010,58011,58012,58013,58014,58015,58016,58017,58018,58019,58020,58021,58022,58023,58024,58025,58026,58027,58028,58029,58030,58031,58032,58033,58034,58035,58036,58037,58038,58039,58040,58041,58042,58043,58044,58045,58046,58047,58048,58049,58050,58051,58052,58053,58054,58055,58056,58057,58058,58059,58060,58061,58062,58063,58064,58065,58066,58067,58068,58069,58070,58071,58072,58073,58074,58075,58076,58077,58078,58079,58080,58081,58082,58083,58084,58085,58086,58087,58088,58089,58090,58091,58092,58093,58094,58095,40355,40356,40357,40358,40359,40360,40361,40362,40363,40364,40365,40366,40367,40368,40369,40370,40371,40372,40373,40374,40375,40376,40377,40378,40379,40380,40381,40382,40383,40384,40385,40386,40387,40388,40389,40390,40391,40392,40393,40394,40395,40396,40397,40398,40399,40400,40401,40402,40403,40404,40405,40406,40407,40408,40409,40410,40411,40412,40413,40414,40415,40416,40417,40418,40419,40420,40421,40422,40423,40424,40425,40426,40427,40428,40429,40430,40431,40432,40433,40434,40435,40436,40437,40438,40439,40440,40441,40442,40443,40444,40445,40446,40447,40448,40449,40450,58096,58097,58098,58099,58100,58101,58102,58103,58104,58105,58106,58107,58108,58109,58110,58111,58112,58113,58114,58115,58116,58117,58118,58119,58120,58121,58122,58123,58124,58125,58126,58127,58128,58129,58130,58131,58132,58133,58134,58135,58136,58137,58138,58139,58140,58141,58142,58143,58144,58145,58146,58147,58148,58149,58150,58151,58152,58153,58154,58155,58156,58157,58158,58159,58160,58161,58162,58163,58164,58165,58166,58167,58168,58169,58170,58171,58172,58173,58174,58175,58176,58177,58178,58179,58180,58181,58182,58183,58184,58185,58186,58187,58188,58189,40451,40452,40453,40454,40455,40456,40457,40458,40459,40460,40461,40462,40463,40464,40465,40466,40467,40468,40469,40470,40471,40472,40473,40474,40475,40476,40477,40478,40484,40487,40494,40496,40500,40507,40508,40512,40525,40528,40530,40531,40532,40534,40537,40541,40543,40544,40545,40546,40549,40558,40559,40562,40564,40565,40566,40567,40568,40569,40570,40571,40572,40573,40576,40577,40579,40580,40581,40582,40585,40586,40588,40589,40590,40591,40592,40593,40596,40597,40598,40599,40600,40601,40602,40603,40604,40606,40608,40609,40610,40611,40612,40613,40615,40616,40617,40618,58190,58191,58192,58193,58194,58195,58196,58197,58198,58199,58200,58201,58202,58203,58204,58205,58206,58207,58208,58209,58210,58211,58212,58213,58214,58215,58216,58217,58218,58219,58220,58221,58222,58223,58224,58225,58226,58227,58228,58229,58230,58231,58232,58233,58234,58235,58236,58237,58238,58239,58240,58241,58242,58243,58244,58245,58246,58247,58248,58249,58250,58251,58252,58253,58254,58255,58256,58257,58258,58259,58260,58261,58262,58263,58264,58265,58266,58267,58268,58269,58270,58271,58272,58273,58274,58275,58276,58277,58278,58279,58280,58281,58282,58283,40619,40620,40621,40622,40623,40624,40625,40626,40627,40629,40630,40631,40633,40634,40636,40639,40640,40641,40642,40643,40645,40646,40647,40648,40650,40651,40652,40656,40658,40659,40661,40662,40663,40665,40666,40670,40673,40675,40676,40678,40680,40683,40684,40685,40686,40688,40689,40690,40691,40692,40693,40694,40695,40696,40698,40701,40703,40704,40705,40706,40707,40708,40709,40710,40711,40712,40713,40714,40716,40719,40721,40722,40724,40725,40726,40728,40730,40731,40732,40733,40734,40735,40737,40739,40740,40741,40742,40743,40744,40745,40746,40747,40749,40750,40752,40753,58284,58285,58286,58287,58288,58289,58290,58291,58292,58293,58294,58295,58296,58297,58298,58299,58300,58301,58302,58303,58304,58305,58306,58307,58308,58309,58310,58311,58312,58313,58314,58315,58316,58317,58318,58319,58320,58321,58322,58323,58324,58325,58326,58327,58328,58329,58330,58331,58332,58333,58334,58335,58336,58337,58338,58339,58340,58341,58342,58343,58344,58345,58346,58347,58348,58349,58350,58351,58352,58353,58354,58355,58356,58357,58358,58359,58360,58361,58362,58363,58364,58365,58366,58367,58368,58369,58370,58371,58372,58373,58374,58375,58376,58377,40754,40755,40756,40757,40758,40760,40762,40764,40767,40768,40769,40770,40771,40773,40774,40775,40776,40777,40778,40779,40780,40781,40782,40783,40786,40787,40788,40789,40790,40791,40792,40793,40794,40795,40796,40797,40798,40799,40800,40801,40802,40803,40804,40805,40806,40807,40808,40809,40810,40811,40812,40813,40814,40815,40816,40817,40818,40819,40820,40821,40822,40823,40824,40825,40826,40827,40828,40829,40830,40833,40834,40845,40846,40847,40848,40849,40850,40851,40852,40853,40854,40855,40856,40860,40861,40862,40865,40866,40867,40868,40869,63788,63865,63893,63975,63985,58378,58379,58380,58381,58382,58383,58384,58385,58386,58387,58388,58389,58390,58391,58392,58393,58394,58395,58396,58397,58398,58399,58400,58401,58402,58403,58404,58405,58406,58407,58408,58409,58410,58411,58412,58413,58414,58415,58416,58417,58418,58419,58420,58421,58422,58423,58424,58425,58426,58427,58428,58429,58430,58431,58432,58433,58434,58435,58436,58437,58438,58439,58440,58441,58442,58443,58444,58445,58446,58447,58448,58449,58450,58451,58452,58453,58454,58455,58456,58457,58458,58459,58460,58461,58462,58463,58464,58465,58466,58467,58468,58469,58470,58471,64012,64013,64014,64015,64017,64019,64020,64024,64031,64032,64033,64035,64036,64039,64040,64041,11905,59414,59415,59416,11908,13427,13383,11912,11915,59422,13726,13850,13838,11916,11927,14702,14616,59430,14799,14815,14963,14800,59435,59436,15182,15470,15584,11943,59441,59442,11946,16470,16735,11950,17207,11955,11958,11959,59451,17329,17324,11963,17373,17622,18017,17996,59459,18211,18217,18300,18317,11978,18759,18810,18813,18818,18819,18821,18822,18847,18843,18871,18870,59476,59477,19619,19615,19616,19617,19575,19618,19731,19732,19733,19734,19735,19736,19737,19886,59492,58472,58473,58474,58475,58476,58477,58478,58479,58480,58481,58482,58483,58484,58485,58486,58487,58488,58489,58490,58491,58492,58493,58494,58495,58496,58497,58498,58499,58500,58501,58502,58503,58504,58505,58506,58507,58508,58509,58510,58511,58512,58513,58514,58515,58516,58517,58518,58519,58520,58521,58522,58523,58524,58525,58526,58527,58528,58529,58530,58531,58532,58533,58534,58535,58536,58537,58538,58539,58540,58541,58542,58543,58544,58545,58546,58547,58548,58549,58550,58551,58552,58553,58554,58555,58556,58557,58558,58559,58560,58561,58562,58563,58564,58565],\n \"gb18030-ranges\":[[0,128],[36,165],[38,169],[45,178],[50,184],[81,216],[89,226],[95,235],[96,238],[100,244],[103,248],[104,251],[105,253],[109,258],[126,276],[133,284],[148,300],[172,325],[175,329],[179,334],[208,364],[306,463],[307,465],[308,467],[309,469],[310,471],[311,473],[312,475],[313,477],[341,506],[428,594],[443,610],[544,712],[545,716],[558,730],[741,930],[742,938],[749,962],[750,970],[805,1026],[819,1104],[820,1106],[7922,8209],[7924,8215],[7925,8218],[7927,8222],[7934,8231],[7943,8241],[7944,8244],[7945,8246],[7950,8252],[8062,8365],[8148,8452],[8149,8454],[8152,8458],[8164,8471],[8174,8482],[8236,8556],[8240,8570],[8262,8596],[8264,8602],[8374,8713],[8380,8720],[8381,8722],[8384,8726],[8388,8731],[8390,8737],[8392,8740],[8393,8742],[8394,8748],[8396,8751],[8401,8760],[8406,8766],[8416,8777],[8419,8781],[8424,8787],[8437,8802],[8439,8808],[8445,8816],[8482,8854],[8485,8858],[8496,8870],[8521,8896],[8603,8979],[8936,9322],[8946,9372],[9046,9548],[9050,9588],[9063,9616],[9066,9622],[9076,9634],[9092,9652],[9100,9662],[9108,9672],[9111,9676],[9113,9680],[9131,9702],[9162,9735],[9164,9738],[9218,9793],[9219,9795],[11329,11906],[11331,11909],[11334,11913],[11336,11917],[11346,11928],[11361,11944],[11363,11947],[11366,11951],[11370,11956],[11372,11960],[11375,11964],[11389,11979],[11682,12284],[11686,12292],[11687,12312],[11692,12319],[11694,12330],[11714,12351],[11716,12436],[11723,12447],[11725,12535],[11730,12543],[11736,12586],[11982,12842],[11989,12850],[12102,12964],[12336,13200],[12348,13215],[12350,13218],[12384,13253],[12393,13263],[12395,13267],[12397,13270],[12510,13384],[12553,13428],[12851,13727],[12962,13839],[12973,13851],[13738,14617],[13823,14703],[13919,14801],[13933,14816],[14080,14964],[14298,15183],[14585,15471],[14698,15585],[15583,16471],[15847,16736],[16318,17208],[16434,17325],[16438,17330],[16481,17374],[16729,17623],[17102,17997],[17122,18018],[17315,18212],[17320,18218],[17402,18301],[17418,18318],[17859,18760],[17909,18811],[17911,18814],[17915,18820],[17916,18823],[17936,18844],[17939,18848],[17961,18872],[18664,19576],[18703,19620],[18814,19738],[18962,19887],[19043,40870],[33469,59244],[33470,59336],[33471,59367],[33484,59413],[33485,59417],[33490,59423],[33497,59431],[33501,59437],[33505,59443],[33513,59452],[33520,59460],[33536,59478],[33550,59493],[37845,63789],[37921,63866],[37948,63894],[38029,63976],[38038,63986],[38064,64016],[38065,64018],[38066,64021],[38069,64025],[38075,64034],[38076,64037],[38078,64042],[39108,65074],[39109,65093],[39113,65107],[39114,65112],[39115,65127],[39116,65132],[39265,65375],[39394,65510],[189000,65536]],\n \"jis0208\":[12288,12289,12290,65292,65294,12539,65306,65307,65311,65281,12443,12444,180,65344,168,65342,65507,65343,12541,12542,12445,12446,12291,20189,12293,12294,12295,12540,8213,8208,65295,65340,65374,8741,65372,8230,8229,8216,8217,8220,8221,65288,65289,12308,12309,65339,65341,65371,65373,12296,12297,12298,12299,12300,12301,12302,12303,12304,12305,65291,65293,177,215,247,65309,8800,65308,65310,8806,8807,8734,8756,9794,9792,176,8242,8243,8451,65509,65284,65504,65505,65285,65283,65286,65290,65312,167,9734,9733,9675,9679,9678,9671,9670,9633,9632,9651,9650,9661,9660,8251,12306,8594,8592,8593,8595,12307,null,null,null,null,null,null,null,null,null,null,null,8712,8715,8838,8839,8834,8835,8746,8745,null,null,null,null,null,null,null,null,8743,8744,65506,8658,8660,8704,8707,null,null,null,null,null,null,null,null,null,null,null,8736,8869,8978,8706,8711,8801,8786,8810,8811,8730,8765,8733,8757,8747,8748,null,null,null,null,null,null,null,8491,8240,9839,9837,9834,8224,8225,182,null,null,null,null,9711,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,65296,65297,65298,65299,65300,65301,65302,65303,65304,65305,null,null,null,null,null,null,null,65313,65314,65315,65316,65317,65318,65319,65320,65321,65322,65323,65324,65325,65326,65327,65328,65329,65330,65331,65332,65333,65334,65335,65336,65337,65338,null,null,null,null,null,null,65345,65346,65347,65348,65349,65350,65351,65352,65353,65354,65355,65356,65357,65358,65359,65360,65361,65362,65363,65364,65365,65366,65367,65368,65369,65370,null,null,null,null,12353,12354,12355,12356,12357,12358,12359,12360,12361,12362,12363,12364,12365,12366,12367,12368,12369,12370,12371,12372,12373,12374,12375,12376,12377,12378,12379,12380,12381,12382,12383,12384,12385,12386,12387,12388,12389,12390,12391,12392,12393,12394,12395,12396,12397,12398,12399,12400,12401,12402,12403,12404,12405,12406,12407,12408,12409,12410,12411,12412,12413,12414,12415,12416,12417,12418,12419,12420,12421,12422,12423,12424,12425,12426,12427,12428,12429,12430,12431,12432,12433,12434,12435,null,null,null,null,null,null,null,null,null,null,null,12449,12450,12451,12452,12453,12454,12455,12456,12457,12458,12459,12460,12461,12462,12463,12464,12465,12466,12467,12468,12469,12470,12471,12472,12473,12474,12475,12476,12477,12478,12479,12480,12481,12482,12483,12484,12485,12486,12487,12488,12489,12490,12491,12492,12493,12494,12495,12496,12497,12498,12499,12500,12501,12502,12503,12504,12505,12506,12507,12508,12509,12510,12511,12512,12513,12514,12515,12516,12517,12518,12519,12520,12521,12522,12523,12524,12525,12526,12527,12528,12529,12530,12531,12532,12533,12534,null,null,null,null,null,null,null,null,913,914,915,916,917,918,919,920,921,922,923,924,925,926,927,928,929,931,932,933,934,935,936,937,null,null,null,null,null,null,null,null,945,946,947,948,949,950,951,952,953,954,955,956,957,958,959,960,961,963,964,965,966,967,968,969,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,1040,1041,1042,1043,1044,1045,1025,1046,1047,1048,1049,1050,1051,1052,1053,1054,1055,1056,1057,1058,1059,1060,1061,1062,1063,1064,1065,1066,1067,1068,1069,1070,1071,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,1072,1073,1074,1075,1076,1077,1105,1078,1079,1080,1081,1082,1083,1084,1085,1086,1087,1088,1089,1090,1091,1092,1093,1094,1095,1096,1097,1098,1099,1100,1101,1102,1103,null,null,null,null,null,null,null,null,null,null,null,null,null,9472,9474,9484,9488,9496,9492,9500,9516,9508,9524,9532,9473,9475,9487,9491,9499,9495,9507,9523,9515,9531,9547,9504,9519,9512,9527,9535,9501,9520,9509,9528,9538,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,9312,9313,9314,9315,9316,9317,9318,9319,9320,9321,9322,9323,9324,9325,9326,9327,9328,9329,9330,9331,8544,8545,8546,8547,8548,8549,8550,8551,8552,8553,null,13129,13076,13090,13133,13080,13095,13059,13110,13137,13143,13069,13094,13091,13099,13130,13115,13212,13213,13214,13198,13199,13252,13217,null,null,null,null,null,null,null,null,13179,12317,12319,8470,13261,8481,12964,12965,12966,12967,12968,12849,12850,12857,13182,13181,13180,8786,8801,8747,8750,8721,8730,8869,8736,8735,8895,8757,8745,8746,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,20124,21782,23043,38463,21696,24859,25384,23030,36898,33909,33564,31312,24746,25569,28197,26093,33894,33446,39925,26771,22311,26017,25201,23451,22992,34427,39156,32098,32190,39822,25110,31903,34999,23433,24245,25353,26263,26696,38343,38797,26447,20197,20234,20301,20381,20553,22258,22839,22996,23041,23561,24799,24847,24944,26131,26885,28858,30031,30064,31227,32173,32239,32963,33806,34915,35586,36949,36986,21307,20117,20133,22495,32946,37057,30959,19968,22769,28322,36920,31282,33576,33419,39983,20801,21360,21693,21729,22240,23035,24341,39154,28139,32996,34093,38498,38512,38560,38907,21515,21491,23431,28879,32701,36802,38632,21359,40284,31418,19985,30867,33276,28198,22040,21764,27421,34074,39995,23013,21417,28006,29916,38287,22082,20113,36939,38642,33615,39180,21473,21942,23344,24433,26144,26355,26628,27704,27891,27945,29787,30408,31310,38964,33521,34907,35424,37613,28082,30123,30410,39365,24742,35585,36234,38322,27022,21421,20870,22290,22576,22852,23476,24310,24616,25513,25588,27839,28436,28814,28948,29017,29141,29503,32257,33398,33489,34199,36960,37467,40219,22633,26044,27738,29989,20985,22830,22885,24448,24540,25276,26106,27178,27431,27572,29579,32705,35158,40236,40206,40644,23713,27798,33659,20740,23627,25014,33222,26742,29281,20057,20474,21368,24681,28201,31311,38899,19979,21270,20206,20309,20285,20385,20339,21152,21487,22025,22799,23233,23478,23521,31185,26247,26524,26550,27468,27827,28779,29634,31117,31166,31292,31623,33457,33499,33540,33655,33775,33747,34662,35506,22057,36008,36838,36942,38686,34442,20420,23784,25105,29273,30011,33253,33469,34558,36032,38597,39187,39381,20171,20250,35299,22238,22602,22730,24315,24555,24618,24724,24674,25040,25106,25296,25913,39745,26214,26800,28023,28784,30028,30342,32117,33445,34809,38283,38542,35997,20977,21182,22806,21683,23475,23830,24936,27010,28079,30861,33995,34903,35442,37799,39608,28012,39336,34521,22435,26623,34510,37390,21123,22151,21508,24275,25313,25785,26684,26680,27579,29554,30906,31339,35226,35282,36203,36611,37101,38307,38548,38761,23398,23731,27005,38989,38990,25499,31520,27179,27263,26806,39949,28511,21106,21917,24688,25324,27963,28167,28369,33883,35088,36676,19988,39993,21494,26907,27194,38788,26666,20828,31427,33970,37340,37772,22107,40232,26658,33541,33841,31909,21000,33477,29926,20094,20355,20896,23506,21002,21208,21223,24059,21914,22570,23014,23436,23448,23515,24178,24185,24739,24863,24931,25022,25563,25954,26577,26707,26874,27454,27475,27735,28450,28567,28485,29872,29976,30435,30475,31487,31649,31777,32233,32566,32752,32925,33382,33694,35251,35532,36011,36996,37969,38291,38289,38306,38501,38867,39208,33304,20024,21547,23736,24012,29609,30284,30524,23721,32747,36107,38593,38929,38996,39000,20225,20238,21361,21916,22120,22522,22855,23305,23492,23696,24076,24190,24524,25582,26426,26071,26082,26399,26827,26820,27231,24112,27589,27671,27773,30079,31048,23395,31232,32000,24509,35215,35352,36020,36215,36556,36637,39138,39438,39740,20096,20605,20736,22931,23452,25135,25216,25836,27450,29344,30097,31047,32681,34811,35516,35696,25516,33738,38816,21513,21507,21931,26708,27224,35440,30759,26485,40653,21364,23458,33050,34384,36870,19992,20037,20167,20241,21450,21560,23470,24339,24613,25937,26429,27714,27762,27875,28792,29699,31350,31406,31496,32026,31998,32102,26087,29275,21435,23621,24040,25298,25312,25369,28192,34394,35377,36317,37624,28417,31142,39770,20136,20139,20140,20379,20384,20689,20807,31478,20849,20982,21332,21281,21375,21483,21932,22659,23777,24375,24394,24623,24656,24685,25375,25945,27211,27841,29378,29421,30703,33016,33029,33288,34126,37111,37857,38911,39255,39514,20208,20957,23597,26241,26989,23616,26354,26997,29577,26704,31873,20677,21220,22343,24062,37670,26020,27427,27453,29748,31105,31165,31563,32202,33465,33740,34943,35167,35641,36817,37329,21535,37504,20061,20534,21477,21306,29399,29590,30697,33510,36527,39366,39368,39378,20855,24858,34398,21936,31354,20598,23507,36935,38533,20018,27355,37351,23633,23624,25496,31391,27795,38772,36705,31402,29066,38536,31874,26647,32368,26705,37740,21234,21531,34219,35347,32676,36557,37089,21350,34952,31041,20418,20670,21009,20804,21843,22317,29674,22411,22865,24418,24452,24693,24950,24935,25001,25522,25658,25964,26223,26690,28179,30054,31293,31995,32076,32153,32331,32619,33550,33610,34509,35336,35427,35686,36605,38938,40335,33464,36814,39912,21127,25119,25731,28608,38553,26689,20625,27424,27770,28500,31348,32080,34880,35363,26376,20214,20537,20518,20581,20860,21048,21091,21927,22287,22533,23244,24314,25010,25080,25331,25458,26908,27177,29309,29356,29486,30740,30831,32121,30476,32937,35211,35609,36066,36562,36963,37749,38522,38997,39443,40568,20803,21407,21427,24187,24358,28187,28304,29572,29694,32067,33335,35328,35578,38480,20046,20491,21476,21628,22266,22993,23396,24049,24235,24359,25144,25925,26543,28246,29392,31946,34996,32929,32993,33776,34382,35463,36328,37431,38599,39015,40723,20116,20114,20237,21320,21577,21566,23087,24460,24481,24735,26791,27278,29786,30849,35486,35492,35703,37264,20062,39881,20132,20348,20399,20505,20502,20809,20844,21151,21177,21246,21402,21475,21521,21518,21897,22353,22434,22909,23380,23389,23439,24037,24039,24055,24184,24195,24218,24247,24344,24658,24908,25239,25304,25511,25915,26114,26179,26356,26477,26657,26775,27083,27743,27946,28009,28207,28317,30002,30343,30828,31295,31968,32005,32024,32094,32177,32789,32771,32943,32945,33108,33167,33322,33618,34892,34913,35611,36002,36092,37066,37237,37489,30783,37628,38308,38477,38917,39321,39640,40251,21083,21163,21495,21512,22741,25335,28640,35946,36703,40633,20811,21051,21578,22269,31296,37239,40288,40658,29508,28425,33136,29969,24573,24794,39592,29403,36796,27492,38915,20170,22256,22372,22718,23130,24680,25031,26127,26118,26681,26801,28151,30165,32058,33390,39746,20123,20304,21449,21766,23919,24038,24046,26619,27801,29811,30722,35408,37782,35039,22352,24231,25387,20661,20652,20877,26368,21705,22622,22971,23472,24425,25165,25505,26685,27507,28168,28797,37319,29312,30741,30758,31085,25998,32048,33756,35009,36617,38555,21092,22312,26448,32618,36001,20916,22338,38442,22586,27018,32948,21682,23822,22524,30869,40442,20316,21066,21643,25662,26152,26388,26613,31364,31574,32034,37679,26716,39853,31545,21273,20874,21047,23519,25334,25774,25830,26413,27578,34217,38609,30352,39894,25420,37638,39851,30399,26194,19977,20632,21442,23665,24808,25746,25955,26719,29158,29642,29987,31639,32386,34453,35715,36059,37240,39184,26028,26283,27531,20181,20180,20282,20351,21050,21496,21490,21987,22235,22763,22987,22985,23039,23376,23629,24066,24107,24535,24605,25351,25903,23388,26031,26045,26088,26525,27490,27515,27663,29509,31049,31169,31992,32025,32043,32930,33026,33267,35222,35422,35433,35430,35468,35566,36039,36060,38604,39164,27503,20107,20284,20365,20816,23383,23546,24904,25345,26178,27425,28363,27835,29246,29885,30164,30913,31034,32780,32819,33258,33940,36766,27728,40575,24335,35672,40235,31482,36600,23437,38635,19971,21489,22519,22833,23241,23460,24713,28287,28422,30142,36074,23455,34048,31712,20594,26612,33437,23649,34122,32286,33294,20889,23556,25448,36198,26012,29038,31038,32023,32773,35613,36554,36974,34503,37034,20511,21242,23610,26451,28796,29237,37196,37320,37675,33509,23490,24369,24825,20027,21462,23432,25163,26417,27530,29417,29664,31278,33131,36259,37202,39318,20754,21463,21610,23551,25480,27193,32172,38656,22234,21454,21608,23447,23601,24030,20462,24833,25342,27954,31168,31179,32066,32333,32722,33261,33311,33936,34886,35186,35728,36468,36655,36913,37195,37228,38598,37276,20160,20303,20805,21313,24467,25102,26580,27713,28171,29539,32294,37325,37507,21460,22809,23487,28113,31069,32302,31899,22654,29087,20986,34899,36848,20426,23803,26149,30636,31459,33308,39423,20934,24490,26092,26991,27529,28147,28310,28516,30462,32020,24033,36981,37255,38918,20966,21021,25152,26257,26329,28186,24246,32210,32626,26360,34223,34295,35576,21161,21465,22899,24207,24464,24661,37604,38500,20663,20767,21213,21280,21319,21484,21736,21830,21809,22039,22888,22974,23100,23477,23558,23567,23569,23578,24196,24202,24288,24432,25215,25220,25307,25484,25463,26119,26124,26157,26230,26494,26786,27167,27189,27836,28040,28169,28248,28988,28966,29031,30151,30465,30813,30977,31077,31216,31456,31505,31911,32057,32918,33750,33931,34121,34909,35059,35359,35388,35412,35443,35937,36062,37284,37478,37758,37912,38556,38808,19978,19976,19998,20055,20887,21104,22478,22580,22732,23330,24120,24773,25854,26465,26454,27972,29366,30067,31331,33976,35698,37304,37664,22065,22516,39166,25325,26893,27542,29165,32340,32887,33394,35302,39135,34645,36785,23611,20280,20449,20405,21767,23072,23517,23529,24515,24910,25391,26032,26187,26862,27035,28024,28145,30003,30137,30495,31070,31206,32051,33251,33455,34218,35242,35386,36523,36763,36914,37341,38663,20154,20161,20995,22645,22764,23563,29978,23613,33102,35338,36805,38499,38765,31525,35535,38920,37218,22259,21416,36887,21561,22402,24101,25512,27700,28810,30561,31883,32736,34928,36930,37204,37648,37656,38543,29790,39620,23815,23913,25968,26530,36264,38619,25454,26441,26905,33733,38935,38592,35070,28548,25722,23544,19990,28716,30045,26159,20932,21046,21218,22995,24449,24615,25104,25919,25972,26143,26228,26866,26646,27491,28165,29298,29983,30427,31934,32854,22768,35069,35199,35488,35475,35531,36893,37266,38738,38745,25993,31246,33030,38587,24109,24796,25114,26021,26132,26512,30707,31309,31821,32318,33034,36012,36196,36321,36447,30889,20999,25305,25509,25666,25240,35373,31363,31680,35500,38634,32118,33292,34633,20185,20808,21315,21344,23459,23554,23574,24029,25126,25159,25776,26643,26676,27849,27973,27927,26579,28508,29006,29053,26059,31359,31661,32218,32330,32680,33146,33307,33337,34214,35438,36046,36341,36984,36983,37549,37521,38275,39854,21069,21892,28472,28982,20840,31109,32341,33203,31950,22092,22609,23720,25514,26366,26365,26970,29401,30095,30094,30990,31062,31199,31895,32032,32068,34311,35380,38459,36961,40736,20711,21109,21452,21474,20489,21930,22766,22863,29245,23435,23652,21277,24803,24819,25436,25475,25407,25531,25805,26089,26361,24035,27085,27133,28437,29157,20105,30185,30456,31379,31967,32207,32156,32865,33609,33624,33900,33980,34299,35013,36208,36865,36973,37783,38684,39442,20687,22679,24974,33235,34101,36104,36896,20419,20596,21063,21363,24687,25417,26463,28204,36275,36895,20439,23646,36042,26063,32154,21330,34966,20854,25539,23384,23403,23562,25613,26449,36956,20182,22810,22826,27760,35409,21822,22549,22949,24816,25171,26561,33333,26965,38464,39364,39464,20307,22534,23550,32784,23729,24111,24453,24608,24907,25140,26367,27888,28382,32974,33151,33492,34955,36024,36864,36910,38538,40667,39899,20195,21488,22823,31532,37261,38988,40441,28381,28711,21331,21828,23429,25176,25246,25299,27810,28655,29730,35351,37944,28609,35582,33592,20967,34552,21482,21481,20294,36948,36784,22890,33073,24061,31466,36799,26842,35895,29432,40008,27197,35504,20025,21336,22022,22374,25285,25506,26086,27470,28129,28251,28845,30701,31471,31658,32187,32829,32966,34507,35477,37723,22243,22727,24382,26029,26262,27264,27573,30007,35527,20516,30693,22320,24347,24677,26234,27744,30196,31258,32622,33268,34584,36933,39347,31689,30044,31481,31569,33988,36880,31209,31378,33590,23265,30528,20013,20210,23449,24544,25277,26172,26609,27880,34411,34935,35387,37198,37619,39376,27159,28710,29482,33511,33879,36015,19969,20806,20939,21899,23541,24086,24115,24193,24340,24373,24427,24500,25074,25361,26274,26397,28526,29266,30010,30522,32884,33081,33144,34678,35519,35548,36229,36339,37530,38263,38914,40165,21189,25431,30452,26389,27784,29645,36035,37806,38515,27941,22684,26894,27084,36861,37786,30171,36890,22618,26626,25524,27131,20291,28460,26584,36795,34086,32180,37716,26943,28528,22378,22775,23340,32044,29226,21514,37347,40372,20141,20302,20572,20597,21059,35998,21576,22564,23450,24093,24213,24237,24311,24351,24716,25269,25402,25552,26799,27712,30855,31118,31243,32224,33351,35330,35558,36420,36883,37048,37165,37336,40718,27877,25688,25826,25973,28404,30340,31515,36969,37841,28346,21746,24505,25764,36685,36845,37444,20856,22635,22825,23637,24215,28155,32399,29980,36028,36578,39003,28857,20253,27583,28593,30000,38651,20814,21520,22581,22615,22956,23648,24466,26007,26460,28193,30331,33759,36077,36884,37117,37709,30757,30778,21162,24230,22303,22900,24594,20498,20826,20908,20941,20992,21776,22612,22616,22871,23445,23798,23947,24764,25237,25645,26481,26691,26812,26847,30423,28120,28271,28059,28783,29128,24403,30168,31095,31561,31572,31570,31958,32113,21040,33891,34153,34276,35342,35588,35910,36367,36867,36879,37913,38518,38957,39472,38360,20685,21205,21516,22530,23566,24999,25758,27934,30643,31461,33012,33796,36947,37509,23776,40199,21311,24471,24499,28060,29305,30563,31167,31716,27602,29420,35501,26627,27233,20984,31361,26932,23626,40182,33515,23493,37193,28702,22136,23663,24775,25958,27788,35930,36929,38931,21585,26311,37389,22856,37027,20869,20045,20970,34201,35598,28760,25466,37707,26978,39348,32260,30071,21335,26976,36575,38627,27741,20108,23612,24336,36841,21250,36049,32905,34425,24319,26085,20083,20837,22914,23615,38894,20219,22922,24525,35469,28641,31152,31074,23527,33905,29483,29105,24180,24565,25467,25754,29123,31896,20035,24316,20043,22492,22178,24745,28611,32013,33021,33075,33215,36786,35223,34468,24052,25226,25773,35207,26487,27874,27966,29750,30772,23110,32629,33453,39340,20467,24259,25309,25490,25943,26479,30403,29260,32972,32954,36649,37197,20493,22521,23186,26757,26995,29028,29437,36023,22770,36064,38506,36889,34687,31204,30695,33833,20271,21093,21338,25293,26575,27850,30333,31636,31893,33334,34180,36843,26333,28448,29190,32283,33707,39361,40614,20989,31665,30834,31672,32903,31560,27368,24161,32908,30033,30048,20843,37474,28300,30330,37271,39658,20240,32624,25244,31567,38309,40169,22138,22617,34532,38588,20276,21028,21322,21453,21467,24070,25644,26001,26495,27710,27726,29256,29359,29677,30036,32321,33324,34281,36009,31684,37318,29033,38930,39151,25405,26217,30058,30436,30928,34115,34542,21290,21329,21542,22915,24199,24444,24754,25161,25209,25259,26000,27604,27852,30130,30382,30865,31192,32203,32631,32933,34987,35513,36027,36991,38750,39131,27147,31800,20633,23614,24494,26503,27608,29749,30473,32654,40763,26570,31255,21305,30091,39661,24422,33181,33777,32920,24380,24517,30050,31558,36924,26727,23019,23195,32016,30334,35628,20469,24426,27161,27703,28418,29922,31080,34920,35413,35961,24287,25551,30149,31186,33495,37672,37618,33948,34541,39981,21697,24428,25996,27996,28693,36007,36051,38971,25935,29942,19981,20184,22496,22827,23142,23500,20904,24067,24220,24598,25206,25975,26023,26222,28014,29238,31526,33104,33178,33433,35676,36000,36070,36212,38428,38468,20398,25771,27494,33310,33889,34154,37096,23553,26963,39080,33914,34135,20239,21103,24489,24133,26381,31119,33145,35079,35206,28149,24343,25173,27832,20175,29289,39826,20998,21563,22132,22707,24996,25198,28954,22894,31881,31966,32027,38640,25991,32862,19993,20341,20853,22592,24163,24179,24330,26564,20006,34109,38281,38491,31859,38913,20731,22721,30294,30887,21029,30629,34065,31622,20559,22793,29255,31687,32232,36794,36820,36941,20415,21193,23081,24321,38829,20445,33303,37610,22275,25429,27497,29995,35036,36628,31298,21215,22675,24917,25098,26286,27597,31807,33769,20515,20472,21253,21574,22577,22857,23453,23792,23791,23849,24214,25265,25447,25918,26041,26379,27861,27873,28921,30770,32299,32990,33459,33804,34028,34562,35090,35370,35914,37030,37586,39165,40179,40300,20047,20129,20621,21078,22346,22952,24125,24536,24537,25151,26292,26395,26576,26834,20882,32033,32938,33192,35584,35980,36031,37502,38450,21536,38956,21271,20693,21340,22696,25778,26420,29287,30566,31302,37350,21187,27809,27526,22528,24140,22868,26412,32763,20961,30406,25705,30952,39764,40635,22475,22969,26151,26522,27598,21737,27097,24149,33180,26517,39850,26622,40018,26717,20134,20451,21448,25273,26411,27819,36804,20397,32365,40639,19975,24930,28288,28459,34067,21619,26410,39749,24051,31637,23724,23494,34588,28234,34001,31252,33032,22937,31885,27665,30496,21209,22818,28961,29279,30683,38695,40289,26891,23167,23064,20901,21517,21629,26126,30431,36855,37528,40180,23018,29277,28357,20813,26825,32191,32236,38754,40634,25720,27169,33538,22916,23391,27611,29467,30450,32178,32791,33945,20786,26408,40665,30446,26466,21247,39173,23588,25147,31870,36016,21839,24758,32011,38272,21249,20063,20918,22812,29242,32822,37326,24357,30690,21380,24441,32004,34220,35379,36493,38742,26611,34222,37971,24841,24840,27833,30290,35565,36664,21807,20305,20778,21191,21451,23461,24189,24736,24962,25558,26377,26586,28263,28044,29494,29495,30001,31056,35029,35480,36938,37009,37109,38596,34701,22805,20104,20313,19982,35465,36671,38928,20653,24188,22934,23481,24248,25562,25594,25793,26332,26954,27096,27915,28342,29076,29992,31407,32650,32768,33865,33993,35201,35617,36362,36965,38525,39178,24958,25233,27442,27779,28020,32716,32764,28096,32645,34746,35064,26469,33713,38972,38647,27931,32097,33853,37226,20081,21365,23888,27396,28651,34253,34349,35239,21033,21519,23653,26446,26792,29702,29827,30178,35023,35041,37324,38626,38520,24459,29575,31435,33870,25504,30053,21129,27969,28316,29705,30041,30827,31890,38534,31452,40845,20406,24942,26053,34396,20102,20142,20698,20001,20940,23534,26009,26753,28092,29471,30274,30637,31260,31975,33391,35538,36988,37327,38517,38936,21147,32209,20523,21400,26519,28107,29136,29747,33256,36650,38563,40023,40607,29792,22593,28057,32047,39006,20196,20278,20363,20919,21169,23994,24604,29618,31036,33491,37428,38583,38646,38666,40599,40802,26278,27508,21015,21155,28872,35010,24265,24651,24976,28451,29001,31806,32244,32879,34030,36899,37676,21570,39791,27347,28809,36034,36335,38706,21172,23105,24266,24324,26391,27004,27028,28010,28431,29282,29436,31725,32769,32894,34635,37070,20845,40595,31108,32907,37682,35542,20525,21644,35441,27498,36036,33031,24785,26528,40434,20121,20120,39952,35435,34241,34152,26880,28286,30871,33109,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,24332,19984,19989,20010,20017,20022,20028,20031,20034,20054,20056,20098,20101,35947,20106,33298,24333,20110,20126,20127,20128,20130,20144,20147,20150,20174,20173,20164,20166,20162,20183,20190,20205,20191,20215,20233,20314,20272,20315,20317,20311,20295,20342,20360,20367,20376,20347,20329,20336,20369,20335,20358,20374,20760,20436,20447,20430,20440,20443,20433,20442,20432,20452,20453,20506,20520,20500,20522,20517,20485,20252,20470,20513,20521,20524,20478,20463,20497,20486,20547,20551,26371,20565,20560,20552,20570,20566,20588,20600,20608,20634,20613,20660,20658,20681,20682,20659,20674,20694,20702,20709,20717,20707,20718,20729,20725,20745,20737,20738,20758,20757,20756,20762,20769,20794,20791,20796,20795,20799,20800,20818,20812,20820,20834,31480,20841,20842,20846,20864,20866,22232,20876,20873,20879,20881,20883,20885,20886,20900,20902,20898,20905,20906,20907,20915,20913,20914,20912,20917,20925,20933,20937,20955,20960,34389,20969,20973,20976,20981,20990,20996,21003,21012,21006,21031,21034,21038,21043,21049,21071,21060,21067,21068,21086,21076,21098,21108,21097,21107,21119,21117,21133,21140,21138,21105,21128,21137,36776,36775,21164,21165,21180,21173,21185,21197,21207,21214,21219,21222,39149,21216,21235,21237,21240,21241,21254,21256,30008,21261,21264,21263,21269,21274,21283,21295,21297,21299,21304,21312,21318,21317,19991,21321,21325,20950,21342,21353,21358,22808,21371,21367,21378,21398,21408,21414,21413,21422,21424,21430,21443,31762,38617,21471,26364,29166,21486,21480,21485,21498,21505,21565,21568,21548,21549,21564,21550,21558,21545,21533,21582,21647,21621,21646,21599,21617,21623,21616,21650,21627,21632,21622,21636,21648,21638,21703,21666,21688,21669,21676,21700,21704,21672,21675,21698,21668,21694,21692,21720,21733,21734,21775,21780,21757,21742,21741,21754,21730,21817,21824,21859,21836,21806,21852,21829,21846,21847,21816,21811,21853,21913,21888,21679,21898,21919,21883,21886,21912,21918,21934,21884,21891,21929,21895,21928,21978,21957,21983,21956,21980,21988,21972,22036,22007,22038,22014,22013,22043,22009,22094,22096,29151,22068,22070,22066,22072,22123,22116,22063,22124,22122,22150,22144,22154,22176,22164,22159,22181,22190,22198,22196,22210,22204,22209,22211,22208,22216,22222,22225,22227,22231,22254,22265,22272,22271,22276,22281,22280,22283,22285,22291,22296,22294,21959,22300,22310,22327,22328,22350,22331,22336,22351,22377,22464,22408,22369,22399,22409,22419,22432,22451,22436,22442,22448,22467,22470,22484,22482,22483,22538,22486,22499,22539,22553,22557,22642,22561,22626,22603,22640,27584,22610,22589,22649,22661,22713,22687,22699,22714,22750,22715,22712,22702,22725,22739,22737,22743,22745,22744,22757,22748,22756,22751,22767,22778,22777,22779,22780,22781,22786,22794,22800,22811,26790,22821,22828,22829,22834,22840,22846,31442,22869,22864,22862,22874,22872,22882,22880,22887,22892,22889,22904,22913,22941,20318,20395,22947,22962,22982,23016,23004,22925,23001,23002,23077,23071,23057,23068,23049,23066,23104,23148,23113,23093,23094,23138,23146,23194,23228,23230,23243,23234,23229,23267,23255,23270,23273,23254,23290,23291,23308,23307,23318,23346,23248,23338,23350,23358,23363,23365,23360,23377,23381,23386,23387,23397,23401,23408,23411,23413,23416,25992,23418,23424,23427,23462,23480,23491,23495,23497,23508,23504,23524,23526,23522,23518,23525,23531,23536,23542,23539,23557,23559,23560,23565,23571,23584,23586,23592,23608,23609,23617,23622,23630,23635,23632,23631,23409,23660,23662,20066,23670,23673,23692,23697,23700,22939,23723,23739,23734,23740,23735,23749,23742,23751,23769,23785,23805,23802,23789,23948,23786,23819,23829,23831,23900,23839,23835,23825,23828,23842,23834,23833,23832,23884,23890,23886,23883,23916,23923,23926,23943,23940,23938,23970,23965,23980,23982,23997,23952,23991,23996,24009,24013,24019,24018,24022,24027,24043,24050,24053,24075,24090,24089,24081,24091,24118,24119,24132,24131,24128,24142,24151,24148,24159,24162,24164,24135,24181,24182,24186,40636,24191,24224,24257,24258,24264,24272,24271,24278,24291,24285,24282,24283,24290,24289,24296,24297,24300,24305,24307,24304,24308,24312,24318,24323,24329,24413,24412,24331,24337,24342,24361,24365,24376,24385,24392,24396,24398,24367,24401,24406,24407,24409,24417,24429,24435,24439,24451,24450,24447,24458,24456,24465,24455,24478,24473,24472,24480,24488,24493,24508,24534,24571,24548,24568,24561,24541,24755,24575,24609,24672,24601,24592,24617,24590,24625,24603,24597,24619,24614,24591,24634,24666,24641,24682,24695,24671,24650,24646,24653,24675,24643,24676,24642,24684,24683,24665,24705,24717,24807,24707,24730,24708,24731,24726,24727,24722,24743,24715,24801,24760,24800,24787,24756,24560,24765,24774,24757,24792,24909,24853,24838,24822,24823,24832,24820,24826,24835,24865,24827,24817,24845,24846,24903,24894,24872,24871,24906,24895,24892,24876,24884,24893,24898,24900,24947,24951,24920,24921,24922,24939,24948,24943,24933,24945,24927,24925,24915,24949,24985,24982,24967,25004,24980,24986,24970,24977,25003,25006,25036,25034,25033,25079,25032,25027,25030,25018,25035,32633,25037,25062,25059,25078,25082,25076,25087,25085,25084,25086,25088,25096,25097,25101,25100,25108,25115,25118,25121,25130,25134,25136,25138,25139,25153,25166,25182,25187,25179,25184,25192,25212,25218,25225,25214,25234,25235,25238,25300,25219,25236,25303,25297,25275,25295,25343,25286,25812,25288,25308,25292,25290,25282,25287,25243,25289,25356,25326,25329,25383,25346,25352,25327,25333,25424,25406,25421,25628,25423,25494,25486,25472,25515,25462,25507,25487,25481,25503,25525,25451,25449,25534,25577,25536,25542,25571,25545,25554,25590,25540,25622,25652,25606,25619,25638,25654,25885,25623,25640,25615,25703,25711,25718,25678,25898,25749,25747,25765,25769,25736,25788,25818,25810,25797,25799,25787,25816,25794,25841,25831,33289,25824,25825,25260,25827,25839,25900,25846,25844,25842,25850,25856,25853,25880,25884,25861,25892,25891,25899,25908,25909,25911,25910,25912,30027,25928,25942,25941,25933,25944,25950,25949,25970,25976,25986,25987,35722,26011,26015,26027,26039,26051,26054,26049,26052,26060,26066,26075,26073,26080,26081,26097,26482,26122,26115,26107,26483,26165,26166,26164,26140,26191,26180,26185,26177,26206,26205,26212,26215,26216,26207,26210,26224,26243,26248,26254,26249,26244,26264,26269,26305,26297,26313,26302,26300,26308,26296,26326,26330,26336,26175,26342,26345,26352,26357,26359,26383,26390,26398,26406,26407,38712,26414,26431,26422,26433,26424,26423,26438,26462,26464,26457,26467,26468,26505,26480,26537,26492,26474,26508,26507,26534,26529,26501,26551,26607,26548,26604,26547,26601,26552,26596,26590,26589,26594,26606,26553,26574,26566,26599,27292,26654,26694,26665,26688,26701,26674,26702,26803,26667,26713,26723,26743,26751,26783,26767,26797,26772,26781,26779,26755,27310,26809,26740,26805,26784,26810,26895,26765,26750,26881,26826,26888,26840,26914,26918,26849,26892,26829,26836,26855,26837,26934,26898,26884,26839,26851,26917,26873,26848,26863,26920,26922,26906,26915,26913,26822,27001,26999,26972,27000,26987,26964,27006,26990,26937,26996,26941,26969,26928,26977,26974,26973,27009,26986,27058,27054,27088,27071,27073,27091,27070,27086,23528,27082,27101,27067,27075,27047,27182,27025,27040,27036,27029,27060,27102,27112,27138,27163,27135,27402,27129,27122,27111,27141,27057,27166,27117,27156,27115,27146,27154,27329,27171,27155,27204,27148,27250,27190,27256,27207,27234,27225,27238,27208,27192,27170,27280,27277,27296,27268,27298,27299,27287,34327,27323,27331,27330,27320,27315,27308,27358,27345,27359,27306,27354,27370,27387,27397,34326,27386,27410,27414,39729,27423,27448,27447,30428,27449,39150,27463,27459,27465,27472,27481,27476,27483,27487,27489,27512,27513,27519,27520,27524,27523,27533,27544,27541,27550,27556,27562,27563,27567,27570,27569,27571,27575,27580,27590,27595,27603,27615,27628,27627,27635,27631,40638,27656,27667,27668,27675,27684,27683,27742,27733,27746,27754,27778,27789,27802,27777,27803,27774,27752,27763,27794,27792,27844,27889,27859,27837,27863,27845,27869,27822,27825,27838,27834,27867,27887,27865,27882,27935,34893,27958,27947,27965,27960,27929,27957,27955,27922,27916,28003,28051,28004,27994,28025,27993,28046,28053,28644,28037,28153,28181,28170,28085,28103,28134,28088,28102,28140,28126,28108,28136,28114,28101,28154,28121,28132,28117,28138,28142,28205,28270,28206,28185,28274,28255,28222,28195,28267,28203,28278,28237,28191,28227,28218,28238,28196,28415,28189,28216,28290,28330,28312,28361,28343,28371,28349,28335,28356,28338,28372,28373,28303,28325,28354,28319,28481,28433,28748,28396,28408,28414,28479,28402,28465,28399,28466,28364,28478,28435,28407,28550,28538,28536,28545,28544,28527,28507,28659,28525,28546,28540,28504,28558,28561,28610,28518,28595,28579,28577,28580,28601,28614,28586,28639,28629,28652,28628,28632,28657,28654,28635,28681,28683,28666,28689,28673,28687,28670,28699,28698,28532,28701,28696,28703,28720,28734,28722,28753,28771,28825,28818,28847,28913,28844,28856,28851,28846,28895,28875,28893,28889,28937,28925,28956,28953,29029,29013,29064,29030,29026,29004,29014,29036,29071,29179,29060,29077,29096,29100,29143,29113,29118,29138,29129,29140,29134,29152,29164,29159,29173,29180,29177,29183,29197,29200,29211,29224,29229,29228,29232,29234,29243,29244,29247,29248,29254,29259,29272,29300,29310,29314,29313,29319,29330,29334,29346,29351,29369,29362,29379,29382,29380,29390,29394,29410,29408,29409,29433,29431,20495,29463,29450,29468,29462,29469,29492,29487,29481,29477,29502,29518,29519,40664,29527,29546,29544,29552,29560,29557,29563,29562,29640,29619,29646,29627,29632,29669,29678,29662,29858,29701,29807,29733,29688,29746,29754,29781,29759,29791,29785,29761,29788,29801,29808,29795,29802,29814,29822,29835,29854,29863,29898,29903,29908,29681,29920,29923,29927,29929,29934,29938,29936,29937,29944,29943,29956,29955,29957,29964,29966,29965,29973,29971,29982,29990,29996,30012,30020,30029,30026,30025,30043,30022,30042,30057,30052,30055,30059,30061,30072,30070,30086,30087,30068,30090,30089,30082,30100,30106,30109,30117,30115,30146,30131,30147,30133,30141,30136,30140,30129,30157,30154,30162,30169,30179,30174,30206,30207,30204,30209,30192,30202,30194,30195,30219,30221,30217,30239,30247,30240,30241,30242,30244,30260,30256,30267,30279,30280,30278,30300,30296,30305,30306,30312,30313,30314,30311,30316,30320,30322,30326,30328,30332,30336,30339,30344,30347,30350,30358,30355,30361,30362,30384,30388,30392,30393,30394,30402,30413,30422,30418,30430,30433,30437,30439,30442,34351,30459,30472,30471,30468,30505,30500,30494,30501,30502,30491,30519,30520,30535,30554,30568,30571,30555,30565,30591,30590,30585,30606,30603,30609,30624,30622,30640,30646,30649,30655,30652,30653,30651,30663,30669,30679,30682,30684,30691,30702,30716,30732,30738,31014,30752,31018,30789,30862,30836,30854,30844,30874,30860,30883,30901,30890,30895,30929,30918,30923,30932,30910,30908,30917,30922,30956,30951,30938,30973,30964,30983,30994,30993,31001,31020,31019,31040,31072,31063,31071,31066,31061,31059,31098,31103,31114,31133,31143,40779,31146,31150,31155,31161,31162,31177,31189,31207,31212,31201,31203,31240,31245,31256,31257,31264,31263,31104,31281,31291,31294,31287,31299,31319,31305,31329,31330,31337,40861,31344,31353,31357,31368,31383,31381,31384,31382,31401,31432,31408,31414,31429,31428,31423,36995,31431,31434,31437,31439,31445,31443,31449,31450,31453,31457,31458,31462,31469,31472,31490,31503,31498,31494,31539,31512,31513,31518,31541,31528,31542,31568,31610,31492,31565,31499,31564,31557,31605,31589,31604,31591,31600,31601,31596,31598,31645,31640,31647,31629,31644,31642,31627,31634,31631,31581,31641,31691,31681,31692,31695,31668,31686,31709,31721,31761,31764,31718,31717,31840,31744,31751,31763,31731,31735,31767,31757,31734,31779,31783,31786,31775,31799,31787,31805,31820,31811,31828,31823,31808,31824,31832,31839,31844,31830,31845,31852,31861,31875,31888,31908,31917,31906,31915,31905,31912,31923,31922,31921,31918,31929,31933,31936,31941,31938,31960,31954,31964,31970,39739,31983,31986,31988,31990,31994,32006,32002,32028,32021,32010,32069,32075,32046,32050,32063,32053,32070,32115,32086,32078,32114,32104,32110,32079,32099,32147,32137,32091,32143,32125,32155,32186,32174,32163,32181,32199,32189,32171,32317,32162,32175,32220,32184,32159,32176,32216,32221,32228,32222,32251,32242,32225,32261,32266,32291,32289,32274,32305,32287,32265,32267,32290,32326,32358,32315,32309,32313,32323,32311,32306,32314,32359,32349,32342,32350,32345,32346,32377,32362,32361,32380,32379,32387,32213,32381,36782,32383,32392,32393,32396,32402,32400,32403,32404,32406,32398,32411,32412,32568,32570,32581,32588,32589,32590,32592,32593,32597,32596,32600,32607,32608,32616,32617,32615,32632,32642,32646,32643,32648,32647,32652,32660,32670,32669,32666,32675,32687,32690,32697,32686,32694,32696,35697,32709,32710,32714,32725,32724,32737,32742,32745,32755,32761,39132,32774,32772,32779,32786,32792,32793,32796,32801,32808,32831,32827,32842,32838,32850,32856,32858,32863,32866,32872,32883,32882,32880,32886,32889,32893,32895,32900,32902,32901,32923,32915,32922,32941,20880,32940,32987,32997,32985,32989,32964,32986,32982,33033,33007,33009,33051,33065,33059,33071,33099,38539,33094,33086,33107,33105,33020,33137,33134,33125,33126,33140,33155,33160,33162,33152,33154,33184,33173,33188,33187,33119,33171,33193,33200,33205,33214,33208,33213,33216,33218,33210,33225,33229,33233,33241,33240,33224,33242,33247,33248,33255,33274,33275,33278,33281,33282,33285,33287,33290,33293,33296,33302,33321,33323,33336,33331,33344,33369,33368,33373,33370,33375,33380,33378,33384,33386,33387,33326,33393,33399,33400,33406,33421,33426,33451,33439,33467,33452,33505,33507,33503,33490,33524,33523,33530,33683,33539,33531,33529,33502,33542,33500,33545,33497,33589,33588,33558,33586,33585,33600,33593,33616,33605,33583,33579,33559,33560,33669,33690,33706,33695,33698,33686,33571,33678,33671,33674,33660,33717,33651,33653,33696,33673,33704,33780,33811,33771,33742,33789,33795,33752,33803,33729,33783,33799,33760,33778,33805,33826,33824,33725,33848,34054,33787,33901,33834,33852,34138,33924,33911,33899,33965,33902,33922,33897,33862,33836,33903,33913,33845,33994,33890,33977,33983,33951,34009,33997,33979,34010,34000,33985,33990,34006,33953,34081,34047,34036,34071,34072,34092,34079,34069,34068,34044,34112,34147,34136,34120,34113,34306,34123,34133,34176,34212,34184,34193,34186,34216,34157,34196,34203,34282,34183,34204,34167,34174,34192,34249,34234,34255,34233,34256,34261,34269,34277,34268,34297,34314,34323,34315,34302,34298,34310,34338,34330,34352,34367,34381,20053,34388,34399,34407,34417,34451,34467,34473,34474,34443,34444,34486,34479,34500,34502,34480,34505,34851,34475,34516,34526,34537,34540,34527,34523,34543,34578,34566,34568,34560,34563,34555,34577,34569,34573,34553,34570,34612,34623,34615,34619,34597,34601,34586,34656,34655,34680,34636,34638,34676,34647,34664,34670,34649,34643,34659,34666,34821,34722,34719,34690,34735,34763,34749,34752,34768,38614,34731,34756,34739,34759,34758,34747,34799,34802,34784,34831,34829,34814,34806,34807,34830,34770,34833,34838,34837,34850,34849,34865,34870,34873,34855,34875,34884,34882,34898,34905,34910,34914,34923,34945,34942,34974,34933,34941,34997,34930,34946,34967,34962,34990,34969,34978,34957,34980,34992,35007,34993,35011,35012,35028,35032,35033,35037,35065,35074,35068,35060,35048,35058,35076,35084,35082,35091,35139,35102,35109,35114,35115,35137,35140,35131,35126,35128,35148,35101,35168,35166,35174,35172,35181,35178,35183,35188,35191,35198,35203,35208,35210,35219,35224,35233,35241,35238,35244,35247,35250,35258,35261,35263,35264,35290,35292,35293,35303,35316,35320,35331,35350,35344,35340,35355,35357,35365,35382,35393,35419,35410,35398,35400,35452,35437,35436,35426,35461,35458,35460,35496,35489,35473,35493,35494,35482,35491,35524,35533,35522,35546,35563,35571,35559,35556,35569,35604,35552,35554,35575,35550,35547,35596,35591,35610,35553,35606,35600,35607,35616,35635,38827,35622,35627,35646,35624,35649,35660,35663,35662,35657,35670,35675,35674,35691,35679,35692,35695,35700,35709,35712,35724,35726,35730,35731,35734,35737,35738,35898,35905,35903,35912,35916,35918,35920,35925,35938,35948,35960,35962,35970,35977,35973,35978,35981,35982,35988,35964,35992,25117,36013,36010,36029,36018,36019,36014,36022,36040,36033,36068,36067,36058,36093,36090,36091,36100,36101,36106,36103,36111,36109,36112,40782,36115,36045,36116,36118,36199,36205,36209,36211,36225,36249,36290,36286,36282,36303,36314,36310,36300,36315,36299,36330,36331,36319,36323,36348,36360,36361,36351,36381,36382,36368,36383,36418,36405,36400,36404,36426,36423,36425,36428,36432,36424,36441,36452,36448,36394,36451,36437,36470,36466,36476,36481,36487,36485,36484,36491,36490,36499,36497,36500,36505,36522,36513,36524,36528,36550,36529,36542,36549,36552,36555,36571,36579,36604,36603,36587,36606,36618,36613,36629,36626,36633,36627,36636,36639,36635,36620,36646,36659,36667,36665,36677,36674,36670,36684,36681,36678,36686,36695,36700,36706,36707,36708,36764,36767,36771,36781,36783,36791,36826,36837,36834,36842,36847,36999,36852,36869,36857,36858,36881,36885,36897,36877,36894,36886,36875,36903,36918,36917,36921,36856,36943,36944,36945,36946,36878,36937,36926,36950,36952,36958,36968,36975,36982,38568,36978,36994,36989,36993,36992,37002,37001,37007,37032,37039,37041,37045,37090,37092,25160,37083,37122,37138,37145,37170,37168,37194,37206,37208,37219,37221,37225,37235,37234,37259,37257,37250,37282,37291,37295,37290,37301,37300,37306,37312,37313,37321,37323,37328,37334,37343,37345,37339,37372,37365,37366,37406,37375,37396,37420,37397,37393,37470,37463,37445,37449,37476,37448,37525,37439,37451,37456,37532,37526,37523,37531,37466,37583,37561,37559,37609,37647,37626,37700,37678,37657,37666,37658,37667,37690,37685,37691,37724,37728,37756,37742,37718,37808,37804,37805,37780,37817,37846,37847,37864,37861,37848,37827,37853,37840,37832,37860,37914,37908,37907,37891,37895,37904,37942,37931,37941,37921,37946,37953,37970,37956,37979,37984,37986,37982,37994,37417,38000,38005,38007,38013,37978,38012,38014,38017,38015,38274,38279,38282,38292,38294,38296,38297,38304,38312,38311,38317,38332,38331,38329,38334,38346,28662,38339,38349,38348,38357,38356,38358,38364,38369,38373,38370,38433,38440,38446,38447,38466,38476,38479,38475,38519,38492,38494,38493,38495,38502,38514,38508,38541,38552,38549,38551,38570,38567,38577,38578,38576,38580,38582,38584,38585,38606,38603,38601,38605,35149,38620,38669,38613,38649,38660,38662,38664,38675,38670,38673,38671,38678,38681,38692,38698,38704,38713,38717,38718,38724,38726,38728,38722,38729,38748,38752,38756,38758,38760,21202,38763,38769,38777,38789,38780,38785,38778,38790,38795,38799,38800,38812,38824,38822,38819,38835,38836,38851,38854,38856,38859,38876,38893,40783,38898,31455,38902,38901,38927,38924,38968,38948,38945,38967,38973,38982,38991,38987,39019,39023,39024,39025,39028,39027,39082,39087,39089,39094,39108,39107,39110,39145,39147,39171,39177,39186,39188,39192,39201,39197,39198,39204,39200,39212,39214,39229,39230,39234,39241,39237,39248,39243,39249,39250,39244,39253,39319,39320,39333,39341,39342,39356,39391,39387,39389,39384,39377,39405,39406,39409,39410,39419,39416,39425,39439,39429,39394,39449,39467,39479,39493,39490,39488,39491,39486,39509,39501,39515,39511,39519,39522,39525,39524,39529,39531,39530,39597,39600,39612,39616,39631,39633,39635,39636,39646,39647,39650,39651,39654,39663,39659,39662,39668,39665,39671,39675,39686,39704,39706,39711,39714,39715,39717,39719,39720,39721,39722,39726,39727,39730,39748,39747,39759,39757,39758,39761,39768,39796,39827,39811,39825,39830,39831,39839,39840,39848,39860,39872,39882,39865,39878,39887,39889,39890,39907,39906,39908,39892,39905,39994,39922,39921,39920,39957,39956,39945,39955,39948,39942,39944,39954,39946,39940,39982,39963,39973,39972,39969,39984,40007,39986,40006,39998,40026,40032,40039,40054,40056,40167,40172,40176,40201,40200,40171,40195,40198,40234,40230,40367,40227,40223,40260,40213,40210,40257,40255,40254,40262,40264,40285,40286,40292,40273,40272,40281,40306,40329,40327,40363,40303,40314,40346,40356,40361,40370,40388,40385,40379,40376,40378,40390,40399,40386,40409,40403,40440,40422,40429,40431,40445,40474,40475,40478,40565,40569,40573,40577,40584,40587,40588,40594,40597,40593,40605,40613,40617,40632,40618,40621,38753,40652,40654,40655,40656,40660,40668,40670,40669,40672,40677,40680,40687,40692,40694,40695,40697,40699,40700,40701,40711,40712,30391,40725,40737,40748,40766,40778,40786,40788,40803,40799,40800,40801,40806,40807,40812,40810,40823,40818,40822,40853,40860,40864,22575,27079,36953,29796,20956,29081,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,32394,35100,37704,37512,34012,20425,28859,26161,26824,37625,26363,24389,20008,20193,20220,20224,20227,20281,20310,20370,20362,20378,20372,20429,20544,20514,20479,20510,20550,20592,20546,20628,20724,20696,20810,20836,20893,20926,20972,21013,21148,21158,21184,21211,21248,21255,21284,21362,21395,21426,21469,64014,21660,21642,21673,21759,21894,22361,22373,22444,22472,22471,64015,64016,22686,22706,22795,22867,22875,22877,22883,22948,22970,23382,23488,29999,23512,23532,23582,23718,23738,23797,23847,23891,64017,23874,23917,23992,23993,24016,24353,24372,24423,24503,24542,24669,24709,24714,24798,24789,24864,24818,24849,24887,24880,24984,25107,25254,25589,25696,25757,25806,25934,26112,26133,26171,26121,26158,26142,26148,26213,26199,26201,64018,26227,26265,26272,26290,26303,26362,26382,63785,26470,26555,26706,26560,26625,26692,26831,64019,26984,64020,27032,27106,27184,27243,27206,27251,27262,27362,27364,27606,27711,27740,27782,27759,27866,27908,28039,28015,28054,28076,28111,28152,28146,28156,28217,28252,28199,28220,28351,28552,28597,28661,28677,28679,28712,28805,28843,28943,28932,29020,28998,28999,64021,29121,29182,29361,29374,29476,64022,29559,29629,29641,29654,29667,29650,29703,29685,29734,29738,29737,29742,29794,29833,29855,29953,30063,30338,30364,30366,30363,30374,64023,30534,21167,30753,30798,30820,30842,31024,64024,64025,64026,31124,64027,31131,31441,31463,64028,31467,31646,64029,32072,32092,32183,32160,32214,32338,32583,32673,64030,33537,33634,33663,33735,33782,33864,33972,34131,34137,34155,64031,34224,64032,64033,34823,35061,35346,35383,35449,35495,35518,35551,64034,35574,35667,35711,36080,36084,36114,36214,64035,36559,64036,64037,36967,37086,64038,37141,37159,37338,37335,37342,37357,37358,37348,37349,37382,37392,37386,37434,37440,37436,37454,37465,37457,37433,37479,37543,37495,37496,37607,37591,37593,37584,64039,37589,37600,37587,37669,37665,37627,64040,37662,37631,37661,37634,37744,37719,37796,37830,37854,37880,37937,37957,37960,38290,63964,64041,38557,38575,38707,38715,38723,38733,38735,38737,38741,38999,39013,64042,64043,39207,64044,39326,39502,39641,39644,39797,39794,39823,39857,39867,39936,40304,40299,64045,40473,40657,null,null,8560,8561,8562,8563,8564,8565,8566,8567,8568,8569,65506,65508,65287,65282,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,8560,8561,8562,8563,8564,8565,8566,8567,8568,8569,8544,8545,8546,8547,8548,8549,8550,8551,8552,8553,65506,65508,65287,65282,12849,8470,8481,8757,32394,35100,37704,37512,34012,20425,28859,26161,26824,37625,26363,24389,20008,20193,20220,20224,20227,20281,20310,20370,20362,20378,20372,20429,20544,20514,20479,20510,20550,20592,20546,20628,20724,20696,20810,20836,20893,20926,20972,21013,21148,21158,21184,21211,21248,21255,21284,21362,21395,21426,21469,64014,21660,21642,21673,21759,21894,22361,22373,22444,22472,22471,64015,64016,22686,22706,22795,22867,22875,22877,22883,22948,22970,23382,23488,29999,23512,23532,23582,23718,23738,23797,23847,23891,64017,23874,23917,23992,23993,24016,24353,24372,24423,24503,24542,24669,24709,24714,24798,24789,24864,24818,24849,24887,24880,24984,25107,25254,25589,25696,25757,25806,25934,26112,26133,26171,26121,26158,26142,26148,26213,26199,26201,64018,26227,26265,26272,26290,26303,26362,26382,63785,26470,26555,26706,26560,26625,26692,26831,64019,26984,64020,27032,27106,27184,27243,27206,27251,27262,27362,27364,27606,27711,27740,27782,27759,27866,27908,28039,28015,28054,28076,28111,28152,28146,28156,28217,28252,28199,28220,28351,28552,28597,28661,28677,28679,28712,28805,28843,28943,28932,29020,28998,28999,64021,29121,29182,29361,29374,29476,64022,29559,29629,29641,29654,29667,29650,29703,29685,29734,29738,29737,29742,29794,29833,29855,29953,30063,30338,30364,30366,30363,30374,64023,30534,21167,30753,30798,30820,30842,31024,64024,64025,64026,31124,64027,31131,31441,31463,64028,31467,31646,64029,32072,32092,32183,32160,32214,32338,32583,32673,64030,33537,33634,33663,33735,33782,33864,33972,34131,34137,34155,64031,34224,64032,64033,34823,35061,35346,35383,35449,35495,35518,35551,64034,35574,35667,35711,36080,36084,36114,36214,64035,36559,64036,64037,36967,37086,64038,37141,37159,37338,37335,37342,37357,37358,37348,37349,37382,37392,37386,37434,37440,37436,37454,37465,37457,37433,37479,37543,37495,37496,37607,37591,37593,37584,64039,37589,37600,37587,37669,37665,37627,64040,37662,37631,37661,37634,37744,37719,37796,37830,37854,37880,37937,37957,37960,38290,63964,64041,38557,38575,38707,38715,38723,38733,38735,38737,38741,38999,39013,64042,64043,39207,64044,39326,39502,39641,39644,39797,39794,39823,39857,39867,39936,40304,40299,64045,40473,40657,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null],\n \"jis0212\":[null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,728,711,184,729,733,175,731,730,65374,900,901,null,null,null,null,null,null,null,null,161,166,191,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,186,170,169,174,8482,164,8470,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,902,904,905,906,938,null,908,null,910,939,null,911,null,null,null,null,940,941,942,943,970,912,972,962,973,971,944,974,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,1026,1027,1028,1029,1030,1031,1032,1033,1034,1035,1036,1038,1039,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,1106,1107,1108,1109,1110,1111,1112,1113,1114,1115,1116,1118,1119,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,198,272,null,294,null,306,null,321,319,null,330,216,338,null,358,222,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,230,273,240,295,305,307,312,322,320,329,331,248,339,223,359,254,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,193,192,196,194,258,461,256,260,197,195,262,264,268,199,266,270,201,200,203,202,282,278,274,280,null,284,286,290,288,292,205,204,207,206,463,304,298,302,296,308,310,313,317,315,323,327,325,209,211,210,214,212,465,336,332,213,340,344,342,346,348,352,350,356,354,218,217,220,219,364,467,368,362,370,366,360,471,475,473,469,372,221,376,374,377,381,379,null,null,null,null,null,null,null,225,224,228,226,259,462,257,261,229,227,263,265,269,231,267,271,233,232,235,234,283,279,275,281,501,285,287,null,289,293,237,236,239,238,464,null,299,303,297,309,311,314,318,316,324,328,326,241,243,242,246,244,466,337,333,245,341,345,343,347,349,353,351,357,355,250,249,252,251,365,468,369,363,371,367,361,472,476,474,470,373,253,255,375,378,382,380,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,19970,19972,19973,19980,19986,19999,20003,20004,20008,20011,20014,20015,20016,20021,20032,20033,20036,20039,20049,20058,20060,20067,20072,20073,20084,20085,20089,20095,20109,20118,20119,20125,20143,20153,20163,20176,20186,20187,20192,20193,20194,20200,20207,20209,20211,20213,20221,20222,20223,20224,20226,20227,20232,20235,20236,20242,20245,20246,20247,20249,20270,20273,20320,20275,20277,20279,20281,20283,20286,20288,20290,20296,20297,20299,20300,20306,20308,20310,20312,20319,20323,20330,20332,20334,20337,20343,20344,20345,20346,20349,20350,20353,20354,20356,20357,20361,20362,20364,20366,20368,20370,20371,20372,20375,20377,20378,20382,20383,20402,20407,20409,20411,20412,20413,20414,20416,20417,20421,20422,20424,20425,20427,20428,20429,20431,20434,20444,20448,20450,20464,20466,20476,20477,20479,20480,20481,20484,20487,20490,20492,20494,20496,20499,20503,20504,20507,20508,20509,20510,20514,20519,20526,20528,20530,20531,20533,20544,20545,20546,20549,20550,20554,20556,20558,20561,20562,20563,20567,20569,20575,20576,20578,20579,20582,20583,20586,20589,20592,20593,20539,20609,20611,20612,20614,20618,20622,20623,20624,20626,20627,20628,20630,20635,20636,20638,20639,20640,20641,20642,20650,20655,20656,20665,20666,20669,20672,20675,20676,20679,20684,20686,20688,20691,20692,20696,20700,20701,20703,20706,20708,20710,20712,20713,20719,20721,20726,20730,20734,20739,20742,20743,20744,20747,20748,20749,20750,20722,20752,20759,20761,20763,20764,20765,20766,20771,20775,20776,20780,20781,20783,20785,20787,20788,20789,20792,20793,20802,20810,20815,20819,20821,20823,20824,20831,20836,20838,20862,20867,20868,20875,20878,20888,20893,20897,20899,20909,20920,20922,20924,20926,20927,20930,20936,20943,20945,20946,20947,20949,20952,20958,20962,20965,20974,20978,20979,20980,20983,20993,20994,20997,21010,21011,21013,21014,21016,21026,21032,21041,21042,21045,21052,21061,21065,21077,21079,21080,21082,21084,21087,21088,21089,21094,21102,21111,21112,21113,21120,21122,21125,21130,21132,21139,21141,21142,21143,21144,21146,21148,21156,21157,21158,21159,21167,21168,21174,21175,21176,21178,21179,21181,21184,21188,21190,21192,21196,21199,21201,21204,21206,21211,21212,21217,21221,21224,21225,21226,21228,21232,21233,21236,21238,21239,21248,21251,21258,21259,21260,21265,21267,21272,21275,21276,21278,21279,21285,21287,21288,21289,21291,21292,21293,21296,21298,21301,21308,21309,21310,21314,21324,21323,21337,21339,21345,21347,21349,21356,21357,21362,21369,21374,21379,21383,21384,21390,21395,21396,21401,21405,21409,21412,21418,21419,21423,21426,21428,21429,21431,21432,21434,21437,21440,21445,21455,21458,21459,21461,21466,21469,21470,21472,21478,21479,21493,21506,21523,21530,21537,21543,21544,21546,21551,21553,21556,21557,21571,21572,21575,21581,21583,21598,21602,21604,21606,21607,21609,21611,21613,21614,21620,21631,21633,21635,21637,21640,21641,21645,21649,21653,21654,21660,21663,21665,21670,21671,21673,21674,21677,21678,21681,21687,21689,21690,21691,21695,21702,21706,21709,21710,21728,21738,21740,21743,21750,21756,21758,21759,21760,21761,21765,21768,21769,21772,21773,21774,21781,21802,21803,21810,21813,21814,21819,21820,21821,21825,21831,21833,21834,21837,21840,21841,21848,21850,21851,21854,21856,21857,21860,21862,21887,21889,21890,21894,21896,21902,21903,21905,21906,21907,21908,21911,21923,21924,21933,21938,21951,21953,21955,21958,21961,21963,21964,21966,21969,21970,21971,21975,21976,21979,21982,21986,21993,22006,22015,22021,22024,22026,22029,22030,22031,22032,22033,22034,22041,22060,22064,22067,22069,22071,22073,22075,22076,22077,22079,22080,22081,22083,22084,22086,22089,22091,22093,22095,22100,22110,22112,22113,22114,22115,22118,22121,22125,22127,22129,22130,22133,22148,22149,22152,22155,22156,22165,22169,22170,22173,22174,22175,22182,22183,22184,22185,22187,22188,22189,22193,22195,22199,22206,22213,22217,22218,22219,22223,22224,22220,22221,22233,22236,22237,22239,22241,22244,22245,22246,22247,22248,22257,22251,22253,22262,22263,22273,22274,22279,22282,22284,22289,22293,22298,22299,22301,22304,22306,22307,22308,22309,22313,22314,22316,22318,22319,22323,22324,22333,22334,22335,22341,22342,22348,22349,22354,22370,22373,22375,22376,22379,22381,22382,22383,22384,22385,22387,22388,22389,22391,22393,22394,22395,22396,22398,22401,22403,22412,22420,22423,22425,22426,22428,22429,22430,22431,22433,22421,22439,22440,22441,22444,22456,22461,22471,22472,22476,22479,22485,22493,22494,22500,22502,22503,22505,22509,22512,22517,22518,22520,22525,22526,22527,22531,22532,22536,22537,22497,22540,22541,22555,22558,22559,22560,22566,22567,22573,22578,22585,22591,22601,22604,22605,22607,22608,22613,22623,22625,22628,22631,22632,22648,22652,22655,22656,22657,22663,22664,22665,22666,22668,22669,22671,22672,22676,22678,22685,22688,22689,22690,22694,22697,22705,22706,22724,22716,22722,22728,22733,22734,22736,22738,22740,22742,22746,22749,22753,22754,22761,22771,22789,22790,22795,22796,22802,22803,22804,34369,22813,22817,22819,22820,22824,22831,22832,22835,22837,22838,22847,22851,22854,22866,22867,22873,22875,22877,22878,22879,22881,22883,22891,22893,22895,22898,22901,22902,22905,22907,22908,22923,22924,22926,22930,22933,22935,22943,22948,22951,22957,22958,22959,22960,22963,22967,22970,22972,22977,22979,22980,22984,22986,22989,22994,23005,23006,23007,23011,23012,23015,23022,23023,23025,23026,23028,23031,23040,23044,23052,23053,23054,23058,23059,23070,23075,23076,23079,23080,23082,23085,23088,23108,23109,23111,23112,23116,23120,23125,23134,23139,23141,23143,23149,23159,23162,23163,23166,23179,23184,23187,23190,23193,23196,23198,23199,23200,23202,23207,23212,23217,23218,23219,23221,23224,23226,23227,23231,23236,23238,23240,23247,23258,23260,23264,23269,23274,23278,23285,23286,23293,23296,23297,23304,23319,23348,23321,23323,23325,23329,23333,23341,23352,23361,23371,23372,23378,23382,23390,23400,23406,23407,23420,23421,23422,23423,23425,23428,23430,23434,23438,23440,23441,23443,23444,23446,23464,23465,23468,23469,23471,23473,23474,23479,23482,23484,23488,23489,23501,23503,23510,23511,23512,23513,23514,23520,23535,23537,23540,23549,23564,23575,23582,23583,23587,23590,23593,23595,23596,23598,23600,23602,23605,23606,23641,23642,23644,23650,23651,23655,23656,23657,23661,23664,23668,23669,23674,23675,23676,23677,23687,23688,23690,23695,23698,23709,23711,23712,23714,23715,23718,23722,23730,23732,23733,23738,23753,23755,23762,23773,23767,23790,23793,23794,23796,23809,23814,23821,23826,23851,23843,23844,23846,23847,23857,23860,23865,23869,23871,23874,23875,23878,23880,23893,23889,23897,23882,23903,23904,23905,23906,23908,23914,23917,23920,23929,23930,23934,23935,23937,23939,23944,23946,23954,23955,23956,23957,23961,23963,23967,23968,23975,23979,23984,23988,23992,23993,24003,24007,24011,24016,24014,24024,24025,24032,24036,24041,24056,24057,24064,24071,24077,24082,24084,24085,24088,24095,24096,24110,24104,24114,24117,24126,24139,24144,24137,24145,24150,24152,24155,24156,24158,24168,24170,24171,24172,24173,24174,24176,24192,24203,24206,24226,24228,24229,24232,24234,24236,24241,24243,24253,24254,24255,24262,24268,24267,24270,24273,24274,24276,24277,24284,24286,24293,24299,24322,24326,24327,24328,24334,24345,24348,24349,24353,24354,24355,24356,24360,24363,24364,24366,24368,24372,24374,24379,24381,24383,24384,24388,24389,24391,24397,24400,24404,24408,24411,24416,24419,24420,24423,24431,24434,24436,24437,24440,24442,24445,24446,24457,24461,24463,24470,24476,24477,24482,24487,24491,24484,24492,24495,24496,24497,24504,24516,24519,24520,24521,24523,24528,24529,24530,24531,24532,24542,24545,24546,24552,24553,24554,24556,24557,24558,24559,24562,24563,24566,24570,24572,24583,24586,24589,24595,24596,24599,24600,24602,24607,24612,24621,24627,24629,24640,24647,24648,24649,24652,24657,24660,24662,24663,24669,24673,24679,24689,24702,24703,24706,24710,24712,24714,24718,24721,24723,24725,24728,24733,24734,24738,24740,24741,24744,24752,24753,24759,24763,24766,24770,24772,24776,24777,24778,24779,24782,24783,24788,24789,24793,24795,24797,24798,24802,24805,24818,24821,24824,24828,24829,24834,24839,24842,24844,24848,24849,24850,24851,24852,24854,24855,24857,24860,24862,24866,24874,24875,24880,24881,24885,24886,24887,24889,24897,24901,24902,24905,24926,24928,24940,24946,24952,24955,24956,24959,24960,24961,24963,24964,24971,24973,24978,24979,24983,24984,24988,24989,24991,24992,24997,25000,25002,25005,25016,25017,25020,25024,25025,25026,25038,25039,25045,25052,25053,25054,25055,25057,25058,25063,25065,25061,25068,25069,25071,25089,25091,25092,25095,25107,25109,25116,25120,25122,25123,25127,25129,25131,25145,25149,25154,25155,25156,25158,25164,25168,25169,25170,25172,25174,25178,25180,25188,25197,25199,25203,25210,25213,25229,25230,25231,25232,25254,25256,25267,25270,25271,25274,25278,25279,25284,25294,25301,25302,25306,25322,25330,25332,25340,25341,25347,25348,25354,25355,25357,25360,25363,25366,25368,25385,25386,25389,25397,25398,25401,25404,25409,25410,25411,25412,25414,25418,25419,25422,25426,25427,25428,25432,25435,25445,25446,25452,25453,25457,25460,25461,25464,25468,25469,25471,25474,25476,25479,25482,25488,25492,25493,25497,25498,25502,25508,25510,25517,25518,25519,25533,25537,25541,25544,25550,25553,25555,25556,25557,25564,25568,25573,25578,25580,25586,25587,25589,25592,25593,25609,25610,25616,25618,25620,25624,25630,25632,25634,25636,25637,25641,25642,25647,25648,25653,25661,25663,25675,25679,25681,25682,25683,25684,25690,25691,25692,25693,25695,25696,25697,25699,25709,25715,25716,25723,25725,25733,25735,25743,25744,25745,25752,25753,25755,25757,25759,25761,25763,25766,25768,25772,25779,25789,25790,25791,25796,25801,25802,25803,25804,25806,25808,25809,25813,25815,25828,25829,25833,25834,25837,25840,25845,25847,25851,25855,25857,25860,25864,25865,25866,25871,25875,25876,25878,25881,25883,25886,25887,25890,25894,25897,25902,25905,25914,25916,25917,25923,25927,25929,25936,25938,25940,25951,25952,25959,25963,25978,25981,25985,25989,25994,26002,26005,26008,26013,26016,26019,26022,26030,26034,26035,26036,26047,26050,26056,26057,26062,26064,26068,26070,26072,26079,26096,26098,26100,26101,26105,26110,26111,26112,26116,26120,26121,26125,26129,26130,26133,26134,26141,26142,26145,26146,26147,26148,26150,26153,26154,26155,26156,26158,26160,26161,26163,26169,26167,26176,26181,26182,26186,26188,26193,26190,26199,26200,26201,26203,26204,26208,26209,26363,26218,26219,26220,26238,26227,26229,26239,26231,26232,26233,26235,26240,26236,26251,26252,26253,26256,26258,26265,26266,26267,26268,26271,26272,26276,26285,26289,26290,26293,26299,26303,26304,26306,26307,26312,26316,26318,26319,26324,26331,26335,26344,26347,26348,26350,26362,26373,26375,26382,26387,26393,26396,26400,26402,26419,26430,26437,26439,26440,26444,26452,26453,26461,26470,26476,26478,26484,26486,26491,26497,26500,26510,26511,26513,26515,26518,26520,26521,26523,26544,26545,26546,26549,26555,26556,26557,26617,26560,26562,26563,26565,26568,26569,26578,26583,26585,26588,26593,26598,26608,26610,26614,26615,26706,26644,26649,26653,26655,26664,26663,26668,26669,26671,26672,26673,26675,26683,26687,26692,26693,26698,26700,26709,26711,26712,26715,26731,26734,26735,26736,26737,26738,26741,26745,26746,26747,26748,26754,26756,26758,26760,26774,26776,26778,26780,26785,26787,26789,26793,26794,26798,26802,26811,26821,26824,26828,26831,26832,26833,26835,26838,26841,26844,26845,26853,26856,26858,26859,26860,26861,26864,26865,26869,26870,26875,26876,26877,26886,26889,26890,26896,26897,26899,26902,26903,26929,26931,26933,26936,26939,26946,26949,26953,26958,26967,26971,26979,26980,26981,26982,26984,26985,26988,26992,26993,26994,27002,27003,27007,27008,27021,27026,27030,27032,27041,27045,27046,27048,27051,27053,27055,27063,27064,27066,27068,27077,27080,27089,27094,27095,27106,27109,27118,27119,27121,27123,27125,27134,27136,27137,27139,27151,27153,27157,27162,27165,27168,27172,27176,27184,27186,27188,27191,27195,27198,27199,27205,27206,27209,27210,27214,27216,27217,27218,27221,27222,27227,27236,27239,27242,27249,27251,27262,27265,27267,27270,27271,27273,27275,27281,27291,27293,27294,27295,27301,27307,27311,27312,27313,27316,27325,27326,27327,27334,27337,27336,27340,27344,27348,27349,27350,27356,27357,27364,27367,27372,27376,27377,27378,27388,27389,27394,27395,27398,27399,27401,27407,27408,27409,27415,27419,27422,27428,27432,27435,27436,27439,27445,27446,27451,27455,27462,27466,27469,27474,27478,27480,27485,27488,27495,27499,27502,27504,27509,27517,27518,27522,27525,27543,27547,27551,27552,27554,27555,27560,27561,27564,27565,27566,27568,27576,27577,27581,27582,27587,27588,27593,27596,27606,27610,27617,27619,27622,27623,27630,27633,27639,27641,27647,27650,27652,27653,27657,27661,27662,27664,27666,27673,27679,27686,27687,27688,27692,27694,27699,27701,27702,27706,27707,27711,27722,27723,27725,27727,27730,27732,27737,27739,27740,27755,27757,27759,27764,27766,27768,27769,27771,27781,27782,27783,27785,27796,27797,27799,27800,27804,27807,27824,27826,27828,27842,27846,27853,27855,27856,27857,27858,27860,27862,27866,27868,27872,27879,27881,27883,27884,27886,27890,27892,27908,27911,27914,27918,27919,27921,27923,27930,27942,27943,27944,27751,27950,27951,27953,27961,27964,27967,27991,27998,27999,28001,28005,28007,28015,28016,28028,28034,28039,28049,28050,28052,28054,28055,28056,28074,28076,28084,28087,28089,28093,28095,28100,28104,28106,28110,28111,28118,28123,28125,28127,28128,28130,28133,28137,28143,28144,28148,28150,28156,28160,28164,28190,28194,28199,28210,28214,28217,28219,28220,28228,28229,28232,28233,28235,28239,28241,28242,28243,28244,28247,28252,28253,28254,28258,28259,28264,28275,28283,28285,28301,28307,28313,28320,28327,28333,28334,28337,28339,28347,28351,28352,28353,28355,28359,28360,28362,28365,28366,28367,28395,28397,28398,28409,28411,28413,28420,28424,28426,28428,28429,28438,28440,28442,28443,28454,28457,28458,28463,28464,28467,28470,28475,28476,28461,28495,28497,28498,28499,28503,28505,28506,28509,28510,28513,28514,28520,28524,28541,28542,28547,28551,28552,28555,28556,28557,28560,28562,28563,28564,28566,28570,28575,28576,28581,28582,28583,28584,28590,28591,28592,28597,28598,28604,28613,28615,28616,28618,28634,28638,28648,28649,28656,28661,28665,28668,28669,28672,28677,28678,28679,28685,28695,28704,28707,28719,28724,28727,28729,28732,28739,28740,28744,28745,28746,28747,28756,28757,28765,28766,28750,28772,28773,28780,28782,28789,28790,28798,28801,28805,28806,28820,28821,28822,28823,28824,28827,28836,28843,28848,28849,28852,28855,28874,28881,28883,28884,28885,28886,28888,28892,28900,28922,28931,28932,28933,28934,28935,28939,28940,28943,28958,28960,28971,28973,28975,28976,28977,28984,28993,28997,28998,28999,29002,29003,29008,29010,29015,29018,29020,29022,29024,29032,29049,29056,29061,29063,29068,29074,29082,29083,29088,29090,29103,29104,29106,29107,29114,29119,29120,29121,29124,29131,29132,29139,29142,29145,29146,29148,29176,29182,29184,29191,29192,29193,29203,29207,29210,29213,29215,29220,29227,29231,29236,29240,29241,29249,29250,29251,29253,29262,29263,29264,29267,29269,29270,29274,29276,29278,29280,29283,29288,29291,29294,29295,29297,29303,29304,29307,29308,29311,29316,29321,29325,29326,29331,29339,29352,29357,29358,29361,29364,29374,29377,29383,29385,29388,29397,29398,29400,29407,29413,29427,29428,29434,29435,29438,29442,29444,29445,29447,29451,29453,29458,29459,29464,29465,29470,29474,29476,29479,29480,29484,29489,29490,29493,29498,29499,29501,29507,29517,29520,29522,29526,29528,29533,29534,29535,29536,29542,29543,29545,29547,29548,29550,29551,29553,29559,29561,29564,29568,29569,29571,29573,29574,29582,29584,29587,29589,29591,29592,29596,29598,29599,29600,29602,29605,29606,29610,29611,29613,29621,29623,29625,29628,29629,29631,29637,29638,29641,29643,29644,29647,29650,29651,29654,29657,29661,29665,29667,29670,29671,29673,29684,29685,29687,29689,29690,29691,29693,29695,29696,29697,29700,29703,29706,29713,29722,29723,29732,29734,29736,29737,29738,29739,29740,29741,29742,29743,29744,29745,29753,29760,29763,29764,29766,29767,29771,29773,29777,29778,29783,29789,29794,29798,29799,29800,29803,29805,29806,29809,29810,29824,29825,29829,29830,29831,29833,29839,29840,29841,29842,29848,29849,29850,29852,29855,29856,29857,29859,29862,29864,29865,29866,29867,29870,29871,29873,29874,29877,29881,29883,29887,29896,29897,29900,29904,29907,29912,29914,29915,29918,29919,29924,29928,29930,29931,29935,29940,29946,29947,29948,29951,29958,29970,29974,29975,29984,29985,29988,29991,29993,29994,29999,30006,30009,30013,30014,30015,30016,30019,30023,30024,30030,30032,30034,30039,30046,30047,30049,30063,30065,30073,30074,30075,30076,30077,30078,30081,30085,30096,30098,30099,30101,30105,30108,30114,30116,30132,30138,30143,30144,30145,30148,30150,30156,30158,30159,30167,30172,30175,30176,30177,30180,30183,30188,30190,30191,30193,30201,30208,30210,30211,30212,30215,30216,30218,30220,30223,30226,30227,30229,30230,30233,30235,30236,30237,30238,30243,30245,30246,30249,30253,30258,30259,30261,30264,30265,30266,30268,30282,30272,30273,30275,30276,30277,30281,30283,30293,30297,30303,30308,30309,30317,30318,30319,30321,30324,30337,30341,30348,30349,30357,30363,30364,30365,30367,30368,30370,30371,30372,30373,30374,30375,30376,30378,30381,30397,30401,30405,30409,30411,30412,30414,30420,30425,30432,30438,30440,30444,30448,30449,30454,30457,30460,30464,30470,30474,30478,30482,30484,30485,30487,30489,30490,30492,30498,30504,30509,30510,30511,30516,30517,30518,30521,30525,30526,30530,30533,30534,30538,30541,30542,30543,30546,30550,30551,30556,30558,30559,30560,30562,30564,30567,30570,30572,30576,30578,30579,30580,30586,30589,30592,30596,30604,30605,30612,30613,30614,30618,30623,30626,30631,30634,30638,30639,30641,30645,30654,30659,30665,30673,30674,30677,30681,30686,30687,30688,30692,30694,30698,30700,30704,30705,30708,30712,30715,30725,30726,30729,30733,30734,30737,30749,30753,30754,30755,30765,30766,30768,30773,30775,30787,30788,30791,30792,30796,30798,30802,30812,30814,30816,30817,30819,30820,30824,30826,30830,30842,30846,30858,30863,30868,30872,30881,30877,30878,30879,30884,30888,30892,30893,30896,30897,30898,30899,30907,30909,30911,30919,30920,30921,30924,30926,30930,30931,30933,30934,30948,30939,30943,30944,30945,30950,30954,30962,30963,30976,30966,30967,30970,30971,30975,30982,30988,30992,31002,31004,31006,31007,31008,31013,31015,31017,31021,31025,31028,31029,31035,31037,31039,31044,31045,31046,31050,31051,31055,31057,31060,31064,31067,31068,31079,31081,31083,31090,31097,31099,31100,31102,31115,31116,31121,31123,31124,31125,31126,31128,31131,31132,31137,31144,31145,31147,31151,31153,31156,31160,31163,31170,31172,31175,31176,31178,31183,31188,31190,31194,31197,31198,31200,31202,31205,31210,31211,31213,31217,31224,31228,31234,31235,31239,31241,31242,31244,31249,31253,31259,31262,31265,31271,31275,31277,31279,31280,31284,31285,31288,31289,31290,31300,31301,31303,31304,31308,31317,31318,31321,31324,31325,31327,31328,31333,31335,31338,31341,31349,31352,31358,31360,31362,31365,31366,31370,31371,31376,31377,31380,31390,31392,31395,31404,31411,31413,31417,31419,31420,31430,31433,31436,31438,31441,31451,31464,31465,31467,31468,31473,31476,31483,31485,31486,31495,31508,31519,31523,31527,31529,31530,31531,31533,31534,31535,31536,31537,31540,31549,31551,31552,31553,31559,31566,31573,31584,31588,31590,31593,31594,31597,31599,31602,31603,31607,31620,31625,31630,31632,31633,31638,31643,31646,31648,31653,31660,31663,31664,31666,31669,31670,31674,31675,31676,31677,31682,31685,31688,31690,31700,31702,31703,31705,31706,31707,31720,31722,31730,31732,31733,31736,31737,31738,31740,31742,31745,31746,31747,31748,31750,31753,31755,31756,31758,31759,31769,31771,31776,31781,31782,31784,31788,31793,31795,31796,31798,31801,31802,31814,31818,31829,31825,31826,31827,31833,31834,31835,31836,31837,31838,31841,31843,31847,31849,31853,31854,31856,31858,31865,31868,31869,31878,31879,31887,31892,31902,31904,31910,31920,31926,31927,31930,31931,31932,31935,31940,31943,31944,31945,31949,31951,31955,31956,31957,31959,31961,31962,31965,31974,31977,31979,31989,32003,32007,32008,32009,32015,32017,32018,32019,32022,32029,32030,32035,32038,32042,32045,32049,32060,32061,32062,32064,32065,32071,32072,32077,32081,32083,32087,32089,32090,32092,32093,32101,32103,32106,32112,32120,32122,32123,32127,32129,32130,32131,32133,32134,32136,32139,32140,32141,32145,32150,32151,32157,32158,32166,32167,32170,32179,32182,32183,32185,32194,32195,32196,32197,32198,32204,32205,32206,32215,32217,32256,32226,32229,32230,32234,32235,32237,32241,32245,32246,32249,32250,32264,32272,32273,32277,32279,32284,32285,32288,32295,32296,32300,32301,32303,32307,32310,32319,32324,32325,32327,32334,32336,32338,32344,32351,32353,32354,32357,32363,32366,32367,32371,32376,32382,32385,32390,32391,32394,32397,32401,32405,32408,32410,32413,32414,32572,32571,32573,32574,32575,32579,32580,32583,32591,32594,32595,32603,32604,32605,32609,32611,32612,32613,32614,32621,32625,32637,32638,32639,32640,32651,32653,32655,32656,32657,32662,32663,32668,32673,32674,32678,32682,32685,32692,32700,32703,32704,32707,32712,32718,32719,32731,32735,32739,32741,32744,32748,32750,32751,32754,32762,32765,32766,32767,32775,32776,32778,32781,32782,32783,32785,32787,32788,32790,32797,32798,32799,32800,32804,32806,32812,32814,32816,32820,32821,32823,32825,32826,32828,32830,32832,32836,32864,32868,32870,32877,32881,32885,32897,32904,32910,32924,32926,32934,32935,32939,32952,32953,32968,32973,32975,32978,32980,32981,32983,32984,32992,33005,33006,33008,33010,33011,33014,33017,33018,33022,33027,33035,33046,33047,33048,33052,33054,33056,33060,33063,33068,33072,33077,33082,33084,33093,33095,33098,33100,33106,33111,33120,33121,33127,33128,33129,33133,33135,33143,33153,33168,33156,33157,33158,33163,33166,33174,33176,33179,33182,33186,33198,33202,33204,33211,33227,33219,33221,33226,33230,33231,33237,33239,33243,33245,33246,33249,33252,33259,33260,33264,33265,33266,33269,33270,33272,33273,33277,33279,33280,33283,33295,33299,33300,33305,33306,33309,33313,33314,33320,33330,33332,33338,33347,33348,33349,33350,33355,33358,33359,33361,33366,33372,33376,33379,33383,33389,33396,33403,33405,33407,33408,33409,33411,33412,33415,33417,33418,33422,33425,33428,33430,33432,33434,33435,33440,33441,33443,33444,33447,33448,33449,33450,33454,33456,33458,33460,33463,33466,33468,33470,33471,33478,33488,33493,33498,33504,33506,33508,33512,33514,33517,33519,33526,33527,33533,33534,33536,33537,33543,33544,33546,33547,33620,33563,33565,33566,33567,33569,33570,33580,33581,33582,33584,33587,33591,33594,33596,33597,33602,33603,33604,33607,33613,33614,33617,33621,33622,33623,33648,33656,33661,33663,33664,33666,33668,33670,33677,33682,33684,33685,33688,33689,33691,33692,33693,33702,33703,33705,33708,33726,33727,33728,33735,33737,33743,33744,33745,33748,33757,33619,33768,33770,33782,33784,33785,33788,33793,33798,33802,33807,33809,33813,33817,33709,33839,33849,33861,33863,33864,33866,33869,33871,33873,33874,33878,33880,33881,33882,33884,33888,33892,33893,33895,33898,33904,33907,33908,33910,33912,33916,33917,33921,33925,33938,33939,33941,33950,33958,33960,33961,33962,33967,33969,33972,33978,33981,33982,33984,33986,33991,33992,33996,33999,34003,34012,34023,34026,34031,34032,34033,34034,34039,34098,34042,34043,34045,34050,34051,34055,34060,34062,34064,34076,34078,34082,34083,34084,34085,34087,34090,34091,34095,34099,34100,34102,34111,34118,34127,34128,34129,34130,34131,34134,34137,34140,34141,34142,34143,34144,34145,34146,34148,34155,34159,34169,34170,34171,34173,34175,34177,34181,34182,34185,34187,34188,34191,34195,34200,34205,34207,34208,34210,34213,34215,34228,34230,34231,34232,34236,34237,34238,34239,34242,34247,34250,34251,34254,34221,34264,34266,34271,34272,34278,34280,34285,34291,34294,34300,34303,34304,34308,34309,34317,34318,34320,34321,34322,34328,34329,34331,34334,34337,34343,34345,34358,34360,34362,34364,34365,34368,34370,34374,34386,34387,34390,34391,34392,34393,34397,34400,34401,34402,34403,34404,34409,34412,34415,34421,34422,34423,34426,34445,34449,34454,34456,34458,34460,34465,34470,34471,34472,34477,34481,34483,34484,34485,34487,34488,34489,34495,34496,34497,34499,34501,34513,34514,34517,34519,34522,34524,34528,34531,34533,34535,34440,34554,34556,34557,34564,34565,34567,34571,34574,34575,34576,34579,34580,34585,34590,34591,34593,34595,34600,34606,34607,34609,34610,34617,34618,34620,34621,34622,34624,34627,34629,34637,34648,34653,34657,34660,34661,34671,34673,34674,34683,34691,34692,34693,34694,34695,34696,34697,34699,34700,34704,34707,34709,34711,34712,34713,34718,34720,34723,34727,34732,34733,34734,34737,34741,34750,34751,34753,34760,34761,34762,34766,34773,34774,34777,34778,34780,34783,34786,34787,34788,34794,34795,34797,34801,34803,34808,34810,34815,34817,34819,34822,34825,34826,34827,34832,34841,34834,34835,34836,34840,34842,34843,34844,34846,34847,34856,34861,34862,34864,34866,34869,34874,34876,34881,34883,34885,34888,34889,34890,34891,34894,34897,34901,34902,34904,34906,34908,34911,34912,34916,34921,34929,34937,34939,34944,34968,34970,34971,34972,34975,34976,34984,34986,35002,35005,35006,35008,35018,35019,35020,35021,35022,35025,35026,35027,35035,35038,35047,35055,35056,35057,35061,35063,35073,35078,35085,35086,35087,35093,35094,35096,35097,35098,35100,35104,35110,35111,35112,35120,35121,35122,35125,35129,35130,35134,35136,35138,35141,35142,35145,35151,35154,35159,35162,35163,35164,35169,35170,35171,35179,35182,35184,35187,35189,35194,35195,35196,35197,35209,35213,35216,35220,35221,35227,35228,35231,35232,35237,35248,35252,35253,35254,35255,35260,35284,35285,35286,35287,35288,35301,35305,35307,35309,35313,35315,35318,35321,35325,35327,35332,35333,35335,35343,35345,35346,35348,35349,35358,35360,35362,35364,35366,35371,35372,35375,35381,35383,35389,35390,35392,35395,35397,35399,35401,35405,35406,35411,35414,35415,35416,35420,35421,35425,35429,35431,35445,35446,35447,35449,35450,35451,35454,35455,35456,35459,35462,35467,35471,35472,35474,35478,35479,35481,35487,35495,35497,35502,35503,35507,35510,35511,35515,35518,35523,35526,35528,35529,35530,35537,35539,35540,35541,35543,35549,35551,35564,35568,35572,35573,35574,35580,35583,35589,35590,35595,35601,35612,35614,35615,35594,35629,35632,35639,35644,35650,35651,35652,35653,35654,35656,35666,35667,35668,35673,35661,35678,35683,35693,35702,35704,35705,35708,35710,35713,35716,35717,35723,35725,35727,35732,35733,35740,35742,35743,35896,35897,35901,35902,35909,35911,35913,35915,35919,35921,35923,35924,35927,35928,35931,35933,35929,35939,35940,35942,35944,35945,35949,35955,35957,35958,35963,35966,35974,35975,35979,35984,35986,35987,35993,35995,35996,36004,36025,36026,36037,36038,36041,36043,36047,36054,36053,36057,36061,36065,36072,36076,36079,36080,36082,36085,36087,36088,36094,36095,36097,36099,36105,36114,36119,36123,36197,36201,36204,36206,36223,36226,36228,36232,36237,36240,36241,36245,36254,36255,36256,36262,36267,36268,36271,36274,36277,36279,36281,36283,36288,36293,36294,36295,36296,36298,36302,36305,36308,36309,36311,36313,36324,36325,36327,36332,36336,36284,36337,36338,36340,36349,36353,36356,36357,36358,36363,36369,36372,36374,36384,36385,36386,36387,36390,36391,36401,36403,36406,36407,36408,36409,36413,36416,36417,36427,36429,36430,36431,36436,36443,36444,36445,36446,36449,36450,36457,36460,36461,36463,36464,36465,36473,36474,36475,36482,36483,36489,36496,36498,36501,36506,36507,36509,36510,36514,36519,36521,36525,36526,36531,36533,36538,36539,36544,36545,36547,36548,36551,36559,36561,36564,36572,36584,36590,36592,36593,36599,36601,36602,36589,36608,36610,36615,36616,36623,36624,36630,36631,36632,36638,36640,36641,36643,36645,36647,36648,36652,36653,36654,36660,36661,36662,36663,36666,36672,36673,36675,36679,36687,36689,36690,36691,36692,36693,36696,36701,36702,36709,36765,36768,36769,36772,36773,36774,36789,36790,36792,36798,36800,36801,36806,36810,36811,36813,36816,36818,36819,36821,36832,36835,36836,36840,36846,36849,36853,36854,36859,36862,36866,36868,36872,36876,36888,36891,36904,36905,36911,36906,36908,36909,36915,36916,36919,36927,36931,36932,36940,36955,36957,36962,36966,36967,36972,36976,36980,36985,36997,37000,37003,37004,37006,37008,37013,37015,37016,37017,37019,37024,37025,37026,37029,37040,37042,37043,37044,37046,37053,37068,37054,37059,37060,37061,37063,37064,37077,37079,37080,37081,37084,37085,37087,37093,37074,37110,37099,37103,37104,37108,37118,37119,37120,37124,37125,37126,37128,37133,37136,37140,37142,37143,37144,37146,37148,37150,37152,37157,37154,37155,37159,37161,37166,37167,37169,37172,37174,37175,37177,37178,37180,37181,37187,37191,37192,37199,37203,37207,37209,37210,37211,37217,37220,37223,37229,37236,37241,37242,37243,37249,37251,37253,37254,37258,37262,37265,37267,37268,37269,37272,37278,37281,37286,37288,37292,37293,37294,37296,37297,37298,37299,37302,37307,37308,37309,37311,37314,37315,37317,37331,37332,37335,37337,37338,37342,37348,37349,37353,37354,37356,37357,37358,37359,37360,37361,37367,37369,37371,37373,37376,37377,37380,37381,37382,37383,37385,37386,37388,37392,37394,37395,37398,37400,37404,37405,37411,37412,37413,37414,37416,37422,37423,37424,37427,37429,37430,37432,37433,37434,37436,37438,37440,37442,37443,37446,37447,37450,37453,37454,37455,37457,37464,37465,37468,37469,37472,37473,37477,37479,37480,37481,37486,37487,37488,37493,37494,37495,37496,37497,37499,37500,37501,37503,37512,37513,37514,37517,37518,37522,37527,37529,37535,37536,37540,37541,37543,37544,37547,37551,37554,37558,37560,37562,37563,37564,37565,37567,37568,37569,37570,37571,37573,37574,37575,37576,37579,37580,37581,37582,37584,37587,37589,37591,37592,37593,37596,37597,37599,37600,37601,37603,37605,37607,37608,37612,37614,37616,37625,37627,37631,37632,37634,37640,37645,37649,37652,37653,37660,37661,37662,37663,37665,37668,37669,37671,37673,37674,37683,37684,37686,37687,37703,37704,37705,37712,37713,37714,37717,37719,37720,37722,37726,37732,37733,37735,37737,37738,37741,37743,37744,37745,37747,37748,37750,37754,37757,37759,37760,37761,37762,37768,37770,37771,37773,37775,37778,37781,37784,37787,37790,37793,37795,37796,37798,37800,37803,37812,37813,37814,37818,37801,37825,37828,37829,37830,37831,37833,37834,37835,37836,37837,37843,37849,37852,37854,37855,37858,37862,37863,37881,37879,37880,37882,37883,37885,37889,37890,37892,37896,37897,37901,37902,37903,37909,37910,37911,37919,37934,37935,37937,37938,37939,37940,37947,37951,37949,37955,37957,37960,37962,37964,37973,37977,37980,37983,37985,37987,37992,37995,37997,37998,37999,38001,38002,38020,38019,38264,38265,38270,38276,38280,38284,38285,38286,38301,38302,38303,38305,38310,38313,38315,38316,38324,38326,38330,38333,38335,38342,38344,38345,38347,38352,38353,38354,38355,38361,38362,38365,38366,38367,38368,38372,38374,38429,38430,38434,38436,38437,38438,38444,38449,38451,38455,38456,38457,38458,38460,38461,38465,38482,38484,38486,38487,38488,38497,38510,38516,38523,38524,38526,38527,38529,38530,38531,38532,38537,38545,38550,38554,38557,38559,38564,38565,38566,38569,38574,38575,38579,38586,38602,38610,23986,38616,38618,38621,38622,38623,38633,38639,38641,38650,38658,38659,38661,38665,38682,38683,38685,38689,38690,38691,38696,38705,38707,38721,38723,38730,38734,38735,38741,38743,38744,38746,38747,38755,38759,38762,38766,38771,38774,38775,38776,38779,38781,38783,38784,38793,38805,38806,38807,38809,38810,38814,38815,38818,38828,38830,38833,38834,38837,38838,38840,38841,38842,38844,38846,38847,38849,38852,38853,38855,38857,38858,38860,38861,38862,38864,38865,38868,38871,38872,38873,38877,38878,38880,38875,38881,38884,38895,38897,38900,38903,38904,38906,38919,38922,38937,38925,38926,38932,38934,38940,38942,38944,38947,38950,38955,38958,38959,38960,38962,38963,38965,38949,38974,38980,38983,38986,38993,38994,38995,38998,38999,39001,39002,39010,39011,39013,39014,39018,39020,39083,39085,39086,39088,39092,39095,39096,39098,39099,39103,39106,39109,39112,39116,39137,39139,39141,39142,39143,39146,39155,39158,39170,39175,39176,39185,39189,39190,39191,39194,39195,39196,39199,39202,39206,39207,39211,39217,39218,39219,39220,39221,39225,39226,39227,39228,39232,39233,39238,39239,39240,39245,39246,39252,39256,39257,39259,39260,39262,39263,39264,39323,39325,39327,39334,39344,39345,39346,39349,39353,39354,39357,39359,39363,39369,39379,39380,39385,39386,39388,39390,39399,39402,39403,39404,39408,39412,39413,39417,39421,39422,39426,39427,39428,39435,39436,39440,39441,39446,39454,39456,39458,39459,39460,39463,39469,39470,39475,39477,39478,39480,39495,39489,39492,39498,39499,39500,39502,39505,39508,39510,39517,39594,39596,39598,39599,39602,39604,39605,39606,39609,39611,39614,39615,39617,39619,39622,39624,39630,39632,39634,39637,39638,39639,39643,39644,39648,39652,39653,39655,39657,39660,39666,39667,39669,39673,39674,39677,39679,39680,39681,39682,39683,39684,39685,39688,39689,39691,39692,39693,39694,39696,39698,39702,39705,39707,39708,39712,39718,39723,39725,39731,39732,39733,39735,39737,39738,39741,39752,39755,39756,39765,39766,39767,39771,39774,39777,39779,39781,39782,39784,39786,39787,39788,39789,39790,39795,39797,39799,39800,39801,39807,39808,39812,39813,39814,39815,39817,39818,39819,39821,39823,39824,39828,39834,39837,39838,39846,39847,39849,39852,39856,39857,39858,39863,39864,39867,39868,39870,39871,39873,39879,39880,39886,39888,39895,39896,39901,39903,39909,39911,39914,39915,39919,39923,39927,39928,39929,39930,39933,39935,39936,39938,39947,39951,39953,39958,39960,39961,39962,39964,39966,39970,39971,39974,39975,39976,39977,39978,39985,39989,39990,39991,39997,40001,40003,40004,40005,40009,40010,40014,40015,40016,40019,40020,40022,40024,40027,40029,40030,40031,40035,40041,40042,40028,40043,40040,40046,40048,40050,40053,40055,40059,40166,40178,40183,40185,40203,40194,40209,40215,40216,40220,40221,40222,40239,40240,40242,40243,40244,40250,40252,40261,40253,40258,40259,40263,40266,40275,40276,40287,40291,40290,40293,40297,40298,40299,40304,40310,40311,40315,40316,40318,40323,40324,40326,40330,40333,40334,40338,40339,40341,40342,40343,40344,40353,40362,40364,40366,40369,40373,40377,40380,40383,40387,40391,40393,40394,40404,40405,40406,40407,40410,40414,40415,40416,40421,40423,40425,40427,40430,40432,40435,40436,40446,40458,40450,40455,40462,40464,40465,40466,40469,40470,40473,40476,40477,40570,40571,40572,40576,40578,40579,40580,40581,40583,40590,40591,40598,40600,40603,40606,40612,40616,40620,40622,40623,40624,40627,40628,40629,40646,40648,40651,40661,40671,40676,40679,40684,40685,40686,40688,40689,40690,40693,40696,40703,40706,40707,40713,40719,40720,40721,40722,40724,40726,40727,40729,40730,40731,40735,40738,40742,40746,40747,40751,40753,40754,40756,40759,40761,40762,40764,40765,40767,40769,40771,40772,40773,40774,40775,40787,40789,40790,40791,40792,40794,40797,40798,40808,40809,40813,40814,40815,40816,40817,40819,40821,40826,40829,40847,40848,40849,40850,40852,40854,40855,40862,40865,40866,40867,40869,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null],\n \"ibm866\":[1040,1041,1042,1043,1044,1045,1046,1047,1048,1049,1050,1051,1052,1053,1054,1055,1056,1057,1058,1059,1060,1061,1062,1063,1064,1065,1066,1067,1068,1069,1070,1071,1072,1073,1074,1075,1076,1077,1078,1079,1080,1081,1082,1083,1084,1085,1086,1087,9617,9618,9619,9474,9508,9569,9570,9558,9557,9571,9553,9559,9565,9564,9563,9488,9492,9524,9516,9500,9472,9532,9566,9567,9562,9556,9577,9574,9568,9552,9580,9575,9576,9572,9573,9561,9560,9554,9555,9579,9578,9496,9484,9608,9604,9612,9616,9600,1088,1089,1090,1091,1092,1093,1094,1095,1096,1097,1098,1099,1100,1101,1102,1103,1025,1105,1028,1108,1031,1111,1038,1118,176,8729,183,8730,8470,164,9632,160],\n \"iso-8859-2\":[128,129,130,131,132,133,134,135,136,137,138,139,140,141,142,143,144,145,146,147,148,149,150,151,152,153,154,155,156,157,158,159,160,260,728,321,164,317,346,167,168,352,350,356,377,173,381,379,176,261,731,322,180,318,347,711,184,353,351,357,378,733,382,380,340,193,194,258,196,313,262,199,268,201,280,203,282,205,206,270,272,323,327,211,212,336,214,215,344,366,218,368,220,221,354,223,341,225,226,259,228,314,263,231,269,233,281,235,283,237,238,271,273,324,328,243,244,337,246,247,345,367,250,369,252,253,355,729],\n \"iso-8859-3\":[128,129,130,131,132,133,134,135,136,137,138,139,140,141,142,143,144,145,146,147,148,149,150,151,152,153,154,155,156,157,158,159,160,294,728,163,164,null,292,167,168,304,350,286,308,173,null,379,176,295,178,179,180,181,293,183,184,305,351,287,309,189,null,380,192,193,194,null,196,266,264,199,200,201,202,203,204,205,206,207,null,209,210,211,212,288,214,215,284,217,218,219,220,364,348,223,224,225,226,null,228,267,265,231,232,233,234,235,236,237,238,239,null,241,242,243,244,289,246,247,285,249,250,251,252,365,349,729],\n \"iso-8859-4\":[128,129,130,131,132,133,134,135,136,137,138,139,140,141,142,143,144,145,146,147,148,149,150,151,152,153,154,155,156,157,158,159,160,260,312,342,164,296,315,167,168,352,274,290,358,173,381,175,176,261,731,343,180,297,316,711,184,353,275,291,359,330,382,331,256,193,194,195,196,197,198,302,268,201,280,203,278,205,206,298,272,325,332,310,212,213,214,215,216,370,218,219,220,360,362,223,257,225,226,227,228,229,230,303,269,233,281,235,279,237,238,299,273,326,333,311,244,245,246,247,248,371,250,251,252,361,363,729],\n \"iso-8859-5\":[128,129,130,131,132,133,134,135,136,137,138,139,140,141,142,143,144,145,146,147,148,149,150,151,152,153,154,155,156,157,158,159,160,1025,1026,1027,1028,1029,1030,1031,1032,1033,1034,1035,1036,173,1038,1039,1040,1041,1042,1043,1044,1045,1046,1047,1048,1049,1050,1051,1052,1053,1054,1055,1056,1057,1058,1059,1060,1061,1062,1063,1064,1065,1066,1067,1068,1069,1070,1071,1072,1073,1074,1075,1076,1077,1078,1079,1080,1081,1082,1083,1084,1085,1086,1087,1088,1089,1090,1091,1092,1093,1094,1095,1096,1097,1098,1099,1100,1101,1102,1103,8470,1105,1106,1107,1108,1109,1110,1111,1112,1113,1114,1115,1116,167,1118,1119],\n \"iso-8859-6\":[128,129,130,131,132,133,134,135,136,137,138,139,140,141,142,143,144,145,146,147,148,149,150,151,152,153,154,155,156,157,158,159,160,null,null,null,164,null,null,null,null,null,null,null,1548,173,null,null,null,null,null,null,null,null,null,null,null,null,null,1563,null,null,null,1567,null,1569,1570,1571,1572,1573,1574,1575,1576,1577,1578,1579,1580,1581,1582,1583,1584,1585,1586,1587,1588,1589,1590,1591,1592,1593,1594,null,null,null,null,null,1600,1601,1602,1603,1604,1605,1606,1607,1608,1609,1610,1611,1612,1613,1614,1615,1616,1617,1618,null,null,null,null,null,null,null,null,null,null,null,null,null],\n \"iso-8859-7\":[128,129,130,131,132,133,134,135,136,137,138,139,140,141,142,143,144,145,146,147,148,149,150,151,152,153,154,155,156,157,158,159,160,8216,8217,163,8364,8367,166,167,168,169,890,171,172,173,null,8213,176,177,178,179,900,901,902,183,904,905,906,187,908,189,910,911,912,913,914,915,916,917,918,919,920,921,922,923,924,925,926,927,928,929,null,931,932,933,934,935,936,937,938,939,940,941,942,943,944,945,946,947,948,949,950,951,952,953,954,955,956,957,958,959,960,961,962,963,964,965,966,967,968,969,970,971,972,973,974,null],\n \"iso-8859-8\":[128,129,130,131,132,133,134,135,136,137,138,139,140,141,142,143,144,145,146,147,148,149,150,151,152,153,154,155,156,157,158,159,160,null,162,163,164,165,166,167,168,169,215,171,172,173,174,175,176,177,178,179,180,181,182,183,184,185,247,187,188,189,190,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,8215,1488,1489,1490,1491,1492,1493,1494,1495,1496,1497,1498,1499,1500,1501,1502,1503,1504,1505,1506,1507,1508,1509,1510,1511,1512,1513,1514,null,null,8206,8207,null],\n \"iso-8859-10\":[128,129,130,131,132,133,134,135,136,137,138,139,140,141,142,143,144,145,146,147,148,149,150,151,152,153,154,155,156,157,158,159,160,260,274,290,298,296,310,167,315,272,352,358,381,173,362,330,176,261,275,291,299,297,311,183,316,273,353,359,382,8213,363,331,256,193,194,195,196,197,198,302,268,201,280,203,278,205,206,207,208,325,332,211,212,213,214,360,216,370,218,219,220,221,222,223,257,225,226,227,228,229,230,303,269,233,281,235,279,237,238,239,240,326,333,243,244,245,246,361,248,371,250,251,252,253,254,312],\n \"iso-8859-13\":[128,129,130,131,132,133,134,135,136,137,138,139,140,141,142,143,144,145,146,147,148,149,150,151,152,153,154,155,156,157,158,159,160,8221,162,163,164,8222,166,167,216,169,342,171,172,173,174,198,176,177,178,179,8220,181,182,183,248,185,343,187,188,189,190,230,260,302,256,262,196,197,280,274,268,201,377,278,290,310,298,315,352,323,325,211,332,213,214,215,370,321,346,362,220,379,381,223,261,303,257,263,228,229,281,275,269,233,378,279,291,311,299,316,353,324,326,243,333,245,246,247,371,322,347,363,252,380,382,8217],\n \"iso-8859-14\":[128,129,130,131,132,133,134,135,136,137,138,139,140,141,142,143,144,145,146,147,148,149,150,151,152,153,154,155,156,157,158,159,160,7682,7683,163,266,267,7690,167,7808,169,7810,7691,7922,173,174,376,7710,7711,288,289,7744,7745,182,7766,7809,7767,7811,7776,7923,7812,7813,7777,192,193,194,195,196,197,198,199,200,201,202,203,204,205,206,207,372,209,210,211,212,213,214,7786,216,217,218,219,220,221,374,223,224,225,226,227,228,229,230,231,232,233,234,235,236,237,238,239,373,241,242,243,244,245,246,7787,248,249,250,251,252,253,375,255],\n \"iso-8859-15\":[128,129,130,131,132,133,134,135,136,137,138,139,140,141,142,143,144,145,146,147,148,149,150,151,152,153,154,155,156,157,158,159,160,161,162,163,8364,165,352,167,353,169,170,171,172,173,174,175,176,177,178,179,381,181,182,183,382,185,186,187,338,339,376,191,192,193,194,195,196,197,198,199,200,201,202,203,204,205,206,207,208,209,210,211,212,213,214,215,216,217,218,219,220,221,222,223,224,225,226,227,228,229,230,231,232,233,234,235,236,237,238,239,240,241,242,243,244,245,246,247,248,249,250,251,252,253,254,255],\n \"iso-8859-16\":[128,129,130,131,132,133,134,135,136,137,138,139,140,141,142,143,144,145,146,147,148,149,150,151,152,153,154,155,156,157,158,159,160,260,261,321,8364,8222,352,167,353,169,536,171,377,173,378,379,176,177,268,322,381,8221,182,183,382,269,537,187,338,339,376,380,192,193,194,258,196,262,198,199,200,201,202,203,204,205,206,207,272,323,210,211,212,336,214,346,368,217,218,219,220,280,538,223,224,225,226,259,228,263,230,231,232,233,234,235,236,237,238,239,273,324,242,243,244,337,246,347,369,249,250,251,252,281,539,255],\n \"koi8-r\":[9472,9474,9484,9488,9492,9496,9500,9508,9516,9524,9532,9600,9604,9608,9612,9616,9617,9618,9619,8992,9632,8729,8730,8776,8804,8805,160,8993,176,178,183,247,9552,9553,9554,1105,9555,9556,9557,9558,9559,9560,9561,9562,9563,9564,9565,9566,9567,9568,9569,1025,9570,9571,9572,9573,9574,9575,9576,9577,9578,9579,9580,169,1102,1072,1073,1094,1076,1077,1092,1075,1093,1080,1081,1082,1083,1084,1085,1086,1087,1103,1088,1089,1090,1091,1078,1074,1100,1099,1079,1096,1101,1097,1095,1098,1070,1040,1041,1062,1044,1045,1060,1043,1061,1048,1049,1050,1051,1052,1053,1054,1055,1071,1056,1057,1058,1059,1046,1042,1068,1067,1047,1064,1069,1065,1063,1066],\n \"koi8-u\":[9472,9474,9484,9488,9492,9496,9500,9508,9516,9524,9532,9600,9604,9608,9612,9616,9617,9618,9619,8992,9632,8729,8730,8776,8804,8805,160,8993,176,178,183,247,9552,9553,9554,1105,1108,9556,1110,1111,9559,9560,9561,9562,9563,1169,1118,9566,9567,9568,9569,1025,1028,9571,1030,1031,9574,9575,9576,9577,9578,1168,1038,169,1102,1072,1073,1094,1076,1077,1092,1075,1093,1080,1081,1082,1083,1084,1085,1086,1087,1103,1088,1089,1090,1091,1078,1074,1100,1099,1079,1096,1101,1097,1095,1098,1070,1040,1041,1062,1044,1045,1060,1043,1061,1048,1049,1050,1051,1052,1053,1054,1055,1071,1056,1057,1058,1059,1046,1042,1068,1067,1047,1064,1069,1065,1063,1066],\n \"macintosh\":[196,197,199,201,209,214,220,225,224,226,228,227,229,231,233,232,234,235,237,236,238,239,241,243,242,244,246,245,250,249,251,252,8224,176,162,163,167,8226,182,223,174,169,8482,180,168,8800,198,216,8734,177,8804,8805,165,181,8706,8721,8719,960,8747,170,186,937,230,248,191,161,172,8730,402,8776,8710,171,187,8230,160,192,195,213,338,339,8211,8212,8220,8221,8216,8217,247,9674,255,376,8260,8364,8249,8250,64257,64258,8225,183,8218,8222,8240,194,202,193,203,200,205,206,207,204,211,212,63743,210,218,219,217,305,710,732,175,728,729,730,184,733,731,711],\n \"windows-874\":[8364,129,130,131,132,8230,134,135,136,137,138,139,140,141,142,143,144,8216,8217,8220,8221,8226,8211,8212,152,153,154,155,156,157,158,159,160,3585,3586,3587,3588,3589,3590,3591,3592,3593,3594,3595,3596,3597,3598,3599,3600,3601,3602,3603,3604,3605,3606,3607,3608,3609,3610,3611,3612,3613,3614,3615,3616,3617,3618,3619,3620,3621,3622,3623,3624,3625,3626,3627,3628,3629,3630,3631,3632,3633,3634,3635,3636,3637,3638,3639,3640,3641,3642,null,null,null,null,3647,3648,3649,3650,3651,3652,3653,3654,3655,3656,3657,3658,3659,3660,3661,3662,3663,3664,3665,3666,3667,3668,3669,3670,3671,3672,3673,3674,3675,null,null,null,null],\n \"windows-1250\":[8364,129,8218,131,8222,8230,8224,8225,136,8240,352,8249,346,356,381,377,144,8216,8217,8220,8221,8226,8211,8212,152,8482,353,8250,347,357,382,378,160,711,728,321,164,260,166,167,168,169,350,171,172,173,174,379,176,177,731,322,180,181,182,183,184,261,351,187,317,733,318,380,340,193,194,258,196,313,262,199,268,201,280,203,282,205,206,270,272,323,327,211,212,336,214,215,344,366,218,368,220,221,354,223,341,225,226,259,228,314,263,231,269,233,281,235,283,237,238,271,273,324,328,243,244,337,246,247,345,367,250,369,252,253,355,729],\n \"windows-1251\":[1026,1027,8218,1107,8222,8230,8224,8225,8364,8240,1033,8249,1034,1036,1035,1039,1106,8216,8217,8220,8221,8226,8211,8212,152,8482,1113,8250,1114,1116,1115,1119,160,1038,1118,1032,164,1168,166,167,1025,169,1028,171,172,173,174,1031,176,177,1030,1110,1169,181,182,183,1105,8470,1108,187,1112,1029,1109,1111,1040,1041,1042,1043,1044,1045,1046,1047,1048,1049,1050,1051,1052,1053,1054,1055,1056,1057,1058,1059,1060,1061,1062,1063,1064,1065,1066,1067,1068,1069,1070,1071,1072,1073,1074,1075,1076,1077,1078,1079,1080,1081,1082,1083,1084,1085,1086,1087,1088,1089,1090,1091,1092,1093,1094,1095,1096,1097,1098,1099,1100,1101,1102,1103],\n \"windows-1252\":[8364,129,8218,402,8222,8230,8224,8225,710,8240,352,8249,338,141,381,143,144,8216,8217,8220,8221,8226,8211,8212,732,8482,353,8250,339,157,382,376,160,161,162,163,164,165,166,167,168,169,170,171,172,173,174,175,176,177,178,179,180,181,182,183,184,185,186,187,188,189,190,191,192,193,194,195,196,197,198,199,200,201,202,203,204,205,206,207,208,209,210,211,212,213,214,215,216,217,218,219,220,221,222,223,224,225,226,227,228,229,230,231,232,233,234,235,236,237,238,239,240,241,242,243,244,245,246,247,248,249,250,251,252,253,254,255],\n \"windows-1253\":[8364,129,8218,402,8222,8230,8224,8225,136,8240,138,8249,140,141,142,143,144,8216,8217,8220,8221,8226,8211,8212,152,8482,154,8250,156,157,158,159,160,901,902,163,164,165,166,167,168,169,null,171,172,173,174,8213,176,177,178,179,900,181,182,183,904,905,906,187,908,189,910,911,912,913,914,915,916,917,918,919,920,921,922,923,924,925,926,927,928,929,null,931,932,933,934,935,936,937,938,939,940,941,942,943,944,945,946,947,948,949,950,951,952,953,954,955,956,957,958,959,960,961,962,963,964,965,966,967,968,969,970,971,972,973,974,null],\n \"windows-1254\":[8364,129,8218,402,8222,8230,8224,8225,710,8240,352,8249,338,141,142,143,144,8216,8217,8220,8221,8226,8211,8212,732,8482,353,8250,339,157,158,376,160,161,162,163,164,165,166,167,168,169,170,171,172,173,174,175,176,177,178,179,180,181,182,183,184,185,186,187,188,189,190,191,192,193,194,195,196,197,198,199,200,201,202,203,204,205,206,207,286,209,210,211,212,213,214,215,216,217,218,219,220,304,350,223,224,225,226,227,228,229,230,231,232,233,234,235,236,237,238,239,287,241,242,243,244,245,246,247,248,249,250,251,252,305,351,255],\n \"windows-1255\":[8364,129,8218,402,8222,8230,8224,8225,710,8240,138,8249,140,141,142,143,144,8216,8217,8220,8221,8226,8211,8212,732,8482,154,8250,156,157,158,159,160,161,162,163,8362,165,166,167,168,169,215,171,172,173,174,175,176,177,178,179,180,181,182,183,184,185,247,187,188,189,190,191,1456,1457,1458,1459,1460,1461,1462,1463,1464,1465,1466,1467,1468,1469,1470,1471,1472,1473,1474,1475,1520,1521,1522,1523,1524,null,null,null,null,null,null,null,1488,1489,1490,1491,1492,1493,1494,1495,1496,1497,1498,1499,1500,1501,1502,1503,1504,1505,1506,1507,1508,1509,1510,1511,1512,1513,1514,null,null,8206,8207,null],\n \"windows-1256\":[8364,1662,8218,402,8222,8230,8224,8225,710,8240,1657,8249,338,1670,1688,1672,1711,8216,8217,8220,8221,8226,8211,8212,1705,8482,1681,8250,339,8204,8205,1722,160,1548,162,163,164,165,166,167,168,169,1726,171,172,173,174,175,176,177,178,179,180,181,182,183,184,185,1563,187,188,189,190,1567,1729,1569,1570,1571,1572,1573,1574,1575,1576,1577,1578,1579,1580,1581,1582,1583,1584,1585,1586,1587,1588,1589,1590,215,1591,1592,1593,1594,1600,1601,1602,1603,224,1604,226,1605,1606,1607,1608,231,232,233,234,235,1609,1610,238,239,1611,1612,1613,1614,244,1615,1616,247,1617,249,1618,251,252,8206,8207,1746],\n \"windows-1257\":[8364,129,8218,131,8222,8230,8224,8225,136,8240,138,8249,140,168,711,184,144,8216,8217,8220,8221,8226,8211,8212,152,8482,154,8250,156,175,731,159,160,null,162,163,164,null,166,167,216,169,342,171,172,173,174,198,176,177,178,179,180,181,182,183,248,185,343,187,188,189,190,230,260,302,256,262,196,197,280,274,268,201,377,278,290,310,298,315,352,323,325,211,332,213,214,215,370,321,346,362,220,379,381,223,261,303,257,263,228,229,281,275,269,233,378,279,291,311,299,316,353,324,326,243,333,245,246,247,371,322,347,363,252,380,382,729],\n \"windows-1258\":[8364,129,8218,402,8222,8230,8224,8225,710,8240,138,8249,338,141,142,143,144,8216,8217,8220,8221,8226,8211,8212,732,8482,154,8250,339,157,158,376,160,161,162,163,164,165,166,167,168,169,170,171,172,173,174,175,176,177,178,179,180,181,182,183,184,185,186,187,188,189,190,191,192,193,194,258,196,197,198,199,200,201,202,203,768,205,206,207,272,209,777,211,212,416,214,215,216,217,218,219,220,431,771,223,224,225,226,259,228,229,230,231,232,233,234,235,769,237,238,239,273,241,803,243,244,417,246,247,248,249,250,251,252,432,8363,255],\n \"x-mac-cyrillic\":[1040,1041,1042,1043,1044,1045,1046,1047,1048,1049,1050,1051,1052,1053,1054,1055,1056,1057,1058,1059,1060,1061,1062,1063,1064,1065,1066,1067,1068,1069,1070,1071,8224,176,1168,163,167,8226,182,1030,174,169,8482,1026,1106,8800,1027,1107,8734,177,8804,8805,1110,181,1169,1032,1028,1108,1031,1111,1033,1113,1034,1114,1112,1029,172,8730,402,8776,8710,171,187,8230,160,1035,1115,1036,1116,1109,8211,8212,8220,8221,8216,8217,247,8222,1038,1118,1039,1119,8470,1025,1105,1103,1072,1073,1074,1075,1076,1077,1078,1079,1080,1081,1082,1083,1084,1085,1086,1087,1088,1089,1090,1091,1092,1093,1094,1095,1096,1097,1098,1099,1100,1101,1102,8364]\n};\n\n// For strict environments where `this` inside the global scope\n// is `undefined`, take a pure object instead\n}(this || {}));","'use strict'\n\n/**\n * Dependencies\n * @ignore\n */\nconst base64url = require('base64url')\nlet crypto = require('../crypto')\nconst TextEncoder = require('../text-encoder')\n\n/**\n * RSASSA-PKCS1-v1_5\n */\nclass RSASSA_PKCS1_v1_5 {\n\n /**\n * constructor\n *\n * @param {string} bitlength\n */\n constructor (params) {\n this.params = params\n }\n\n /**\n * sign\n *\n * @description\n * Generate a digital signature for a given input and private key.\n *\n * @param {CryptoKey} key\n * @param {BufferSource} data\n *\n * @returns {Promise}\n */\n sign (key, data) {\n let algorithm = this.params\n\n // TODO\n //if (!this.sufficientKeySize()) {\n // return Promise.reject(\n // new Error(\n // 'A key size of 2048 bits or larger must be used with RSASSA-PKCS1-v1_5'\n // )\n // )\n //}\n\n data = new TextEncoder().encode(data)\n\n return crypto.subtle\n .sign(algorithm, key, data)\n .then(signature => base64url(Buffer.from(signature)))\n }\n\n /**\n * verify\n *\n * @description\n * Verify a digital signature for a given input and private key.\n *\n * @param {CryptoKey} key\n * @param {BufferSource} signature\n * @param {BufferSource} data\n *\n * @returns {Promise}\n */\n verify (key, signature, data) {\n let algorithm = this.params\n\n if (typeof signature === 'string') {\n signature = Uint8Array.from(base64url.toBuffer(signature))\n }\n\n if (typeof data === 'string') {\n data = new TextEncoder().encode(data)\n }\n // ...\n\n return crypto.subtle.verify(algorithm, key, signature, data)\n }\n\n /**\n * importKey\n *\n * @param {JWK} key\n * @returns {Promise}\n */\n async importKey (key) {\n let jwk = Object.assign({}, key)\n let algorithm = this.params\n let usages = key['key_ops'] || []\n\n if (key.use === 'sig') {\n usages.push('verify')\n }\n\n if (key.use === 'enc') {\n // TODO: handle encryption keys\n return Promise.resolve(key)\n }\n\n if (key.key_ops) {\n usages = key.key_ops\n }\n\n return crypto.subtle\n .importKey('jwk', jwk, algorithm, true, usages)\n .then(cryptoKey => {\n Object.defineProperty(jwk, 'cryptoKey', {\n enumerable: false,\n value: cryptoKey\n })\n\n return jwk\n })\n }\n}\n\n/**\n * Export\n */\nmodule.exports = RSASSA_PKCS1_v1_5\n","/**\n * Dependencies\n */\nconst NotSupportedError = require('../errors/NotSupportedError')\n\n/**\n * Operations\n */\nconst operations = [\n 'sign',\n 'verify',\n 'encrypt',\n 'decrypt',\n 'importKey'\n]\n\n/**\n * SupportedAlgorithms\n */\nclass SupportedAlgorithms {\n\n /**\n * constructor\n */\n constructor () {\n operations.forEach(op => {\n this[op] = {}\n })\n }\n\n /**\n * Supported Operations\n */\n static get operations () {\n return operations\n }\n\n /**\n * define\n *\n * @description\n * Register Web Crypto API algorithm parameter for an algorithm\n * and operation.\n *\n * @param {string} alg\n * @param {string} op\n * @param {Object} argument\n */\n define (alg, op, argument) {\n let registeredAlgorithms = this[op]\n registeredAlgorithms[alg] = argument\n }\n\n /**\n * normalize\n *\n * @description\n * Map JWA alg name to Web Crypto API algorithm parameter\n *\n * @param {string} op\n * @param {Object} alg\n *\n * @returns {Object}\n */\n normalize (op, alg) {\n let registeredAlgorithms = this[op]\n\n if (!registeredAlgorithms) {\n return new SyntaxError() // what kind of error should this be?\n }\n\n let argument = registeredAlgorithms[alg]\n\n if (!argument) {\n return new NotSupportedError(alg)\n }\n\n return argument\n }\n}\n\n/**\n * Export\n */\nmodule.exports = SupportedAlgorithms\n","'use strict'\n\n/**\n * Dependencies\n */\nconst JWK = require('./JWK')\n\n/**\n * JWKSet\n *\n * @class\n * JWKSet represents a JSON Web Key Set as described in Section 5 of RFC 7517:\n * https://tools.ietf.org/html/rfc7517#section-5\n */\nclass JWKSet {\n constructor ({ keys } = {}) {\n this.keys = keys\n }\n\n /**\n * importKeys\n */\n static async importKeys (jwks) {\n if (!jwks.keys) {\n return Promise.reject(new Error('Cannot import JWKSet: keys property is empty'))\n }\n\n let imported, importing\n\n try {\n imported = new JWKSet(jwks)\n importing = jwks.keys.map(key => JWK.importKey(key))\n } catch (err) {\n return Promise.reject(err)\n }\n\n return Promise.all(importing)\n .then(keys => {\n imported.keys = keys\n return imported\n })\n }\n}\n\n/**\n * Export\n */\nmodule.exports = JWKSet\n","/**\n * Dependencies\n */\nconst base64url = require('base64url')\nconst JWS = require('./JWS')\nconst DataError = require('../errors/DataError')\nconst JOSEHeader = require('./JOSEHeader')\n\n/**\n * JWT\n */\nclass JWT {\n constructor (data = {}) {\n this.type = data.type\n this.segments = data.segments\n this.header = new JOSEHeader(data.header)\n this.protected = data.protected\n this.unprotected = data.unprotected\n this.iv = data.iv\n this.aad = data.aad\n this.ciphertext = data.ciphertext\n this.tag = data.tag\n this.recipients = data.recipients\n this.payload = data.payload\n this.signatures = data.signatures\n this.signature = data.signature\n this.key = data.key\n this.serialization = data.serialization || 'compact' // default\n }\n\n /**\n * decode\n *\n * @description\n * Decode a JSON Web Token\n *\n * @param {string} data\n * @returns {JWT}\n */\n static decode (data) {\n let ExtendedJWT = this\n let jwt\n\n if (typeof data !== 'string') {\n throw new DataError('JWT must be a string')\n }\n\n // JSON of Flattened JSON Serialization\n if (data.startsWith('{')) {\n try {\n data = JSON.parse(data, () => {})\n } catch (error) {\n throw new DataError('Invalid JWT serialization')\n }\n\n if (data.signatures || data.recipients) {\n data.serialization = 'json'\n } else {\n data.serialization = 'flattened'\n }\n\n jwt = new ExtendedJWT(data, { filter: false })\n\n // Compact Serialization\n } else {\n try {\n let serialization = 'compact'\n let segments = data.split('.')\n let length = segments.length\n\n if (length !== 3 && length !== 5) {\n throw new Error('Malformed JWT')\n }\n\n let header = JSON.parse(base64url.decode(segments[0]))\n\n // JSON Web Signature\n if (length === 3) {\n let type = 'JWS'\n let payload = JSON.parse(base64url.decode(segments[1]))\n let signature = segments[2]\n\n jwt = new ExtendedJWT(\n { type, segments, header, payload, signature, serialization },\n { filter: false }\n )\n }\n\n // JSON Web Encryption\n if (length === 5) {\n //let type = 'JWE'\n //let [protected, encryption_key, iv, ciphertext, tag] = segments\n\n //jwt = new ExtendedJWT({\n // type,\n // protected: base64url.decode(JSON.parse(protected)),\n // encryption_key,\n // iv,\n // ciphertext,\n // tag,\n // serialization\n //})\n }\n } catch (error) {\n throw new DataError('Invalid JWT compact serialization')\n }\n }\n\n return jwt\n }\n\n /**\n * encode\n *\n * @description\n * Encode a JSON Web Token\n *\n * @param {Object} header\n * @param {Object} payload\n * @param {CryptoKey} key\n *\n * @returns {Promise}\n */\n static encode (header, payload, key) {\n let jwt = new JWT(header, payload)\n return jwt.encode(key)\n }\n\n\n /**\n * verify\n *\n * @description\n *\n * @param {CryptoKey} key\n * @param {string} token\n *\n * @returns {Promise}\n */\n static async verify (key, token) {\n let jwt = JWT.decode(token)\n jwt.key = key\n return jwt.verify().then(verified => jwt)\n }\n\n /**\n * isJWE\n */\n isJWE () {\n return !!this.header.enc\n }\n\n /**\n * resolveKeys\n */\n resolveKeys (jwks) {\n let kid = this.header.kid\n let keys, match\n\n // treat an array as the \"keys\" property of a JWK Set\n if (Array.isArray(jwks)) {\n keys = jwks\n }\n\n // presence of keys indicates object is a JWK Set\n if (jwks.keys) {\n keys = jwks.keys\n }\n\n // wrap a plain object they is not a JWK Set in Array\n if (!jwks.keys && typeof jwks === 'object') {\n keys = [jwks]\n }\n\n // ensure there are keys to search\n if (!keys) {\n throw new DataError('Invalid JWK argument')\n }\n\n // match by \"kid\" or \"use\" header\n if (kid) {\n match = keys.find(jwk => jwk.kid === kid)\n } else {\n match = keys.find(jwk => jwk.use === 'sig')\n }\n\n // assign matching key to JWT and return a boolean\n if (match) {\n this.key = match.cryptoKey\n return true\n } else {\n return false\n }\n }\n\n /**\n * encode\n *\n * @description\n * Encode a JWT instance\n *\n * @returns {Promise}\n */\n async encode () {\n let token = this\n\n if (this.isJWE()) {\n return JWE.encrypt(token)\n } else {\n return JWS.sign(token)\n }\n }\n\n /**\n * verify\n *\n * @description\n * Verify a decoded JWT instance\n *\n * @returns {Promise}\n */\n async verify () {\n return JWS.verify(this)\n }\n}\n\n/**\n * Export\n */\nmodule.exports = JWT\n","/**\n * Dependencies\n */\nconst assert = require('assert')\nconst base64url = require('base64url')\nconst { crypto, JWT } = require('@solid/jose')\nconst FormUrlEncoded = require('./FormUrlEncoded')\nconst { URL } = require('whatwg-url')\n\n/**\n * Authentication Request\n */\nclass AuthenticationRequest {\n /**\n * create\n *\n * @description\n * Create a new authentication request with generated state and nonce,\n * validate presence of required parameters, serialize the request data and\n * persist it to the session, and return a promise for an authentication\n * request URI.\n *\n * @param {RelyingParty} rp – instance of RelyingParty\n * @param {Object} options - optional request parameters\n * @param {Object} session – reference to localStorage or other session object\n *\n * @returns {Promise}\n */\n static create (rp, options, session) {\n const {provider, defaults, registration} = rp\n\n let issuer, endpoint, client, params\n\n return Promise.resolve()\n .then(() => {\n // validate presence of OP configuration, RP client registration,\n // and default parameters\n assert(provider.configuration,\n 'RelyingParty provider OpenID Configuration is missing')\n\n assert(defaults.authenticate,\n 'RelyingParty default authentication parameters are missing')\n\n assert(registration,\n 'RelyingParty client registration is missing')\n\n // define basic elements of the request\n issuer = provider.configuration.issuer\n endpoint = provider.configuration.authorization_endpoint\n client = { client_id: registration.client_id}\n params = Object.assign(defaults.authenticate, client, options)\n\n // validate presence of required configuration and parameters\n assert(issuer,\n 'Missing issuer in provider OpenID Configuration')\n\n assert(endpoint,\n 'Missing authorization_endpoint in provider OpenID Configuration')\n\n assert(params.scope,\n 'Missing scope parameter in authentication request')\n\n assert(params.response_type,\n 'Missing response_type parameter in authentication request')\n\n assert(params.client_id,\n 'Missing client_id parameter in authentication request')\n\n assert(params.redirect_uri,\n 'Missing redirect_uri parameter in authentication request')\n\n // generate state and nonce random octets\n params.state = Array.from(crypto.getRandomValues(new Uint8Array(16)))\n params.nonce = Array.from(crypto.getRandomValues(new Uint8Array(16)))\n\n // hash the state and nonce parameter values\n return Promise.all([\n crypto.subtle.digest({ name: 'SHA-256' }, new Uint8Array(params.state)),\n crypto.subtle.digest({ name: 'SHA-256' }, new Uint8Array(params.nonce))\n ])\n })\n\n // serialize the request with original values, store in session by\n // encoded state param, and replace state/nonce octets with encoded\n // digests\n .then(digests => {\n let state = base64url(Buffer.from(digests[0]))\n let nonce = base64url(Buffer.from(digests[1]))\n let key = `${issuer}/requestHistory/${state}`\n\n // store the request params for response validation\n // with serialized octet values for state and nonce\n session[key] = JSON.stringify(params)\n\n // replace state and nonce octets with base64url encoded digests\n params.state = state\n params.nonce = nonce\n })\n\n .then(() => AuthenticationRequest.generateSessionKeys())\n\n .then(sessionKeys => {\n AuthenticationRequest.storeSessionKeys(sessionKeys, params, session)\n })\n\n // optionally encode a JWT with the request parameters\n // and replace params with `{ request: }\n .then(() => {\n if (provider.configuration.request_parameter_supported) {\n return AuthenticationRequest.encodeRequestParams(params)\n\n .then(encodedParams => { params = encodedParams })\n }\n })\n\n // render the request URI and terminate the algorithm\n .then(() => {\n let url = new URL(endpoint)\n url.search = FormUrlEncoded.encode(params)\n\n return url.href\n })\n }\n\n static generateSessionKeys () {\n return crypto.subtle.generateKey(\n {\n name: \"RSASSA-PKCS1-v1_5\",\n modulusLength: 2048,\n publicExponent: new Uint8Array([0x01, 0x00, 0x01]),\n hash: { name: \"SHA-256\" },\n },\n true,\n [\"sign\", \"verify\"]\n )\n .then((keyPair) => {\n // returns a keypair object\n return Promise.all([\n crypto.subtle.exportKey('jwk', keyPair.publicKey),\n crypto.subtle.exportKey('jwk', keyPair.privateKey)\n ])\n })\n .then(jwkPair => {\n let [ publicJwk, privateJwk ] = jwkPair\n\n return { public: publicJwk, private: privateJwk }\n })\n }\n\n static storeSessionKeys (sessionKeys, params, session) {\n // store the private one in session, public one goes into params\n session['oidc.session.privateKey'] = JSON.stringify(sessionKeys.private)\n params.key = sessionKeys.public\n }\n\n static encodeRequestParams (params) {\n const excludeParams = ['scope', 'client_id', 'response_type', 'state']\n\n const keysToEncode = Object.keys(params).filter(key => !excludeParams.includes(key))\n\n let payload = {}\n\n keysToEncode.forEach(key => {\n payload[key] = params[key]\n })\n\n let requestParamJwt = new JWT({\n header: { alg: 'none' },\n payload\n }, { filter: false })\n\n return requestParamJwt.encode()\n .then(requestParamCompact => {\n let newParams = {\n scope: params['scope'],\n client_id: params['client_id'],\n response_type: params['response_type'],\n request: requestParamCompact,\n state: params['state']\n }\n\n return newParams\n })\n }\n}\n\n/**\n * Export\n */\nmodule.exports = AuthenticationRequest\n","/**\n * Dependencies\n */\nconst { URL } = require('whatwg-url')\nconst assert = require('assert')\nconst { crypto } = require('@solid/jose')\nconst base64url = require('base64url')\nconst fetch = require('node-fetch')\nconst Headers = fetch.Headers ? fetch.Headers : global.Headers\nconst FormUrlEncoded = require('./FormUrlEncoded')\nconst IDToken = require('./IDToken')\nconst Session = require('./Session')\nconst onHttpError = require('./onHttpError')\nconst HttpError = require('standard-http-error')\n\n/**\n * AuthenticationResponse\n */\nclass AuthenticationResponse {\n /**\n * @param rp {RelyingParty}\n * @param [redirect] {string} req.query\n * @param [body] {string} req.body.text\n * @param session {Session|Storage} req.session or localStorage or similar\n * @param params {object} hashmap\n * @param mode {string} 'query'/'fragment'/'form_post',\n * determined in `parseResponse()`\n */\n constructor ({rp, redirect, body, session, mode, params = {}}) {\n this.rp = rp\n this.redirect = redirect\n this.body = body\n this.session = session\n this.mode = mode\n this.params = params\n }\n\n /**\n * validateResponse\n *\n * @description\n * Authentication response validation.\n *\n * @param {string|Object} response\n *\n * @returns {Promise}\n */\n static validateResponse (response) {\n return Promise.resolve(response)\n .then(this.parseResponse)\n .then(this.errorResponse)\n .then(this.matchRequest)\n .then(this.validateStateParam)\n .then(this.validateResponseMode)\n .then(this.validateResponseParams)\n .then(this.exchangeAuthorizationCode)\n .then(this.validateIDToken)\n .then(Session.fromAuthResponse)\n }\n\n /**\n * parseResponse\n *\n * @param {object} response\n *\n * @returns {object}\n */\n static parseResponse (response) {\n let {redirect, body} = response\n\n // response must be either a redirect uri or request body, but not both\n if ((redirect && body) || (!redirect && !body)) {\n throw new HttpError(400, 'Invalid response mode')\n }\n\n // parse redirect uri\n if (redirect) {\n let url = new URL(redirect)\n let {search, hash} = url\n\n if ((search && hash) || (!search && !hash)) {\n throw new HttpError(400, 'Invalid response mode')\n }\n\n if (search) {\n response.params = FormUrlEncoded.decode(search.substring(1))\n response.mode = 'query'\n }\n\n if (hash) {\n response.params = FormUrlEncoded.decode(hash.substring(1))\n response.mode = 'fragment'\n }\n }\n\n // parse request form body\n if (body) {\n response.params = FormUrlEncoded.decode(body)\n response.mode = 'form_post'\n }\n\n return response\n }\n\n /**\n * errorResponse\n *\n * @param {AuthenticationResponse} response\n *\n * @throws {Error} If response params include the OAuth2 'error' param,\n * throws an error based on it.\n *\n * @returns {AuthenticationResponse} Chainable\n *\n * @todo Figure out HTTP status code (typically 400, 401 or 403)\n * based on the OAuth2/OIDC `error` code, probably using an external library\n */\n static errorResponse (response) {\n const errorCode = response.params.error\n\n if (errorCode) {\n const errorParams = {}\n errorParams['error'] = errorCode\n errorParams['error_description'] = response.params['error_description']\n errorParams['error_uri'] = response.params['error_uri']\n errorParams['state'] = response.params['state']\n\n const error = new Error(`AuthenticationResponse error: ${errorCode}`)\n error.info = errorParams\n throw error\n }\n\n return response\n }\n\n /**\n * matchRequest\n *\n * @param {Object} response\n * @returns {Promise}\n */\n static matchRequest (response) {\n let {rp, params, session} = response\n let state = params.state\n let issuer = rp.provider.configuration.issuer\n\n if (!state) {\n throw new Error(\n 'Missing state parameter in authentication response')\n }\n\n let key = `${issuer}/requestHistory/${state}`\n let request = session[key]\n\n if (!request) {\n throw new Error(\n 'Mismatching state parameter in authentication response')\n }\n\n response.request = JSON.parse(request)\n return response\n }\n\n /**\n * validateStateParam\n *\n * @param {Object} response\n * @returns {Promise}\n */\n static validateStateParam (response) {\n let octets = new Uint8Array(response.request.state)\n let encoded = response.params.state\n\n return crypto.subtle.digest({ name: 'SHA-256' }, octets).then(digest => {\n if (encoded !== base64url(Buffer.from(digest))) {\n throw new Error(\n 'Mismatching state parameter in authentication response')\n }\n\n return response\n })\n }\n\n /**\n * validateResponseMode\n *\n * @param {Object} response\n * @returns {Promise}\n */\n static validateResponseMode (response) {\n if (response.request.response_type !== 'code' && response.mode === 'query') {\n throw new Error('Invalid response mode')\n }\n\n return response\n }\n\n /**\n * validateResponseParams\n *\n * @param {Object} response\n * @returns {Promise}\n */\n static validateResponseParams (response) {\n let {request, params} = response\n let expectedParams = request.response_type.split(' ')\n\n if (expectedParams.includes('code')) {\n assert(params.code,\n 'Missing authorization code in authentication response')\n // TODO assert novelty of code\n }\n\n if (expectedParams.includes('id_token')) {\n assert(params.id_token,\n 'Missing id_token in authentication response')\n }\n\n if (expectedParams.includes('token')) {\n assert(params.access_token,\n 'Missing access_token in authentication response')\n\n assert(params.token_type,\n 'Missing token_type in authentication response')\n }\n\n return response\n }\n\n /**\n * exchangeAuthorizationCode\n *\n * @param {Object} response\n * @returns {Promise} response object\n */\n static exchangeAuthorizationCode (response) {\n let {rp, params, request} = response\n let code = params.code\n\n // only exchange the authorization code when the response type is \"code\"\n if (!code || request['response_type'] !== 'code') {\n return Promise.resolve(response)\n }\n\n let {provider, registration} = rp\n let id = registration['client_id']\n let secret = registration['client_secret']\n\n // verify the client is not public\n if (!secret) {\n return Promise.reject(new Error(\n 'Client cannot exchange authorization code because ' +\n 'it is not a confidential client'))\n }\n\n // initialize token request arguments\n let endpoint = provider.configuration.token_endpoint\n let method = 'POST'\n\n // initialize headers\n let headers = new Headers({\n 'Content-Type': 'application/x-www-form-urlencoded'\n })\n\n // initialize the token request parameters\n let bodyContents = {\n 'grant_type': 'authorization_code',\n 'code': code,\n 'redirect_uri': request['redirect_uri']\n }\n\n // determine client authentication method\n let authMethod = registration['token_endpoint_auth_method']\n || 'client_secret_basic'\n\n // client secret basic authentication\n if (authMethod === 'client_secret_basic') {\n let credentials = new Buffer(`${id}:${secret}`).toString('base64')\n headers.set('Authorization', `Basic ${credentials}`)\n }\n\n // client secret post authentication\n if (authMethod === 'client_secret_post') {\n bodyContents['client_id'] = id\n bodyContents['client_secret'] = secret\n }\n\n let body = FormUrlEncoded.encode(bodyContents)\n\n // TODO\n // client_secret_jwt authentication\n // private_key_jwt\n\n // make the token request\n\n return fetch(endpoint, {method, headers, body})\n .then(onHttpError('Error exchanging authorization code'))\n .then(tokenResponse => tokenResponse.json())\n .then(tokenResponse => {\n assert(tokenResponse['access_token'],\n 'Missing access_token in token response')\n\n assert(tokenResponse['token_type'],\n 'Missing token_type in token response')\n\n assert(tokenResponse['id_token'],\n 'Missing id_token in token response')\n\n // anything else?\n\n // IS THIS THE RIGHT THING TO DO HERE?\n response.params = Object.assign(response.params, tokenResponse)\n return response\n })\n }\n\n\n /**\n * validateIDToken\n *\n * @param {Object} response\n * @returns {Promise}\n */\n static validateIDToken (response) {\n // only validate the ID Token if present in the response\n if (!response.params.id_token) {\n return Promise.resolve(response)\n }\n\n return Promise.resolve(response)\n .then(AuthenticationResponse.decryptIDToken)\n .then(AuthenticationResponse.decodeIDToken)\n .then(AuthenticationResponse.validateIssuer)\n .then(AuthenticationResponse.validateAudience)\n .then(AuthenticationResponse.resolveKeys)\n .then(AuthenticationResponse.verifySignature)\n .then(AuthenticationResponse.validateExpires)\n .then(AuthenticationResponse.verifyNonce)\n .then(AuthenticationResponse.validateAcr)\n .then(AuthenticationResponse.validateAuthTime)\n .then(AuthenticationResponse.validateAccessTokenHash)\n .then(AuthenticationResponse.validateAuthorizationCodeHash)\n }\n\n /**\n * decryptIDToken\n *\n * @param {Object} response\n * @returns {Promise}\n */\n static decryptIDToken (response) {\n // TODO\n return Promise.resolve(response)\n }\n\n /**\n * decodeIDToken\n *\n * Note: If the `id_token` is not present in params, this method does not\n * get called (short-circuited in `validateIDToken()`).\n *\n * @param response {AuthenticationResponse}\n * @param response.params {object}\n * @param [response.params.id_token] {string} IDToken encoded as a JWT\n *\n * @returns {AuthenticationResponse} Chainable\n */\n static decodeIDToken (response) {\n let jwt = response.params.id_token\n\n try {\n response.decoded = IDToken.decode(jwt)\n } catch (decodeError) {\n const error = new HttpError(400, 'Error decoding ID Token')\n error.cause = decodeError\n error.info = { id_token: jwt }\n throw error\n }\n\n return response\n }\n\n\n /**\n * validateIssuer\n *\n * @param {Object} response\n * @returns {Promise}\n */\n static validateIssuer (response) {\n let configuration = response.rp.provider.configuration\n let payload = response.decoded.payload\n\n // validate issuer of token matches this relying party's provider\n if (payload.iss !== configuration.issuer) {\n throw new Error('Mismatching issuer in ID Token')\n }\n\n return response\n }\n\n /**\n * validateAudience\n *\n * @param {Object} response\n * @returns {Promise}\n */\n static validateAudience (response) {\n let registration = response.rp.registration\n let {aud, azp} = response.decoded.payload\n\n // validate audience includes this relying party\n if (typeof aud === 'string' && aud !== registration['client_id']) {\n throw new Error('Mismatching audience in id_token')\n }\n\n // validate audience includes this relying party\n if (Array.isArray(aud) && !aud.includes(registration['client_id'])) {\n throw new Error('Mismatching audience in id_token')\n }\n\n // validate authorized party is present if required\n if (Array.isArray(aud) && !azp) {\n throw new Error('Missing azp claim in id_token')\n }\n\n // validate authorized party is this relying party\n if (azp && azp !== registration['client_id']) {\n throw new Error('Mismatching azp claim in id_token')\n }\n\n return response\n }\n\n\n /**\n * resolveKeys\n *\n * @param {Object} response\n * @returns {Promise}\n */\n static resolveKeys (response) {\n let rp = response.rp\n let provider = rp.provider\n let decoded = response.decoded\n let isFreshJwks = false\n\n return Promise.resolve(provider.jwks)\n\n .then(jwks => jwks ? jwks : (isFreshJwks = true, rp.jwks()))\n\n .then(jwks => {\n if (decoded.resolveKeys(jwks)) {\n return Promise.resolve(response)\n }\n\n if (!isFreshJwks) {\n // The OP JWK Set cached by the RP may be stale due to key rotation by the OP.\n return rp.jwks().then(jwks => {\n if (decoded.resolveKeys(jwks)) {\n return Promise.resolve(response)\n }\n throw new Error('Cannot resolve signing key for ID Token')\n })\n }\n\n throw new Error('Cannot resolve signing key for ID Token')\n })\n }\n\n /**\n * verifySignature\n *\n * @param {Object} response\n * @returns {Promise}\n */\n static verifySignature (response) {\n let alg = response.decoded.header.alg\n let registration = response.rp.registration\n let expectedAlgorithm = registration['id_token_signed_response_alg'] || 'RS256'\n\n // validate signing algorithm matches expectation\n if (alg !== expectedAlgorithm) {\n throw new Error(\n `Expected ID Token to be signed with ${expectedAlgorithm}`)\n }\n\n return response.decoded.verify().then(verified => {\n if (!verified) {\n throw new Error('Invalid ID Token signature')\n }\n\n return response\n })\n }\n\n /**\n * validateExpires\n *\n * @param {Object} response\n * @returns {Promise}\n */\n static validateExpires (response) {\n let exp = response.decoded.payload.exp\n\n // validate expiration of token\n if (exp <= Math.floor(Date.now() / 1000)) {\n throw new Error('Expired ID Token')\n }\n\n return response\n }\n\n /**\n * verifyNonce\n *\n * @param {Object} response\n * @returns {Promise}\n */\n static verifyNonce (response) {\n let octets = new Uint8Array(response.request.nonce)\n let nonce = response.decoded.payload.nonce\n\n if (!nonce) {\n throw new Error('Missing nonce in ID Token')\n }\n\n return crypto.subtle.digest({ name: 'SHA-256' }, octets).then(digest => {\n if (nonce !== base64url(Buffer.from(digest))) {\n throw new Error('Mismatching nonce in ID Token')\n }\n\n return response\n })\n }\n\n /**\n * validateAcr\n *\n * @param {Object} response\n * @returns {Object}\n */\n static validateAcr (response) {\n // TODO\n return response\n }\n\n /**\n * validateAuthTime\n *\n * @param {Object} response\n * @returns {Promise}\n */\n static validateAuthTime (response) {\n // TODO\n return response\n }\n\n /**\n * validateAccessTokenHash\n *\n * @param {Object} response\n * @returns {Promise}\n */\n static validateAccessTokenHash (response) {\n // TODO\n return response\n }\n\n /**\n * validateAuthorizationCodeHash\n *\n * @param {Object} response\n * @returns {Promise}\n */\n static validateAuthorizationCodeHash (response) {\n // TODO\n return response\n }\n}\n\n/**\n * Export\n */\nmodule.exports = AuthenticationResponse\n","/**\n * Local dependencies\n */\nconst {JWT} = require('@solid/jose')\n\nconst REQUIRED_CLAIMS = ['iss', 'sub', 'aud', 'exp', 'iat']\n\nclass TokenClaimsSet {\n /**\n * Claims inherited from JWT:\n * @param iss {string} Issuer URL\n * @param sub {string} Subject identifier\n * @param aud {string|Array} Audience\n * @param exp {number} Expiration (seconds since epoch, RFC3339)\n * @param iat {number} Expiration (seconds since epoch, RFC3339)\n * @param [nbf] {number} Not Before (seconds since epoch, RFC3339)\n * @param [jti] {string} JWT Identifier\n *\n * Claims specific to ID Token:\n * @param [auth_time] {number} Time when user authn occurred (RFC3339)\n * @param [nonce] {string}\n * @param [acr] {string} Authentication Context Class Reference\n * @param [amr] {string} Authentication Methods References\n * @param [azp] {string} Authorized party\n */\n constructor ({ iss, sub, aud, exp, iat, nbf, jti, auth_time, nonce, acr, amr } = {}) {\n this.iss = iss\n this.sub = sub\n this.aud = aud\n this.exp = exp\n this.iat = iat\n this.nbf = nbf\n this.jti = jti\n this.auth_time = auth_time\n this.nonce = nonce\n this.acr = acr\n this.amr = amr\n }\n\n validate () {\n let valid = true\n let error\n try {\n for (const claim of REQUIRED_CLAIMS) {\n if (!this[claim]) {\n valid = false\n throw new Error(`Required claim ${claim} is missing.`)\n }\n }\n } catch (validationError) {\n error = validationError\n }\n return { valid, error }\n }\n}\n\n/**\n * IDToken\n */\nclass IDToken extends JWT {\n constructor (data = {}) {\n super(data)\n this.payload = new TokenClaimsSet(data.payload)\n }\n\n validate () {\n const payloadResult = this.payload.validate()\n if (!payloadResult.valid) {\n return payloadResult\n }\n\n let valid = true\n let error\n\n return { valid, error }\n }\n}\n\n/**\n * Export\n */\nmodule.exports = IDToken\nmodule.exports.TokenClaimsSet = TokenClaimsSet\n","'use strict'\n\nconst fetch = require('node-fetch')\nconst onHttpError = require('./onHttpError')\nconst PoPToken = require('./PoPToken')\n\nclass Session {\n /**\n * @param options {Object}\n *\n * @param options.credentialType {string} 'access_token' or 'pop_token'\n *\n * @param options.issuer {string} Identity provider (issuer of ID/Access Token)\n *\n * @param options.authorization {object}\n * @param options.authorization.client_id {string} OIDC/OAuth2 client id\n * @param [options.authorization.id_token] {string} Compact-serialized id_token param\n * @param [options.authorization.access_token] {string} Compact-serialized access_token param\n * @param [options.authorization.refresh_token] {string} Compact-serialized refresh_token\n *\n * @param [options.sessionKey] {string} Serialized client session key generated\n * during the Authentication Request, used to issue PoPTokens\n *\n * @param [options.idClaims] {object} Decoded/verified ID Token JWT payload\n *\n * @param [options.accessClaims] {object} Decoded/verified Access Token JWT payload\n */\n constructor (options) {\n this.credentialType = options.credentialType || 'access_token'\n\n this.issuer = options.issuer\n\n this.authorization = options.authorization || {}\n\n this.sessionKey = options.sessionKey\n\n this.idClaims = options.idClaims\n this.accessClaims = options.accessClaims\n }\n\n static from (options) {\n return new Session(options)\n }\n\n /**\n * @param response {AuthenticationResponse}\n *\n * @returns {Session} RelyingParty Session object\n */\n static fromAuthResponse (response) {\n const RelyingParty = require('./RelyingParty') // import here due to circular dep\n\n let idClaims = response.decoded && response.decoded.payload || {}\n\n let { rp } = response\n\n let registration = rp.registration\n let rpAuthOptions = rp.defaults.authenticate || {}\n\n let credentialType = rpAuthOptions['credential_type'] ||\n rp.defaults.popToken ? 'pop_token' : 'access_token'\n\n let sessionKey = response.session[RelyingParty.SESSION_PRIVATE_KEY]\n\n let options = {\n credentialType,\n sessionKey,\n issuer: idClaims.iss,\n idClaims,\n authorization: {\n client_id: registration['client_id'],\n access_token: response.params['access_token'],\n id_token: response.params['id_token'],\n refresh_token: response.params['refresh_token']\n }\n }\n\n return Session.from(options)\n }\n\n /**\n * Authenticated fetch() getter\n *\n * @returns {function}\n */\n get fetch () {\n /**\n * fetch() function signature\n *\n * @param url {RequestInfo|string}\n * @param options {object}\n *\n * @returns {Function>}\n */\n return (url, options) => {\n return Promise.resolve()\n\n .then(() => {\n if (this.hasCredentials()) {\n return this.fetchWithCredentials(url, options)\n } else {\n return fetch(url, options)\n }\n })\n\n .then(onHttpError('Error while fetching resource'))\n }\n }\n\n /**\n * bearerTokenFor\n *\n * @param url {string}\n *\n * @returns {Promise}\n */\n bearerTokenFor (url) {\n switch (this.credentialType) {\n case 'pop_token':\n return PoPToken.issueFor(url, this)\n\n default: // 'access_token' etc\n return Promise.resolve(this.authorization[this.credentialType])\n }\n }\n\n /**\n * hasCredentials\n *\n * @returns {boolean}\n */\n hasCredentials () {\n switch (this.credentialType) {\n case 'pop_token':\n return !!this.authorization['id_token']\n\n default: // 'access_token' etc\n return !!this.authorization[this.credentialType]\n }\n }\n\n /**\n * fetchWithCredentials\n *\n * @param url {RequestInfo|string}\n * @param options {object}\n *\n * @returns {Promise}\n */\n fetchWithCredentials (url, options = {}) {\n options.headers = options.headers || {}\n\n return this.bearerTokenFor(url)\n\n .then(token => {\n options.headers.authorization = `Bearer ${token}`\n\n return fetch(url, options)\n })\n }\n}\n\nmodule.exports = Session\n","exports = module.exports = HttpError\nvar StandardError = require(\"standard-error\")\nvar STATUS_CODE_TO_NAME = require(\"./codes\")\nvar STATUS_NAME_TO_CODE = exports\n\nfunction HttpError(code, msg, props) {\n if (typeof code == \"string\") code = STATUS_NAME_TO_CODE[code]\n if (typeof code != \"number\") throw new TypeError(\"Non-numeric HTTP code\")\n if (typeof msg == \"object\" && msg != null) { props = msg; msg = null }\n StandardError.call(this, msg || STATUS_CODE_TO_NAME[code], props)\n this.code = code\n}\n\nHttpError.prototype = Object.create(StandardError.prototype, {\n constructor: {value: HttpError, configurable: true, writable: true}\n})\n\n// Set name explicitly for when the code gets minified.\nHttpError.prototype.name = \"HttpError\"\n\nObject.defineProperties(HttpError.prototype, {\n statusCode: alias(\"code\"),\n statusMessage: alias(\"message\"),\n\n status: {\n configurable: true,\n get: function() { return this.code },\n set: function(value) {\n Object.defineProperty(this, \"status\", {\n value: value, configurable: true, enumerable: true, writable: true\n })\n }\n }\n})\n\nHttpError.prototype.toString = function() {\n return this.name + \": \" + this.code + \" \" + this.message\n}\n\nfor (var code in STATUS_CODE_TO_NAME) {\n var name = STATUS_CODE_TO_NAME[code]\n exports[name.replace(\"'\", \"\").replace(/[- ]/g, \"_\").toUpperCase()] = +code\n}\n\nfunction alias(name) {\n return {\n configurable: true,\n get: function() { return this[name] },\n set: function(value) { return this[name] = value }\n }\n}\n","var has = Object.hasOwnProperty\nvar proto = Object.getPrototypeOf\nvar trace = Error.captureStackTrace\nmodule.exports = StandardError\n\nfunction StandardError(msg, props) {\n // Let all properties be enumerable for easier serialization.\n if (msg && typeof msg == \"object\") props = msg, msg = undefined\n else this.message = msg\n\n // Name has to be an own property (or on the prototype a single step up) for\n // the stack to be printed with the correct name.\n if (props) for (var key in props) this[key] = props[key]\n if (!has.call(this, \"name\"))\n this.name = has.call(proto(this), \"name\")? this.name : this.constructor.name\n\n if (trace && !(\"stack\" in this)) trace(this, this.constructor)\n}\n\nStandardError.prototype = Object.create(Error.prototype, {\n constructor: {value: StandardError, configurable: true, writable: true}\n})\n\n// Set name explicitly for when the code gets minified.\nStandardError.prototype.name = \"StandardError\"\n","// @flow\n/* eslint-env browser */\n\nfunction getLocation() {\n return typeof window !== 'undefined'\n ? window.location\n : { href: 'https://example.org/', pathname: '/', origin: 'example.org' }\n}\n\nexport const currentUrl = (): string => getLocation().href\n\nexport const currentUrlNoParams = (): string =>\n getLocation().origin + getLocation().pathname\n\nexport const navigateTo = (url: string) => {\n getLocation().href = url\n}\n\nexport const originOf = (url: string): string => new URL(url).origin\n\nexport const toUrlString = (url: any): string => {\n if (typeof url !== 'string') {\n url = 'url' in url ? url.url : url.toString()\n }\n return new URL(url, currentUrl()).toString()\n}\n","// @flow\n\n/*\n This module describes a simple IPC interface for communicating between browser windows.\n window.postMessage() is the transport interface, and a request/response interface\n is defined on top of it as follows:\n\n const request = {\n 'solid-auth-client': {\n id: 1234,\n method: 'doSomethingPlease',\n args: [ 'one', 'two', 'three' ]\n }\n }\n\n const response = {\n 'solid-auth-client': {\n id: 1234,\n ret: 'the_value'\n }\n }\n*/\n\ntype handler = (string, ...args: any[]) => ?Promise\n\nconst NAMESPACE = 'solid-auth-client'\n\n/**\n * Receives and handles remote procedure calls.\n */\nexport class Server {\n _clientWindow: window\n _clientOrigin: string\n _handler: handler\n _messageListener: (MessageEvent) => Promise\n\n constructor(clientWindow: window, clientOrigin: string, handle: handler) {\n this._clientWindow = clientWindow\n this._clientOrigin = clientOrigin\n this._handler = handle\n this._messageListener = (event) => this._handleMessage(event)\n }\n\n async _handleMessage({ data, origin }: MessageEvent) {\n // Ensure we can post to the origin\n if (origin !== this._clientOrigin) {\n console.warn(\n `solid-auth-client is listening to ${this._clientOrigin} ` +\n `so ignored a message received from ${origin}.`\n )\n return\n }\n\n // Parse the request and send it to the handler\n const req = data && (data: any)[NAMESPACE]\n if (req && req.method) {\n const { id, method, args } = (req: any)\n const ret = await this._handler(method, ...args)\n this._clientWindow.postMessage(\n { [NAMESPACE]: { id, ret } },\n this._clientOrigin\n )\n }\n }\n\n start() {\n window.addEventListener('message', this._messageListener)\n }\n\n stop() {\n window.removeEventListener('message', this._messageListener)\n }\n}\n\n/**\n * Makes remote procedure calls.\n */\nexport class Client {\n _serverWindow: window\n _serverOrigin: string\n\n constructor(serverWindow: window, serverOrigin: string) {\n this._serverWindow = serverWindow\n this._serverOrigin = serverOrigin\n }\n\n request(method: string, ...args: any[]): Promise {\n // Send the request as a message to the server window\n const id = Math.random()\n this._serverWindow.postMessage(\n { [NAMESPACE]: { id, method, args } },\n this._serverOrigin\n )\n\n // Create a promise that resolves to the request's return value\n return new Promise((resolve, reject) => {\n // Listen for responses to the request\n window.addEventListener('message', responseListener)\n\n // Cancel if the response takes too long\n const timeout = setTimeout(() => {\n reject(new Error('Could not connect to main window.'))\n window.removeEventListener('message', responseListener)\n }, 2000)\n\n // Processes a possible response to the request\n function responseListener({ data }) {\n const resp = data && data[NAMESPACE]\n // eslint-disable-next-line no-prototype-builtins\n if (resp && resp.id === id && resp.hasOwnProperty('ret')) {\n resolve(resp.ret)\n clearTimeout(timeout)\n window.removeEventListener('message', responseListener)\n }\n }\n })\n }\n}\n","// @flow\nimport { Client } from './ipc'\n\nexport const NAMESPACE = 'solid-auth-client'\n\nexport interface AsyncStorage {\n getItem(key: string): Promise;\n setItem(key: string, val: string): Promise;\n removeItem(key: string): Promise;\n}\n\nexport type Storage = Storage | AsyncStorage\n\nexport const defaultStorage = () => {\n const hasLocalStorage =\n typeof window !== 'undefined' && 'localStorage' in window\n return asyncStorage(hasLocalStorage ? window.localStorage : memStorage())\n}\n\n/**\n * Gets the deserialized stored data\n */\nexport async function getData(store: Storage): Promise {\n let serialized\n let data\n try {\n serialized = await store.getItem(NAMESPACE)\n data = JSON.parse(serialized || '{}')\n } catch (e) {\n console.warn('Could not deserialize data:', serialized)\n console.error(e)\n data = {}\n }\n return data\n}\n\n/**\n * Updates a Storage object without mutating its intermediate representation.\n */\nexport async function updateStorage(\n store: Storage,\n update: (Object) => Object\n): Promise {\n const currentData = await getData(store)\n const newData = update(currentData)\n await store.setItem(NAMESPACE, JSON.stringify(newData))\n return newData\n}\n\n/**\n * Takes a synchronous storage interface and wraps it with an async interface.\n */\nexport function asyncStorage(storage: Storage): AsyncStorage {\n return {\n getItem: (key: string): Promise => {\n return Promise.resolve(storage.getItem(key))\n },\n\n setItem: (key: string, val: string): Promise => {\n return Promise.resolve(storage.setItem(key, val))\n },\n\n removeItem: (key: string): Promise => {\n return Promise.resolve(storage.removeItem(key))\n },\n }\n}\n\nexport const memStorage = (): Storage => {\n const store = {}\n return {\n getItem: (key: string): ?string => {\n if (typeof store[key] === 'undefined') return null\n return store[key]\n },\n setItem: (key: string, val: string): void => {\n store[key] = val\n },\n removeItem: (key: string): void => {\n delete store[key]\n },\n }\n}\n\nexport function ipcStorage(client: Client): AsyncStorage {\n return {\n getItem: (key: string): Promise =>\n client.request('storage/getItem', key),\n\n setItem: (key: string, val: string): Promise =>\n client.request('storage/setItem', key, val),\n\n removeItem: (key: string): Promise =>\n client.request('storage/removeItem', key),\n }\n}\n","// @flow\n\nimport type { AsyncStorage } from './storage'\nimport { getData, updateStorage } from './storage'\n\nexport type webIdOidcSession = {\n idp: string,\n webId: string,\n accessToken: string,\n idToken: string,\n clientId: string,\n sessionKey: string,\n}\n\nexport type Session = webIdOidcSession\n\nexport async function getSession(storage: AsyncStorage): Promise {\n const data = await getData(storage)\n return data.session || null\n}\n\nexport function saveSession(\n storage: AsyncStorage\n): (session: Session) => Promise {\n return async (session) => {\n const data = await updateStorage(storage, (data) => ({ ...data, session }))\n return data.session\n }\n}\n\nexport async function clearSession(storage: AsyncStorage): Promise {\n await updateStorage(storage, (data) => ({ ...data, session: null }))\n}\n","// @flow\n/* global Response */\nimport * as authorization from 'auth-header'\n\nimport RelyingParty from '@solid/oidc-rp'\nimport PoPToken from '@solid/oidc-rp/src/PoPToken'\n\nimport type { loginOptions } from './solid-auth-client'\nimport { currentUrl, navigateTo, toUrlString } from './url-util'\nimport type { webIdOidcSession } from './session'\nimport type { AsyncStorage } from './storage'\nimport { defaultStorage, getData, updateStorage } from './storage'\n\nexport async function login(\n idp: string,\n options: loginOptions\n): Promise {\n try {\n const rp = await getRegisteredRp(idp, options)\n await saveAppHashFragment(options.storage)\n return sendAuthRequest(rp, options)\n } catch (err) {\n console.warn('Error logging in with WebID-OIDC')\n console.error(err)\n return null\n }\n}\n\nexport async function currentSession(\n storage: AsyncStorage = defaultStorage()\n): Promise {\n try {\n // Obtain the Relying Party\n const rp = await getStoredRp(storage)\n if (!rp) {\n return null\n }\n\n // Obtain and clear the OIDC URL fragment\n const url = currentUrl()\n if (!/#(.*&)?access_token=/.test(url)) {\n return null\n }\n window.location.hash = ''\n await restoreAppHashFragment(storage)\n\n // Obtain a session from the Relying Party\n const storeData = await getData(storage)\n const session = await rp.validateResponse(url, storeData)\n if (!session) {\n return null\n }\n return {\n ...session,\n webId: session.idClaims.sub,\n idp: session.issuer,\n }\n } catch (err) {\n console.warn('Error finding a WebID-OIDC session')\n console.error(err)\n return null\n }\n}\n\nexport async function logout(\n storage: AsyncStorage,\n fetch: Function\n): Promise {\n const rp = await getStoredRp(storage)\n if (rp) {\n try {\n // First log out from the IDP\n await rp.logout()\n // Then, log out from the RP\n try {\n await fetch('/.well-known/solid/logout', { credentials: 'include' })\n } catch (e) {\n // Ignore errors for when we are not on a Solid pod\n // But tell users it is harmless because they will see the GET failure in the console\n console.info(\n \"Couldn't find /.well-known/solid/logout, this is harmless.\"\n )\n }\n } catch (err) {\n console.warn('Error logging out of the WebID-OIDC session')\n console.error(err)\n }\n }\n}\n\nexport async function getRegisteredRp(\n idp: string,\n options: loginOptions\n): Promise {\n // To reuse a possible previous RP,\n // it be for the same IDP and redirect URI\n let rp = await getStoredRp(options.storage)\n if (\n !rp ||\n rp.provider.url !== idp ||\n !rp.registration.redirect_uris.includes(options.callbackUri)\n ) {\n // Register a new RP\n rp = await registerRp(idp, options)\n await storeRp(options.storage, idp, rp)\n }\n return rp\n}\n\nasync function getStoredRp(storage: AsyncStorage): Promise {\n const data = await getData(storage)\n const { rpConfig } = data\n if (rpConfig) {\n rpConfig.store = storage\n return RelyingParty.from(rpConfig)\n } else {\n return null\n }\n}\n\nasync function storeRp(\n storage: AsyncStorage,\n idp: string,\n rp: RelyingParty\n): Promise {\n await updateStorage(storage, (data) => ({\n ...data,\n rpConfig: rp,\n }))\n return rp\n}\n\nfunction registerRp(idp: string, opts: loginOptions): Promise {\n const { storage, callbackUri } = opts\n const responseType = 'id_token token'\n\n const clientNameI18n = {}\n Object.entries(opts)\n .filter(([key, _]) => key.startsWith('clientName#'))\n .forEach(\n ([key, value]) =>\n (clientNameI18n[key.replace('clientName#', 'client_name#')] = value)\n )\n\n const supplementaryOptions = {\n logo_uri: opts.logoUri,\n contacts: opts.contacts,\n client_name: opts.clientName,\n }\n\n const registration = {\n issuer: idp,\n grant_types: ['implicit'],\n redirect_uris: [callbackUri],\n response_types: [responseType],\n scope: 'openid profile',\n ...clientNameI18n,\n ...supplementaryOptions,\n }\n\n // Note that overrides @solid/oidc-rp/RelyingParty defaults (i.e. not merged)\n const options = {\n defaults: {\n authenticate: {\n redirect_uri: callbackUri,\n response_type: responseType,\n display: 'page',\n scope: ['openid'],\n },\n },\n store: storage,\n }\n\n return RelyingParty.register(idp, registration, options)\n}\n\nasync function sendAuthRequest(\n rp: RelyingParty,\n { callbackUri, storage }: loginOptions\n): Promise {\n const data = await getData(storage)\n const url = await rp.createRequest({ redirect_uri: callbackUri }, data)\n await updateStorage(storage, () => data)\n return navigateTo(url)\n}\n\nasync function saveAppHashFragment(store: AsyncStorage): Promise {\n await updateStorage(store, (data) => ({\n ...data,\n appHashFragment: window.location.hash,\n }))\n}\n\nasync function restoreAppHashFragment(store: AsyncStorage): Promise {\n await updateStorage(store, ({ appHashFragment = '', ...data }) => {\n window.location.hash = appHashFragment\n return data\n })\n}\n\n/**\n * Answers whether a HTTP response requires WebID-OIDC authentication.\n */\nexport function requiresAuth(resp: Response): boolean {\n if (resp.status !== 401) {\n return false\n }\n const wwwAuthHeader = resp.headers.get('www-authenticate')\n if (!wwwAuthHeader) {\n return false\n }\n const auth = authorization.parse(wwwAuthHeader)\n return (\n auth.scheme === 'Bearer' &&\n auth.params &&\n auth.params.scope === 'openid webid'\n )\n}\n\n/**\n * Fetches a resource, providing the WebID-OIDC ID Token as authentication.\n * Assumes that the resource has requested those tokens in a previous response.\n */\nexport async function fetchWithCredentials(\n session: webIdOidcSession,\n fetch: Function,\n input: any,\n options?: RequestOptions\n): Promise {\n // Add Authorization header (assuming a modifiable headers object)\n const headers: any = (options ? options.headers : input.headers) || {}\n const popToken = await PoPToken.issueFor(toUrlString(input), session)\n headers.authorization = `Bearer ${popToken}`\n return fetch(input, { ...options, credentials: 'include', headers })\n}\n","// @flow\n/* globalRequest, Response, URL */\nimport { getSession } from './session'\nimport type { AsyncStorage } from './storage'\nimport { getData, updateStorage } from './storage'\nimport * as WebIdOidc from './webid-oidc'\n\nexport type host = {\n url: string,\n requiresAuth: boolean,\n}\n\nexport function getHost(storage: AsyncStorage): (string) => Promise {\n return async (url) => {\n const { host } = new URL(url)\n const session = await getSession(storage)\n if (session && host === new URL(session.idp).host) {\n return { url: host, requiresAuth: true }\n }\n const { hosts } = await getData(storage)\n return hosts && hosts[host]\n }\n}\n\nexport function saveHost(storage: AsyncStorage): (host) => Promise {\n return async ({ url, requiresAuth }) => {\n await updateStorage(storage, (data) => ({\n ...data,\n hosts: {\n ...data.hosts,\n [url]: { requiresAuth },\n },\n }))\n }\n}\n\nexport function updateHostFromResponse(\n storage: AsyncStorage\n): (Response) => Promise {\n return async (resp) => {\n if (WebIdOidc.requiresAuth(resp)) {\n const { host } = new URL(resp.url)\n await saveHost(storage)({ url: host, requiresAuth: true })\n }\n }\n}\n","// @flow\nimport 'isomorphic-fetch'\n\nimport { toUrlString } from './url-util'\nimport { getHost, updateHostFromResponse } from './host'\nimport { getSession } from './session'\nimport type { AsyncStorage } from './storage'\nimport { fetchWithCredentials } from './webid-oidc'\n\nexport async function authnFetch(\n storage: AsyncStorage,\n fetch: Function,\n input: RequestInfo,\n options?: RequestOptions\n): Promise {\n // Copy headers into a modifiable object\n if (options) {\n const headers = copyHeaders((options: any).headers)\n options = { ...options, headers }\n }\n\n // If not authenticated, perform a regular fetch\n const session = await getSession(storage)\n if (!session) {\n return fetch(input, options)\n }\n\n // If we know the server expects credentials, send them\n if (await shouldShareCredentials(storage, input)) {\n return fetchWithCredentials(session, fetch, input, options)\n }\n\n // If we don't know for sure, try a regular fetch first\n let resp = await fetch(input, options)\n\n // If the server then requests credentials, send them\n if (resp.status === 401) {\n await updateHostFromResponse(storage)(resp)\n if (await shouldShareCredentials(storage, input)) {\n resp = fetchWithCredentials(session, fetch, input, options)\n }\n }\n return resp\n}\n\nasync function shouldShareCredentials(\n storage: AsyncStorage,\n input: RequestInfo\n): Promise {\n const requestHost = await getHost(storage)(toUrlString(input))\n return requestHost != null && requestHost.requiresAuth\n}\n\nfunction copyHeaders(origHeaders: any) {\n const headers = {}\n if (origHeaders) {\n if (typeof origHeaders.forEach === 'function') {\n origHeaders.forEach((value, key) => {\n headers[key] = value\n })\n } else {\n for (const key in origHeaders) {\n headers[key] = origHeaders[key]\n }\n }\n }\n return headers\n}\n","// @flow\nimport type { loginOptions } from './solid-auth-client'\nimport { Server } from './ipc'\nimport type { Session } from './session'\nimport type { AsyncStorage } from './storage'\nimport { originOf } from './url-util'\n\nexport function openIdpPopup(popupUri: string): window {\n const width = 650\n const height = 400\n const left = window.screenX + (window.innerWidth - width) / 2\n const top = window.screenY + (window.innerHeight - height) / 2\n const settings = `width=${width},height=${height},left=${left},top=${top}`\n return window.open(popupUri, 'solid-auth-client', settings)\n}\n\nexport function obtainSession(\n store: AsyncStorage,\n popup: window,\n options: loginOptions\n): Promise {\n return new Promise((resolve, reject) => {\n const popupServer = new Server(\n popup,\n originOf(options.popupUri || ''),\n popupHandler(store, options, (session: Session) => {\n popupServer.stop()\n resolve(session)\n })\n )\n popupServer.start()\n })\n}\n\nexport function popupHandler(\n store: AsyncStorage,\n { popupUri, callbackUri }: loginOptions,\n foundSessionCb: (Session) => void\n) {\n return async (method: string, ...args: any[]) => {\n switch (method) {\n // Origin\n case 'getAppOrigin':\n return window.location.origin\n\n // Storage\n case 'storage/getItem':\n return store.getItem(...args)\n case 'storage/setItem':\n return store.setItem(...args)\n case 'storage/removeItem':\n return store.removeItem(...args)\n\n // Login\n case 'getLoginOptions':\n return { popupUri, callbackUri }\n case 'foundSession':\n foundSessionCb(...args)\n }\n }\n}\n","// @flow\n/* global fetch */\nimport EventEmitter from 'events'\nimport { authnFetch } from './authn-fetch'\nimport { openIdpPopup, obtainSession } from './popup'\nimport type { Session } from './session'\nimport { getSession, saveSession, clearSession } from './session'\nimport type { AsyncStorage } from './storage'\nimport { defaultStorage } from './storage'\nimport { toUrlString, currentUrlNoParams } from './url-util'\nimport * as WebIdOidc from './webid-oidc'\n\n// Store the global fetch, so the user is free to override it\nconst globalFetch = fetch\n\nexport type loginOptions = {\n callbackUri: string,\n clientName?: string,\n contacts?: Array,\n logoUri?: string,\n popupUri: string,\n storage: AsyncStorage,\n}\n\nexport default class SolidAuthClient extends EventEmitter {\n _pendingSession: ?Promise\n\n fetch(input: RequestInfo, options?: RequestOptions): Promise {\n this.emit('request', toUrlString(input))\n return authnFetch(defaultStorage(), globalFetch, input, options)\n }\n\n login(idp: string, options: loginOptions): Promise {\n options = { ...defaultLoginOptions(currentUrlNoParams()), ...options }\n return WebIdOidc.login(idp, options)\n }\n\n async popupLogin(options: loginOptions): Promise {\n options = { ...defaultLoginOptions(), ...options }\n if (!/https?:/.test(options.popupUri)) {\n options.popupUri = new URL(\n options.popupUri || '/.well-known/solid/login',\n window.location\n ).toString()\n }\n if (!options.callbackUri) {\n options.callbackUri = options.popupUri\n }\n const popup = openIdpPopup(options.popupUri)\n const session = await obtainSession(options.storage, popup, options)\n this.emit('login', session)\n this.emit('session', session)\n return session\n }\n\n async currentSession(\n storage: AsyncStorage = defaultStorage()\n ): Promise {\n // Try to obtain a stored or pending session\n let session = this._pendingSession || (await getSession(storage))\n\n // If none found, attempt to create a new session\n if (!session) {\n // Try to create a new OIDC session from stored tokens\n try {\n this._pendingSession = WebIdOidc.currentSession(storage)\n session = await this._pendingSession\n } catch (err) {\n console.error(err)\n }\n\n // Save the new session and emit session events\n if (session) {\n await saveSession(storage)(session)\n this.emit('login', session)\n this.emit('session', session)\n }\n delete this._pendingSession\n }\n return session\n }\n\n async trackSession(callback: Function): Promise {\n /* eslint-disable standard/no-callback-literal */\n callback(await this.currentSession())\n this.on('session', callback)\n }\n\n stopTrackSession(callback: Function): void {\n this.removeListener('session', callback)\n }\n\n async logout(storage: AsyncStorage = defaultStorage()): Promise {\n const session = await getSession(storage)\n if (session) {\n try {\n await WebIdOidc.logout(storage, globalFetch)\n this.emit('logout')\n this.emit('session', null)\n } catch (err) {\n console.warn('Error logging out:')\n console.error(err)\n }\n await clearSession(storage)\n }\n }\n}\n\nfunction defaultLoginOptions(url: ?string): loginOptions {\n return {\n callbackUri: url ? url.split('#')[0] : '',\n popupUri: '',\n storage: defaultStorage(),\n }\n}\n","import SolidAuthClient from './solid-auth-client'\n\n// Export a singleton instance of SolidAuthClient\nconst auth = new SolidAuthClient()\nexport default auth\n\n// Bind methods to instance, so they can be invoked as regular functions\n// (e.g., to pass around the fetch function)\nObject.getOwnPropertyNames(SolidAuthClient.prototype).forEach((property) => {\n const value = auth[property]\n if (typeof value === 'function') {\n auth[property] = value.bind(auth)\n }\n})\n\n// Expose window.SolidAuthClient for backward compatibility\nif (typeof window !== 'undefined') {\n if ('SolidAuthClient' in window) {\n console.warn('Caution: multiple versions of solid-auth-client active.')\n } else {\n let warned = false\n Object.defineProperty(window, 'SolidAuthClient', {\n enumerable: true,\n get: () => {\n if (!warned) {\n warned = true\n console.warn('window.SolidAuthClient has been deprecated.')\n console.warn('Please use window.solid.auth instead.')\n }\n return auth\n },\n })\n }\n}\n"],"sourceRoot":""} \ No newline at end of file diff --git a/build/solid-query-ldflex.bundle.js b/build/solid-query-ldflex.bundle.js index 5655284..76048b9 100644 --- a/build/solid-query-ldflex.bundle.js +++ b/build/solid-query-ldflex.bundle.js @@ -1,19 +1,19 @@ -var solid="object"==typeof solid?solid:{};solid.data=function(e){var t={};function r(n){if(t[n])return t[n].exports;var i=t[n]={i:n,l:!1,exports:{}};return e[n].call(i.exports,i,i.exports,r),i.l=!0,i.exports}return r.m=e,r.c=t,r.d=function(e,t,n){r.o(e,t)||Object.defineProperty(e,t,{enumerable:!0,get:n})},r.r=function(e){"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(e,"__esModule",{value:!0})},r.t=function(e,t){if(1&t&&(e=r(e)),8&t)return e;if(4&t&&"object"==typeof e&&e&&e.__esModule)return e;var n=Object.create(null);if(r.r(n),Object.defineProperty(n,"default",{enumerable:!0,value:e}),2&t&&"string"!=typeof e)for(var i in e)r.d(n,i,function(t){return e[t]}.bind(null,i));return n},r.n=function(e){var t=e&&e.__esModule?function(){return e.default}:function(){return e};return r.d(t,"a",t),t},r.o=function(e,t){return Object.prototype.hasOwnProperty.call(e,t)},r.p="",r(r.s=500)}([function(e,t,r){"use strict";(function(e){function n(e){for(var r in e)t.hasOwnProperty(r)||(t[r]=e[r])}Object.defineProperty(t,"__esModule",{value:!0}),e&&e.env.COMUNICA_DEBUG||(Error.stackTraceLimit=!1),n(r(89)),n(r(222)),n(r(223)),n(r(224)),n(r(90)),n(r(225))}).call(this,r(12))},function(e,t,r){var n=r(215);e.exports=n},function(e,t,r){(t=e.exports=r(92)).Stream=t,t.Readable=t,t.Writable=r(96),t.Duplex=r(34),t.Transform=r(97),t.PassThrough=r(239),t.finished=r(63),t.pipeline=r(240)},function(e,t,r){"use strict";function n(e){for(var r in e)t.hasOwnProperty(r)||(t[r]=e[r])}Object.defineProperty(t,"__esModule",{value:!0}),n(r(149)),n(r(151)),n(r(331)),n(r(150))},function(e,t,r){(function(t){var n=r(45).EventEmitter,i=a.STATES=["INIT","OPEN","CLOSING","CLOSED","ENDED","DESTROYED"];function a(){if(!(this instanceof a))return new a;n.call(this),this.on("newListener",c),this._state=1,this._readable=!1}function o(e,t){e.emit(t)}function s(e,t){e._end(t)}function u(e){t(s,e)}function c(e){"data"===e&&(this.removeListener("newListener",c),this._addSingleListener("readable",l),this.readable&&t(h,l,this))}function l(){for(var e;this._hasListeners("data")&&null!==(e=this.read());)this.emit("data",e);this._hasListeners("data")||this.done||(this.removeListener("readable",l),this._addSingleListener("newListener",c))}function h(e,t){e.call(t)}function p(e,t,r){e.getProperty(r,(function(e){t.setProperty(r,e)}))}function d(){if(!(this instanceof d))return new d;a.call(this),this._changeState(4,!0)}function f(e){if(!(this instanceof f))return new f(e);a.call(this),this._item=e,null===e?this.close():this.readable=!0}function y(e){return this instanceof y?(a.call(this),e&&e.length>0?(this._buffer=Array.prototype.slice.call(e),void(this.readable=!0)):this.close()):new y(e)}function m(e){if(!(this instanceof m))return new m(e);a.call(this);var t,r=(e=e||{}).step,n=e.end,i=e.start;this._step=r=isFinite(r)?~~r:1,t=r>=0?1/0:-1/0,this._last=n=isFinite(n)?~~n:n===-t?n:t,this._next=i="number"!=typeof i?0:isFinite(i)?~~i:i,!isFinite(i)||(r>=0?i>n:i=0&&t.splice(r,1)},!e.ended){function n(){for(var e=0;ethis._state&&this._state<4;return n&&(this._state=e,4===e&&(r?t(o,this,"end"):this.emit("end"))),n},a.prototype.read=function(){return null},a.prototype.each=function(e,t){this.on("data",t?e.bind(t):e)},a.prototype._hasListeners=function(e){return this._events&&e in this._events},a.prototype._addSingleListener=function(e,t){var r=this._events&&this._events[e];r&&!(D(r)?r!==t:r.indexOf(t)<0)||this.on(e,t)},a.prototype.close=function(){this._changeState(3)&&u(this)},a.prototype.destroy=function(e){if(!this.done){var t=this;this._destroy(e,(function(r){(e=e||r)&&t.emit("error",e),s(t,!0)}))}},a.prototype._destroy=function(e,t){t()},a.prototype._end=function(e){this._changeState(e?5:4)&&(this._readable=!1,this.removeAllListeners("readable"),this.removeAllListeners("data"),this.removeAllListeners("end"))},Object.defineProperty(a.prototype,"readable",{get:function(){return this._readable},set:function(e){e=!!e&&!this.done,this._readable!==e&&(this._readable=e,e&&t(o,this,"readable"))},enumerable:!0}),Object.defineProperty(a.prototype,"closed",{get:function(){return this._state>=2},enumerable:!0}),Object.defineProperty(a.prototype,"ended",{get:function(){return 4===this._state},enumerable:!0}),Object.defineProperty(a.prototype,"destroyed",{get:function(){return 5===this._state},enumerable:!0}),Object.defineProperty(a.prototype,"done",{get:function(){return this._state>=4},enumerable:!0}),a.prototype.getProperty=function(e,r){var n,i=this._properties;if(!r)return i&&i[e];i&&e in i?t(r,i[e]):((n=this._propertyCallbacks)||(this._propertyCallbacks=n=Object.create(null)),e in n?n[e].push(r):n[e]=[r])},a.prototype.setProperty=function(e,r){(this._properties||(this._properties=Object.create(null)))[e]=r;var n,i=this._propertyCallbacks;if(n=i&&i[e]){for(e in delete i[e],1===n.length?t(n[0],r):t((function(){for(var e=0;e=0?n>r:n0&&(this._pushedCount=0,this._reading=!0,this._read(e,(function(){if(!e)throw new Error("done callback called multiple times");e=0,t._reading=!1,t.closed?t._completeClose():t._pushedCount&&(t.readable=!0,t._buffer.length0&&null!==(r=i.read());)this._push(r),s&&(n.item=null);else o&&o.ended&&this.close();t()},P.prototype._createTransformer=f,P.prototype._closeWhenDone=function(){this._transformerQueue.length||this.close()},w.subclass(N),Object.defineProperty(N.prototype,"source",{set:function(e){var t=e&&e._destination;this._validateSource(e,!t||t instanceof j),this._source=e,t||(t=e._destination=new j(e)),t.endsAt(0)?this.close():(t.register(this),null!==t.readAt(0)&&(this.readable=!0));var r=this._propertyCallbacks;for(var n in r)for(var i=r[n],a=0;a=0&&(e._idleTimeoutId=setTimeout((function(){e._onTimeout&&e._onTimeout()}),t))},r(221),t.setImmediate="undefined"!=typeof self&&self.setImmediate||void 0!==e&&e.setImmediate||this&&this.setImmediate,t.clearImmediate="undefined"!=typeof self&&self.clearImmediate||void 0!==e&&e.clearImmediate||this&&this.clearImmediate}).call(this,r(11))},function(e,t,r){"use strict";(function(e){ +var solid="object"==typeof solid?solid:{};solid.data=function(e){var t={};function r(n){if(t[n])return t[n].exports;var i=t[n]={i:n,l:!1,exports:{}};return e[n].call(i.exports,i,i.exports,r),i.l=!0,i.exports}return r.m=e,r.c=t,r.d=function(e,t,n){r.o(e,t)||Object.defineProperty(e,t,{enumerable:!0,get:n})},r.r=function(e){"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(e,"__esModule",{value:!0})},r.t=function(e,t){if(1&t&&(e=r(e)),8&t)return e;if(4&t&&"object"==typeof e&&e&&e.__esModule)return e;var n=Object.create(null);if(r.r(n),Object.defineProperty(n,"default",{enumerable:!0,value:e}),2&t&&"string"!=typeof e)for(var i in e)r.d(n,i,function(t){return e[t]}.bind(null,i));return n},r.n=function(e){var t=e&&e.__esModule?function(){return e.default}:function(){return e};return r.d(t,"a",t),t},r.o=function(e,t){return Object.prototype.hasOwnProperty.call(e,t)},r.p="",r(r.s=507)}([function(e,t,r){"use strict";(function(e){var n=this&&this.__createBinding||(Object.create?function(e,t,r,n){void 0===n&&(n=r),Object.defineProperty(e,n,{enumerable:!0,get:function(){return t[r]}})}:function(e,t,r,n){void 0===n&&(n=r),e[n]=t[r]}),i=this&&this.__exportStar||function(e,t){for(var r in e)"default"===r||Object.prototype.hasOwnProperty.call(t,r)||n(t,e,r)};Object.defineProperty(t,"__esModule",{value:!0}),e&&e.env.COMUNICA_DEBUG||(Error.stackTraceLimit=!1),i(r(85),t),i(r(230),t),i(r(231),t),i(r(232),t),i(r(86),t),i(r(233),t)}).call(this,r(12))},function(e,t,r){"use strict";var n=this&&this.__createBinding||(Object.create?function(e,t,r,n){void 0===n&&(n=r),Object.defineProperty(e,n,{enumerable:!0,get:function(){return t[r]}})}:function(e,t,r,n){void 0===n&&(n=r),e[n]=t[r]}),i=this&&this.__exportStar||function(e,t){for(var r in e)"default"===r||Object.prototype.hasOwnProperty.call(t,r)||n(t,e,r)};Object.defineProperty(t,"__esModule",{value:!0}),i(r(122),t),i(r(126),t),i(r(293),t),i(r(123),t)},function(e,t,r){(t=e.exports=r(89)).Stream=t,t.Readable=t,t.Writable=r(93),t.Duplex=r(34),t.Transform=r(94),t.PassThrough=r(244),t.finished=r(60),t.pipeline=r(245)},function(e,t,r){"use strict";r.r(t),r.d(t,"scheduleTask",(function(){return s})),r.d(t,"getTaskScheduler",(function(){return o})),r.d(t,"setTaskScheduler",(function(){return c})),r.d(t,"INIT",(function(){return u})),r.d(t,"OPEN",(function(){return l})),r.d(t,"CLOSING",(function(){return d})),r.d(t,"CLOSED",(function(){return p})),r.d(t,"ENDED",(function(){return h})),r.d(t,"DESTROYED",(function(){return f})),r.d(t,"AsyncIterator",(function(){return m})),r.d(t,"EmptyIterator",(function(){return _})),r.d(t,"SingletonIterator",(function(){return v})),r.d(t,"ArrayIterator",(function(){return w})),r.d(t,"IntegerIterator",(function(){return S})),r.d(t,"BufferedIterator",(function(){return E})),r.d(t,"TransformIterator",(function(){return T})),r.d(t,"SimpleTransformIterator",(function(){return R})),r.d(t,"MultiTransformIterator",(function(){return I})),r.d(t,"UnionIterator",(function(){return P})),r.d(t,"ClonedIterator",(function(){return C})),r.d(t,"wrap",(function(){return D})),r.d(t,"empty",(function(){return k})),r.d(t,"single",(function(){return L})),r.d(t,"fromArray",(function(){return M})),r.d(t,"union",(function(){return F})),r.d(t,"range",(function(){return q}));var n=r(43);const i=Promise.resolve(void 0);let a=function(){const e="function"==typeof queueMicrotask?queueMicrotask:e=>i.then(e);if("undefined"==typeof window)return e;let t=0;return r=>{++t<100?e(r):setTimeout(r,t=0)}}();function s(e){a(e)}function o(){return a}function c(e){a=e}const u=1,l=2,d=4,p=8,h=16,f=32;class m extends n.EventEmitter{constructor(e=l){super(),this._readable=!1,this._state=e,this.on("newListener",g)}_changeState(e,t=!1){const r=e>this._state&&this._statethis.emit("end")):this.emit("end"))),r}read(){return null}forEach(e,t){this.on("data",t?e.bind(t):e)}close(){this._changeState(p)&&this._endAsync()}destroy(e){this.done||this._destroy(e,t=>{(e=e||t)&&this.emit("error",e),this._end(!0)})}_destroy(e,t){t()}_end(e=!1){this._changeState(e?f:h)&&(this._readable=!1,this.removeAllListeners("readable"),this.removeAllListeners("data"),this.removeAllListeners("end"))}_endAsync(){a(()=>this._end())}get readable(){return this._readable}set readable(e){e=Boolean(e)&&!this.done,this._readable!==e&&(this._readable=e,e&&a(()=>this.emit("readable")))}get closed(){return this._state>=d}get ended(){return this._state===h}get destroyed(){return this._state===f}get done(){return this._state>=h}toString(){const e=this._toStringDetails();return`[${this.constructor.name}${e?" "+e:""}]`}_toStringDetails(){return""}getProperty(e,t){const r=this._properties;if(!t)return r&&r[e];if(r&&e in r)a(()=>t(r[e]));else{let r;(r=this._propertyCallbacks)||(this._propertyCallbacks=r=Object.create(null)),e in r?r[e].push(t):r[e]=[t]}}setProperty(e,t){(this._properties||(this._properties=Object.create(null)))[e]=t;const r=this._propertyCallbacks||{},n=r[e];if(n){for(e in delete r[e],a(()=>{for(const e of n)e(t)}),r)return;delete this._propertyCallbacks}}getProperties(){const e=this._properties,t={};for(const r in e)t[r]=e[r];return t}setProperties(e){for(const t in e)this.setProperty(t,e[t])}copyProperties(e,t){for(const r of t)e.getProperty(r,e=>this.setProperty(r,e))}transform(e){return new R(this,e)}map(e,t){return this.transform({map:t?e.bind(t):e})}filter(e,t){return this.transform({filter:t?e.bind(t):e})}prepend(e){return this.transform({prepend:e})}append(e){return this.transform({append:e})}surround(e,t){return this.transform({prepend:e,append:t})}skip(e){return this.transform({offset:e})}take(e){return this.transform({limit:e})}range(e,t){return this.transform({offset:e,limit:Math.max(t-e+1,0)})}clone(){return new C(this)}}function g(e){"data"===e&&(this.removeListener("newListener",g),b(this,"readable",y),this.readable&&a(()=>y.call(this)))}function y(){let e;for(;0!==this.listenerCount("data")&&null!==(e=this.read());)this.emit("data",e);0!==this.listenerCount("data")||this.done||(this.removeListener("readable",y),b(this,"newListener",g))}function b(e,t,r){e.listeners(t).includes(r)||e.on(t,r)}class _ extends m{constructor(){super(),this._changeState(h,!0)}}class v extends m{constructor(e){super(),this._item=e,null===e?this.close():this.readable=!0}read(){const e=this._item;return this._item=null,this.close(),e}_toStringDetails(){return null===this._item?"":`(${this._item})`}}class w extends m{constructor(e,{autoStart:t=!0}={}){super();const r=e?[...e]:[];!1!==t&&0===r.length?this.close():(this.readable=!0,this._buffer=r)}read(){let e=null;const t=this._buffer;return t&&(0!==t.length&&(e=t.shift()),0===t.length&&(delete this._buffer,this.close())),e}_toStringDetails(){return`(${this._buffer&&this._buffer.length||0})`}_destroy(e,t){delete this._buffer,t()}}class S extends m{constructor({start:e=0,step:t=1,end:r}={}){super(),Number.isFinite(e)&&(e=Math.trunc(e)),this._next=e,Number.isFinite(t)&&(t=Math.trunc(t)),this._step=t;const n=t>=0,i=n?1/0:-1/0;Number.isFinite(r)?r=Math.trunc(r):r!==-i&&(r=i),this._last=r,!Number.isFinite(e)||(n?e>r:e=0?n>r:nthis._init(t))}get maxBufferSize(){return this._maxBufferSize}set maxBufferSize(e){e!==1/0&&(e=Number.isFinite(e)?Math.max(Math.trunc(e),1):4),this._maxBufferSize!==e&&(this._maxBufferSize=e,this._state===l&&this._fillBuffer())}_init(e){let t=!1;this._reading=!0,this._begin(()=>{if(t)throw new Error("done callback called multiple times");t=!0,this._reading=!1,this._changeState(l),e?this._fillBufferAsync():this.readable=!0})}_begin(e){e()}read(){if(this.done)return null;const e=this._buffer;let t;return 0!==e.length?t=e.shift():(t=null,this.readable=!1),!this._reading&&e.length0&&(this._pushedCount=0,this._reading=!0,this._read(e,()=>{if(!e)throw new Error("done callback called multiple times");e=0,this._reading=!1,this.closed?this._completeClose():this._pushedCount&&(this.readable=!0,this._buffer.length{this._reading=!1,this._fillBuffer()}))}close(){this._reading?this._changeState(d):this._completeClose()}_completeClose(){this._changeState(p)&&(this._reading=!0,this._flush(()=>{if(!this._reading)throw new Error("done callback called multiple times");this._reading=!1,this._buffer.length||this._endAsync()}))}_destroy(e,t){this._buffer=[],t()}_flush(e){e()}_toStringDetails(){const e=this._buffer,{length:t}=e;return`{${t?`next: ${e[0]}, `:""}buffer: ${t}}`}}class T extends E{constructor(e,t=e||{}){super(t),this._boundPush=e=>this._push(e),Q(e)||(e=t.source),this._sourceStarted=!1!==t.autoStart,U(e)?this.source=e:e&&(this._createSource=V(e)?()=>e:e,this._sourceStarted&&this._loadSourceAsync()),this._optional=Boolean(t.optional),this._destroySource=!1!==t.destroySource}get source(){return B(this._createSource)&&this._loadSourceAsync(),this._source}set source(e){const t=this._source=this._validateSource(e);t._destination=this,t.done?this.close():(t.on("end",x),t.on("readable",A),t.on("error",O))}_loadSourceAsync(){B(this._createSource)&&(Promise.resolve(this._createSource()).then(e=>{delete this._createSource,this.source=e,this._fillBuffer()},e=>this.emit("error",e)),this._createSource=null)}_validateSource(e,t=!1){if(this._source||void 0!==this._createSource)throw new Error("The source cannot be changed after it has been set");if(!e||!B(e.read)||!B(e.on))throw new Error("Invalid source: "+e);if(!t&&e._destination)throw new Error("The source already has a destination");return e}read(){return this._sourceStarted||(this._sourceStarted=!0),super.read()}_read(e,t){const r=()=>{this._pushedCountthis._readAndTransform(r,t)):t()};this._readAndTransform(r,t)}_readAndTransform(e,t){let r;const n=this.source;!n||n.done||null===(r=n.read())?t():this._optional?this._optionalTransform(r,e):this._transform(r,e,this._boundPush)}_optionalTransform(e,t){const r=this._pushedCount;this._transform(e,()=>{r===this._pushedCount&&this._push(e),t()},this._boundPush)}_transform(e,t,r){r(e),t()}_closeWhenDone(){this.close()}_end(e){const t=this._source;t&&(t.removeListener("end",x),t.removeListener("error",O),t.removeListener("readable",A),delete t._destination,this._destroySource&&t.destroy()),super._end(e)}}function O(e){this._destination.emit("error",e)}function x(){this._destination._closeWhenDone()}function A(){!1!==this._destination._sourceStarted&&this._destination._fillBuffer()}class R extends T{constructor(e,t){if(super(e,t),this._offset=0,this._limit=1/0,this._filter=e=>!0,t=t||(Q(e)?null:e)){const e=B(t)?t:t.transform,{limit:r,offset:n,filter:i,map:a,prepend:s,append:o}=t;n===1/0||r===-1/0?this._limit=0:(Number.isFinite(n)&&(this._offset=Math.max(Math.trunc(n),0)),Number.isFinite(r)&&(this._limit=Math.max(Math.trunc(r),0)),B(i)&&(this._filter=i),B(a)&&(this._map=a),this._transform=B(e)?e:null),s&&(this._prepender=U(s)?s:M(s)),o&&(this._appender=U(o)?o:M(o))}}_read(e,t){const r=()=>this._readAndTransformSimple(e,n,t);function n(){a(r)}this._readAndTransformSimple(e,n,t)}_readAndTransformSimple(e,t,r){let n;const{source:i}=this;if(i&&!i.done){for(0===this._limit&&this.close();!this.closed&&this._pushedCountthis._push(e);!e||e.done?t():(e.on("data",r),e.on("end",(function n(){e.removeListener("data",r),e.removeListener("end",n),t()})))}}class I extends T{constructor(e,t){if(super(e,t),this._transformerQueue=[],t){const e=B(t)?t:t.multiTransform;e&&(this._createTransformer=e)}}_read(e,t){const r=this._transformerQueue,n=this._optional;let i,a;for(;(i=r[0])&&i.transformer.done;){n&&null!==i.item&&(e--,this._push(i.item)),r.shift();const{transformer:t}=i;t.removeListener("end",A),t.removeListener("readable",A),t.removeListener("error",O)}const{source:s}=this;for(;s&&!s.done&&r.length0&&null!==(a=t.read());)this._push(a),n&&(i.item=null)}else s&&s.done&&this.close();t()}_createTransformer(e){return new v(e)}_closeWhenDone(){this._transformerQueue.length||this.close()}}class P extends E{constructor(e,t={}){super(t),this._sources=[],this._currentSource=-1;const r=!1!==t.autoStart;if(U(e))e.on("error",e=>this.emit("error",e)),this._pending={sources:e},r&&this._loadSources();else if(Array.isArray(e)&&e.length>0)for(const t of e)this._addSource(t);else r&&this.close()}_loadSources(){const e=this._pending.sources;delete this._pending.sources,e.done?(delete this._pending,this.close()):(e.on("data",e=>{this._addSource(e),this._fillBufferAsync()}),e.on("end",()=>{delete this._pending,this._fillBuffer()}))}_addSource(e){e.done||(this._sources.push(e),e._destination=this,e.on("error",O),e.on("readable",A),e.on("end",N))}_removeEmptySources(){this._sources=this._sources.filter((e,t)=>(e.done&&t<=this._currentSource&&this._currentSource--,!e.done)),this._fillBuffer()}_read(e,t){var r;(null===(r=this._pending)||void 0===r?void 0:r.sources)&&this._loadSources();let n,i=0;for(;i!==(i=e);)for(let t=0;t0;t++){this._currentSource=(this._currentSource+1)%this._sources.length;null!==(n=this._sources[this._currentSource].read())&&(e--,this._push(n))}this._pending||0!==this._sources.length||this.close(),t()}}function N(){this._destination._removeEmptySources()}class C extends T{constructor(e){super(e,{autoStart:!1}),this._readPosition=0,this._reading=!1}_init(){}close(){m.prototype.close.call(this)}get source(){return super.source}set source(e){const t=this._source=this._validateSource(e),r=t&&t._destination||(t._destination=new j(t));r.endsAt(0)?this.close():(r.register(this),null!==r.readAt(0)&&(this.readable=!0));const n=this._propertyCallbacks;for(const e in n){const t=n[e];for(const r of t)this._getSourceProperty(e,r)}}_validateSource(e,t=!1){const r=e&&e._destination;return super._validateSource(e,!r||r instanceof j)}getProperty(e,t){const{source:r}=this,n=this._properties,i=n&&e in n;if(!t)return i?n&&n[e]:r&&r.getProperty(e);super.getProperty(e,t),r&&!i&&this._getSourceProperty(e,t)}_getSourceProperty(e,t){this.source.getProperty(e,r=>{this._properties&&e in this._properties||t(r)})}getProperties(){const e=this.source?this.source.getProperties():{},t=this._properties;for(const r in t)e[r]=t[r];return e}_toStringDetails(){return`{source: ${this.source?this.source.toString():"none"}}`}read(){const e=this.source;let t=null;if(!this.done&&e){const r=e._destination;null!==(t=r.readAt(this._readPosition))?this._readPosition++:this.readable=!1,r.endsAt(this._readPosition)&&this.close()}return t}_end(e){const t=this.source,r=null==t?void 0:t._destination;r&&r.unregister(this),E.prototype._end.call(this,e)}}class j{constructor(e){if(this._clones=null,this._history=[],this._source=e,!e.done){const t=()=>{for(const e of this._clones)e.readable=!0},r=e=>{for(const t of this._clones)t.emit("error",e)},n=()=>{for(const e of this._clones)e._readPosition===this._history.length&&e.close();this._clones=null,e.removeListener("end",n),e.removeListener("error",r),e.removeListener("readable",t)};this._clones=[],e.on("end",n),e.on("error",r),e.on("readable",t)}}register(e){null!==this._clones&&this._clones.push(e)}unregister(e){null!==this._clones&&(this._clones=this._clones.filter(t=>t!==e))}readAt(e){let t=null;return e * @license MIT */ -var n=r(230),i=r(231),a=r(232);function o(){return u.TYPED_ARRAY_SUPPORT?2147483647:1073741823}function s(e,t){if(o()=o())throw new RangeError("Attempt to allocate Buffer larger than maximum size: 0x"+o().toString(16)+" bytes");return 0|e}function f(e,t){if(u.isBuffer(e))return e.length;if("undefined"!=typeof ArrayBuffer&&"function"==typeof ArrayBuffer.isView&&(ArrayBuffer.isView(e)||e instanceof ArrayBuffer))return e.byteLength;"string"!=typeof e&&(e=""+e);var r=e.length;if(0===r)return 0;for(var n=!1;;)switch(t){case"ascii":case"latin1":case"binary":return r;case"utf8":case"utf-8":case void 0:return B(e).length;case"ucs2":case"ucs-2":case"utf16le":case"utf-16le":return 2*r;case"hex":return r>>>1;case"base64":return U(e).length;default:if(n)return B(e).length;t=(""+t).toLowerCase(),n=!0}}function y(e,t,r){var n=!1;if((void 0===t||t<0)&&(t=0),t>this.length)return"";if((void 0===r||r>this.length)&&(r=this.length),r<=0)return"";if((r>>>=0)<=(t>>>=0))return"";for(e||(e="utf8");;)switch(e){case"hex":return I(this,t,r);case"utf8":case"utf-8":return O(this,t,r);case"ascii":return R(this,t,r);case"latin1":case"binary":return A(this,t,r);case"base64":return x(this,t,r);case"ucs2":case"ucs-2":case"utf16le":case"utf-16le":return P(this,t,r);default:if(n)throw new TypeError("Unknown encoding: "+e);e=(e+"").toLowerCase(),n=!0}}function m(e,t,r){var n=e[t];e[t]=e[r],e[r]=n}function g(e,t,r,n,i){if(0===e.length)return-1;if("string"==typeof r?(n=r,r=0):r>2147483647?r=2147483647:r<-2147483648&&(r=-2147483648),r=+r,isNaN(r)&&(r=i?0:e.length-1),r<0&&(r=e.length+r),r>=e.length){if(i)return-1;r=e.length-1}else if(r<0){if(!i)return-1;r=0}if("string"==typeof t&&(t=u.from(t,n)),u.isBuffer(t))return 0===t.length?-1:_(e,t,r,n,i);if("number"==typeof t)return t&=255,u.TYPED_ARRAY_SUPPORT&&"function"==typeof Uint8Array.prototype.indexOf?i?Uint8Array.prototype.indexOf.call(e,t,r):Uint8Array.prototype.lastIndexOf.call(e,t,r):_(e,[t],r,n,i);throw new TypeError("val must be string, number or Buffer")}function _(e,t,r,n,i){var a,o=1,s=e.length,u=t.length;if(void 0!==n&&("ucs2"===(n=String(n).toLowerCase())||"ucs-2"===n||"utf16le"===n||"utf-16le"===n)){if(e.length<2||t.length<2)return-1;o=2,s/=2,u/=2,r/=2}function c(e,t){return 1===o?e[t]:e.readUInt16BE(t*o)}if(i){var l=-1;for(a=r;as&&(r=s-u),a=r;a>=0;a--){for(var h=!0,p=0;pi&&(n=i):n=i;var a=t.length;if(a%2!=0)throw new TypeError("Invalid hex string");n>a/2&&(n=a/2);for(var o=0;o>8,i=r%256,a.push(i),a.push(n);return a}(t,e.length-r),e,r,n)}function x(e,t,r){return 0===t&&r===e.length?n.fromByteArray(e):n.fromByteArray(e.slice(t,r))}function O(e,t,r){r=Math.min(e.length,r);for(var n=[],i=t;i239?4:c>223?3:c>191?2:1;if(i+h<=r)switch(h){case 1:c<128&&(l=c);break;case 2:128==(192&(a=e[i+1]))&&(u=(31&c)<<6|63&a)>127&&(l=u);break;case 3:a=e[i+1],o=e[i+2],128==(192&a)&&128==(192&o)&&(u=(15&c)<<12|(63&a)<<6|63&o)>2047&&(u<55296||u>57343)&&(l=u);break;case 4:a=e[i+1],o=e[i+2],s=e[i+3],128==(192&a)&&128==(192&o)&&128==(192&s)&&(u=(15&c)<<18|(63&a)<<12|(63&o)<<6|63&s)>65535&&u<1114112&&(l=u)}null===l?(l=65533,h=1):l>65535&&(l-=65536,n.push(l>>>10&1023|55296),l=56320|1023&l),n.push(l),i+=h}return function(e){var t=e.length;if(t<=4096)return String.fromCharCode.apply(String,e);var r="",n=0;for(;n0&&(e=this.toString("hex",0,r).match(/.{2}/g).join(" "),this.length>r&&(e+=" ... ")),""},u.prototype.compare=function(e,t,r,n,i){if(!u.isBuffer(e))throw new TypeError("Argument must be a Buffer");if(void 0===t&&(t=0),void 0===r&&(r=e?e.length:0),void 0===n&&(n=0),void 0===i&&(i=this.length),t<0||r>e.length||n<0||i>this.length)throw new RangeError("out of range index");if(n>=i&&t>=r)return 0;if(n>=i)return-1;if(t>=r)return 1;if(this===e)return 0;for(var a=(i>>>=0)-(n>>>=0),o=(r>>>=0)-(t>>>=0),s=Math.min(a,o),c=this.slice(n,i),l=e.slice(t,r),h=0;hi)&&(r=i),e.length>0&&(r<0||t<0)||t>this.length)throw new RangeError("Attempt to write outside buffer bounds");n||(n="utf8");for(var a=!1;;)switch(n){case"hex":return b(this,e,t,r);case"utf8":case"utf-8":return v(this,e,t,r);case"ascii":return w(this,e,t,r);case"latin1":case"binary":return E(this,e,t,r);case"base64":return S(this,e,t,r);case"ucs2":case"ucs-2":case"utf16le":case"utf-16le":return T(this,e,t,r);default:if(a)throw new TypeError("Unknown encoding: "+n);n=(""+n).toLowerCase(),a=!0}},u.prototype.toJSON=function(){return{type:"Buffer",data:Array.prototype.slice.call(this._arr||this,0)}};function R(e,t,r){var n="";r=Math.min(e.length,r);for(var i=t;in)&&(r=n);for(var i="",a=t;ar)throw new RangeError("Trying to access beyond buffer length")}function C(e,t,r,n,i,a){if(!u.isBuffer(e))throw new TypeError('"buffer" argument must be a Buffer instance');if(t>i||te.length)throw new RangeError("Index out of range")}function j(e,t,r,n){t<0&&(t=65535+t+1);for(var i=0,a=Math.min(e.length-r,2);i>>8*(n?i:1-i)}function D(e,t,r,n){t<0&&(t=4294967295+t+1);for(var i=0,a=Math.min(e.length-r,4);i>>8*(n?i:3-i)&255}function k(e,t,r,n,i,a){if(r+n>e.length)throw new RangeError("Index out of range");if(r<0)throw new RangeError("Index out of range")}function L(e,t,r,n,a){return a||k(e,0,r,4),i.write(e,t,r,n,23,4),r+4}function M(e,t,r,n,a){return a||k(e,0,r,8),i.write(e,t,r,n,52,8),r+8}u.prototype.slice=function(e,t){var r,n=this.length;if((e=~~e)<0?(e+=n)<0&&(e=0):e>n&&(e=n),(t=void 0===t?n:~~t)<0?(t+=n)<0&&(t=0):t>n&&(t=n),t0&&(i*=256);)n+=this[e+--t]*i;return n},u.prototype.readUInt8=function(e,t){return t||N(e,1,this.length),this[e]},u.prototype.readUInt16LE=function(e,t){return t||N(e,2,this.length),this[e]|this[e+1]<<8},u.prototype.readUInt16BE=function(e,t){return t||N(e,2,this.length),this[e]<<8|this[e+1]},u.prototype.readUInt32LE=function(e,t){return t||N(e,4,this.length),(this[e]|this[e+1]<<8|this[e+2]<<16)+16777216*this[e+3]},u.prototype.readUInt32BE=function(e,t){return t||N(e,4,this.length),16777216*this[e]+(this[e+1]<<16|this[e+2]<<8|this[e+3])},u.prototype.readIntLE=function(e,t,r){e|=0,t|=0,r||N(e,t,this.length);for(var n=this[e],i=1,a=0;++a=(i*=128)&&(n-=Math.pow(2,8*t)),n},u.prototype.readIntBE=function(e,t,r){e|=0,t|=0,r||N(e,t,this.length);for(var n=t,i=1,a=this[e+--n];n>0&&(i*=256);)a+=this[e+--n]*i;return a>=(i*=128)&&(a-=Math.pow(2,8*t)),a},u.prototype.readInt8=function(e,t){return t||N(e,1,this.length),128&this[e]?-1*(255-this[e]+1):this[e]},u.prototype.readInt16LE=function(e,t){t||N(e,2,this.length);var r=this[e]|this[e+1]<<8;return 32768&r?4294901760|r:r},u.prototype.readInt16BE=function(e,t){t||N(e,2,this.length);var r=this[e+1]|this[e]<<8;return 32768&r?4294901760|r:r},u.prototype.readInt32LE=function(e,t){return t||N(e,4,this.length),this[e]|this[e+1]<<8|this[e+2]<<16|this[e+3]<<24},u.prototype.readInt32BE=function(e,t){return t||N(e,4,this.length),this[e]<<24|this[e+1]<<16|this[e+2]<<8|this[e+3]},u.prototype.readFloatLE=function(e,t){return t||N(e,4,this.length),i.read(this,e,!0,23,4)},u.prototype.readFloatBE=function(e,t){return t||N(e,4,this.length),i.read(this,e,!1,23,4)},u.prototype.readDoubleLE=function(e,t){return t||N(e,8,this.length),i.read(this,e,!0,52,8)},u.prototype.readDoubleBE=function(e,t){return t||N(e,8,this.length),i.read(this,e,!1,52,8)},u.prototype.writeUIntLE=function(e,t,r,n){(e=+e,t|=0,r|=0,n)||C(this,e,t,r,Math.pow(2,8*r)-1,0);var i=1,a=0;for(this[t]=255&e;++a=0&&(a*=256);)this[t+i]=e/a&255;return t+r},u.prototype.writeUInt8=function(e,t,r){return e=+e,t|=0,r||C(this,e,t,1,255,0),u.TYPED_ARRAY_SUPPORT||(e=Math.floor(e)),this[t]=255&e,t+1},u.prototype.writeUInt16LE=function(e,t,r){return e=+e,t|=0,r||C(this,e,t,2,65535,0),u.TYPED_ARRAY_SUPPORT?(this[t]=255&e,this[t+1]=e>>>8):j(this,e,t,!0),t+2},u.prototype.writeUInt16BE=function(e,t,r){return e=+e,t|=0,r||C(this,e,t,2,65535,0),u.TYPED_ARRAY_SUPPORT?(this[t]=e>>>8,this[t+1]=255&e):j(this,e,t,!1),t+2},u.prototype.writeUInt32LE=function(e,t,r){return e=+e,t|=0,r||C(this,e,t,4,4294967295,0),u.TYPED_ARRAY_SUPPORT?(this[t+3]=e>>>24,this[t+2]=e>>>16,this[t+1]=e>>>8,this[t]=255&e):D(this,e,t,!0),t+4},u.prototype.writeUInt32BE=function(e,t,r){return e=+e,t|=0,r||C(this,e,t,4,4294967295,0),u.TYPED_ARRAY_SUPPORT?(this[t]=e>>>24,this[t+1]=e>>>16,this[t+2]=e>>>8,this[t+3]=255&e):D(this,e,t,!1),t+4},u.prototype.writeIntLE=function(e,t,r,n){if(e=+e,t|=0,!n){var i=Math.pow(2,8*r-1);C(this,e,t,r,i-1,-i)}var a=0,o=1,s=0;for(this[t]=255&e;++a>0)-s&255;return t+r},u.prototype.writeIntBE=function(e,t,r,n){if(e=+e,t|=0,!n){var i=Math.pow(2,8*r-1);C(this,e,t,r,i-1,-i)}var a=r-1,o=1,s=0;for(this[t+a]=255&e;--a>=0&&(o*=256);)e<0&&0===s&&0!==this[t+a+1]&&(s=1),this[t+a]=(e/o>>0)-s&255;return t+r},u.prototype.writeInt8=function(e,t,r){return e=+e,t|=0,r||C(this,e,t,1,127,-128),u.TYPED_ARRAY_SUPPORT||(e=Math.floor(e)),e<0&&(e=255+e+1),this[t]=255&e,t+1},u.prototype.writeInt16LE=function(e,t,r){return e=+e,t|=0,r||C(this,e,t,2,32767,-32768),u.TYPED_ARRAY_SUPPORT?(this[t]=255&e,this[t+1]=e>>>8):j(this,e,t,!0),t+2},u.prototype.writeInt16BE=function(e,t,r){return e=+e,t|=0,r||C(this,e,t,2,32767,-32768),u.TYPED_ARRAY_SUPPORT?(this[t]=e>>>8,this[t+1]=255&e):j(this,e,t,!1),t+2},u.prototype.writeInt32LE=function(e,t,r){return e=+e,t|=0,r||C(this,e,t,4,2147483647,-2147483648),u.TYPED_ARRAY_SUPPORT?(this[t]=255&e,this[t+1]=e>>>8,this[t+2]=e>>>16,this[t+3]=e>>>24):D(this,e,t,!0),t+4},u.prototype.writeInt32BE=function(e,t,r){return e=+e,t|=0,r||C(this,e,t,4,2147483647,-2147483648),e<0&&(e=4294967295+e+1),u.TYPED_ARRAY_SUPPORT?(this[t]=e>>>24,this[t+1]=e>>>16,this[t+2]=e>>>8,this[t+3]=255&e):D(this,e,t,!1),t+4},u.prototype.writeFloatLE=function(e,t,r){return L(this,e,t,!0,r)},u.prototype.writeFloatBE=function(e,t,r){return L(this,e,t,!1,r)},u.prototype.writeDoubleLE=function(e,t,r){return M(this,e,t,!0,r)},u.prototype.writeDoubleBE=function(e,t,r){return M(this,e,t,!1,r)},u.prototype.copy=function(e,t,r,n){if(r||(r=0),n||0===n||(n=this.length),t>=e.length&&(t=e.length),t||(t=0),n>0&&n=this.length)throw new RangeError("sourceStart out of bounds");if(n<0)throw new RangeError("sourceEnd out of bounds");n>this.length&&(n=this.length),e.length-t=0;--i)e[i+t]=this[i+r];else if(a<1e3||!u.TYPED_ARRAY_SUPPORT)for(i=0;i>>=0,r=void 0===r?this.length:r>>>0,e||(e=0),"number"==typeof e)for(a=t;a55295&&r<57344){if(!i){if(r>56319){(t-=3)>-1&&a.push(239,191,189);continue}if(o+1===n){(t-=3)>-1&&a.push(239,191,189);continue}i=r;continue}if(r<56320){(t-=3)>-1&&a.push(239,191,189),i=r;continue}r=65536+(i-55296<<10|r-56320)}else i&&(t-=3)>-1&&a.push(239,191,189);if(i=null,r<128){if((t-=1)<0)break;a.push(r)}else if(r<2048){if((t-=2)<0)break;a.push(r>>6|192,63&r|128)}else if(r<65536){if((t-=3)<0)break;a.push(r>>12|224,r>>6&63|128,63&r|128)}else{if(!(r<1114112))throw new Error("Invalid code point");if((t-=4)<0)break;a.push(r>>18|240,r>>12&63|128,r>>6&63|128,63&r|128)}}return a}function U(e){return n.toByteArray(function(e){if((e=function(e){return e.trim?e.trim():e.replace(/^\s+|\s+$/g,"")}(e).replace(F,"")).length<2)return"";for(;e.length%4!=0;)e+="=";return e}(e))}function V(e,t,r,n){for(var i=0;i=t.length||i>=e.length);++i)t[i+r]=e[i];return i}}).call(this,r(11))},function(e,t,r){ +var n=r(218),i=r(219),a=r(220);function s(){return c.TYPED_ARRAY_SUPPORT?2147483647:1073741823}function o(e,t){if(s()=s())throw new RangeError("Attempt to allocate Buffer larger than maximum size: 0x"+s().toString(16)+" bytes");return 0|e}function f(e,t){if(c.isBuffer(e))return e.length;if("undefined"!=typeof ArrayBuffer&&"function"==typeof ArrayBuffer.isView&&(ArrayBuffer.isView(e)||e instanceof ArrayBuffer))return e.byteLength;"string"!=typeof e&&(e=""+e);var r=e.length;if(0===r)return 0;for(var n=!1;;)switch(t){case"ascii":case"latin1":case"binary":return r;case"utf8":case"utf-8":case void 0:return B(e).length;case"ucs2":case"ucs-2":case"utf16le":case"utf-16le":return 2*r;case"hex":return r>>>1;case"base64":return U(e).length;default:if(n)return B(e).length;t=(""+t).toLowerCase(),n=!0}}function m(e,t,r){var n=!1;if((void 0===t||t<0)&&(t=0),t>this.length)return"";if((void 0===r||r>this.length)&&(r=this.length),r<=0)return"";if((r>>>=0)<=(t>>>=0))return"";for(e||(e="utf8");;)switch(e){case"hex":return I(this,t,r);case"utf8":case"utf-8":return x(this,t,r);case"ascii":return A(this,t,r);case"latin1":case"binary":return R(this,t,r);case"base64":return O(this,t,r);case"ucs2":case"ucs-2":case"utf16le":case"utf-16le":return P(this,t,r);default:if(n)throw new TypeError("Unknown encoding: "+e);e=(e+"").toLowerCase(),n=!0}}function g(e,t,r){var n=e[t];e[t]=e[r],e[r]=n}function y(e,t,r,n,i){if(0===e.length)return-1;if("string"==typeof r?(n=r,r=0):r>2147483647?r=2147483647:r<-2147483648&&(r=-2147483648),r=+r,isNaN(r)&&(r=i?0:e.length-1),r<0&&(r=e.length+r),r>=e.length){if(i)return-1;r=e.length-1}else if(r<0){if(!i)return-1;r=0}if("string"==typeof t&&(t=c.from(t,n)),c.isBuffer(t))return 0===t.length?-1:b(e,t,r,n,i);if("number"==typeof t)return t&=255,c.TYPED_ARRAY_SUPPORT&&"function"==typeof Uint8Array.prototype.indexOf?i?Uint8Array.prototype.indexOf.call(e,t,r):Uint8Array.prototype.lastIndexOf.call(e,t,r):b(e,[t],r,n,i);throw new TypeError("val must be string, number or Buffer")}function b(e,t,r,n,i){var a,s=1,o=e.length,c=t.length;if(void 0!==n&&("ucs2"===(n=String(n).toLowerCase())||"ucs-2"===n||"utf16le"===n||"utf-16le"===n)){if(e.length<2||t.length<2)return-1;s=2,o/=2,c/=2,r/=2}function u(e,t){return 1===s?e[t]:e.readUInt16BE(t*s)}if(i){var l=-1;for(a=r;ao&&(r=o-c),a=r;a>=0;a--){for(var d=!0,p=0;pi&&(n=i):n=i;var a=t.length;if(a%2!=0)throw new TypeError("Invalid hex string");n>a/2&&(n=a/2);for(var s=0;s>8,i=r%256,a.push(i),a.push(n);return a}(t,e.length-r),e,r,n)}function O(e,t,r){return 0===t&&r===e.length?n.fromByteArray(e):n.fromByteArray(e.slice(t,r))}function x(e,t,r){r=Math.min(e.length,r);for(var n=[],i=t;i239?4:u>223?3:u>191?2:1;if(i+d<=r)switch(d){case 1:u<128&&(l=u);break;case 2:128==(192&(a=e[i+1]))&&(c=(31&u)<<6|63&a)>127&&(l=c);break;case 3:a=e[i+1],s=e[i+2],128==(192&a)&&128==(192&s)&&(c=(15&u)<<12|(63&a)<<6|63&s)>2047&&(c<55296||c>57343)&&(l=c);break;case 4:a=e[i+1],s=e[i+2],o=e[i+3],128==(192&a)&&128==(192&s)&&128==(192&o)&&(c=(15&u)<<18|(63&a)<<12|(63&s)<<6|63&o)>65535&&c<1114112&&(l=c)}null===l?(l=65533,d=1):l>65535&&(l-=65536,n.push(l>>>10&1023|55296),l=56320|1023&l),n.push(l),i+=d}return function(e){var t=e.length;if(t<=4096)return String.fromCharCode.apply(String,e);var r="",n=0;for(;n0&&(e=this.toString("hex",0,r).match(/.{2}/g).join(" "),this.length>r&&(e+=" ... ")),""},c.prototype.compare=function(e,t,r,n,i){if(!c.isBuffer(e))throw new TypeError("Argument must be a Buffer");if(void 0===t&&(t=0),void 0===r&&(r=e?e.length:0),void 0===n&&(n=0),void 0===i&&(i=this.length),t<0||r>e.length||n<0||i>this.length)throw new RangeError("out of range index");if(n>=i&&t>=r)return 0;if(n>=i)return-1;if(t>=r)return 1;if(this===e)return 0;for(var a=(i>>>=0)-(n>>>=0),s=(r>>>=0)-(t>>>=0),o=Math.min(a,s),u=this.slice(n,i),l=e.slice(t,r),d=0;di)&&(r=i),e.length>0&&(r<0||t<0)||t>this.length)throw new RangeError("Attempt to write outside buffer bounds");n||(n="utf8");for(var a=!1;;)switch(n){case"hex":return _(this,e,t,r);case"utf8":case"utf-8":return v(this,e,t,r);case"ascii":return w(this,e,t,r);case"latin1":case"binary":return S(this,e,t,r);case"base64":return E(this,e,t,r);case"ucs2":case"ucs-2":case"utf16le":case"utf-16le":return T(this,e,t,r);default:if(a)throw new TypeError("Unknown encoding: "+n);n=(""+n).toLowerCase(),a=!0}},c.prototype.toJSON=function(){return{type:"Buffer",data:Array.prototype.slice.call(this._arr||this,0)}};function A(e,t,r){var n="";r=Math.min(e.length,r);for(var i=t;in)&&(r=n);for(var i="",a=t;ar)throw new RangeError("Trying to access beyond buffer length")}function C(e,t,r,n,i,a){if(!c.isBuffer(e))throw new TypeError('"buffer" argument must be a Buffer instance');if(t>i||te.length)throw new RangeError("Index out of range")}function j(e,t,r,n){t<0&&(t=65535+t+1);for(var i=0,a=Math.min(e.length-r,2);i>>8*(n?i:1-i)}function D(e,t,r,n){t<0&&(t=4294967295+t+1);for(var i=0,a=Math.min(e.length-r,4);i>>8*(n?i:3-i)&255}function k(e,t,r,n,i,a){if(r+n>e.length)throw new RangeError("Index out of range");if(r<0)throw new RangeError("Index out of range")}function L(e,t,r,n,a){return a||k(e,0,r,4),i.write(e,t,r,n,23,4),r+4}function M(e,t,r,n,a){return a||k(e,0,r,8),i.write(e,t,r,n,52,8),r+8}c.prototype.slice=function(e,t){var r,n=this.length;if((e=~~e)<0?(e+=n)<0&&(e=0):e>n&&(e=n),(t=void 0===t?n:~~t)<0?(t+=n)<0&&(t=0):t>n&&(t=n),t0&&(i*=256);)n+=this[e+--t]*i;return n},c.prototype.readUInt8=function(e,t){return t||N(e,1,this.length),this[e]},c.prototype.readUInt16LE=function(e,t){return t||N(e,2,this.length),this[e]|this[e+1]<<8},c.prototype.readUInt16BE=function(e,t){return t||N(e,2,this.length),this[e]<<8|this[e+1]},c.prototype.readUInt32LE=function(e,t){return t||N(e,4,this.length),(this[e]|this[e+1]<<8|this[e+2]<<16)+16777216*this[e+3]},c.prototype.readUInt32BE=function(e,t){return t||N(e,4,this.length),16777216*this[e]+(this[e+1]<<16|this[e+2]<<8|this[e+3])},c.prototype.readIntLE=function(e,t,r){e|=0,t|=0,r||N(e,t,this.length);for(var n=this[e],i=1,a=0;++a=(i*=128)&&(n-=Math.pow(2,8*t)),n},c.prototype.readIntBE=function(e,t,r){e|=0,t|=0,r||N(e,t,this.length);for(var n=t,i=1,a=this[e+--n];n>0&&(i*=256);)a+=this[e+--n]*i;return a>=(i*=128)&&(a-=Math.pow(2,8*t)),a},c.prototype.readInt8=function(e,t){return t||N(e,1,this.length),128&this[e]?-1*(255-this[e]+1):this[e]},c.prototype.readInt16LE=function(e,t){t||N(e,2,this.length);var r=this[e]|this[e+1]<<8;return 32768&r?4294901760|r:r},c.prototype.readInt16BE=function(e,t){t||N(e,2,this.length);var r=this[e+1]|this[e]<<8;return 32768&r?4294901760|r:r},c.prototype.readInt32LE=function(e,t){return t||N(e,4,this.length),this[e]|this[e+1]<<8|this[e+2]<<16|this[e+3]<<24},c.prototype.readInt32BE=function(e,t){return t||N(e,4,this.length),this[e]<<24|this[e+1]<<16|this[e+2]<<8|this[e+3]},c.prototype.readFloatLE=function(e,t){return t||N(e,4,this.length),i.read(this,e,!0,23,4)},c.prototype.readFloatBE=function(e,t){return t||N(e,4,this.length),i.read(this,e,!1,23,4)},c.prototype.readDoubleLE=function(e,t){return t||N(e,8,this.length),i.read(this,e,!0,52,8)},c.prototype.readDoubleBE=function(e,t){return t||N(e,8,this.length),i.read(this,e,!1,52,8)},c.prototype.writeUIntLE=function(e,t,r,n){(e=+e,t|=0,r|=0,n)||C(this,e,t,r,Math.pow(2,8*r)-1,0);var i=1,a=0;for(this[t]=255&e;++a=0&&(a*=256);)this[t+i]=e/a&255;return t+r},c.prototype.writeUInt8=function(e,t,r){return e=+e,t|=0,r||C(this,e,t,1,255,0),c.TYPED_ARRAY_SUPPORT||(e=Math.floor(e)),this[t]=255&e,t+1},c.prototype.writeUInt16LE=function(e,t,r){return e=+e,t|=0,r||C(this,e,t,2,65535,0),c.TYPED_ARRAY_SUPPORT?(this[t]=255&e,this[t+1]=e>>>8):j(this,e,t,!0),t+2},c.prototype.writeUInt16BE=function(e,t,r){return e=+e,t|=0,r||C(this,e,t,2,65535,0),c.TYPED_ARRAY_SUPPORT?(this[t]=e>>>8,this[t+1]=255&e):j(this,e,t,!1),t+2},c.prototype.writeUInt32LE=function(e,t,r){return e=+e,t|=0,r||C(this,e,t,4,4294967295,0),c.TYPED_ARRAY_SUPPORT?(this[t+3]=e>>>24,this[t+2]=e>>>16,this[t+1]=e>>>8,this[t]=255&e):D(this,e,t,!0),t+4},c.prototype.writeUInt32BE=function(e,t,r){return e=+e,t|=0,r||C(this,e,t,4,4294967295,0),c.TYPED_ARRAY_SUPPORT?(this[t]=e>>>24,this[t+1]=e>>>16,this[t+2]=e>>>8,this[t+3]=255&e):D(this,e,t,!1),t+4},c.prototype.writeIntLE=function(e,t,r,n){if(e=+e,t|=0,!n){var i=Math.pow(2,8*r-1);C(this,e,t,r,i-1,-i)}var a=0,s=1,o=0;for(this[t]=255&e;++a>0)-o&255;return t+r},c.prototype.writeIntBE=function(e,t,r,n){if(e=+e,t|=0,!n){var i=Math.pow(2,8*r-1);C(this,e,t,r,i-1,-i)}var a=r-1,s=1,o=0;for(this[t+a]=255&e;--a>=0&&(s*=256);)e<0&&0===o&&0!==this[t+a+1]&&(o=1),this[t+a]=(e/s>>0)-o&255;return t+r},c.prototype.writeInt8=function(e,t,r){return e=+e,t|=0,r||C(this,e,t,1,127,-128),c.TYPED_ARRAY_SUPPORT||(e=Math.floor(e)),e<0&&(e=255+e+1),this[t]=255&e,t+1},c.prototype.writeInt16LE=function(e,t,r){return e=+e,t|=0,r||C(this,e,t,2,32767,-32768),c.TYPED_ARRAY_SUPPORT?(this[t]=255&e,this[t+1]=e>>>8):j(this,e,t,!0),t+2},c.prototype.writeInt16BE=function(e,t,r){return e=+e,t|=0,r||C(this,e,t,2,32767,-32768),c.TYPED_ARRAY_SUPPORT?(this[t]=e>>>8,this[t+1]=255&e):j(this,e,t,!1),t+2},c.prototype.writeInt32LE=function(e,t,r){return e=+e,t|=0,r||C(this,e,t,4,2147483647,-2147483648),c.TYPED_ARRAY_SUPPORT?(this[t]=255&e,this[t+1]=e>>>8,this[t+2]=e>>>16,this[t+3]=e>>>24):D(this,e,t,!0),t+4},c.prototype.writeInt32BE=function(e,t,r){return e=+e,t|=0,r||C(this,e,t,4,2147483647,-2147483648),e<0&&(e=4294967295+e+1),c.TYPED_ARRAY_SUPPORT?(this[t]=e>>>24,this[t+1]=e>>>16,this[t+2]=e>>>8,this[t+3]=255&e):D(this,e,t,!1),t+4},c.prototype.writeFloatLE=function(e,t,r){return L(this,e,t,!0,r)},c.prototype.writeFloatBE=function(e,t,r){return L(this,e,t,!1,r)},c.prototype.writeDoubleLE=function(e,t,r){return M(this,e,t,!0,r)},c.prototype.writeDoubleBE=function(e,t,r){return M(this,e,t,!1,r)},c.prototype.copy=function(e,t,r,n){if(r||(r=0),n||0===n||(n=this.length),t>=e.length&&(t=e.length),t||(t=0),n>0&&n=this.length)throw new RangeError("sourceStart out of bounds");if(n<0)throw new RangeError("sourceEnd out of bounds");n>this.length&&(n=this.length),e.length-t=0;--i)e[i+t]=this[i+r];else if(a<1e3||!c.TYPED_ARRAY_SUPPORT)for(i=0;i>>=0,r=void 0===r?this.length:r>>>0,e||(e=0),"number"==typeof e)for(a=t;a55295&&r<57344){if(!i){if(r>56319){(t-=3)>-1&&a.push(239,191,189);continue}if(s+1===n){(t-=3)>-1&&a.push(239,191,189);continue}i=r;continue}if(r<56320){(t-=3)>-1&&a.push(239,191,189),i=r;continue}r=65536+(i-55296<<10|r-56320)}else i&&(t-=3)>-1&&a.push(239,191,189);if(i=null,r<128){if((t-=1)<0)break;a.push(r)}else if(r<2048){if((t-=2)<0)break;a.push(r>>6|192,63&r|128)}else if(r<65536){if((t-=3)<0)break;a.push(r>>12|224,r>>6&63|128,63&r|128)}else{if(!(r<1114112))throw new Error("Invalid code point");if((t-=4)<0)break;a.push(r>>18|240,r>>12&63|128,r>>6&63|128,63&r|128)}}return a}function U(e){return n.toByteArray(function(e){if((e=function(e){return e.trim?e.trim():e.replace(/^\s+|\s+$/g,"")}(e).replace(F,"")).length<2)return"";for(;e.length%4!=0;)e+="=";return e}(e))}function V(e,t,r,n){for(var i=0;i=t.length||i>=e.length);++i)t[i+r]=e[i];return i}}).call(this,r(17))},function(e,t,r){ /*! safe-buffer. MIT License. Feross Aboukhadijeh */ -var n=r(15),i=n.Buffer;function a(e,t){for(var r in e)t[r]=e[r]}function o(e,t,r){return i(e,t,r)}i.from&&i.alloc&&i.allocUnsafe&&i.allocUnsafeSlow?e.exports=n:(a(n,t),t.Buffer=o),o.prototype=Object.create(i.prototype),a(i,o),o.from=function(e,t,r){if("number"==typeof e)throw new TypeError("Argument must not be a number");return i(e,t,r)},o.alloc=function(e,t,r){if("number"!=typeof e)throw new TypeError("Argument must be a number");var n=i(e);return void 0!==t?"string"==typeof r?n.fill(t,r):n.fill(t):n.fill(0),n},o.allocUnsafe=function(e){if("number"!=typeof e)throw new TypeError("Argument must be a number");return i(e)},o.allocUnsafeSlow=function(e){if("number"!=typeof e)throw new TypeError("Argument must be a number");return n.SlowBuffer(e)}},function(e,t,r){"use strict";Object.defineProperty(t,"__esModule",{value:!0});const n=r(1),i=r(19);var a,o,s;t.TRUE_STR='"true"^^xsd:boolean',t.FALSE_STR='"false"^^xsd:boolean',t.EVB_ERR_STR='"not an dateTime"^^xsd:dateTime',function(e){e.XSD_ANY_URI="http://www.w3.org/2001/XMLSchema#anyURI",e.XSD_STRING="http://www.w3.org/2001/XMLSchema#string",e.RDF_LANG_STRING="http://www.w3.org/1999/02/22-rdf-syntax-ns#langString",e.XSD_BOOLEAN="http://www.w3.org/2001/XMLSchema#boolean",e.XSD_DATE_TIME="http://www.w3.org/2001/XMLSchema#dateTime",e.XSD_DATE="http://www.w3.org/2001/XMLSchema#date",e.XSD_INTEGER="http://www.w3.org/2001/XMLSchema#integer",e.XSD_DECIMAL="http://www.w3.org/2001/XMLSchema#decimal",e.XSD_FLOAT="http://www.w3.org/2001/XMLSchema#float",e.XSD_DOUBLE="http://www.w3.org/2001/XMLSchema#double",e.XSD_NON_POSITIVE_INTEGER="http://www.w3.org/2001/XMLSchema#nonPositiveInteger",e.XSD_NEGATIVE_INTEGER="http://www.w3.org/2001/XMLSchema#negativeInteger",e.XSD_LONG="http://www.w3.org/2001/XMLSchema#long",e.XSD_INT="http://www.w3.org/2001/XMLSchema#int",e.XSD_SHORT="http://www.w3.org/2001/XMLSchema#short",e.XSD_BYTE="http://www.w3.org/2001/XMLSchema#byte",e.XSD_NON_NEGATIVE_INTEGER="http://www.w3.org/2001/XMLSchema#nonNegativeInteger",e.XSD_UNSIGNED_LONG="http://www.w3.org/2001/XMLSchema#unsignedLong",e.XSD_UNSIGNED_INT="http://www.w3.org/2001/XMLSchema#unsignedInt",e.XSD_UNSIGNED_SHORT="http://www.w3.org/2001/XMLSchema#unsignedShort",e.XSD_UNSIGNED_BYTE="http://www.w3.org/2001/XMLSchema#unsignedByte",e.XSD_POSITIVE_INTEGER="http://www.w3.org/2001/XMLSchema#positiveInteger",e.XSD_DAYTIME_DURATION="http://www.w3.org/2001/XMLSchema#dayTimeDuration"}(a=t.TypeURL||(t.TypeURL={})),t.make=function(e){return n.namedNode(e)},function(e){e.XSD_INTEGER="http://www.w3.org/2001/XMLSchema#integer",e.XSD_DECIMAL="http://www.w3.org/2001/XMLSchema#decimal",e.XSD_FLOAT="http://www.w3.org/2001/XMLSchema#float",e.XSD_DOUBLE="http://www.w3.org/2001/XMLSchema#double",e.XSD_NON_POSITIVE_INTEGER="http://www.w3.org/2001/XMLSchema#nonPositiveInteger",e.XSD_NEGATIVE_INTEGER="http://www.w3.org/2001/XMLSchema#negativeInteger",e.XSD_LONG="http://www.w3.org/2001/XMLSchema#long",e.XSD_INT="http://www.w3.org/2001/XMLSchema#int",e.XSD_SHORT="http://www.w3.org/2001/XMLSchema#short",e.XSD_BYTE="http://www.w3.org/2001/XMLSchema#byte",e.XSD_NON_NEGATIVE_INTEGER="http://www.w3.org/2001/XMLSchema#nonNegativeInteger",e.XSD_UNSIGNED_LONG="http://www.w3.org/2001/XMLSchema#unsignedLong",e.XSD_UNSIGNED_INT="http://www.w3.org/2001/XMLSchema#unsignedInt",e.XSD_UNSIGNED_SHORT="http://www.w3.org/2001/XMLSchema#unsignedShort",e.XSD_UNSIGNED_BYTE="http://www.w3.org/2001/XMLSchema#unsignedByte",e.XSD_POSITIVE_INTEGER="http://www.w3.org/2001/XMLSchema#positiveInteger"}(o=t.NumericTypeURL||(t.NumericTypeURL={})),function(e){e.XSD_NON_POSITIVE_INTEGER="http://www.w3.org/2001/XMLSchema#nonPositiveInteger",e.XSD_NEGATIVE_INTEGER="http://www.w3.org/2001/XMLSchema#negativeInteger",e.XSD_LONG="http://www.w3.org/2001/XMLSchema#long",e.XSD_INT="http://www.w3.org/2001/XMLSchema#int",e.XSD_SHORT="http://www.w3.org/2001/XMLSchema#short",e.XSD_BYTE="http://www.w3.org/2001/XMLSchema#byte",e.XSD_NON_NEGATIVE_INTEGER="http://www.w3.org/2001/XMLSchema#nonNegativeInteger",e.XSD_UNSIGNED_LONG="http://www.w3.org/2001/XMLSchema#unsignedLong",e.XSD_UNSIGNED_INT="http://www.w3.org/2001/XMLSchema#unsignedInt",e.XSD_UNSIGNED_SHORT="http://www.w3.org/2001/XMLSchema#unsignedShort",e.XSD_UNSIGNED_BYTE="http://www.w3.org/2001/XMLSchema#unsignedByte",e.XSD_POSITIVE_INTEGER="http://www.w3.org/2001/XMLSchema#positiveInteger"}(s=t.DerivedIntegerTypeURL||(t.DerivedIntegerTypeURL={})),t.NumericTypeURLs=i.Set(Object.values(o)),t.DerivedIntegerTypeURLs=i.Set(Object.values(s)),t.commonTerms={true:n.literal("true",n.namedNode(a.XSD_BOOLEAN)),false:n.literal("false",n.namedNode(a.XSD_BOOLEAN))},t.PrimitiveNumericTypes=i.Set(["integer","decimal","float","double"]),t.type=function(e){switch(e){case null:case void 0:case"":case a.XSD_ANY_URI:case a.XSD_STRING:return"string";case a.RDF_LANG_STRING:return"langString";case a.XSD_DATE_TIME:return"date";case a.XSD_BOOLEAN:return"boolean";case a.XSD_DECIMAL:return"decimal";case a.XSD_FLOAT:return"float";case a.XSD_DOUBLE:return"double";case a.XSD_INTEGER:case a.XSD_NON_POSITIVE_INTEGER:case a.XSD_NEGATIVE_INTEGER:case a.XSD_LONG:case a.XSD_INT:case a.XSD_SHORT:case a.XSD_BYTE:case a.XSD_NON_NEGATIVE_INTEGER:case a.XSD_UNSIGNED_LONG:case a.XSD_UNSIGNED_INT:case a.XSD_UNSIGNED_SHORT:case a.XSD_UNSIGNED_BYTE:case a.XSD_POSITIVE_INTEGER:return"integer";default:return"other"}};const u=i.Map([["integer",a.XSD_INTEGER],["float",a.XSD_FLOAT],["double",a.XSD_DOUBLE],["decimal",a.XSD_DECIMAL]]);var c,l,h;t.decategorize=function(e){return u.get(e)},function(e){e.NOT="!",e.UMINUS="UMINUS",e.UPLUS="UPLUS",e.EQUAL="=",e.NOT_EQUAL="!=",e.LT="<",e.GT=">",e.LTE="<=",e.GTE=">=",e.MULTIPLICATION="*",e.DIVISION="/",e.ADDITION="+",e.SUBTRACTION="-",e.IS_IRI="isiri",e.IS_BLANK="isblank",e.IS_LITERAL="isliteral",e.IS_NUMERIC="isnumeric",e.STR="str",e.LANG="lang",e.DATATYPE="datatype",e.STRDT="strdt",e.STRLANG="strlang",e.UUID="uuid",e.STRUUID="struuid",e.STRLEN="strlen",e.SUBSTR="substr",e.UCASE="ucase",e.LCASE="lcase",e.STRSTARTS="strstarts",e.STRENDS="strends",e.CONTAINS="contains",e.STRBEFORE="strbefore",e.STRAFTER="strafter",e.ENCODE_FOR_URI="encode_for_uri",e.LANG_MATCHES="langmatches",e.REGEX="regex",e.REPLACE="replace",e.ABS="abs",e.ROUND="round",e.CEIL="ceil",e.FLOOR="floor",e.RAND="rand",e.YEAR="year",e.MONTH="month",e.DAY="day",e.HOURS="hours",e.MINUTES="minutes",e.SECONDS="seconds",e.TIMEZONE="timezone",e.TZ="tz",e.MD5="md5",e.SHA1="sha1",e.SHA256="sha256",e.SHA384="sha384",e.SHA512="sha512"}(c=t.RegularOperator||(t.RegularOperator={})),function(e){e.BOUND="bound",e.IF="if",e.COALESCE="coalesce",e.LOGICAL_OR="||",e.LOGICAL_AND="&&",e.SAME_TERM="sameterm",e.IN="in",e.NOT_IN="notin",e.CONCAT="concat",e.NOW="now",e.IRI="iri",e.URI="uri",e.BNODE="BNODE"}(l=t.SpecialOperator||(t.SpecialOperator={})),t.RegularOperators=i.Set(Object.values(c)),t.SpecialOperators=i.Set(Object.values(l)),t.Operators=t.RegularOperators.union(t.SpecialOperators),function(e){e.COUNT="count",e.SUM="sum",e.MIN="min",e.MAX="max",e.AVG="avg",e.GROUP_CONCAT="group_concat",e.SAMPLE="sample"}(h=t.SetFunction||(t.SetFunction={})),t.SetFunctions=i.Set(Object.values(h)),t.NamedOperators=i.Set([a.XSD_STRING,a.XSD_FLOAT,a.XSD_DOUBLE,a.XSD_DECIMAL,a.XSD_INTEGER,a.XSD_DATE_TIME,a.XSD_DATE,a.XSD_BOOLEAN])},function(e,t,r){"use strict";Object.defineProperty(t,"__esModule",{value:!0});class n extends Error{}t.ExpressionError=n,t.isExpressionError=function(e){return e instanceof n};t.InvalidLexicalForm=class extends n{constructor(e){super(`Invalid lexical form '${f(e)}'`),this.arg=e}};t.UnboundVariableError=class extends n{constructor(e,t){super(`Unbound variable '${f(e)}'`),this.variable=e,this.bindings=t}};t.EBVCoercionError=class extends n{constructor(e){super(`Cannot coerce term to EBV '${f(e)}'`),this.arg=e}};t.RDFEqualTypeError=class extends n{constructor(e){super("Equality test for literals with unsupported datatypes"),this.args=e}};t.CoalesceError=class extends n{constructor(e){super("All COALESCE arguments threw errors"),this.errors=e}};t.InError=class extends n{constructor(e){super("Some argument to IN errorred and none where equal. "+e.map(e=>`(${e.toString()}) `).join("and ")),this.errors=e}};t.InvalidArgumentTypes=class extends n{constructor(e,t){super(`Argument types not valid for operator: '${f(t)}' with '${f(e)}`),this.args=e,this.op=t}};t.CastError=class extends n{constructor(e,t){super(`Invalid cast: '${f(e)}' to '${f(t)}'`),this.arg=e}};t.InvalidTimezoneCall=class extends n{constructor(e){super(`TIMEZONE call on ${e} which has no timezone`),this.dateString=e}};t.IncompatibleLanguageOperation=class extends n{constructor(e,t){super(`Operation on incompatible language literals '${f(e)}' and '${f(t)}'`),this.arg1=e,this.arg2=t}};t.EmptyAggregateError=class extends n{constructor(){super("Empty aggregate expression")}};class i extends Error{constructor(e,t){super(`Programmer Error '${e}'`),this.payload=t}}t.UnexpectedError=i;class a extends Error{constructor(e){super(`Unimplemented feature '${e}!'`)}}t.UnimplementedError=a;class o extends Error{constructor(e,t){super(`The number of args does not match the arity of the operator '${f(t)}'.`),this.args=e,this.op=t}}t.InvalidArity=o;class s extends Error{constructor(e){super(`Invalid SPARQL Expression '${f(e)}'`)}}t.InvalidExpression=s;class u extends Error{constructor(e){super(`Invalid expression type for SPARQL Expression '${f(e)}'`),this.expr=e}}t.InvalidExpressionType=u;class c extends Error{constructor(e){super(`Invalid term type for term '${f(e)}'`),this.term=e}}t.InvalidTermType=c;class l extends Error{constructor(e){super("Unknown operator: '"+f(e))}}t.UnknownOperator=l;class h extends Error{constructor(e){super(`Unknown named operator: '${f(e)}'`)}}t.UnknownNamedOperator=h;class p extends Error{constructor(e){super(`Aggregate expression ${f(e)} found, but no aggregate hook provided.`)}}t.NoAggregator=p;class d extends Error{constructor(){super("EXISTS found, but no existence hook provided.")}}function f(e){return JSON.stringify(e)}t.NoExistenceHook=d},function(e,t,r){e.exports=function(){"use strict";var e=Array.prototype.slice;function t(e,t){t&&(e.prototype=Object.create(t.prototype)),e.prototype.constructor=e}function r(e){return o(e)?e:V(e)}function n(e){return s(e)?e:H(e)}function i(e){return u(e)?e:G(e)}function a(e){return o(e)&&!c(e)?e:z(e)}function o(e){return!(!e||!e[h])}function s(e){return!(!e||!e[p])}function u(e){return!(!e||!e[d])}function c(e){return s(e)||u(e)}function l(e){return!(!e||!e[f])}t(n,r),t(i,r),t(a,r),r.isIterable=o,r.isKeyed=s,r.isIndexed=u,r.isAssociative=c,r.isOrdered=l,r.Keyed=n,r.Indexed=i,r.Set=a;var h="@@__IMMUTABLE_ITERABLE__@@",p="@@__IMMUTABLE_KEYED__@@",d="@@__IMMUTABLE_INDEXED__@@",f="@@__IMMUTABLE_ORDERED__@@",y={},m={value:!1},g={value:!1};function _(e){return e.value=!1,e}function b(e){e&&(e.value=!0)}function v(){}function w(e,t){t=t||0;for(var r=Math.max(0,e.length-t),n=new Array(r),i=0;i>>0;if(""+r!==t||4294967295===r)return NaN;t=r}return t<0?E(e)+t:t}function T(){return!0}function x(e,t,r){return(0===e||void 0!==r&&e<=-r)&&(void 0===t||void 0!==r&&t>=r)}function O(e,t){return A(e,t,0)}function R(e,t){return A(e,t,t)}function A(e,t,r){return void 0===e?r:e<0?Math.max(0,t+e):void 0===t?e:Math.min(t,e)}var I,P,N,C="function"==typeof Symbol&&Symbol.iterator,j=C||"@@iterator";function D(e){this.next=e}function k(e,t,r,n){var i=0===e?t:1===e?r:[t,r];return n?n.value=i:n={value:i,done:!1},n}function L(){return{value:void 0,done:!0}}function M(e){return!!B(e)}function F(e){return e&&"function"==typeof e.next}function q(e){var t=B(e);return t&&t.call(e)}function B(e){var t=e&&(C&&e[C]||e["@@iterator"]);if("function"==typeof t)return t}function U(e){return e&&"number"==typeof e.length}function V(e){return null==e?W():o(e)?e.toSeq():function(e){var t=ee(e)||"object"==typeof e&&new $(e);if(!t)throw new TypeError("Expected Array or iterable object of values, or keyed object: "+e);return t}(e)}function H(e){return null==e?W().toKeyedSeq():o(e)?s(e)?e.toSeq():e.fromEntrySeq():K(e)}function G(e){return null==e?W():o(e)?s(e)?e.entrySeq():e.toIndexedSeq():Z(e)}function z(e){return(null==e?W():o(e)?s(e)?e.entrySeq():e:Z(e)).toSetSeq()}function Q(e){this._array=e,this.size=e.length}function $(e){var t=Object.keys(e);this._object=e,this._keys=t,this.size=t.length}function X(e){this._iterable=e,this.size=e.length||e.size}function Y(e){this._iterator=e,this._iteratorCache=[]}function J(e){return!(!e||!e["@@__IMMUTABLE_SEQ__@@"])}function W(){return I||(I=new Q([]))}function K(e){var t=Array.isArray(e)?new Q(e).fromEntrySeq():F(e)?new Y(e).fromEntrySeq():M(e)?new X(e).fromEntrySeq():"object"==typeof e?new $(e):void 0;if(!t)throw new TypeError("Expected Array or iterable object of [k, v] entries, or keyed object: "+e);return t}function Z(e){var t=ee(e);if(!t)throw new TypeError("Expected Array or iterable object of values: "+e);return t}function ee(e){return U(e)?new Q(e):F(e)?new Y(e):M(e)?new X(e):void 0}function te(e,t,r,n){var i=e._cache;if(i){for(var a=i.length-1,o=0;o<=a;o++){var s=i[r?a-o:o];if(!1===t(s[1],n?s[0]:o,e))return o+1}return o}return e.__iterateUncached(t,r)}function re(e,t,r,n){var i=e._cache;if(i){var a=i.length-1,o=0;return new D((function(){var e=i[r?a-o:o];return o++>a?{value:void 0,done:!0}:k(t,n?e[0]:o-1,e[1])}))}return e.__iteratorUncached(t,r)}function ne(e,t){return t?function e(t,r,n,i){return Array.isArray(r)?t.call(i,n,G(r).map((function(n,i){return e(t,n,i,r)}))):ae(r)?t.call(i,n,H(r).map((function(n,i){return e(t,n,i,r)}))):r}(t,e,"",{"":e}):ie(e)}function ie(e){return Array.isArray(e)?G(e).map(ie).toList():ae(e)?H(e).map(ie).toMap():e}function ae(e){return e&&(e.constructor===Object||void 0===e.constructor)}function oe(e,t){if(e===t||e!=e&&t!=t)return!0;if(!e||!t)return!1;if("function"==typeof e.valueOf&&"function"==typeof t.valueOf){if((e=e.valueOf())===(t=t.valueOf())||e!=e&&t!=t)return!0;if(!e||!t)return!1}return!("function"!=typeof e.equals||"function"!=typeof t.equals||!e.equals(t))}function se(e,t){if(e===t)return!0;if(!o(t)||void 0!==e.size&&void 0!==t.size&&e.size!==t.size||void 0!==e.__hash&&void 0!==t.__hash&&e.__hash!==t.__hash||s(e)!==s(t)||u(e)!==u(t)||l(e)!==l(t))return!1;if(0===e.size&&0===t.size)return!0;var r=!c(e);if(l(e)){var n=e.entries();return t.every((function(e,t){var i=n.next().value;return i&&oe(i[1],e)&&(r||oe(i[0],t))}))&&n.next().done}var i=!1;if(void 0===e.size)if(void 0===t.size)"function"==typeof e.cacheResult&&e.cacheResult();else{i=!0;var a=e;e=t,t=a}var h=!0,p=t.__iterate((function(t,n){if(r?!e.has(t):i?!oe(t,e.get(n,y)):!oe(e.get(n,y),t))return h=!1,!1}));return h&&e.size===p}function ue(e,t){if(!(this instanceof ue))return new ue(e,t);if(this._value=e,this.size=void 0===t?1/0:Math.max(0,t),0===this.size){if(P)return P;P=this}}function ce(e,t){if(!e)throw new Error(t)}function le(e,t,r){if(!(this instanceof le))return new le(e,t,r);if(ce(0!==r,"Cannot step a Range by 0"),e=e||0,void 0===t&&(t=1/0),r=void 0===r?1:Math.abs(r),tn?{value:void 0,done:!0}:k(e,i,r[t?n-i++:i++])}))},t($,H),$.prototype.get=function(e,t){return void 0===t||this.has(e)?this._object[e]:t},$.prototype.has=function(e){return this._object.hasOwnProperty(e)},$.prototype.__iterate=function(e,t){for(var r=this._object,n=this._keys,i=n.length-1,a=0;a<=i;a++){var o=n[t?i-a:a];if(!1===e(r[o],o,this))return a+1}return a},$.prototype.__iterator=function(e,t){var r=this._object,n=this._keys,i=n.length-1,a=0;return new D((function(){var o=n[t?i-a:a];return a++>i?{value:void 0,done:!0}:k(e,o,r[o])}))},$.prototype[f]=!0,t(X,G),X.prototype.__iterateUncached=function(e,t){if(t)return this.cacheResult().__iterate(e,t);var r=q(this._iterable),n=0;if(F(r))for(var i;!(i=r.next()).done&&!1!==e(i.value,n++,this););return n},X.prototype.__iteratorUncached=function(e,t){if(t)return this.cacheResult().__iterator(e,t);var r=q(this._iterable);if(!F(r))return new D(L);var n=0;return new D((function(){var t=r.next();return t.done?t:k(e,n++,t.value)}))},t(Y,G),Y.prototype.__iterateUncached=function(e,t){if(t)return this.cacheResult().__iterate(e,t);for(var r,n=this._iterator,i=this._iteratorCache,a=0;a=n.length){var t=r.next();if(t.done)return t;n[i]=t.value}return k(e,i,n[i++])}))},t(ue,G),ue.prototype.toString=function(){return 0===this.size?"Repeat []":"Repeat [ "+this._value+" "+this.size+" times ]"},ue.prototype.get=function(e,t){return this.has(e)?this._value:t},ue.prototype.includes=function(e){return oe(this._value,e)},ue.prototype.slice=function(e,t){var r=this.size;return x(e,t,r)?this:new ue(this._value,R(t,r)-O(e,r))},ue.prototype.reverse=function(){return this},ue.prototype.indexOf=function(e){return oe(this._value,e)?0:-1},ue.prototype.lastIndexOf=function(e){return oe(this._value,e)?this.size:-1},ue.prototype.__iterate=function(e,t){for(var r=0;r=0&&t=0&&rr?{value:void 0,done:!0}:k(e,a++,o)}))},le.prototype.equals=function(e){return e instanceof le?this._start===e._start&&this._end===e._end&&this._step===e._step:se(this,e)},t(he,r),t(pe,he),t(de,he),t(fe,he),he.Keyed=pe,he.Indexed=de,he.Set=fe;var ye="function"==typeof Math.imul&&-2===Math.imul(4294967295,2)?Math.imul:function(e,t){var r=65535&(e|=0),n=65535&(t|=0);return r*n+((e>>>16)*n+r*(t>>>16)<<16>>>0)|0};function me(e){return e>>>1&1073741824|3221225471&e}function ge(e){if(!1===e||null==e)return 0;if("function"==typeof e.valueOf&&(!1===(e=e.valueOf())||null==e))return 0;if(!0===e)return 1;var t=typeof e;if("number"===t){if(e!=e||e===1/0)return 0;var r=0|e;for(r!==e&&(r^=4294967295*e);e>4294967295;)r^=e/=4294967295;return me(r)}if("string"===t)return e.length>xe?function(e){var t=Ae[e];return void 0===t&&(t=_e(e),Re===Oe&&(Re=0,Ae={}),Re++,Ae[e]=t),t}(e):_e(e);if("function"==typeof e.hashCode)return e.hashCode();if("object"===t)return function(e){var t;if(Ee&&void 0!==(t=be.get(e)))return t;if(void 0!==(t=e[Te]))return t;if(!we){if(void 0!==(t=e.propertyIsEnumerable&&e.propertyIsEnumerable[Te]))return t;if(void 0!==(t=function(e){if(e&&e.nodeType>0)switch(e.nodeType){case 1:return e.uniqueID;case 9:return e.documentElement&&e.documentElement.uniqueID}}(e)))return t}if(t=++Se,1073741824&Se&&(Se=0),Ee)be.set(e,t);else{if(void 0!==ve&&!1===ve(e))throw new Error("Non-extensible objects are not allowed as keys.");if(we)Object.defineProperty(e,Te,{enumerable:!1,configurable:!1,writable:!1,value:t});else if(void 0!==e.propertyIsEnumerable&&e.propertyIsEnumerable===e.constructor.prototype.propertyIsEnumerable)e.propertyIsEnumerable=function(){return this.constructor.prototype.propertyIsEnumerable.apply(this,arguments)},e.propertyIsEnumerable[Te]=t;else{if(void 0===e.nodeType)throw new Error("Unable to set a non-enumerable property on object.");e[Te]=t}}return t}(e);if("function"==typeof e.toString)return _e(e.toString());throw new Error("Value type "+t+" cannot be hashed.")}function _e(e){for(var t=0,r=0;r=t.length)throw new Error("Missing value for key: "+t[r]);e.set(t[r],t[r+1])}}))},Pe.prototype.toString=function(){return this.__toString("Map {","}")},Pe.prototype.get=function(e,t){return this._root?this._root.get(0,void 0,e,t):t},Pe.prototype.set=function(e,t){return ze(this,e,t)},Pe.prototype.setIn=function(e,t){return this.updateIn(e,y,(function(){return t}))},Pe.prototype.remove=function(e){return ze(this,e,y)},Pe.prototype.deleteIn=function(e){return this.updateIn(e,(function(){return y}))},Pe.prototype.update=function(e,t,r){return 1===arguments.length?e(this):this.updateIn([e],t,r)},Pe.prototype.updateIn=function(e,t,r){r||(r=t,t=void 0);var n=function e(t,r,n,i){var a=t===y,o=r.next();if(o.done){var s=a?n:t,u=i(s);return u===s?t:u}ce(a||t&&t.set,"invalid keyPath");var c=o.value,l=a?y:t.get(c,y),h=e(l,r,n,i);return h===l?t:h===y?t.remove(c):(a?Ge():t).set(c,h)}(this,Yt(e),t,r);return n===y?void 0:n},Pe.prototype.clear=function(){return 0===this.size?this:this.__ownerID?(this.size=0,this._root=null,this.__hash=void 0,this.__altered=!0,this):Ge()},Pe.prototype.merge=function(){return Ye(this,void 0,arguments)},Pe.prototype.mergeWith=function(t){var r=e.call(arguments,1);return Ye(this,t,r)},Pe.prototype.mergeIn=function(t){var r=e.call(arguments,1);return this.updateIn(t,Ge(),(function(e){return"function"==typeof e.merge?e.merge.apply(e,r):r[r.length-1]}))},Pe.prototype.mergeDeep=function(){return Ye(this,Je,arguments)},Pe.prototype.mergeDeepWith=function(t){var r=e.call(arguments,1);return Ye(this,We(t),r)},Pe.prototype.mergeDeepIn=function(t){var r=e.call(arguments,1);return this.updateIn(t,Ge(),(function(e){return"function"==typeof e.mergeDeep?e.mergeDeep.apply(e,r):r[r.length-1]}))},Pe.prototype.sort=function(e){return wt(Ft(this,e))},Pe.prototype.sortBy=function(e,t){return wt(Ft(this,t,e))},Pe.prototype.withMutations=function(e){var t=this.asMutable();return e(t),t.wasAltered()?t.__ensureOwner(this.__ownerID):this},Pe.prototype.asMutable=function(){return this.__ownerID?this:this.__ensureOwner(new v)},Pe.prototype.asImmutable=function(){return this.__ensureOwner()},Pe.prototype.wasAltered=function(){return this.__altered},Pe.prototype.__iterator=function(e,t){return new Be(this,e,t)},Pe.prototype.__iterate=function(e,t){var r=this,n=0;return this._root&&this._root.iterate((function(t){return n++,e(t[1],t[0],r)}),t),n},Pe.prototype.__ensureOwner=function(e){return e===this.__ownerID?this:e?He(this.size,this._root,e,this.__hash):(this.__ownerID=e,this.__altered=!1,this)},Pe.isMap=Ne;var Ce,je="@@__IMMUTABLE_MAP__@@",De=Pe.prototype;function ke(e,t){this.ownerID=e,this.entries=t}function Le(e,t,r){this.ownerID=e,this.bitmap=t,this.nodes=r}function Me(e,t,r){this.ownerID=e,this.count=t,this.nodes=r}function Fe(e,t,r){this.ownerID=e,this.keyHash=t,this.entries=r}function qe(e,t,r){this.ownerID=e,this.keyHash=t,this.entry=r}function Be(e,t,r){this._type=t,this._reverse=r,this._stack=e._root&&Ve(e._root)}function Ue(e,t){return k(e,t[0],t[1])}function Ve(e,t){return{node:e,index:0,__prev:t}}function He(e,t,r,n){var i=Object.create(De);return i.size=e,i._root=t,i.__ownerID=r,i.__hash=n,i.__altered=!1,i}function Ge(){return Ce||(Ce=He(0))}function ze(e,t,r){var n,i;if(e._root){var a=_(m),o=_(g);if(n=Qe(e._root,e.__ownerID,0,void 0,t,r,a,o),!o.value)return e;i=e.size+(a.value?r===y?-1:1:0)}else{if(r===y)return e;i=1,n=new ke(e.__ownerID,[[t,r]])}return e.__ownerID?(e.size=i,e._root=n,e.__hash=void 0,e.__altered=!0,e):n?He(i,n):Ge()}function Qe(e,t,r,n,i,a,o,s){return e?e.update(t,r,n,i,a,o,s):a===y?e:(b(s),b(o),new qe(t,n,[i,a]))}function $e(e){return e.constructor===qe||e.constructor===Fe}function Xe(e,t,r,n,i){if(e.keyHash===n)return new Fe(t,n,[e.entry,i]);var a,o=31&(0===r?e.keyHash:e.keyHash>>>r),s=31&(0===r?n:n>>>r);return new Le(t,1<>1&1431655765))+(e>>2&858993459))+(e>>4)&252645135,e+=e>>8,127&(e+=e>>16)}function et(e,t,r,n){var i=n?e:w(e);return i[t]=r,i}De[je]=!0,De.delete=De.remove,De.removeIn=De.deleteIn,ke.prototype.get=function(e,t,r,n){for(var i=this.entries,a=0,o=i.length;a=tt)return function(e,t,r,n){e||(e=new v);for(var i=new qe(e,ge(r),[r,n]),a=0;a>>e)),a=this.bitmap;return 0==(a&i)?n:this.nodes[Ze(a&i-1)].get(e+5,t,r,n)},Le.prototype.update=function(e,t,r,n,i,a,o){void 0===r&&(r=ge(n));var s=31&(0===t?r:r>>>t),u=1<=rt)return function(e,t,r,n,i){for(var a=0,o=new Array(32),s=0;0!==r;s++,r>>>=1)o[s]=1&r?t[a++]:void 0;return o[n]=i,new Me(e,a+1,o)}(e,p,c,s,f);if(l&&!f&&2===p.length&&$e(p[1^h]))return p[1^h];if(l&&f&&1===p.length&&$e(f))return f;var m=e&&e===this.ownerID,g=l?f?c:c^u:c|u,_=l?f?et(p,h,f,m):function(e,t,r){var n=e.length-1;if(r&&t===n)return e.pop(),e;for(var i=new Array(n),a=0,o=0;o>>e),a=this.nodes[i];return a?a.get(e+5,t,r,n):n},Me.prototype.update=function(e,t,r,n,i,a,o){void 0===r&&(r=ge(n));var s=31&(0===t?r:r>>>t),u=i===y,c=this.nodes,l=c[s];if(u&&!l)return this;var h=Qe(l,e,t+5,r,n,i,a,o);if(h===l)return this;var p=this.count;if(l){if(!h&&--p0&&n<32?dt(0,n,5,null,new ut(r.toArray())):t.withMutations((function(e){e.setSize(n),r.forEach((function(t,r){return e.set(r,t)}))})))}function at(e){return!(!e||!e[ot])}t(it,de),it.of=function(){return this(arguments)},it.prototype.toString=function(){return this.__toString("List [","]")},it.prototype.get=function(e,t){if((e=S(this,e))>=0&&e=e.size||t<0)return e.withMutations((function(e){t<0?_t(e,t).set(0,r):_t(e,0,t+1).set(t,r)}));t+=e._origin;var n=e._tail,i=e._root,a=_(g);return t>=vt(e._capacity)?n=yt(n,e.__ownerID,0,t,r,a):i=yt(i,e.__ownerID,e._level,t,r,a),a.value?e.__ownerID?(e._root=i,e._tail=n,e.__hash=void 0,e.__altered=!0,e):dt(e._origin,e._capacity,e._level,i,n):e}(this,e,t)},it.prototype.remove=function(e){return this.has(e)?0===e?this.shift():e===this.size-1?this.pop():this.splice(e,1):this},it.prototype.insert=function(e,t){return this.splice(e,0,t)},it.prototype.clear=function(){return 0===this.size?this:this.__ownerID?(this.size=this._origin=this._capacity=0,this._level=5,this._root=this._tail=null,this.__hash=void 0,this.__altered=!0,this):ft()},it.prototype.push=function(){var e=arguments,t=this.size;return this.withMutations((function(r){_t(r,0,t+e.length);for(var n=0;n>>t&31;if(n>=this.array.length)return new ut([],e);var i,a=0===n;if(t>0){var o=this.array[n];if((i=o&&o.removeBefore(e,t-5,r))===o&&a)return this}if(a&&!i)return this;var s=mt(this,e);if(!a)for(var u=0;u>>t&31;if(i>=this.array.length)return this;if(t>0){var a=this.array[i];if((n=a&&a.removeAfter(e,t-5,r))===a&&i===this.array.length-1)return this}var o=mt(this,e);return o.array.splice(i+1),n&&(o.array[i]=n),o};var ct,lt,ht={};function pt(e,t){var r=e._origin,n=e._capacity,i=vt(n),a=e._tail;return o(e._root,e._level,0);function o(e,s,u){return 0===s?function(e,o){var s=o===i?a&&a.array:e&&e.array,u=o>r?0:r-o,c=n-o;return c>32&&(c=32),function(){if(u===c)return ht;var e=t?--c:u++;return s&&s[e]}}(e,u):function(e,i,a){var s,u=e&&e.array,c=a>r?0:r-a>>i,l=1+(n-a>>i);return l>32&&(l=32),function(){for(;;){if(s){var e=s();if(e!==ht)return e;s=null}if(c===l)return ht;var r=t?--l:c++;s=o(u&&u[r],i-5,a+(r<>>r&31,u=e&&s0){var c=e&&e.array[s],l=yt(c,t,r-5,n,i,a);return l===c?e:((o=mt(e,t)).array[s]=l,o)}return u&&e.array[s]===i?e:(b(a),o=mt(e,t),void 0===i&&s===o.array.length-1?o.array.pop():o.array[s]=i,o)}function mt(e,t){return t&&e&&t===e.ownerID?e:new ut(e?e.array.slice():[],t)}function gt(e,t){if(t>=vt(e._capacity))return e._tail;if(t<1<0;)r=r.array[t>>>n&31],n-=5;return r}}function _t(e,t,r){void 0!==t&&(t|=0),void 0!==r&&(r|=0);var n=e.__ownerID||new v,i=e._origin,a=e._capacity,o=i+t,s=void 0===r?a:r<0?a+r:i+r;if(o===i&&s===a)return e;if(o>=s)return e.clear();for(var u=e._level,c=e._root,l=0;o+l<0;)c=new ut(c&&c.array.length?[void 0,c]:[],n),l+=1<<(u+=5);l&&(o+=l,i+=l,s+=l,a+=l);for(var h=vt(a),p=vt(s);p>=1<h?new ut([],n):d;if(d&&p>h&&o5;m-=5){var g=h>>>m&31;y=y.array[g]=mt(y.array[g],n)}y.array[h>>>5&31]=d}if(s=p)o-=p,s-=p,u=5,c=null,f=f&&f.removeBefore(n,0,o);else if(o>i||p>>u&31;if(_!==p>>>u&31)break;_&&(l+=(1<i&&(c=c.removeBefore(n,u,o-l)),c&&pa&&(a=c.size),o(u)||(c=c.map((function(e){return ne(e)}))),n.push(c)}return a>e.size&&(e=e.setSize(a)),Ke(e,t,n)}function vt(e){return e<32?0:e-1>>>5<<5}function wt(e){return null==e?Tt():Et(e)?e:Tt().withMutations((function(t){var r=n(e);Ie(r.size),r.forEach((function(e,r){return t.set(r,e)}))}))}function Et(e){return Ne(e)&&l(e)}function St(e,t,r,n){var i=Object.create(wt.prototype);return i.size=e?e.size:0,i._map=e,i._list=t,i.__ownerID=r,i.__hash=n,i}function Tt(){return lt||(lt=St(Ge(),ft()))}function xt(e,t,r){var n,i,a=e._map,o=e._list,s=a.get(t),u=void 0!==s;if(r===y){if(!u)return e;o.size>=32&&o.size>=2*a.size?(n=(i=o.filter((function(e,t){return void 0!==e&&s!==t}))).toKeyedSeq().map((function(e){return e[0]})).flip().toMap(),e.__ownerID&&(n.__ownerID=i.__ownerID=e.__ownerID)):(n=a.remove(t),i=s===o.size-1?o.pop():o.set(s,void 0))}else if(u){if(r===o.get(s)[1])return e;n=a,i=o.set(s,[t,r])}else n=a.set(t,o.size),i=o.set(o.size,[t,r]);return e.__ownerID?(e.size=n.size,e._map=n,e._list=i,e.__hash=void 0,e):St(n,i)}function Ot(e,t){this._iter=e,this._useKeys=t,this.size=e.size}function Rt(e){this._iter=e,this.size=e.size}function At(e){this._iter=e,this.size=e.size}function It(e){this._iter=e,this.size=e.size}function Pt(e){var t=Qt(e);return t._iter=e,t.size=e.size,t.flip=function(){return e},t.reverse=function(){var t=e.reverse.apply(this);return t.flip=function(){return e.reverse()},t},t.has=function(t){return e.includes(t)},t.includes=function(t){return e.has(t)},t.cacheResult=$t,t.__iterateUncached=function(t,r){var n=this;return e.__iterate((function(e,r){return!1!==t(r,e,n)}),r)},t.__iteratorUncached=function(t,r){if(2===t){var n=e.__iterator(t,r);return new D((function(){var e=n.next();if(!e.done){var t=e.value[0];e.value[0]=e.value[1],e.value[1]=t}return e}))}return e.__iterator(1===t?0:1,r)},t}function Nt(e,t,r){var n=Qt(e);return n.size=e.size,n.has=function(t){return e.has(t)},n.get=function(n,i){var a=e.get(n,y);return a===y?i:t.call(r,a,n,e)},n.__iterateUncached=function(n,i){var a=this;return e.__iterate((function(e,i,o){return!1!==n(t.call(r,e,i,o),i,a)}),i)},n.__iteratorUncached=function(n,i){var a=e.__iterator(2,i);return new D((function(){var i=a.next();if(i.done)return i;var o=i.value,s=o[0];return k(n,s,t.call(r,o[1],s,e),i)}))},n}function Ct(e,t){var r=Qt(e);return r._iter=e,r.size=e.size,r.reverse=function(){return e},e.flip&&(r.flip=function(){var t=Pt(e);return t.reverse=function(){return e.flip()},t}),r.get=function(r,n){return e.get(t?r:-1-r,n)},r.has=function(r){return e.has(t?r:-1-r)},r.includes=function(t){return e.includes(t)},r.cacheResult=$t,r.__iterate=function(t,r){var n=this;return e.__iterate((function(e,r){return t(e,r,n)}),!r)},r.__iterator=function(t,r){return e.__iterator(t,!r)},r}function jt(e,t,r,n){var i=Qt(e);return n&&(i.has=function(n){var i=e.get(n,y);return i!==y&&!!t.call(r,i,n,e)},i.get=function(n,i){var a=e.get(n,y);return a!==y&&t.call(r,a,n,e)?a:i}),i.__iterateUncached=function(i,a){var o=this,s=0;return e.__iterate((function(e,a,u){if(t.call(r,e,a,u))return s++,i(e,n?a:s-1,o)}),a),s},i.__iteratorUncached=function(i,a){var o=e.__iterator(2,a),s=0;return new D((function(){for(;;){var a=o.next();if(a.done)return a;var u=a.value,c=u[0],l=u[1];if(t.call(r,l,c,e))return k(i,n?c:s++,l,a)}}))},i}function Dt(e,t,r,n){var i=e.size;if(void 0!==t&&(t|=0),void 0!==r&&(r===1/0?r=i:r|=0),x(t,r,i))return e;var a=O(t,i),o=R(r,i);if(a!=a||o!=o)return Dt(e.toSeq().cacheResult(),t,r,n);var s,u=o-a;u==u&&(s=u<0?0:u);var c=Qt(e);return c.size=0===s?s:e.size&&s||void 0,!n&&J(e)&&s>=0&&(c.get=function(t,r){return(t=S(this,t))>=0&&ts)return{value:void 0,done:!0};var e=i.next();return n||1===t?e:k(t,u-1,0===t?void 0:e.value[1],e)}))},c}function kt(e,t,r,n){var i=Qt(e);return i.__iterateUncached=function(i,a){var o=this;if(a)return this.cacheResult().__iterate(i,a);var s=!0,u=0;return e.__iterate((function(e,a,c){if(!s||!(s=t.call(r,e,a,c)))return u++,i(e,n?a:u-1,o)})),u},i.__iteratorUncached=function(i,a){var o=this;if(a)return this.cacheResult().__iterator(i,a);var s=e.__iterator(2,a),u=!0,c=0;return new D((function(){var e,a,l;do{if((e=s.next()).done)return n||1===i?e:k(i,c++,0===i?void 0:e.value[1],e);var h=e.value;a=h[0],l=h[1],u&&(u=t.call(r,l,a,o))}while(u);return 2===i?e:k(i,a,l,e)}))},i}function Lt(e,t){var r=s(e),i=[e].concat(t).map((function(e){return o(e)?r&&(e=n(e)):e=r?K(e):Z(Array.isArray(e)?e:[e]),e})).filter((function(e){return 0!==e.size}));if(0===i.length)return e;if(1===i.length){var a=i[0];if(a===e||r&&s(a)||u(e)&&u(a))return a}var c=new Q(i);return r?c=c.toKeyedSeq():u(e)||(c=c.toSetSeq()),(c=c.flatten(!0)).size=i.reduce((function(e,t){if(void 0!==e){var r=t.size;if(void 0!==r)return e+r}}),0),c}function Mt(e,t,r){var n=Qt(e);return n.__iterateUncached=function(n,i){var a=0,s=!1;return function e(u,c){var l=this;u.__iterate((function(i,u){return(!t||c0}function Ut(e,t,n){var i=Qt(e);return i.size=new Q(n).map((function(e){return e.size})).min(),i.__iterate=function(e,t){for(var r,n=this.__iterator(1,t),i=0;!(r=n.next()).done&&!1!==e(r.value,i++,this););return i},i.__iteratorUncached=function(e,i){var a=n.map((function(e){return e=r(e),q(i?e.reverse():e)})),o=0,s=!1;return new D((function(){var r;return s||(r=a.map((function(e){return e.next()})),s=r.some((function(e){return e.done}))),s?{value:void 0,done:!0}:k(e,o++,t.apply(null,r.map((function(e){return e.value}))))}))},i}function Vt(e,t){return J(e)?t:e.constructor(t)}function Ht(e){if(e!==Object(e))throw new TypeError("Expected [K, V] tuple: "+e)}function Gt(e){return Ie(e.size),E(e)}function zt(e){return s(e)?n:u(e)?i:a}function Qt(e){return Object.create((s(e)?H:u(e)?G:z).prototype)}function $t(){return this._iter.cacheResult?(this._iter.cacheResult(),this.size=this._iter.size,this):V.prototype.cacheResult.call(this)}function Xt(e,t){return e>t?1:e=0;r--)t={value:arguments[r],next:t};return this.__ownerID?(this.size=e,this._head=t,this.__hash=void 0,this.__altered=!0,this):vr(e,t)},yr.prototype.pushAll=function(e){if(0===(e=i(e)).size)return this;Ie(e.size);var t=this.size,r=this._head;return e.reverse().forEach((function(e){t++,r={value:e,next:r}})),this.__ownerID?(this.size=t,this._head=r,this.__hash=void 0,this.__altered=!0,this):vr(t,r)},yr.prototype.pop=function(){return this.slice(1)},yr.prototype.unshift=function(){return this.push.apply(this,arguments)},yr.prototype.unshiftAll=function(e){return this.pushAll(e)},yr.prototype.shift=function(){return this.pop.apply(this,arguments)},yr.prototype.clear=function(){return 0===this.size?this:this.__ownerID?(this.size=0,this._head=void 0,this.__hash=void 0,this.__altered=!0,this):wr()},yr.prototype.slice=function(e,t){if(x(e,t,this.size))return this;var r=O(e,this.size);if(R(t,this.size)!==this.size)return de.prototype.slice.call(this,e,t);for(var n=this.size-r,i=this._head;r--;)i=i.next;return this.__ownerID?(this.size=n,this._head=i,this.__hash=void 0,this.__altered=!0,this):vr(n,i)},yr.prototype.__ensureOwner=function(e){return e===this.__ownerID?this:e?vr(this.size,this._head,e,this.__hash):(this.__ownerID=e,this.__altered=!1,this)},yr.prototype.__iterate=function(e,t){if(t)return this.reverse().__iterate(e);for(var r=0,n=this._head;n&&!1!==e(n.value,r++,this);)n=n.next;return r},yr.prototype.__iterator=function(e,t){if(t)return this.reverse().__iterator(e);var r=0,n=this._head;return new D((function(){if(n){var t=n.value;return n=n.next,k(e,r++,t)}return{value:void 0,done:!0}}))},yr.isStack=mr;var gr,_r="@@__IMMUTABLE_STACK__@@",br=yr.prototype;function vr(e,t,r,n){var i=Object.create(br);return i.size=e,i._head=t,i.__ownerID=r,i.__hash=n,i.__altered=!1,i}function wr(){return gr||(gr=vr(0))}function Er(e,t){var r=function(r){e.prototype[r]=t[r]};return Object.keys(t).forEach(r),Object.getOwnPropertySymbols&&Object.getOwnPropertySymbols(t).forEach(r),e}br[_r]=!0,br.withMutations=De.withMutations,br.asMutable=De.asMutable,br.asImmutable=De.asImmutable,br.wasAltered=De.wasAltered,r.Iterator=D,Er(r,{toArray:function(){Ie(this.size);var e=new Array(this.size||0);return this.valueSeq().__iterate((function(t,r){e[r]=t})),e},toIndexedSeq:function(){return new Rt(this)},toJS:function(){return this.toSeq().map((function(e){return e&&"function"==typeof e.toJS?e.toJS():e})).__toJS()},toJSON:function(){return this.toSeq().map((function(e){return e&&"function"==typeof e.toJSON?e.toJSON():e})).__toJS()},toKeyedSeq:function(){return new Ot(this,!0)},toMap:function(){return Pe(this.toKeyedSeq())},toObject:function(){Ie(this.size);var e={};return this.__iterate((function(t,r){e[r]=t})),e},toOrderedMap:function(){return wt(this.toKeyedSeq())},toOrderedSet:function(){return cr(s(this)?this.valueSeq():this)},toSet:function(){return tr(s(this)?this.valueSeq():this)},toSetSeq:function(){return new At(this)},toSeq:function(){return u(this)?this.toIndexedSeq():s(this)?this.toKeyedSeq():this.toSetSeq()},toStack:function(){return yr(s(this)?this.valueSeq():this)},toList:function(){return it(s(this)?this.valueSeq():this)},toString:function(){return"[Iterable]"},__toString:function(e,t){return 0===this.size?e+t:e+" "+this.toSeq().map(this.__toStringMapper).join(", ")+" "+t},concat:function(){var t=e.call(arguments,0);return Vt(this,Lt(this,t))},includes:function(e){return this.some((function(t){return oe(t,e)}))},entries:function(){return this.__iterator(2)},every:function(e,t){Ie(this.size);var r=!0;return this.__iterate((function(n,i,a){if(!e.call(t,n,i,a))return r=!1,!1})),r},filter:function(e,t){return Vt(this,jt(this,e,t,!0))},find:function(e,t,r){var n=this.findEntry(e,t);return n?n[1]:r},forEach:function(e,t){return Ie(this.size),this.__iterate(t?e.bind(t):e)},join:function(e){Ie(this.size),e=void 0!==e?""+e:",";var t="",r=!0;return this.__iterate((function(n){r?r=!1:t+=e,t+=null!=n?n.toString():""})),t},keys:function(){return this.__iterator(0)},map:function(e,t){return Vt(this,Nt(this,e,t))},reduce:function(e,t,r){var n,i;return Ie(this.size),arguments.length<2?i=!0:n=t,this.__iterate((function(t,a,o){i?(i=!1,n=t):n=e.call(r,n,t,a,o)})),n},reduceRight:function(e,t,r){var n=this.toKeyedSeq().reverse();return n.reduce.apply(n,arguments)},reverse:function(){return Vt(this,Ct(this,!0))},slice:function(e,t){return Vt(this,Dt(this,e,t,!0))},some:function(e,t){return!this.every(Rr(e),t)},sort:function(e){return Vt(this,Ft(this,e))},values:function(){return this.__iterator(1)},butLast:function(){return this.slice(0,-1)},isEmpty:function(){return void 0!==this.size?0===this.size:!this.some((function(){return!0}))},count:function(e,t){return E(e?this.toSeq().filter(e,t):this)},countBy:function(e,t){return function(e,t,r){var n=Pe().asMutable();return e.__iterate((function(i,a){n.update(t.call(r,i,a,e),0,(function(e){return e+1}))})),n.asImmutable()}(this,e,t)},equals:function(e){return se(this,e)},entrySeq:function(){var e=this;if(e._cache)return new Q(e._cache);var t=e.toSeq().map(Or).toIndexedSeq();return t.fromEntrySeq=function(){return e.toSeq()},t},filterNot:function(e,t){return this.filter(Rr(e),t)},findEntry:function(e,t,r){var n=r;return this.__iterate((function(r,i,a){if(e.call(t,r,i,a))return n=[i,r],!1})),n},findKey:function(e,t){var r=this.findEntry(e,t);return r&&r[0]},findLast:function(e,t,r){return this.toKeyedSeq().reverse().find(e,t,r)},findLastEntry:function(e,t,r){return this.toKeyedSeq().reverse().findEntry(e,t,r)},findLastKey:function(e,t){return this.toKeyedSeq().reverse().findKey(e,t)},first:function(){return this.find(T)},flatMap:function(e,t){return Vt(this,function(e,t,r){var n=zt(e);return e.toSeq().map((function(i,a){return n(t.call(r,i,a,e))})).flatten(!0)}(this,e,t))},flatten:function(e){return Vt(this,Mt(this,e,!0))},fromEntrySeq:function(){return new It(this)},get:function(e,t){return this.find((function(t,r){return oe(r,e)}),void 0,t)},getIn:function(e,t){for(var r,n=this,i=Yt(e);!(r=i.next()).done;){var a=r.value;if((n=n&&n.get?n.get(a,y):y)===y)return t}return n},groupBy:function(e,t){return function(e,t,r){var n=s(e),i=(l(e)?wt():Pe()).asMutable();e.__iterate((function(a,o){i.update(t.call(r,a,o,e),(function(e){return(e=e||[]).push(n?[o,a]:a),e}))}));var a=zt(e);return i.map((function(t){return Vt(e,a(t))}))}(this,e,t)},has:function(e){return this.get(e,y)!==y},hasIn:function(e){return this.getIn(e,y)!==y},isSubset:function(e){return e="function"==typeof e.includes?e:r(e),this.every((function(t){return e.includes(t)}))},isSuperset:function(e){return(e="function"==typeof e.isSubset?e:r(e)).isSubset(this)},keyOf:function(e){return this.findKey((function(t){return oe(t,e)}))},keySeq:function(){return this.toSeq().map(xr).toIndexedSeq()},last:function(){return this.toSeq().reverse().first()},lastKeyOf:function(e){return this.toKeyedSeq().reverse().keyOf(e)},max:function(e){return qt(this,e)},maxBy:function(e,t){return qt(this,t,e)},min:function(e){return qt(this,e?Ar(e):Nr)},minBy:function(e,t){return qt(this,t?Ar(t):Nr,e)},rest:function(){return this.slice(1)},skip:function(e){return this.slice(Math.max(0,e))},skipLast:function(e){return Vt(this,this.toSeq().reverse().skip(e).reverse())},skipWhile:function(e,t){return Vt(this,kt(this,e,t,!0))},skipUntil:function(e,t){return this.skipWhile(Rr(e),t)},sortBy:function(e,t){return Vt(this,Ft(this,t,e))},take:function(e){return this.slice(0,Math.max(0,e))},takeLast:function(e){return Vt(this,this.toSeq().reverse().take(e).reverse())},takeWhile:function(e,t){return Vt(this,function(e,t,r){var n=Qt(e);return n.__iterateUncached=function(n,i){var a=this;if(i)return this.cacheResult().__iterate(n,i);var o=0;return e.__iterate((function(e,i,s){return t.call(r,e,i,s)&&++o&&n(e,i,a)})),o},n.__iteratorUncached=function(n,i){var a=this;if(i)return this.cacheResult().__iterator(n,i);var o=e.__iterator(2,i),s=!0;return new D((function(){if(!s)return{value:void 0,done:!0};var e=o.next();if(e.done)return e;var i=e.value,u=i[0],c=i[1];return t.call(r,c,u,a)?2===n?e:k(n,u,c,e):(s=!1,{value:void 0,done:!0})}))},n}(this,e,t))},takeUntil:function(e,t){return this.takeWhile(Rr(e),t)},valueSeq:function(){return this.toIndexedSeq()},hashCode:function(){return this.__hash||(this.__hash=function(e){if(e.size===1/0)return 0;var t=l(e),r=s(e),n=t?1:0;return function(e,t){return t=ye(t,3432918353),t=ye(t<<15|t>>>-15,461845907),t=ye(t<<13|t>>>-13,5),t=ye((t=(t+3864292196|0)^e)^t>>>16,2246822507),t=me((t=ye(t^t>>>13,3266489909))^t>>>16)}(e.__iterate(r?t?function(e,t){n=31*n+Cr(ge(e),ge(t))|0}:function(e,t){n=n+Cr(ge(e),ge(t))|0}:t?function(e){n=31*n+ge(e)|0}:function(e){n=n+ge(e)|0}),n)}(this))}});var Sr=r.prototype;Sr[h]=!0,Sr[j]=Sr.values,Sr.__toJS=Sr.toArray,Sr.__toStringMapper=Ir,Sr.inspect=Sr.toSource=function(){return this.toString()},Sr.chain=Sr.flatMap,Sr.contains=Sr.includes,Er(n,{flip:function(){return Vt(this,Pt(this))},mapEntries:function(e,t){var r=this,n=0;return Vt(this,this.toSeq().map((function(i,a){return e.call(t,[a,i],n++,r)})).fromEntrySeq())},mapKeys:function(e,t){var r=this;return Vt(this,this.toSeq().flip().map((function(n,i){return e.call(t,n,i,r)})).flip())}});var Tr=n.prototype;function xr(e,t){return t}function Or(e,t){return[t,e]}function Rr(e){return function(){return!e.apply(this,arguments)}}function Ar(e){return function(){return-e.apply(this,arguments)}}function Ir(e){return"string"==typeof e?JSON.stringify(e):String(e)}function Pr(){return w(arguments)}function Nr(e,t){return et?-1:0}function Cr(e,t){return e^t+2654435769+(e<<6)+(e>>2)|0}return Tr[p]=!0,Tr[j]=Sr.entries,Tr.__toJS=Sr.toObject,Tr.__toStringMapper=function(e,t){return JSON.stringify(t)+": "+Ir(e)},Er(i,{toKeyedSeq:function(){return new Ot(this,!1)},filter:function(e,t){return Vt(this,jt(this,e,t,!1))},findIndex:function(e,t){var r=this.findEntry(e,t);return r?r[0]:-1},indexOf:function(e){var t=this.keyOf(e);return void 0===t?-1:t},lastIndexOf:function(e){var t=this.lastKeyOf(e);return void 0===t?-1:t},reverse:function(){return Vt(this,Ct(this,!1))},slice:function(e,t){return Vt(this,Dt(this,e,t,!1))},splice:function(e,t){var r=arguments.length;if(t=Math.max(0|t,0),0===r||2===r&&!t)return this;e=O(e,e<0?this.count():this.size);var n=this.slice(0,e);return Vt(this,1===r?n:n.concat(w(arguments,2),this.slice(e+t)))},findLastIndex:function(e,t){var r=this.findLastEntry(e,t);return r?r[0]:-1},first:function(){return this.get(0)},flatten:function(e){return Vt(this,Mt(this,e,!1))},get:function(e,t){return(e=S(this,e))<0||this.size===1/0||void 0!==this.size&&e>this.size?t:this.find((function(t,r){return r===e}),void 0,t)},has:function(e){return(e=S(this,e))>=0&&(void 0!==this.size?this.size===1/0||et.length)return!1;for(let r=0;r1)throw new n.ErrorCoded(`Found illegal neighbouring entries next to @set for key: '${t}'`,n.ERROR_CODES.INVALID_SET_OR_LIST_OBJECT);return[]}if("@list"in r){if(Object.keys(r).length>1)throw new n.ErrorCoded(`Found illegal neighbouring entries next to @list for key: '${t}'`,n.ERROR_CODES.INVALID_SET_OR_LIST_OBJECT);const e=r["@list"];return Array.isArray(e)?0===e.length?[this.rdfNil]:this.parsingContext.idStack[i+1]||[]:await this.valueToTerm(await this.parsingContext.getContext(a),t,e,i-1,a.slice(0,-1))}if("@reverse"in r)return[];if("@graph"in o.getContextValueContainer(await this.parsingContext.getContext(a),t)){const e=this.parsingContext.graphContainerTermStack[i+1];return e?Object.values(e):[this.dataFactory.blankNode()]}return"@id"in r?(Object.keys(r).length>1&&(e=await this.parsingContext.getContext(a,0)),"@context"in r&&(e=await this.parsingContext.parseContext(r["@context"],e.getContextRaw())),"@vocab"===r["@type"]?this.nullableTermToArray(this.createVocabOrBaseTerm(e,r["@id"])):this.nullableTermToArray(this.resourceToTerm(e,r["@id"]))):this.parsingContext.emittedStack[i+1]?this.parsingContext.idStack[i+1]||(this.parsingContext.idStack[i+1]=[this.dataFactory.blankNode()]):[];case"string":return this.nullableTermToArray(this.stringValueToTerm(i,await this.getContextSelfOrPropertyScoped(e,t),t,r,null));case"boolean":return this.nullableTermToArray(this.stringValueToTerm(i,await this.getContextSelfOrPropertyScoped(e,t),t,Boolean(r).toString(),this.dataFactory.namedNode(o.XSD_BOOLEAN)));case"number":return this.nullableTermToArray(this.stringValueToTerm(i,await this.getContextSelfOrPropertyScoped(e,t),t,r,this.dataFactory.namedNode(r%1==0&&r<1e21?o.XSD_INTEGER:o.XSD_DOUBLE)));default:return this.parsingContext.emitError(new Error("Could not determine the RDF type of a "+s)),[]}}async getContextSelfOrPropertyScoped(e,t){const r=e.getContextRaw()[t];return r&&"object"==typeof r&&"@context"in r&&(e=await this.parsingContext.parseContext(r,e.getContextRaw(),!0)),e}nullableTermToArray(e){return e?[e]:[]}predicateToTerm(e,t){const r=e.expandTerm(t,!0,this.parsingContext.getExpandOptions());return r?"_"===r[0]&&":"===r[1]?this.parsingContext.produceGeneralizedRdf?this.dataFactory.blankNode(r.substr(2)):null:o.isValidIri(r)?this.dataFactory.namedNode(r):r&&this.parsingContext.strictValues?(this.parsingContext.emitError(new n.ErrorCoded("Invalid predicate IRI: "+r,n.ERROR_CODES.INVALID_IRI_MAPPING)),null):null:null}resourceToTerm(e,t){if(t.startsWith("_:"))return this.dataFactory.blankNode(t.substr(2));const r=e.expandTerm(t,!1,this.parsingContext.getExpandOptions());if(!o.isValidIri(r)){if(!r||!this.parsingContext.strictValues)return null;this.parsingContext.emitError(new Error("Invalid resource IRI: "+r))}return this.dataFactory.namedNode(r)}createVocabOrBaseTerm(e,t){if(t.startsWith("_:"))return this.dataFactory.blankNode(t.substr(2));const r=this.parsingContext.getExpandOptions();let n=e.expandTerm(t,!0,r);if(n===t&&(n=e.expandTerm(t,!1,r)),!o.isValidIri(n)){if(!n||!this.parsingContext.strictValues)return null;this.parsingContext.emitError(new Error("Invalid term IRI: "+n))}return this.dataFactory.namedNode(n)}intToString(e,t){if("number"==typeof e){if(Number.isFinite(e)){return!(e%1==0)||t&&t.value===o.XSD_DOUBLE?e.toExponential(15).replace(/(\d)0*e\+?/,"$1E"):Number(e).toString()}return e>0?"INF":"-INF"}return e}stringValueToTerm(e,t,r,n,i){const a=o.getContextValueType(t,r);if(a)if("@id"===a){if(!i)return this.resourceToTerm(t,this.intToString(n,i))}else if("@vocab"===a){if(!i)return this.createVocabOrBaseTerm(t,this.intToString(n,i))}else i=this.dataFactory.namedNode(a);if(!i){const a=o.getContextValueLanguage(t,r),s=o.getContextValueDirection(t,r);return s&&this.parsingContext.rdfDirection?this.createLanguageDirectionLiteral(e,this.intToString(n,i),a,s):this.dataFactory.literal(this.intToString(n,i),a)}return this.dataFactory.literal(this.intToString(n,i),i)}createLanguageDirectionLiteral(e,t,r,n){if("i18n-datatype"===this.parsingContext.rdfDirection)return r||(r=""),this.dataFactory.literal(t,this.dataFactory.namedNode(`https://www.w3.org/ns/i18n#${r}_${n}`));{const i=this.dataFactory.blankNode(),a=this.getDefaultGraph();return this.parsingContext.emitQuad(e,this.dataFactory.quad(i,this.dataFactory.namedNode(o.RDF+"value"),this.dataFactory.literal(t),a)),r&&this.parsingContext.emitQuad(e,this.dataFactory.quad(i,this.dataFactory.namedNode(o.RDF+"language"),this.dataFactory.literal(r),a)),this.parsingContext.emitQuad(e,this.dataFactory.quad(i,this.dataFactory.namedNode(o.RDF+"direction"),this.dataFactory.literal(n),a)),i}}valueToJsonString(e){return a(e)}async unaliasKeyword(e,t,r,i,a){if(Number.isInteger(e))return e;if(!i){const e=this.parsingContext.unaliasedKeywordCacheStack[r];if(e)return e}if(!n.Util.isPotentialKeyword(e)){let r=(a=a||await this.parsingContext.getContext(t)).getContextRaw()[e];r&&"object"==typeof r&&(r=r["@id"]),n.Util.isValidKeyword(r)&&(e=r)}return i?e:this.parsingContext.unaliasedKeywordCacheStack[r]=e}async unaliasKeywordParent(e,t){return await this.unaliasKeyword(t>0&&e[t-1],e,t-1)}async unaliasKeywords(e,t,r,n){const i={};for(const a in e)i[await this.unaliasKeyword(a,t,r+1,!0,n)]=e[a];return i}isLiteral(e){for(let t=e;t>=0;t--)if(this.parsingContext.literalStack[t]||this.parsingContext.jsonLiteralStack[t])return!0;return!1}async getDepthOffsetGraph(e,t){for(let r=e-1;r>0;r--)if("@graph"===await this.unaliasKeyword(t[r],t,r)){const n=(await i.EntryHandlerContainer.getContainerHandler(this.parsingContext,t,r)).containers;return i.EntryHandlerContainer.isComplexGraphContainer(n)?-1:e-r-1}return-1}validateReverseSubject(e){if("Literal"===e.termType)throw new n.ErrorCoded("Found illegal literal in subject position: "+e.value,n.ERROR_CODES.INVALID_REVERSE_PROPERTY_VALUE)}getDefaultGraph(){return this.parsingContext.defaultGraph||this.dataFactory.defaultGraph()}async getGraphContainerValue(e,t){let r=this.getDefaultGraph();const{containers:n,depth:a}=await i.EntryHandlerContainer.getContainerHandler(this.parsingContext,e,t);if("@graph"in n){const t=i.EntryHandlerContainer.getContainerGraphIndex(n,a,e),o=this.parsingContext.graphContainerTermStack[a];if(r=o?o[t]:null,!r){let i=null;if("@id"in n){const t=await this.getContainerKey(e[a],e,a);null!==t&&(i=await this.resourceToTerm(await this.parsingContext.getContext(e),t))}i||(i=this.dataFactory.blankNode()),this.parsingContext.graphContainerTermStack[a]||(this.parsingContext.graphContainerTermStack[a]={}),r=this.parsingContext.graphContainerTermStack[a][t]=i}}return r}async getPropertiesDepth(e,t){let r=t;for(let n=t-1;n>0;n--)if("number"!=typeof e[n]){const t=await this.unaliasKeyword(e[n],e,n);if("@reverse"===t)return n;if("@nest"!==t)return r;r=n}return r}async getContainerKey(e,t,r){const n=await this.unaliasKeyword(e,t,r);return"@none"===n?null:n}}o.XSD="http://www.w3.org/2001/XMLSchema#",o.XSD_BOOLEAN=o.XSD+"boolean",o.XSD_INTEGER=o.XSD+"integer",o.XSD_DOUBLE=o.XSD+"double",o.RDF="http://www.w3.org/1999/02/22-rdf-syntax-ns#",t.Util=o},function(e,t,r){"use strict";Object.defineProperty(t,"__esModule",{value:!0});t.EntryHandlerKeyword=class{constructor(e){this.keyword=e}isPropertyHandler(){return!1}isStackProcessor(){return!0}async validate(e,t,r,n,i){return!1}async test(e,t,r,n,i){return r===this.keyword}}},function(e,t,r){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),function(e){for(var r in e)t.hasOwnProperty(r)||(t[r]=e[r])}(r(204))},function(e,t){e.exports=solid.auth},function(e){e.exports=JSON.parse('{"@context":{"acl":"http://www.w3.org/ns/auth/acl#","app":"http://www.w3.org/ns/solid/app#","as":"https://www.w3.org/ns/activitystreams#","cert":"http://www.w3.org/ns/auth/cert#","dc":"http://purl.org/dc/elements/1.1/","dct":"http://purl.org/dc/terms/","foaf":"http://xmlns.com/foaf/0.1/","ldp":"http://www.w3.org/ns/ldp#","owl":"http://www.w3.org/2002/07/owl#","pim":"http://www.w3.org/ns/pim/space#","rdf":"http://www.w3.org/1999/02/22-rdf-syntax-ns#","rdfs":"http://www.w3.org/2000/01/rdf-schema#","schema":"http://schema.org/","sioc":"http://rdfs.org/sioc/ns#","solid":"http://www.w3.org/ns/solid/terms#","stat":"http://www.w3.org/ns/posix/stat#","ui":"http://www.w3.org/ns/ui#","vcard":"http://www.w3.org/2006/vcard/ns#","xsd":"http://www.w3.org/2001/XMLSchema#","accessControl":"acl:accessControl","accessTo":"acl:accessTo","accessToClass":"acl:accessToClass","agent":"acl:agent","agents":"acl:agent","agentClass":"acl:agentClass","agentClasses":"acl:agentClass","agentGroup":"acl:agentGroup","agentGroups":"acl:agentGroup","defaultAcl":"acl:default","defaultAclForNew":"acl:defaultForNew","delegates":"acl:delegates","mode":"acl:mode","modes":"acl:mode","origin":"acl:origin","origins":"acl:origin","actor":"as:actor","attachment":"as:attachment","attributedTo":"as:attributedTo","author":"as:author","bcc":"as:bcc","bto":"as:bto","cc":"as:cc","inReplyTo":"as:inReplyTo","object":"as:object","publicationDate":"as:published","subject":"as:subject","summary":"as:summary","target":"as:target","to":"as:to","abstract":"dc:abstract","abstracts":"dc:abstract","created":"dc:created","license":"dc:license","modified":"dc:modified","title":"dc:title","titles":"dc:title","account":"foaf:account","accounts":"foaf:account","age":"foaf:age","basedNear":"foaf:based_near","birthday":"foaf:birthday","blog":"foaf:weblog","depiction":"foaf:depiction","depicts":"foaf:depicts","email":"foaf:mbox","familyName":"foaf:familyName","firstName":"foaf:givenName","friend":"foaf:knows","friends":"foaf:knows","gender":"foaf:gender","givenName":"foaf:givenName","homepage":"foaf:homepage","image":"foaf:img","images":"foaf:img","interest":"foaf:topic_interest","interests":"foaf:topic_interest","knows":"foaf:knows","lastName":"foaf:familyName","logo":"foaf:logo","made":"foaf:made","maker":"foaf:maker","member":"foaf:member","name":"foaf:name","nick":"foaf:nick","page":"foaf:page","pages":"foaf:page","primaryTopic":"foaf:primaryTopic","primaryTopicOf":"foaf:primaryTopicOf","publication":"foaf:publications","publications":"foaf:publications","thumbnail":"foaf:thumbnail","thumbnails":"foaf:thumbnail","topic":"foaf:topic","topics":"foaf:topic","inbox":"ldp:inbox","inboxes":"ldp:inbox","storage":"pim:storage","preferences":"pim:preferencesFile","workspace":"pim:workspace","type":"rdf:type","types":"rdf:type","comment":"rdfs:comment","comments":"rdfs:comment","label":"rdfs:label","labels":"rdfs:label","seeAlso":"rdfs:seeAlso","definedBy":"rdfs:isDefinedBy","oidcIssuer":"solid:oidcIssuer","publicTypeIndex":"solid:publicTypeIndex","publicTypeIndexes":"solid:publicTypeIndex","privateTypeIndex":"solid:privateTypeIndex","privateTypeIndexes":"solid:privateTypeIndex"}}')},,function(e,t,r){"use strict";var n={};function i(e,t,r){r||(r=Error);var i=function(e){var r,n;function i(r,n,i){return e.call(this,function(e,r,n){return"string"==typeof t?t:t(e,r,n)}(r,n,i))||this}return n=e,(r=i).prototype=Object.create(n.prototype),r.prototype.constructor=r,r.__proto__=n,i}(r);i.prototype.name=r.name,i.prototype.code=e,n[e]=i}function a(e,t){if(Array.isArray(e)){var r=e.length;return e=e.map((function(e){return String(e)})),r>2?"one of ".concat(t," ").concat(e.slice(0,r-1).join(", "),", or ")+e[r-1]:2===r?"one of ".concat(t," ").concat(e[0]," or ").concat(e[1]):"of ".concat(t," ").concat(e[0])}return"of ".concat(t," ").concat(String(e))}i("ERR_INVALID_OPT_VALUE",(function(e,t){return'The value "'+t+'" is invalid for option "'+e+'"'}),TypeError),i("ERR_INVALID_ARG_TYPE",(function(e,t,r){var n,i,o,s;if("string"==typeof t&&(i="not ",t.substr(!o||o<0?0:+o,i.length)===i)?(n="must not be",t=t.replace(/^not /,"")):n="must be",function(e,t,r){return(void 0===r||r>e.length)&&(r=e.length),e.substring(r-t.length,r)===t}(e," argument"))s="The ".concat(e," ").concat(n," ").concat(a(t,"type"));else{var u=function(e,t,r){return"number"!=typeof r&&(r=0),!(r+t.length>e.length)&&-1!==e.indexOf(t,r)}(e,".")?"property":"argument";s='The "'.concat(e,'" ').concat(u," ").concat(n," ").concat(a(t,"type"))}return s+=". Received type ".concat(typeof r)}),TypeError),i("ERR_STREAM_PUSH_AFTER_EOF","stream.push() after EOF"),i("ERR_METHOD_NOT_IMPLEMENTED",(function(e){return"The "+e+" method is not implemented"})),i("ERR_STREAM_PREMATURE_CLOSE","Premature close"),i("ERR_STREAM_DESTROYED",(function(e){return"Cannot call "+e+" after a stream was destroyed"})),i("ERR_MULTIPLE_CALLBACK","Callback called multiple times"),i("ERR_STREAM_CANNOT_PIPE","Cannot pipe, not readable"),i("ERR_STREAM_WRITE_AFTER_END","write after end"),i("ERR_STREAM_NULL_VALUES","May not write null values to stream",TypeError),i("ERR_UNKNOWN_ENCODING",(function(e){return"Unknown encoding: "+e}),TypeError),i("ERR_STREAM_UNSHIFT_AFTER_END_EVENT","stream.unshift() after end event"),e.exports.codes=n},function(e,t,r){"use strict";(function(t){var n=Object.keys||function(e){var t=[];for(var r in e)t.push(r);return t};e.exports=c;var i=r(92),a=r(96);r(10)(c,i);for(var o=n(a.prototype),s=0;s=this._finalSize&&(this._update(this._block),this._block.fill(0));var r=8*this._len;if(r<=4294967295)this._block.writeUInt32BE(r,this._blockSize-4);else{var n=(4294967295&r)>>>0,i=(r-n)/4294967296;this._block.writeUInt32BE(i,this._blockSize-8),this._block.writeUInt32BE(n,this._blockSize-4)}this._update(this._block);var a=this._hash();return e?a.toString(e):a},i.prototype._update=function(){throw new Error("_update must be implemented by subclass")},e.exports=i},function(e,t,r){"use strict";r.r(t),r.d(t,"DataFactory",(function(){return g})),r.d(t,"Lexer",(function(){return b.a})),r.d(t,"Parser",(function(){return w})),r.d(t,"Writer",(function(){return N})),r.d(t,"Store",(function(){return L})),r.d(t,"StreamParser",(function(){return F})),r.d(t,"StreamWriter",(function(){return q})),r.d(t,"Util",(function(){return n}));var n={};r.r(n),r.d(n,"isNamedNode",(function(){return B})),r.d(n,"isBlankNode",(function(){return U})),r.d(n,"isLiteral",(function(){return V})),r.d(n,"isVariable",(function(){return H})),r.d(n,"isDefaultGraph",(function(){return G})),r.d(n,"inDefaultGraph",(function(){return z})),r.d(n,"prefix",(function(){return Q})),r.d(n,"prefixes",(function(){return $}));var i=r(6);const{rdf:a,xsd:o}=i.a;var s,u,c=0;class l{constructor(e){this.id=e}get value(){return this.id}equals(e){return e instanceof l?this.id===e.id:!!e&&this.termType===e.termType&&this.value===e.value}toJSON(){return{termType:this.termType,value:this.value}}}class h extends l{get termType(){return"NamedNode"}}class p extends l{get termType(){return"Literal"}get value(){return this.id.substring(1,this.id.lastIndexOf('"'))}get language(){var e=this.id,t=e.lastIndexOf('"')+1;return t0?"INF":"-INF"))));return""===r||r===o.string?new p('"'+e+'"'):new p('"'+e+'"^^'+r)},defaultGraph:function(){return u},quad:_,triple:_,internal:{Term:l,NamedNode:h,BlankNode:d,Variable:f,Literal:p,DefaultGraph:y,Quad:m,Triple:m,fromId:function(e,t){if(t=t||s,!e)return t.defaultGraph();switch(e[0]){case"_":return t.blankNode(e.substr(2));case"?":return t.variable(e.substr(1));case'"':if(t===s)return new p(e);if('"'===e[e.length-1])return t.literal(e.substr(1,e.length-2));var r=e.lastIndexOf('"',e.length-1);return t.literal(e.substr(1,r-1),"@"===e[r+1]?e.substr(r+2):t.namedNode(e.substr(r+3)));default:return t.namedNode(e)}},toId:function(e){if("string"==typeof e)return e;if(e instanceof l)return e.id;if(!e)return u.id;switch(e.termType){case"NamedNode":return e.value;case"BlankNode":return"_:"+e.value;case"Variable":return"?"+e.value;case"DefaultGraph":return"";case"Literal":return'"'+e.value+'"'+(e.language?"@"+e.language:e.datatype&&e.datatype.value!==o.string?"^^"+e.datatype.value:"");default:throw new Error("Unexpected termType: "+e.termType)}}}};function _(e,t,r,n){return new m(e,t,r,n)}var b=r(60);let v=0;class w{constructor(e){this._contextStack=[],this._graph=null,e=e||{},this._setBase(e.baseIRI),e.factory&&S(this,e.factory);var t="string"==typeof e.format?e.format.match(/\w*$/)[0].toLowerCase():"",r="turtle"===t,n="trig"===t,i=/triple/.test(t),a=/quad/.test(t),o=this._n3Mode=/n3/.test(t),s=i||a;(this._supportsNamedGraphs=!(r||o))||(this._readPredicateOrNamedGraph=this._readPredicate),this._supportsQuads=!(r||n||i||o),s&&(this._resolveRelativeIRI=function(e){return null}),this._blankNodePrefix="string"!=typeof e.blankNodePrefix?"":e.blankNodePrefix.replace(/^(?!_:)/,"_:"),this._lexer=e.lexer||new b.a({lineMode:s,n3:o}),this._explicitQuantifiers=!!e.explicitQuantifiers}static _resetBlankNodePrefix(){v=0}_setBase(e){if(e){var t=e.indexOf("#");t>=0&&(e=e.substr(0,t)),this._base=e,this._basePath=e.indexOf("/")<0?e:e.replace(/[^\/?]*(?:\?.*)?$/,""),e=e.match(/^(?:([a-z][a-z0-9+.-]*:))?(?:\/\/[^\/]*)?/i),this._baseRoot=e[0],this._baseScheme=e[1]}else this._base="",this._basePath=""}_saveContext(e,t,r,n,i){var a=this._n3Mode;this._contextStack.push({subject:r,predicate:n,object:i,graph:t,type:e,inverse:!!a&&this._inversePredicate,blankPrefix:a?this._prefixes._:"",quantified:a?this._quantified:null}),a&&(this._inversePredicate=!1,this._prefixes._=this._graph?this._graph.id.substr(2)+".":".",this._quantified=Object.create(this._quantified))}_restoreContext(){var e=this._contextStack.pop(),t=this._n3Mode;this._subject=e.subject,this._predicate=e.predicate,this._object=e.object,this._graph=e.graph,t&&(this._inversePredicate=e.inverse,this._prefixes._=e.blankPrefix,this._quantified=e.quantified)}_readInTopContext(e){switch(e.type){case"eof":return null!==this._graph?this._error("Unclosed graph",e):(delete this._prefixes._,this._callback(null,null,this._prefixes));case"PREFIX":this._sparqlStyle=!0;case"@prefix":return this._readPrefix;case"BASE":this._sparqlStyle=!0;case"@base":return this._readBaseIRI;case"{":if(this._supportsNamedGraphs)return this._graph="",this._subject=null,this._readSubject;case"GRAPH":if(this._supportsNamedGraphs)return this._readNamedGraphLabel;default:return this._readSubject(e)}}_readEntity(e,t){var r;switch(e.type){case"IRI":case"typeIRI":var n=this._resolveIRI(e.value);if(null===n)return this._error("Invalid IRI",e);r=this._namedNode(n);break;case"type":case"prefixed":var i=this._prefixes[e.prefix];if(void 0===i)return this._error('Undefined prefix "'+e.prefix+':"',e);r=this._namedNode(i+e.value);break;case"blank":r=this._blankNode(this._prefixes[e.prefix]+e.value);break;case"var":r=this._variable(e.value.substr(1));break;default:return this._error("Expected entity but got "+e.type,e)}return!t&&this._n3Mode&&r.id in this._quantified&&(r=this._quantified[r.id]),r}_readSubject(e){switch(this._predicate=null,e.type){case"[":return this._saveContext("blank",this._graph,this._subject=this._blankNode(),null,null),this._readBlankNodeHead;case"(":return this._saveContext("list",this._graph,this.RDF_NIL,null,null),this._subject=null,this._readListItem;case"{":return this._n3Mode?(this._saveContext("formula",this._graph,this._graph=this._blankNode(),null,null),this._readSubject):this._error("Unexpected graph",e);case"}":return this._readPunctuation(e);case"@forSome":return this._n3Mode?(this._subject=null,this._predicate=this.N3_FORSOME,this._quantifier=this._blankNode,this._readQuantifierList):this._error('Unexpected "@forSome"',e);case"@forAll":return this._n3Mode?(this._subject=null,this._predicate=this.N3_FORALL,this._quantifier=this._variable,this._readQuantifierList):this._error('Unexpected "@forAll"',e);case"literal":if(!this._n3Mode)return this._error("Unexpected literal",e);if(0===e.prefix.length)return this._literalValue=e.value,this._completeSubjectLiteral;this._subject=this._literal(e.value,this._namedNode(e.prefix));break;default:if(void 0===(this._subject=this._readEntity(e)))return;if(this._n3Mode)return this._getPathReader(this._readPredicateOrNamedGraph)}return this._readPredicateOrNamedGraph}_readPredicate(e){var t=e.type;switch(t){case"inverse":this._inversePredicate=!0;case"abbreviation":this._predicate=this.ABBREVIATIONS[e.value];break;case".":case"]":case"}":return null===this._predicate?this._error("Unexpected "+t,e):(this._subject=null,"]"===t?this._readBlankNodeTail(e):this._readPunctuation(e));case";":return null!==this._predicate?this._readPredicate:this._error("Expected predicate but got ;",e);case"blank":if(!this._n3Mode)return this._error("Disallowed blank node as predicate",e);default:if(void 0===(this._predicate=this._readEntity(e)))return}return this._readObject}_readObject(e){switch(e.type){case"literal":if(0===e.prefix.length)return this._literalValue=e.value,this._readDataTypeOrLang;this._object=this._literal(e.value,this._namedNode(e.prefix));break;case"[":return this._saveContext("blank",this._graph,this._subject,this._predicate,this._subject=this._blankNode()),this._readBlankNodeHead;case"(":return this._saveContext("list",this._graph,this._subject,this._predicate,this.RDF_NIL),this._subject=null,this._readListItem;case"{":return this._n3Mode?(this._saveContext("formula",this._graph,this._subject,this._predicate,this._graph=this._blankNode()),this._readSubject):this._error("Unexpected graph",e);default:if(void 0===(this._object=this._readEntity(e)))return;if(this._n3Mode)return this._getPathReader(this._getContextEndReader())}return this._getContextEndReader()}_readPredicateOrNamedGraph(e){return"{"===e.type?this._readGraph(e):this._readPredicate(e)}_readGraph(e){return"{"!==e.type?this._error("Expected graph but got "+e.type,e):(this._graph=this._subject,this._subject=null,this._readSubject)}_readBlankNodeHead(e){return"]"===e.type?(this._subject=null,this._readBlankNodeTail(e)):(this._predicate=null,this._readPredicate(e))}_readBlankNodeTail(e){if("]"!==e.type)return this._readBlankNodePunctuation(e);null!==this._subject&&this._emit(this._subject,this._predicate,this._object,this._graph);var t=null===this._predicate;return this._restoreContext(),null===this._object?t?this._readPredicateOrNamedGraph:this._readPredicateAfterBlank:this._getContextEndReader()}_readPredicateAfterBlank(e){switch(e.type){case".":case"}":return this._subject=null,this._readPunctuation(e);default:return this._readPredicate(e)}}_readListItem(e){var t=null,r=null,n=this._subject,i=this._contextStack,a=i[i.length-1],o=this._readListItem;switch(e.type){case"[":this._saveContext("blank",this._graph,r=this._blankNode(),this.RDF_FIRST,this._subject=t=this._blankNode()),o=this._readBlankNodeHead;break;case"(":this._saveContext("list",this._graph,r=this._blankNode(),this.RDF_FIRST,this.RDF_NIL),this._subject=null;break;case")":if(this._restoreContext(),0!==i.length&&"list"===i[i.length-1].type&&this._emit(this._subject,this._predicate,this._object,this._graph),null===this._predicate){if(o=this._readPredicate,this._subject===this.RDF_NIL)return o}else if(o=this._getContextEndReader(),this._object===this.RDF_NIL)return o;r=this.RDF_NIL;break;case"literal":0===e.prefix.length?(this._literalValue=e.value,o=this._readListItemDataTypeOrLang):(t=this._literal(e.value,this._namedNode(e.prefix)),o=this._getContextEndReader());break;case"{":return this._n3Mode?(this._saveContext("formula",this._graph,this._subject,this._predicate,this._graph=this._blankNode()),this._readSubject):this._error("Unexpected graph",e);default:if(void 0===(t=this._readEntity(e)))return}if(null===r&&(this._subject=r=this._blankNode()),null===n?null===a.predicate?a.subject=r:a.object=r:this._emit(n,this.RDF_REST,r,this._graph),null!==t){if(this._n3Mode&&("IRI"===e.type||"prefixed"===e.type))return this._saveContext("item",this._graph,r,this.RDF_FIRST,t),this._subject=t,this._predicate=null,this._getPathReader(this._readListItem);this._emit(r,this.RDF_FIRST,t,this._graph)}return o}_readDataTypeOrLang(e){return this._completeObjectLiteral(e,!1)}_readListItemDataTypeOrLang(e){return this._completeObjectLiteral(e,!0)}_completeLiteral(e){let t=this._literal(this._literalValue);switch(e.type){case"type":case"typeIRI":var r=this._readEntity(e);if(void 0===r)return;t=this._literal(this._literalValue,r),e=null;break;case"langcode":t=this._literal(this._literalValue,e.value),e=null}return{token:e,literal:t}}_completeSubjectLiteral(e){return this._subject=this._completeLiteral(e).literal,this._readPredicateOrNamedGraph}_completeObjectLiteral(e,t){const r=this._completeLiteral(e);if(r)return this._object=r.literal,t&&this._emit(this._subject,this.RDF_FIRST,this._object,this._graph),null===r.token?this._getContextEndReader():(this._readCallback=this._getContextEndReader(),this._readCallback(r.token))}_readFormulaTail(e){return"}"!==e.type?this._readPunctuation(e):(null!==this._subject&&this._emit(this._subject,this._predicate,this._object,this._graph),this._restoreContext(),null===this._object?this._readPredicate:this._getContextEndReader())}_readPunctuation(e){var t,r=this._subject,n=this._graph,i=this._inversePredicate;switch(e.type){case"}":if(null===this._graph)return this._error("Unexpected graph closing",e);if(this._n3Mode)return this._readFormulaTail(e);this._graph=null;case".":this._subject=null,t=this._contextStack.length?this._readSubject:this._readInTopContext,i&&(this._inversePredicate=!1);break;case";":t=this._readPredicate;break;case",":t=this._readObject;break;default:if(this._supportsQuads&&null===this._graph&&void 0!==(n=this._readEntity(e))){t=this._readQuadPunctuation;break}return this._error('Expected punctuation to follow "'+this._object.id+'"',e)}if(null!==r){var a=this._predicate,o=this._object;i?this._emit(o,a,r,n):this._emit(r,a,o,n)}return t}_readBlankNodePunctuation(e){var t;switch(e.type){case";":t=this._readPredicate;break;case",":t=this._readObject;break;default:return this._error('Expected punctuation to follow "'+this._object.id+'"',e)}return this._emit(this._subject,this._predicate,this._object,this._graph),t}_readQuadPunctuation(e){return"."!==e.type?this._error("Expected dot to follow quad",e):this._readInTopContext}_readPrefix(e){return"prefix"!==e.type?this._error("Expected prefix to follow @prefix",e):(this._prefix=e.value,this._readPrefixIRI)}_readPrefixIRI(e){if("IRI"!==e.type)return this._error('Expected IRI to follow prefix "'+this._prefix+':"',e);var t=this._readEntity(e);return this._prefixes[this._prefix]=t.value,this._prefixCallback(this._prefix,t),this._readDeclarationPunctuation}_readBaseIRI(e){var t="IRI"===e.type&&this._resolveIRI(e.value);return t?(this._setBase(t),this._readDeclarationPunctuation):this._error("Expected valid IRI to follow base declaration",e)}_readNamedGraphLabel(e){switch(e.type){case"IRI":case"blank":case"prefixed":return this._readSubject(e),this._readGraph;case"[":return this._readNamedGraphBlankLabel;default:return this._error("Invalid graph label",e)}}_readNamedGraphBlankLabel(e){return"]"!==e.type?this._error("Invalid graph label",e):(this._subject=this._blankNode(),this._readGraph)}_readDeclarationPunctuation(e){return this._sparqlStyle?(this._sparqlStyle=!1,this._readInTopContext(e)):"."!==e.type?this._error("Expected declaration to end with a dot",e):this._readInTopContext}_readQuantifierList(e){var t;switch(e.type){case"IRI":case"prefixed":if(void 0!==(t=this._readEntity(e,!0)))break;default:return this._error("Unexpected "+e.type,e)}return this._explicitQuantifiers?(null===this._subject?this._emit(this._graph||this.DEFAULTGRAPH,this._predicate,this._subject=this._blankNode(),this.QUANTIFIERS_GRAPH):this._emit(this._subject,this.RDF_REST,this._subject=this._blankNode(),this.QUANTIFIERS_GRAPH),this._emit(this._subject,this.RDF_FIRST,t,this.QUANTIFIERS_GRAPH)):this._quantified[t.id]=this._quantifier(this._blankNode().value),this._readQuantifierPunctuation}_readQuantifierPunctuation(e){return","===e.type?this._readQuantifierList:(this._explicitQuantifiers&&(this._emit(this._subject,this.RDF_REST,this.RDF_NIL,this.QUANTIFIERS_GRAPH),this._subject=null),this._readCallback=this._getContextEndReader(),this._readCallback(e))}_getPathReader(e){return this._afterPath=e,this._readPath}_readPath(e){switch(e.type){case"!":return this._readForwardPath;case"^":return this._readBackwardPath;default:var t=this._contextStack,r=t.length&&t[t.length-1];if(r&&"item"===r.type){var n=this._subject;this._restoreContext(),this._emit(this._subject,this.RDF_FIRST,n,this._graph)}return this._afterPath(e)}}_readForwardPath(e){var t,r,n=this._blankNode();if(void 0!==(r=this._readEntity(e)))return null===this._predicate?(t=this._subject,this._subject=n):(t=this._object,this._object=n),this._emit(t,r,n,this._graph),this._readPath}_readBackwardPath(e){var t,r,n=this._blankNode();if(void 0!==(t=this._readEntity(e)))return null===this._predicate?(r=this._subject,this._subject=n):(r=this._object,this._object=n),this._emit(n,t,r,this._graph),this._readPath}_getContextEndReader(){var e=this._contextStack;if(!e.length)return this._readPunctuation;switch(e[e.length-1].type){case"blank":return this._readBlankNodeTail;case"list":return this._readListItem;case"formula":return this._readFormulaTail}}_emit(e,t,r,n){this._callback(null,this._quad(e,t,r,n||this.DEFAULTGRAPH))}_error(e,t){var r=new Error(e+" on line "+t.line+".");r.context={token:t,line:t.line,previousToken:this._lexer.previousToken},this._callback(r),this._callback=E}_resolveIRI(e){return/^[a-z][a-z0-9+.-]*:/i.test(e)?e:this._resolveRelativeIRI(e)}_resolveRelativeIRI(e){if(!e.length)return this._base;switch(e[0]){case"#":return this._base+e;case"?":return this._base.replace(/(?:\?.*)?$/,e);case"/":return("/"===e[1]?this._baseScheme:this._baseRoot)+this._removeDotSegments(e);default:return/^[^/:]*:/.test(e)?null:this._removeDotSegments(this._basePath+e)}}_removeDotSegments(e){if(!/(^|\/)\.\.?($|[/#?])/.test(e))return e;for(var t="",r=e.length,n=-1,i=-1,a=0,o="/";n=i&&(t=t.substr(0,a)),"/"!==o)return t+"/"+e.substr(n+1);a=n+1}}}o=e[++n]}return t+e.substring(a)}parse(e,t,r){var n=this;if(this._readCallback=this._readInTopContext,this._sparqlStyle=!1,this._prefixes=Object.create(null),this._prefixes._=this._blankNodePrefix?this._blankNodePrefix.substr(2):"b"+v+++"_",this._prefixCallback=r||E,this._inversePredicate=!1,this._quantified=Object.create(null),!t){var i,a=[];if(this._callback=function(e,t){e?i=e:t&&a.push(t)},this._lexer.tokenize(e).every((function(e){return n._readCallback=n._readCallback(e)})),i)throw i;return a}this._callback=t,this._lexer.tokenize(e,(function(e,t){null!==e?(n._callback(e),n._callback=E):n._readCallback&&(n._readCallback=n._readCallback(t))}))}}function E(){}function S(e,t){var r=t.namedNode;e._namedNode=r,e._blankNode=t.blankNode,e._literal=t.literal,e._variable=t.variable,e._quad=t.quad,e.DEFAULTGRAPH=t.defaultGraph(),e.RDF_FIRST=r(i.a.rdf.first),e.RDF_REST=r(i.a.rdf.rest),e.RDF_NIL=r(i.a.rdf.nil),e.N3_FORALL=r(i.a.r.forAll),e.N3_FORSOME=r(i.a.r.forSome),e.ABBREVIATIONS={a:r(i.a.rdf.type),"=":r(i.a.owl.sameAs),">":r(i.a.log.implies)},e.QUANTIFIERS_GRAPH=r("urn:n3:quantifiers")}S(w.prototype,g);const T=g.defaultGraph(),{rdf:x,xsd:O}=i.a;var R=/["\\\t\n\r\b\f\u0000-\u0019\ud800-\udbff]/,A=/["\\\t\n\r\b\f\u0000-\u0019]|[\ud800-\udbff][\udc00-\udfff]/g,I={"\\":"\\\\",'"':'\\"',"\t":"\\t","\n":"\\n","\r":"\\r","\b":"\\b","\f":"\\f"};class P extends g.internal.Term{equals(){return!1}}class N{constructor(e,t){if(this._prefixRegex=/$0^/,e&&"function"!=typeof e.write&&(t=e,e=null),t=t||{},this._lists=t.lists,e)this._outputStream=e,this._endStream=void 0===t.end||!!t.end;else{var r="";this._outputStream={write(e,t,n){r+=e,n&&n()},end:function(e){e&&e(null,r)}},this._endStream=!0}this._subject=null,/triple|quad/i.test(t.format)?this._writeQuad=this._writeQuadLine:(this._graph=T,this._prefixIRIs=Object.create(null),t.prefixes&&this.addPrefixes(t.prefixes))}get _inDefaultGraph(){return T.equals(this._graph)}_write(e,t){this._outputStream.write(e,"utf8",t)}_writeQuad(e,t,r,n,i){try{n.equals(this._graph)||(this._write((null===this._subject?"":this._inDefaultGraph?".\n":"\n}\n")+(T.equals(n)?"":this._encodeIriOrBlank(n)+" {\n")),this._graph=n,this._subject=null),e.equals(this._subject)?t.equals(this._predicate)?this._write(", "+this._encodeObject(r),i):this._write(";\n "+this._encodePredicate(this._predicate=t)+" "+this._encodeObject(r),i):this._write((null===this._subject?"":".\n")+this._encodeIriOrBlank(this._subject=e)+" "+this._encodePredicate(this._predicate=t)+" "+this._encodeObject(r),i)}catch(e){i&&i(e)}}_writeQuadLine(e,t,r,n,i){delete this._prefixMatch,this._write(this.quadToString(e,t,r,n),i)}quadToString(e,t,r,n){return this._encodeIriOrBlank(e)+" "+this._encodeIriOrBlank(t)+" "+this._encodeObject(r)+(n&&n.value?" "+this._encodeIriOrBlank(n)+" .\n":" .\n")}quadsToString(e){return e.map((function(e){return this.quadToString(e.subject,e.predicate,e.object,e.graph)}),this).join("")}_encodeIriOrBlank(e){if("NamedNode"!==e.termType)return this._lists&&e.value in this._lists&&(e=this.list(this._lists[e.value])),"id"in e?e.id:"_:"+e.value;var t=e.value;R.test(t)&&(t=t.replace(A,C));var r=this._prefixRegex.exec(t);return r?r[1]?this._prefixIRIs[r[1]]+r[2]:t:"<"+t+">"}_encodeLiteral(e){var t=e.value;return R.test(t)&&(t=t.replace(A,C)),e.language?'"'+t+'"@'+e.language:e.datatype.value!==O.string?'"'+t+'"^^'+this._encodeIriOrBlank(e.datatype):'"'+t+'"'}_encodePredicate(e){return e.value===x.type?"a":this._encodeIriOrBlank(e)}_encodeObject(e){return"Literal"===e.termType?this._encodeLiteral(e):this._encodeIriOrBlank(e)}_blockedWrite(){throw new Error("Cannot write because the writer has been closed.")}addQuad(e,t,r,n,i){void 0===r?this._writeQuad(e.subject,e.predicate,e.object,e.graph,t):"function"==typeof n?this._writeQuad(e,t,r,T,n):this._writeQuad(e,t,r,n||T,i)}addQuads(e){for(var t=0;t.\n")}if(n){var o="",s="";for(var u in r)o+=o?"|"+u:u,s+=(s?"|":"")+r[u];o=o.replace(/[\]\/\(\)\*\+\?\.\\\$]/g,"\\$&"),this._prefixRegex=new RegExp("^(?:"+s+")[^/]*$|^("+o+")([a-zA-Z][\\-_a-zA-Z0-9]*)$")}this._write(n?"\n":"",t)}blank(e,t){var r,n,i=e;switch(void 0===e?i=[]:e.termType?i=[{predicate:e,object:t}]:"length"in e||(i=[e]),n=i.length){case 0:return new P("[]");case 1:if(!((r=i[0]).object instanceof P))return new P("[ "+this._encodePredicate(r.predicate)+" "+this._encodeObject(r.object)+" ]");default:for(var a="[",o=0;o<"]=0,this._entities=Object.create(null),this._blankNodeIndex=0,t||!e||e[0]||(t=e,e=null),t=t||{},this._factory=t.factory||g,e&&this.addQuads(e)}get size(){var e=this._size;if(null!==e)return e;e=0;var t,r,n=this._graphs;for(var i in n)for(var a in t=n[i].subjects)for(var o in r=t[a])e+=Object.keys(r[o]).length;return this._size=e}_addToIndex(e,t,r,n){var i=e[t]||(e[t]={}),a=i[r]||(i[r]={}),o=n in a;return o||(a[n]=null),!o}_removeFromIndex(e,t,r,n){var i,a=e[t],o=a[r];for(i in delete o[n],o)return;for(i in delete a[r],a)return;delete e[t]}_findInIndex(e,t,r,n,i,a,o,s,u,c){var l,h,p,d=!t+!r+!n>1?Object.keys(this._ids):this._entities;for(var f in t&&((l=e,e={})[t]=l[t]),e){var y=d[f];if(h=e[f])for(var m in r&&((l=h,h={})[r]=l[r]),h){var g=d[m];if(p=h[m])for(var _=(n?n in p?[n]:[]:Object.keys(p)),b=0;b<_.length;b++){var v={subject:null,predicate:null,object:null};v[i]=k(y,this._factory),v[a]=k(g,this._factory),v[o]=k(d[_[b]],this._factory);var w=this._factory.quad(v.subject,v.predicate,v.object,k(s,this._factory));if(c)c.push(w);else if(u(w))return!0}}}return c}_loop(e,t){for(var r in e)t(r)}_loopByKey0(e,t,r){var n,i;if(n=e[t])for(i in n)r(i)}_loopByKey1(e,t,r){var n;for(n in e)e[n][t]&&r(n)}_loopBy2Keys(e,t,r,n){var i,a,o;if((i=e[t])&&(a=i[r]))for(o in a)n(o)}_countInIndex(e,t,r,n){var i,a,o,s=0;for(var u in t&&((i=e,e={})[t]=i[t]),e)if(a=e[u])for(var c in r&&((i=a,a={})[r]=i[r]),a)(o=a[c])&&(n?n in o&&s++:s+=Object.keys(o).length);return s}_getGraphs(e){if(!M(e))return this._graphs;var t={};return t[e]=this._graphs[e],t}_uniqueEntities(e){var t=Object.create(null),r=this._entities;return function(n){n in t||(t[n]=!0,e(k(r[n])))}}addQuad(e,t,r,n){t||(n=e.graph,r=e.object,t=e.predicate,e=e.subject),e=D(e),t=D(t),r=D(r),n=D(n);var i=this._graphs[n];i||(i=this._graphs[n]={subjects:{},predicates:{},objects:{}},Object.freeze(i));var a=this._ids,o=this._entities;e=a[e]||(a[o[++this._id]=e]=this._id),t=a[t]||(a[o[++this._id]=t]=this._id),r=a[r]||(a[o[++this._id]=r]=this._id);var s=this._addToIndex(i.subjects,e,t,r);return this._addToIndex(i.predicates,t,r,e),this._addToIndex(i.objects,r,e,t),this._size=null,s}addQuads(e){for(var t=0;t{for(var a of this.getQuads(e,t,r,n))i.push(a);i.push(null)},i}countQuads(e,t,r,n){e=e&&D(e),t=t&&D(t),r=r&&D(r),n=n&&D(n);var i,a,o,s,u=0,c=this._getGraphs(n),l=this._ids;if(M(e)&&!(a=l[e])||M(t)&&!(o=l[t])||M(r)&&!(s=l[r]))return 0;for(var h in c)(i=c[h])&&(u+=e?r?this._countInIndex(i.objects,s,a,o):this._countInIndex(i.subjects,a,o,s):t?this._countInIndex(i.predicates,o,s,a):this._countInIndex(i.objects,s,a,o));return u}forEach(e,t,r,n,i){this.some((function(t){return e(t),!1}),t,r,n,i)}every(e,t,r,n,i){var a=!1,o=!this.some((function(t){return a=!0,!e(t)}),t,r,n,i);return a&&o}some(e,t,r,n,i){t=t&&D(t),r=r&&D(r),n=n&&D(n),i=i&&D(i);var a,o,s,u,c=this._getGraphs(i),l=this._ids;if(M(t)&&!(o=l[t])||M(r)&&!(s=l[r])||M(n)&&!(u=l[n]))return!1;for(var h in c)if(a=c[h])if(o){if(u){if(this._findInIndex(a.objects,u,o,s,"object","subject","predicate",h,e,null))return!0}else if(this._findInIndex(a.subjects,o,s,null,"subject","predicate","object",h,e,null))return!0}else if(s){if(this._findInIndex(a.predicates,s,u,null,"predicate","object","subject",h,e,null))return!0}else if(u){if(this._findInIndex(a.objects,u,null,null,"object","subject","predicate",h,e,null))return!0}else if(this._findInIndex(a.subjects,null,null,null,"subject","predicate","object",h,e,null))return!0;return!1}getSubjects(e,t,r){var n=[];return this.forSubjects((function(e){n.push(e)}),e,t,r),n}forSubjects(e,t,r,n){t=t&&D(t),r=r&&D(r),n=n&&D(n);var i,a,o,s=this._ids,u=this._getGraphs(n);if(e=this._uniqueEntities(e),!(M(t)&&!(a=s[t])||M(r)&&!(o=s[r])))for(n in u)(i=u[n])&&(a?o?this._loopBy2Keys(i.predicates,a,o,e):this._loopByKey1(i.subjects,a,e):o?this._loopByKey0(i.objects,o,e):this._loop(i.subjects,e))}getPredicates(e,t,r){var n=[];return this.forPredicates((function(e){n.push(e)}),e,t,r),n}forPredicates(e,t,r,n){t=t&&D(t),r=r&&D(r),n=n&&D(n);var i,a,o,s=this._ids,u=this._getGraphs(n);if(e=this._uniqueEntities(e),!(M(t)&&!(a=s[t])||M(r)&&!(o=s[r])))for(n in u)(i=u[n])&&(a?o?this._loopBy2Keys(i.objects,o,a,e):this._loopByKey0(i.subjects,a,e):o?this._loopByKey1(i.predicates,o,e):this._loop(i.predicates,e))}getObjects(e,t,r){var n=[];return this.forObjects((function(e){n.push(e)}),e,t,r),n}forObjects(e,t,r,n){t=t&&D(t),r=r&&D(r),n=n&&D(n);var i,a,o,s=this._ids,u=this._getGraphs(n);if(e=this._uniqueEntities(e),!(M(t)&&!(a=s[t])||M(r)&&!(o=s[r])))for(n in u)(i=u[n])&&(a?o?this._loopBy2Keys(i.subjects,a,o,e):this._loopByKey1(i.objects,a,e):o?this._loopByKey0(i.predicates,o,e):this._loop(i.objects,e))}getGraphs(e,t,r){var n=[];return this.forGraphs((function(e){n.push(e)}),e,t,r),n}forGraphs(e,t,r,n){for(var i in this._graphs)this.some((function(t){return e(t.graph),!0}),t,r,n,i)}createBlankNode(e){var t,r;if(e)for(t=e="_:"+e,r=1;this._ids[t];)t=e+r++;else do{t="_:b"+this._blankNodeIndex++}while(this._ids[t]);return this._ids[t]=++this._id,this._entities[this._id]=t,this._factory.blankNode(t.substr(2))}extractLists({remove:e=!1,ignoreErrors:t=!1}={}){var r={},n=t?()=>!0:(e,t)=>{throw new Error(`${e.value} ${t}`)},a=this.getQuads(null,i.a.rdf.rest,i.a.rdf.nil,null),o=e?[...a]:[];return a.forEach(t=>{for(var a,s,u=[],c=!1,l=t.graph,h=t.subject;h&&!c;){var p,d,f=this.getQuads(null,null,h,null),y=this.getQuads(h,null,null,null),m=null,g=null,_=null;for(p=0;p-1&&e%1==0&&e-1&&e%1==0&&e<=9007199254740991}(e.length)&&!function(e){var t=v(e)?u.call(e):"";return"[object Function]"==t||"[object GeneratorFunction]"==t}(e)}function v(e){var t=typeof e;return!!e&&("object"==t||"function"==t)}var w,E=(w=function(e,t){if(p||m(t)||b(t))!function(e,t,r,n){r||(r={});for(var i=-1,a=t.length;++i1?t[n-1]:void 0,a=n>2?t[2]:void 0;for(i=w.length>3&&"function"==typeof i?(n--,i):void 0,a&&function(e,t,r){if(!v(r))return!1;var n=typeof t;return!!("number"==n?b(r)&&y(t,r.length):"string"==n&&t in r)&&g(r[t],e)}(t[0],t[1],a)&&(i=n<3?void 0:i,n=1),e=Object(e);++r0&&o.length>i&&!o.warned){o.warned=!0;var u=new Error("Possible EventEmitter memory leak detected. "+o.length+" "+String(t)+" listeners added. Use emitter.setMaxListeners() to increase limit");u.name="MaxListenersExceededWarning",u.emitter=e,u.type=t,u.count=o.length,s=u,console&&console.warn&&console.warn(s)}return e}function p(){if(!this.fired)return this.target.removeListener(this.type,this.wrapFn),this.fired=!0,0===arguments.length?this.listener.call(this.target):this.listener.apply(this.target,arguments)}function d(e,t,r){var n={fired:!1,wrapFn:void 0,target:e,type:t,listener:r},i=p.bind(n);return i.listener=r,n.wrapFn=i,i}function f(e,t,r){var n=e._events;if(void 0===n)return[];var i=n[t];return void 0===i?[]:"function"==typeof i?r?[i.listener||i]:[i]:r?function(e){for(var t=new Array(e.length),r=0;r0&&(o=t[0]),o instanceof Error)throw o;var s=new Error("Unhandled error."+(o?" ("+o.message+")":""));throw s.context=o,s}var u=i[e];if(void 0===u)return!1;if("function"==typeof u)a(u,this,t);else{var c=u.length,l=m(u,c);for(r=0;r=0;a--)if(r[a]===t||r[a].listener===t){o=r[a].listener,i=a;break}if(i<0)return this;0===i?r.shift():function(e,t){for(;t+1=0;n--)this.removeListener(e,t[n]);return this},s.prototype.listeners=function(e){return f(this,e,!0)},s.prototype.rawListeners=function(e){return f(this,e,!1)},s.listenerCount=function(e,t){return"function"==typeof e.listenerCount?e.listenerCount(t):y.call(e,t)},s.prototype.listenerCount=y,s.prototype.eventNames=function(){return this._eventsCount>0?n(this._events):[]}},function(e,t,r){"use strict";function n(e){for(var r in e)t.hasOwnProperty(r)||(t[r]=e[r])}Object.defineProperty(t,"__esModule",{value:!0}),n(r(249)),n(r(252))},function(e,t,r){"use strict";Object.defineProperty(t,"__esModule",{value:!0});var n=r(66);t.isTag=function(e){return n.isTag(e)},t.isCDATA=function(e){return"cdata"===e.type},t.isText=function(e){return"text"===e.type},t.isComment=function(e){return"comment"===e.type},t.hasChildren=function(e){return Object.prototype.hasOwnProperty.call(e,"children")}},function(e,t,r){"use strict";Object.defineProperty(t,"__esModule",{value:!0});var n=r(455);t.AsyncEvaluator=n.AsyncEvaluator;var i=r(193);t.SyncEvaluator=i.SyncEvaluator;var a=r(478);t.AggregateEvaluator=a.AggregateEvaluator;var o=r(18);t.ExpressionError=o.ExpressionError,t.isExpressionError=o.isExpressionError},function(e,t,r){"use strict";Object.defineProperty(t,"__esModule",{value:!0});class n extends Error{constructor(e,t){super(e),this.code=t}}t.ErrorCoded=n,function(e){e.COLLIDING_KEYWORDS="colliding keywords",e.CONFLICTING_INDEXES="conflicting indexes",e.CYCLIC_IRI_MAPPING="cyclic IRI mapping",e.INVALID_ID_VALUE="invalid @id value",e.INVALID_INDEX_VALUE="invalid @index value",e.INVALID_NEST_VALUE="invalid @nest value",e.INVALID_PREFIX_VALUE="invalid @prefix value",e.INVALID_PROPAGATE_VALUE="invalid @propagate value",e.INVALID_REVERSE_VALUE="invalid @reverse value",e.INVALID_IMPORT_VALUE="invalid @import value",e.INVALID_VERSION_VALUE="invalid @version value",e.INVALID_BASE_IRI="invalid base IRI",e.INVALID_CONTAINER_MAPPING="invalid container mapping",e.INVALID_CONTEXT_ENTRY="invalid context entry",e.INVALID_CONTEXT_NULLIFICATION="invalid context nullification",e.INVALID_DEFAULT_LANGUAGE="invalid default language",e.INVALID_INCLUDED_VALUE="invalid @included value",e.INVALID_IRI_MAPPING="invalid IRI mapping",e.INVALID_JSON_LITERAL="invalid JSON literal",e.INVALID_KEYWORD_ALIAS="invalid keyword alias",e.INVALID_LANGUAGE_MAP_VALUE="invalid language map value",e.INVALID_LANGUAGE_MAPPING="invalid language mapping",e.INVALID_LANGUAGE_TAGGED_STRING="invalid language-tagged string",e.INVALID_LANGUAGE_TAGGED_VALUE="invalid language-tagged value",e.INVALID_LOCAL_CONTEXT="invalid local context",e.INVALID_REMOTE_CONTEXT="invalid remote context",e.INVALID_REVERSE_PROPERTY="invalid reverse property",e.INVALID_REVERSE_PROPERTY_MAP="invalid reverse property map",e.INVALID_REVERSE_PROPERTY_VALUE="invalid reverse property value",e.INVALID_SCOPED_CONTEXT="invalid scoped context",e.INVALID_SCRIPT_ELEMENT="invalid script element",e.INVALID_SET_OR_LIST_OBJECT="invalid set or list object",e.INVALID_TERM_DEFINITION="invalid term definition",e.INVALID_TYPE_MAPPING="invalid type mapping",e.INVALID_TYPE_VALUE="invalid type value",e.INVALID_TYPED_VALUE="invalid typed value",e.INVALID_VALUE_OBJECT="invalid value object",e.INVALID_VALUE_OBJECT_VALUE="invalid value object value",e.INVALID_VOCAB_MAPPING="invalid vocab mapping",e.IRI_CONFUSED_WITH_PREFIX="IRI confused with prefix",e.KEYWORD_REDEFINITION="keyword redefinition",e.LOADING_DOCUMENT_FAILED="loading document failed",e.LOADING_REMOTE_CONTEXT_FAILED="loading remote context failed",e.MULTIPLE_CONTEXT_LINK_HEADERS="multiple context link headers",e.PROCESSING_MODE_CONFLICT="processing mode conflict",e.PROTECTED_TERM_REDEFINITION="protected term redefinition",e.CONTEXT_OVERFLOW="context overflow",e.INVALID_BASE_DIRECTION="invalid base direction",e.RECURSIVE_CONTEXT_INCLUSION="recursive context inclusion",e.INVALID_STREAMING_KEY_ORDER="invalid streaming key order"}(t.ERROR_CODES||(t.ERROR_CODES={}))},function(e,t,r){"use strict";var n=r(16).Buffer,i=n.isEncoding||function(e){switch((e=""+e)&&e.toLowerCase()){case"hex":case"utf8":case"utf-8":case"ascii":case"binary":case"base64":case"ucs2":case"ucs-2":case"utf16le":case"utf-16le":case"raw":return!0;default:return!1}};function a(e){var t;switch(this.encoding=function(e){var t=function(e){if(!e)return"utf8";for(var t;;)switch(e){case"utf8":case"utf-8":return"utf8";case"ucs2":case"ucs-2":case"utf16le":case"utf-16le":return"utf16le";case"latin1":case"binary":return"latin1";case"base64":case"ascii":case"hex":return e;default:if(t)return;e=(""+e).toLowerCase(),t=!0}}(e);if("string"!=typeof t&&(n.isEncoding===i||!i(e)))throw new Error("Unknown encoding: "+e);return t||e}(e),this.encoding){case"utf16le":this.text=u,this.end=c,t=4;break;case"utf8":this.fillLast=s,t=4;break;case"base64":this.text=l,this.end=h,t=3;break;default:return this.write=p,void(this.end=d)}this.lastNeed=0,this.lastTotal=0,this.lastChar=n.allocUnsafe(t)}function o(e){return e<=127?0:e>>5==6?2:e>>4==14?3:e>>3==30?4:e>>6==2?-1:-2}function s(e){var t=this.lastTotal-this.lastNeed,r=function(e,t,r){if(128!=(192&t[0]))return e.lastNeed=0,"�";if(e.lastNeed>1&&t.length>1){if(128!=(192&t[1]))return e.lastNeed=1,"�";if(e.lastNeed>2&&t.length>2&&128!=(192&t[2]))return e.lastNeed=2,"�"}}(this,e);return void 0!==r?r:this.lastNeed<=e.length?(e.copy(this.lastChar,t,0,this.lastNeed),this.lastChar.toString(this.encoding,0,this.lastTotal)):(e.copy(this.lastChar,t,0,e.length),void(this.lastNeed-=e.length))}function u(e,t){if((e.length-t)%2==0){var r=e.toString("utf16le",t);if(r){var n=r.charCodeAt(r.length-1);if(n>=55296&&n<=56319)return this.lastNeed=2,this.lastTotal=4,this.lastChar[0]=e[e.length-2],this.lastChar[1]=e[e.length-1],r.slice(0,-1)}return r}return this.lastNeed=1,this.lastTotal=2,this.lastChar[0]=e[e.length-1],e.toString("utf16le",t,e.length-1)}function c(e){var t=e&&e.length?this.write(e):"";if(this.lastNeed){var r=this.lastTotal-this.lastNeed;return t+this.lastChar.toString("utf16le",0,r)}return t}function l(e,t){var r=(e.length-t)%3;return 0===r?e.toString("base64",t):(this.lastNeed=3-r,this.lastTotal=3,1===r?this.lastChar[0]=e[e.length-1]:(this.lastChar[0]=e[e.length-2],this.lastChar[1]=e[e.length-1]),e.toString("base64",t,e.length-r))}function h(e){var t=e&&e.length?this.write(e):"";return this.lastNeed?t+this.lastChar.toString("base64",0,3-this.lastNeed):t}function p(e){return e.toString(this.encoding)}function d(e){return e&&e.length?this.write(e):""}t.StringDecoder=a,a.prototype.write=function(e){if(0===e.length)return"";var t,r;if(this.lastNeed){if(void 0===(t=this.fillLast(e)))return"";r=this.lastNeed,this.lastNeed=0}else r=0;return r=0)return i>0&&(e.lastNeed=i-1),i;if(--n=0)return i>0&&(e.lastNeed=i-2),i;if(--n=0)return i>0&&(2===i?i=0:e.lastNeed=i-3),i;return 0}(this,e,t);if(!this.lastNeed)return e.toString("utf8",t);this.lastTotal=r;var n=e.length-(r-this.lastNeed);return e.copy(this.lastChar,0,n),e.toString("utf8",t,n)},a.prototype.fillLast=function(e){if(this.lastNeed<=e.length)return e.copy(this.lastChar,this.lastTotal-this.lastNeed,0,this.lastNeed),this.lastChar.toString(this.encoding,0,this.lastTotal);e.copy(this.lastChar,this.lastTotal-this.lastNeed,0,e.length),this.lastNeed-=e.length}},function(e,t){e.exports=function(e){return e.webpackPolyfill||(e.deprecate=function(){},e.paths=[],e.children||(e.children=[]),Object.defineProperty(e,"loaded",{enumerable:!0,get:function(){return e.l}}),Object.defineProperty(e,"id",{enumerable:!0,get:function(){return e.i}}),e.webpackPolyfill=1),e}},function(e,t,r){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.types=Object.freeze({ALT:"alt",ASK:"ask",BGP:"bgp",CONSTRUCT:"construct",DESC:"desc",DESCRIBE:"describe",DISTINCT:"distinct",EXPRESSION:"expression",EXTEND:"extend",FILTER:"filter",FROM:"from",GRAPH:"graph",GROUP:"group",INV:"inv",JOIN:"join",LEFT_JOIN:"leftjoin",LINK:"link",MINUS:"minus",NPS:"nps",ONE_OR_MORE_PATH:"OneOrMorePath",ORDER_BY:"orderby",PATH:"path",PATTERN:"pattern",PROJECT:"project",REDUCED:"reduced",SEQ:"seq",SERVICE:"service",SLICE:"slice",UNION:"union",VALUES:"values",ZERO_OR_MORE_PATH:"ZeroOrMorePath",ZERO_OR_ONE_PATH:"ZeroOrOnePath"}),t.expressionTypes=Object.freeze({AGGREGATE:"aggregate",EXISTENCE:"existence",NAMED:"named",OPERATOR:"operator",TERM:"term",WILDCARD:"wildcard"})},function(e,t,r){"use strict";Object.defineProperty(t,"__esModule",{value:!0});const n=r(1),i=r(5),a=r(38).Wildcard;t.default=class{constructor(e){this.dataFactory=e||n,this.stringType=this.createTerm("http://www.w3.org/2001/XMLSchema#string")}createAlt(e,t){return{type:"alt",left:e,right:t}}createAsk(e){return{type:"ask",input:e}}createBoundAggregate(e,t,r,n,i){let a=this.createAggregateExpression(t,r,n,i);return a.variable=e,a}createBgp(e){return{type:"bgp",patterns:e}}createConstruct(e,t){return{type:"construct",input:e,template:t}}createDescribe(e,t){return{type:"describe",input:e,terms:t}}createDistinct(e){return{type:"distinct",input:e}}createExtend(e,t,r){return{type:"extend",input:e,variable:t,expression:r}}createFrom(e,t,r){return{type:"from",input:e,default:t,named:r}}createFilter(e,t){return{type:"filter",input:e,expression:t}}createGraph(e,t){return{type:"graph",input:e,name:t}}createGroup(e,t,r){return{type:"group",input:e,variables:t,aggregates:r}}createInv(e){return{type:"inv",path:e}}createJoin(e,t){return{type:"join",left:e,right:t}}createLeftJoin(e,t,r){return r?{type:"leftjoin",left:e,right:t,expression:r}:{type:"leftjoin",left:e,right:t}}createLink(e){return{type:"link",iri:e}}createMinus(e,t){return{type:"minus",left:e,right:t}}createNps(e){return{type:"nps",iris:e}}createOneOrMorePath(e){return{type:"OneOrMorePath",path:e}}createOrderBy(e,t){return{type:"orderby",input:e,expressions:t}}createPath(e,t,r,n){return n?{type:"path",subject:e,predicate:t,object:r,graph:n}:{type:"path",subject:e,predicate:t,object:r,graph:this.dataFactory.defaultGraph()}}createPattern(e,t,r,n){let i=this.dataFactory.quad(e,t,r,n);return i.type="pattern",i}createProject(e,t){return{type:"project",input:e,variables:t}}createReduced(e){return{type:"reduced",input:e}}createSeq(e,t){return{type:"seq",left:e,right:t}}createService(e,t,r){return{type:"service",input:e,name:t,silent:r}}createSlice(e,t,r){return void 0===t&&(t=0),void 0!==r?{type:"slice",input:e,start:t,length:r}:{type:"slice",input:e,start:t}}createUnion(e,t){return{type:"union",left:e,right:t}}createValues(e,t){return{type:"values",variables:e,bindings:t}}createZeroOrMorePath(e){return{type:"ZeroOrMorePath",path:e}}createZeroOrOnePath(e){return{type:"ZeroOrOnePath",path:e}}createAggregateExpression(e,t,r,n){return n?{type:"expression",expressionType:"aggregate",aggregator:e,expression:t,separator:n,distinct:r}:{type:"expression",expressionType:"aggregate",aggregator:e,expression:t,distinct:r}}createExistenceExpression(e,t){return{type:"expression",expressionType:"existence",not:e,input:t}}createNamedExpression(e,t){return{type:"expression",expressionType:"named",name:e,args:t}}createOperatorExpression(e,t){return{type:"expression",expressionType:"operator",operator:e,args:t}}createTermExpression(e){return{type:"expression",expressionType:"term",term:e}}createWildcardExpression(){return{type:"expression",expressionType:"wildcard",wildcard:new a}}createTerm(e){return i.stringToTerm(e,this.dataFactory)}}},function(e,t,r){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),function(e){for(var r in e)t.hasOwnProperty(r)||(t[r]=e[r])}(r(327))},function(e,t,r){"use strict";Object.defineProperty(t,"__esModule",{value:!0});const n=r(8),i=r(27);class a{static async handlePredicateObject(e,t,r,n,i,a,o){const s=await t.getPropertiesDepth(r,n),u=await t.getDepthOffsetGraph(n,r),c=n-u,l=e.idStack[s];if(l)for(const h of l){if(u>=0){const r=e.idStack[c-1];if(r)for(const s of r)o?(t.validateReverseSubject(a),e.emitQuad(n,t.dataFactory.quad(a,i,h,s))):e.emitQuad(n,t.dataFactory.quad(h,i,a,s));else o?(t.validateReverseSubject(a),e.getUnidentifiedGraphBufferSafe(c-1).push({subject:a,predicate:i,object:h})):e.getUnidentifiedGraphBufferSafe(c-1).push({subject:h,predicate:i,object:a})}else{const u=await t.getGraphContainerValue(r,s);o?(t.validateReverseSubject(a),e.emitQuad(n,t.dataFactory.quad(a,i,h,u))):e.emitQuad(n,t.dataFactory.quad(h,i,a,u))}}else o&&t.validateReverseSubject(a),e.getUnidentifiedValueBufferSafe(s).push({predicate:i,object:a,reverse:o})}isPropertyHandler(){return!0}isStackProcessor(){return!0}async validate(e,t,r,n,a){const o=r[n];if(o){const a=await e.getContext(r);if(await t.predicateToTerm(a,r[n]))return"@json"===i.Util.getContextValueType(a,o)&&(e.jsonLiteralStack[n+1]=!0),!0}return!1}async test(e,t,r,n,i){return n[i]}async handle(e,t,r,o,s,u,c){const l=o[u],h=await e.getContext(o),p=await t.predicateToTerm(h,r);if(p){const c=await t.valueToTerm(h,r,s,u,o);if(c.length)for(let d of c){const c=i.Util.isPropertyReverse(h,l,await t.unaliasKeywordParent(o,u));if(s){const a="@list"in i.Util.getContextValueContainer(h,r);if(a||s["@list"]){if((a&&!Array.isArray(s)&&!s["@list"]||s["@list"]&&!Array.isArray(s["@list"]))&&d!==t.rdfNil){const r=t.dataFactory.blankNode();e.emitQuad(u,t.dataFactory.quad(r,t.rdfRest,t.rdfNil,t.getDefaultGraph())),e.emitQuad(u,t.dataFactory.quad(r,t.rdfFirst,d,t.getDefaultGraph())),d=r}if(c&&!e.allowSubjectList)throw new n.ErrorCoded("Found illegal list value in subject position at "+r,n.ERROR_CODES.INVALID_REVERSE_PROPERTY_VALUE)}}await a.handlePredicateObject(e,t,o,u,p,d,c)}else e.emittedStack[u]=!1}}}t.EntryHandlerPredicate=a},function(e,t,r){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),function(e){for(var r in e)t.hasOwnProperty(r)||(t[r]=e[r])}(r(385))},function(e,t,r){"use strict";Object.defineProperty(t,"__esModule",{value:!0});const n=r(5),i=r(7),a=r(39),o=r(17),s=r(18),u=r(58),c=r(78),l=r(17);function h(e){if(!e)throw new s.InvalidExpression(e);const t=i.Algebra.expressionTypes;switch(e.expressionType){case t.TERM:return p(e);case t.OPERATOR:return function(e){if(o.SpecialOperators.contains(e.operator)){const t=e.operator,r=e.args.map(e=>h(e)),n=c.specialFunctions.get(t);if(!n.checkArity(r))throw new s.InvalidArity(r,t);return new a.SpecialOperator(r,n.applyAsync,n.applySync)}{if(!o.Operators.contains(e.operator))throw new s.UnknownOperator(e.operator);const t=e.operator,r=e.args.map(e=>h(e)),n=c.regularFunctions.get(t);if(!function(e,t){if(t===1/0)return!0;if(Array.isArray(t))return t.indexOf(e.length)>=0;return e.length===t}(r,n.arity))throw new s.InvalidArity(r,t);return new a.Operator(r,n.apply)}}(e);case t.NAMED:return f(e);case t.EXISTENCE:return m(e);case t.AGGREGATE:return y(e);case t.WILDCARD:return function(e){if(!e.wildcard)throw new s.InvalidExpression(e);return new a.NamedNode(e.wildcard.value)}(e);default:throw new s.InvalidExpressionType(e)}}function p(e){if(!e.term)throw new s.InvalidExpression(e);switch(e.term.termType){case"Variable":return new a.Variable(n.termToString(e.term));case"Literal":return d(e.term);case"NamedNode":return new a.NamedNode(e.term.value);case"BlankNode":return new a.BlankNode(e.term.value);default:throw new s.InvalidTermType(e)}}function d(e){if(!e.datatype)return e.language?new a.LangStringLiteral(e.value,e.language):new a.StringLiteral(e.value);switch(e.datatype.value){case null:case void 0:case"":return e.language?new a.LangStringLiteral(e.value,e.language):new a.StringLiteral(e.value);case l.TypeURL.XSD_STRING:return new a.StringLiteral(e.value);case l.TypeURL.RDF_LANG_STRING:return new a.LangStringLiteral(e.value,e.language);case l.TypeURL.XSD_DATE_TIME:case l.TypeURL.XSD_DATE:{const t=new Date(e.value);return isNaN(t.getTime())?new a.NonLexicalLiteral(void 0,e.datatype,e.value):new a.DateTimeLiteral(new Date(e.value),e.value)}case l.TypeURL.XSD_BOOLEAN:return"true"!==e.value&&"false"!==e.value?new a.NonLexicalLiteral(void 0,e.datatype,e.value):new a.BooleanLiteral("true"===e.value,e.value);case l.TypeURL.XSD_INTEGER:case l.TypeURL.XSD_DECIMAL:case l.TypeURL.XSD_NEGATIVE_INTEGER:case l.TypeURL.XSD_NON_NEGATIVE_INTEGER:case l.TypeURL.XSD_NON_POSITIVE_INTEGER:case l.TypeURL.XSD_POSITIVE_INTEGER:case l.TypeURL.XSD_LONG:case l.TypeURL.XSD_SHORT:case l.TypeURL.XSD_BYTE:case l.TypeURL.XSD_UNSIGNED_LONG:case l.TypeURL.XSD_UNSIGNED_INT:case l.TypeURL.XSD_UNSIGNED_SHORT:case l.TypeURL.XSD_UNSIGNED_BYTE:case l.TypeURL.XSD_INT:{const t=u.parseXSDDecimal(e.value);return void 0===t?new a.NonLexicalLiteral(void 0,e.datatype,e.value):new a.NumericLiteral(t,e.datatype,e.value)}case l.TypeURL.XSD_FLOAT:case l.TypeURL.XSD_DOUBLE:{const t=u.parseXSDFloat(e.value);return void 0===t?new a.NonLexicalLiteral(void 0,e.datatype,e.value):new a.NumericLiteral(t,e.datatype,e.value)}default:return new a.Literal(e.value,e.datatype,e.value)}}function f(e){const t=e.name.value;if(!o.NamedOperators.contains(t))throw new s.UnknownNamedOperator(e.name.value);const r=e.name.value,n=e.args.map(e=>h(e)),i=c.namedFunctions.get(r);return new a.Named(e.name,n,i.apply)}function y(e){const t=e.aggregator;return new a.Aggregate(t,e)}function m(e){return new a.Existence(e)}t.transformAlgebra=h,t.transformRDFTermUnsafe=function(e){return p({term:e,type:"expression",expressionType:"term"})},t.transformLiteral=d,t.transformNamed=f,t.transformAggregate=y,t.transformExistence=m},function(e,t,r){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.parseXSDFloat=function(e){const t=Number(e);return isNaN(t)?"NaN"===e?NaN:"INF"===e?1/0:"-INF"===e?-1/0:void 0:t},t.parseXSDDecimal=function(e){if(/^(\-|\+)?([0-9]+(\.[0-9]+)?)$/.test(e)){const t=Number(e);return isNaN(t)?void 0:t}},t.parseXSDInteger=function(e){if(/^(\-|\+)?([0-9]+)$/.test(e)){const t=Number(e);return isNaN(t)?void 0:t}},t.parseXSDDateTime=function(e){const t=e.indexOf("T"),r=t>=0?e.substr(0,t):e,[n,i,a]=r.split("-");let o="",s="",u="",c="";if(t>=0){const r=e.substr(t+1),[n,i]=r.split(/[\+\-Z]/);[o,s,u]=n.split(":");const a=new RegExp(/([\+\-Z].*)/).exec(r);c=a?a[0]:""}else o="00",s="00",u="00",c="";return{year:n,month:i,day:a,hours:o,minutes:s,seconds:u,timezone:c}}},function(e,t,r){"use strict";Object.defineProperty(t,"__esModule",{value:!0});const n=r(19),i=r(39),a=r(17),o=r(18),s=r(17),u=r(79);t.declare=function(){return new c};class c{constructor(){this.implementations=[]}collect(){return p(this.implementations)}log(){return console.log(this.implementations),this}add(e){return this.implementations.push(e),this}set(e,t){const r=n.List(e);return this.add(new h({types:r,func:t}))}copy({from:e,to:t}){const r=this.implementations.length-1,i=n.List(e);for(let e=r;e>=0;e--){const r=this.implementations[e];if(r.get("types").equals(i))return this.set(t,r.get("func"))}throw new o.UnexpectedError("Tried to copy implementation, but types not found",{from:e,to:t})}onUnary(e,t){return this.set([e],([e])=>t(e))}onUnaryTyped(e,t){return this.set([e],([e])=>t(e.typedValue))}onBinary(e,t){return this.set(e,([e,r])=>t(e,r))}onBinaryTyped(e,t){return this.set(e,([e,r])=>t(e.typedValue,r.typedValue))}onTernaryTyped(e,t){return this.set(e,([e,r,n])=>t(e.typedValue,r.typedValue,n.typedValue))}onTernary(e,t){return this.set(e,([e,r,n])=>t(e,r,n))}onQuaternaryTyped(e,t){return this.set(e,([e,r,n,i])=>t(e.typedValue,r.typedValue,n.typedValue,i.typedValue))}unimplemented(e){for(let t=0;t<=5;t++){const r=Array(t).fill("term"),n=t=>{throw new o.UnimplementedError(e)};this.set(r,n)}return this}onTerm1(e){return this.set(["term"],([t])=>e(t))}onLiteral1(e){return this.set(["literal"],([t])=>e(t))}onBoolean1(e){return this.set(["boolean"],([t])=>e(t))}onBoolean1Typed(e){return this.set(["boolean"],([t])=>e(t.typedValue))}onString1(e){return this.set(["string"],([t])=>e(t))}onString1Typed(e){return this.set(["string"],([t])=>e(t.typedValue))}onLangString1(e){return this.set(["langString"],([t])=>e(t))}onStringly1(e){return this.set(["string"],([t])=>e(t)).set(["langString"],([t])=>e(t))}onStringly1Typed(e){return this.set(["string"],([t])=>e(t.typedValue)).set(["langString"],([t])=>e(t.typedValue))}onNumeric1(e){return this.set(["integer"],([t])=>e(t)).set(["decimal"],([t])=>e(t)).set(["float"],([t])=>e(t)).set(["double"],([t])=>e(t)).invalidLexicalForm(["nonlexical"],1)}onDateTime1(e){return this.set(["date"],([t])=>e(t)).invalidLexicalForm(["nonlexical"],1)}arithmetic(e){return this.numeric(([t,r])=>{const n=u.promote(t.type,r.type),i=a.decategorize(n);return f(e(t.typedValue,r.typedValue),i)})}numberTest(e){return this.numeric(([t,r])=>d(e(t.typedValue,r.typedValue)))}stringTest(e){return this.set(["string","string"],([t,r])=>d(e(t.typedValue,r.typedValue))).invalidLexicalForm(["nonlexical","string"],1).invalidLexicalForm(["string","nonlexical"],2)}booleanTest(e){return this.set(["boolean","boolean"],([t,r])=>d(e(t.typedValue,r.typedValue))).invalidLexicalForm(["nonlexical","boolean"],1).invalidLexicalForm(["boolean","nonlexical"],2)}dateTimeTest(e){return this.set(["date","date"],([t,r])=>d(e(t.typedValue,r.typedValue))).invalidLexicalForm(["nonlexical","date"],1).invalidLexicalForm(["date","nonlexical"],2)}numeric(e){return this.set(["integer","integer"],e).set(["integer","decimal"],e).set(["integer","float"],e).set(["integer","double"],e).invalidLexicalForm(["integer","nonlexical"],2).set(["decimal","integer"],e).set(["decimal","decimal"],e).set(["decimal","float"],e).set(["decimal","double"],e).invalidLexicalForm(["decimal","nonlexical"],2).set(["float","integer"],e).set(["float","decimal"],e).set(["float","float"],e).set(["float","double"],e).invalidLexicalForm(["float","nonlexical"],2).set(["double","integer"],e).set(["double","decimal"],e).set(["double","float"],e).set(["double","double"],e).invalidLexicalForm(["double","nonlexical"],2).invalidLexicalForm(["nonlexical","integer"],1).invalidLexicalForm(["nonlexical","decimal"],1).invalidLexicalForm(["nonlexical","float"],1).invalidLexicalForm(["nonlexical","double"],1)}invalidLexicalForm(e,t){return this.set(e,e=>{throw new o.InvalidLexicalForm(e[t-1].toRDF())})}chain(e){return this.implementations=this.implementations.concat(e),this}}t.Builder=c;const l={types:[],func(){throw new o.UnexpectedError("Implementation not set yet declared as implemented")}};class h extends(n.Record(l)){constructor(e){super(e)}get(e){return super.get(e)}toPair(){return[this.get("types"),this.get("func")]}}function p(e){const t=e.map(e=>e.toPair());return n.Map(t)}function d(e){return new i.BooleanLiteral(e)}function f(e,t){return new i.NumericLiteral(e,a.make(t||s.TypeURL.XSD_FLOAT),void 0)}t.Impl=h,t.map=p,t.bool=d,t.number=f,t.numberFromString=function(e,t){const r=Number(e);return new i.NumericLiteral(r,a.make(t||s.TypeURL.XSD_FLOAT),void 0)},t.string=function(e){return new i.StringLiteral(e)},t.langString=function(e,t){return new i.LangStringLiteral(e,t)},t.dateTime=function(e,t){return new i.DateTimeLiteral(e,t)},t.log=function(e,...t){return console.log(e,t),e},t.typeCheckLit=function(e,t,r,n){if("literal"!==e.termType)throw new o.InvalidArgumentTypes(r,n);const i=e;if(!t.includes(i.type))throw new o.InvalidArgumentTypes(r,n);return i}},function(e,t,r){"use strict";(function(e,n){r.d(t,"a",(function(){return p}));var i=r(6);const{xsd:a}=i.a,{fromCharCode:o}=String;var s=/\\u([a-fA-F0-9]{4})|\\U([a-fA-F0-9]{8})|\\[uU]|\\(.)/g,u={"\\":"\\","'":"'",'"':'"',n:"\n",r:"\r",t:"\t",f:"\f",b:"\b",_:"_","~":"~",".":".","-":"-","!":"!",$:"$","&":"&","(":"(",")":")","*":"*","+":"+",",":",",";":";","=":"=","/":"/","?":"?","#":"#","@":"@","%":"%"},c=/[\x00-\x20<>\\"\{\}\|\^\`]/,l={_iri:!0,_unescapedIri:!0,_simpleQuotedString:!0,_langcode:!0,_blank:!0,_newline:!0,_comment:!0,_whitespace:!0,_endOfFile:!0},h=/$0^/;class p{constructor(e){if(this._iri=/^<((?:[^ <>{}\\]|\\[uU])+)>[ \t]*/,this._unescapedIri=/^<([^\x00-\x20<>\\"\{\}\|\^\`]*)>[ \t]*/,this._simpleQuotedString=/^"([^"\\\r\n]*)"(?=[^"])/,this._simpleApostropheString=/^'([^'\\\r\n]*)'(?=[^'])/,this._langcode=/^@([a-z]+(?:-[a-z0-9]+)*)(?=[^a-z0-9\-])/i,this._prefix=/^((?:[A-Za-z\xc0-\xd6\xd8-\xf6\xf8-\u02ff\u0370-\u037d\u037f-\u1fff\u200c\u200d\u2070-\u218f\u2c00-\u2fef\u3001-\ud7ff\uf900-\ufdcf\ufdf0-\ufffd]|[\ud800-\udb7f][\udc00-\udfff])(?:\.?[\-0-9A-Z_a-z\xb7\xc0-\xd6\xd8-\xf6\xf8-\u037d\u037f-\u1fff\u200c\u200d\u203f\u2040\u2070-\u218f\u2c00-\u2fef\u3001-\ud7ff\uf900-\ufdcf\ufdf0-\ufffd]|[\ud800-\udb7f][\udc00-\udfff])*)?:(?=[#\s<])/,this._prefixed=/^((?:[A-Za-z\xc0-\xd6\xd8-\xf6\xf8-\u02ff\u0370-\u037d\u037f-\u1fff\u200c\u200d\u2070-\u218f\u2c00-\u2fef\u3001-\ud7ff\uf900-\ufdcf\ufdf0-\ufffd]|[\ud800-\udb7f][\udc00-\udfff])(?:\.?[\-0-9A-Z_a-z\xb7\xc0-\xd6\xd8-\xf6\xf8-\u037d\u037f-\u1fff\u200c\u200d\u203f\u2040\u2070-\u218f\u2c00-\u2fef\u3001-\ud7ff\uf900-\ufdcf\ufdf0-\ufffd]|[\ud800-\udb7f][\udc00-\udfff])*)?:((?:(?:[0-:A-Z_a-z\xc0-\xd6\xd8-\xf6\xf8-\u02ff\u0370-\u037d\u037f-\u1fff\u200c\u200d\u2070-\u218f\u2c00-\u2fef\u3001-\ud7ff\uf900-\ufdcf\ufdf0-\ufffd]|[\ud800-\udb7f][\udc00-\udfff]|%[0-9a-fA-F]{2}|\\[!#-\/;=?\-@_~])(?:(?:[\.\-0-:A-Z_a-z\xb7\xc0-\xd6\xd8-\xf6\xf8-\u037d\u037f-\u1fff\u200c\u200d\u203f\u2040\u2070-\u218f\u2c00-\u2fef\u3001-\ud7ff\uf900-\ufdcf\ufdf0-\ufffd]|[\ud800-\udb7f][\udc00-\udfff]|%[0-9a-fA-F]{2}|\\[!#-\/;=?\-@_~])*(?:[\-0-:A-Z_a-z\xb7\xc0-\xd6\xd8-\xf6\xf8-\u037d\u037f-\u1fff\u200c\u200d\u203f\u2040\u2070-\u218f\u2c00-\u2fef\u3001-\ud7ff\uf900-\ufdcf\ufdf0-\ufffd]|[\ud800-\udb7f][\udc00-\udfff]|%[0-9a-fA-F]{2}|\\[!#-\/;=?\-@_~]))?)?)(?:[ \t]+|(?=\.?[,;!\^\s#()\[\]\{\}"'<]))/,this._variable=/^\?(?:(?:[A-Z_a-z\xc0-\xd6\xd8-\xf6\xf8-\u02ff\u0370-\u037d\u037f-\u1fff\u200c\u200d\u2070-\u218f\u2c00-\u2fef\u3001-\ud7ff\uf900-\ufdcf\ufdf0-\ufffd]|[\ud800-\udb7f][\udc00-\udfff])(?:[\-0-:A-Z_a-z\xb7\xc0-\xd6\xd8-\xf6\xf8-\u037d\u037f-\u1fff\u200c\u200d\u203f\u2040\u2070-\u218f\u2c00-\u2fef\u3001-\ud7ff\uf900-\ufdcf\ufdf0-\ufffd]|[\ud800-\udb7f][\udc00-\udfff])*)(?=[.,;!\^\s#()\[\]\{\}"'<])/,this._blank=/^_:((?:[0-9A-Z_a-z\xc0-\xd6\xd8-\xf6\xf8-\u02ff\u0370-\u037d\u037f-\u1fff\u200c\u200d\u2070-\u218f\u2c00-\u2fef\u3001-\ud7ff\uf900-\ufdcf\ufdf0-\ufffd]|[\ud800-\udb7f][\udc00-\udfff])(?:\.?[\-0-9A-Z_a-z\xb7\xc0-\xd6\xd8-\xf6\xf8-\u037d\u037f-\u1fff\u200c\u200d\u203f\u2040\u2070-\u218f\u2c00-\u2fef\u3001-\ud7ff\uf900-\ufdcf\ufdf0-\ufffd]|[\ud800-\udb7f][\udc00-\udfff])*)(?:[ \t]+|(?=\.?[,;:\s#()\[\]\{\}"'<]))/,this._number=/^[\-+]?(?:(\d+\.\d*|\.?\d+)[eE][\-+]?|\d*(\.)?)\d+(?=\.?[,;:\s#()\[\]\{\}"'<])/,this._boolean=/^(?:true|false)(?=[.,;\s#()\[\]\{\}"'<])/,this._keyword=/^@[a-z]+(?=[\s#<:])/i,this._sparqlKeyword=/^(?:PREFIX|BASE|GRAPH)(?=[\s#<])/i,this._shortPredicates=/^a(?=[\s()\[\]\{\}"'<])/,this._newline=/^[ \t]*(?:#[^\n\r]*)?(?:\r\n|\n|\r)[ \t]*/,this._comment=/#([^\n\r]*)/,this._whitespace=/^[ \t]+/,this._endOfFile=/^(?:#[^\n\r]*)?$/,e=e||{},this._lineMode=!!e.lineMode)for(var t in this._n3Mode=!1,this)!(t in l)&&this[t]instanceof RegExp&&(this[t]=h);else this._n3Mode=!1!==e.n3;this._comments=!!e.comments,this._literalClosingPos=0}_tokenizeToEnd(e,t){for(var r=this._input,n=this._comments;;){for(var i,o;i=this._newline.exec(r);)n&&(o=this._comment.exec(i[0]))&&e(null,{line:this._line,type:"comment",value:o[1],prefix:""}),r=r.substr(i[0].length,r.length),this._line++;if(!i&&(i=this._whitespace.exec(r))&&(r=r.substr(i[0].length,r.length)),this._endOfFile.test(r))return t&&(n&&(o=this._comment.exec(r))&&e(null,{line:this._line,type:"comment",value:o[1],prefix:""}),e(r=null,{line:this._line,type:"eof",value:"",prefix:""})),this._input=r;var s=this._line,u="",l="",h="",p=r[0],d=null,f=0,y=!1;switch(p){case"^":if(r.length<3)break;if("^"!==r[1]){this._n3Mode&&(f=1,u="^");break}if(this._previousMarker="^^","<"!==(r=r.substr(2))[0]){y=!0;break}case"<":if(d=this._unescapedIri.exec(r))u="IRI",l=d[1];else if(d=this._iri.exec(r)){if(null===(l=this._unescape(d[1]))||c.test(l))return g(this);u="IRI"}else this._n3Mode&&r.length>1&&"="===r[1]&&(u="inverse",f=2,l=">");break;case"_":((d=this._blank.exec(r))||t&&(d=this._blank.exec(r+" ")))&&(u="blank",h="_",l=d[1]);break;case'"':if(d=this._simpleQuotedString.exec(r))l=d[1];else if(({value:l,matchLength:f}=this._parseLiteral(r)),null===l)return g(this);null===d&&0===f||(u="literal",this._literalClosingPos=0);break;case"'":if(!this._lineMode){if(d=this._simpleApostropheString.exec(r))l=d[1];else if(({value:l,matchLength:f}=this._parseLiteral(r)),null===l)return g(this);null===d&&0===f||(u="literal",this._literalClosingPos=0)}break;case"?":this._n3Mode&&(d=this._variable.exec(r))&&(u="var",l=d[0]);break;case"@":"literal"===this._previousMarker&&(d=this._langcode.exec(r))?(u="langcode",l=d[1]):(d=this._keyword.exec(r))&&(u=d[0]);break;case".":if(1===r.length?t:r[1]<"0"||r[1]>"9"){u=".",f=1;break}case"0":case"1":case"2":case"3":case"4":case"5":case"6":case"7":case"8":case"9":case"+":case"-":(d=this._number.exec(r)||t&&(d=this._number.exec(r+" ")))&&(u="literal",l=d[0],h="string"==typeof d[1]?a.double:"string"==typeof d[2]?a.decimal:a.integer);break;case"B":case"b":case"p":case"P":case"G":case"g":(d=this._sparqlKeyword.exec(r))?u=d[0].toUpperCase():y=!0;break;case"f":case"t":(d=this._boolean.exec(r))?(u="literal",l=d[0],h=a.boolean):y=!0;break;case"a":(d=this._shortPredicates.exec(r))?(u="abbreviation",l="a"):y=!0;break;case"=":this._n3Mode&&r.length>1&&(u="abbreviation",">"!==r[1]?(f=1,l="="):(f=2,l=">"));break;case"!":if(!this._n3Mode)break;case",":case";":case"[":case"]":case"(":case")":case"{":case"}":this._lineMode||(f=1,u=p);break;default:y=!0}if(y&&("@prefix"!==this._previousMarker&&"PREFIX"!==this._previousMarker||!(d=this._prefix.exec(r))?((d=this._prefixed.exec(r))||t&&(d=this._prefixed.exec(r+" ")))&&(u="prefixed",h=d[1]||"",l=this._unescape(d[2])):(u="prefix",l=d[1]||"")),"^^"===this._previousMarker)switch(u){case"prefixed":u="type";break;case"IRI":u="typeIRI";break;default:u=""}if(!u)return t||!/^'''|^"""/.test(r)&&/\n|\r/.test(r)?g(this):this._input=r;var m={line:s,type:u,value:l,prefix:h};e(null,m),this.previousToken=m,this._previousMarker=u,r=r.substr(f||d[0].length,r.length)}function g(t){e(t._syntaxError(/^\S*/.exec(r)[0]))}}_unescape(e){try{return e.replace(s,(function(e,t,r,n){var i;if(t){if(i=parseInt(t,16),isNaN(i))throw new Error;return o(i)}if(r){if(i=parseInt(r,16),isNaN(i))throw new Error;return i<=65535?o(i):o(55296+(i-=65536)/1024,56320+(1023&i))}var a=u[n];if(!a)throw new Error;return a}))}catch(e){return null}}_parseLiteral(e){if(e.length>=3){const t=e.match(/^(?:"""|"|'''|'|)/)[0],r=t.length;let n=Math.max(this._literalClosingPos,r);for(;(n=e.indexOf(t,n))>0;){let t=0;for(;"\\"===e[n-t-1];)t++;if(t%2==0){const t=e.substring(r,n),i=t.split(/\r\n|\r|\n/).length-1,a=n+r;if(1===r&&0!==i||3===r&&this._lineMode)break;return this._line+=i,{value:this._unescape(t),matchLength:a}}n++}this._literalClosingPos=e.length-r+1}return{value:"",matchLength:0}}_syntaxError(e){this._input=null;var t=new Error('Unexpected "'+e+'" on line '+this._line+".");return t.context={token:void 0,line:this._line,previousToken:this.previousToken},t}tokenize(t,r){var i=this;if(this._line=1,"string"==typeof t){if(this._input=t,"function"!=typeof r){var a,o=[];if(this._tokenizeToEnd((function(e,t){e?a=e:o.push(t)}),!0),a)throw a;return o}e((function(){i._tokenizeToEnd(r,!0)}))}else this._input="",this._pendingBuffer=null,"function"==typeof t.setEncoding&&t.setEncoding("utf8"),t.on("data",(function(e){null!==i._input&&0!==e.length&&(i._pendingBuffer&&(e=n.concat([i._pendingBuffer,e]),i._pendingBuffer=null),128&e[e.length-1]?i._pendingBuffer=e:(i._input+=e,i._tokenizeToEnd(r,!1)))})),t.on("end",(function(){null!==i._input&&i._tokenizeToEnd(r,!0)})),t.on("error",r)}}}).call(this,r(14).setImmediate,r(15).Buffer)},function(e,t,r){"use strict";r.d(t,"a",(function(){return a}));var n="undefined"!=typeof crypto&&crypto.getRandomValues&&crypto.getRandomValues.bind(crypto)||"undefined"!=typeof msCrypto&&"function"==typeof msCrypto.getRandomValues&&msCrypto.getRandomValues.bind(msCrypto),i=new Uint8Array(16);function a(){if(!n)throw new Error("crypto.getRandomValues() not supported. See https://github.com/uuidjs/uuid#getrandomvalues-not-supported");return n(i)}},function(e,t,r){"use strict";Object.defineProperty(t,"__esModule",{value:!0});class n{static isCompactIri(e){return e.indexOf(":")>0&&!(e&&"#"===e[0])}static getPrefix(e,t){if(e&&"#"===e[0])return null;const r=e.indexOf(":");if(r>=0){if(e.length>r+1&&"/"===e.charAt(r+1)&&"/"===e.charAt(r+2))return null;const n=e.substr(0,r);if("_"===n)return null;if(t[n])return n}return null}static getContextValueId(e){if(null===e||"string"==typeof e)return e;const t=e["@id"];return t||null}static isSimpleTermDefinitionPrefix(e,t){return!n.isPotentialKeyword(e)&&("_"===e[0]||t.allowPrefixNonGenDelims||n.isPrefixIriEndingWithGenDelim(e))}static isPotentialKeyword(e){return"string"==typeof e&&n.KEYWORD_REGEX.test(e)}static isPrefixIriEndingWithGenDelim(e){return n.ENDS_WITH_GEN_DELIM.test(e)}static isPrefixValue(e){return e&&("string"==typeof e||e&&"object"==typeof e)}static isValidIri(e){return n.IRI_REGEX.test(e)}static isValidIriWeak(e){return!!e&&":"!==e[0]&&n.IRI_REGEX_WEAK.test(e)}static isValidKeyword(e){return n.VALID_KEYWORDS[e]}static isTermProtected(e,t){const r=e[t];return!("string"==typeof r)&&r&&r["@protected"]}static hasProtectedTerms(e){for(const t of Object.keys(e))if(n.isTermProtected(e,t))return!0;return!1}static isReservedInternalKeyword(e){return e.startsWith("@__")}}n.IRI_REGEX=/^([A-Za-z][A-Za-z0-9+-.]*|_):[^ "<>{}|\\\[\]`#]*(#[^#]*)?$/,n.IRI_REGEX_WEAK=/(?::[^:])|\//,n.KEYWORD_REGEX=/^@[a-z]+$/i,n.ENDS_WITH_GEN_DELIM=/[:/?#\[\]@]$/,n.REGEX_LANGUAGE_TAG=/^[a-zA-Z]+(-[a-zA-Z0-9]+)*$/,n.REGEX_DIRECTION_TAG=/^(ltr)|(rtl)$/,n.VALID_KEYWORDS={"@base":!0,"@container":!0,"@context":!0,"@direction":!0,"@graph":!0,"@id":!0,"@import":!0,"@included":!0,"@index":!0,"@json":!0,"@language":!0,"@list":!0,"@nest":!0,"@none":!0,"@prefix":!0,"@propagate":!0,"@protected":!0,"@reverse":!0,"@set":!0,"@type":!0,"@value":!0,"@version":!0,"@vocab":!0},n.EXPAND_KEYS_BLACKLIST=["@base","@vocab","@language","@version","@direction"],n.ALIAS_DOMAIN_BLACKLIST=["@container","@graph","@id","@index","@list","@nest","@none","@prefix","@reverse","@set","@type","@value","@version"],n.ALIAS_RANGE_BLACKLIST=["@context","@preserve"],n.CONTAINERS=["@list","@set","@index","@language","@graph","@id","@type"],n.CONTAINERS_1_0=["@list","@set","@index"],t.Util=n},function(e,t,r){"use strict";var n=r(33).codes.ERR_STREAM_PREMATURE_CLOSE;function i(){}e.exports=function e(t,r,a){if("function"==typeof r)return e(t,null,r);r||(r={}),a=function(e){var t=!1;return function(){if(!t){t=!0;for(var r=arguments.length,n=new Array(r),i=0;i","GT":">","Gt":"≫","gtdot":"⋗","gtlPar":"⦕","gtquest":"⩼","gtrapprox":"⪆","gtrarr":"⥸","gtrdot":"⋗","gtreqless":"⋛","gtreqqless":"⪌","gtrless":"≷","gtrsim":"≳","gvertneqq":"≩︀","gvnE":"≩︀","Hacek":"ˇ","hairsp":" ","half":"½","hamilt":"ℋ","HARDcy":"Ъ","hardcy":"ъ","harrcir":"⥈","harr":"↔","hArr":"⇔","harrw":"↭","Hat":"^","hbar":"ℏ","Hcirc":"Ĥ","hcirc":"ĥ","hearts":"♥","heartsuit":"♥","hellip":"…","hercon":"⊹","hfr":"𝔥","Hfr":"ℌ","HilbertSpace":"ℋ","hksearow":"⤥","hkswarow":"⤦","hoarr":"⇿","homtht":"∻","hookleftarrow":"↩","hookrightarrow":"↪","hopf":"𝕙","Hopf":"ℍ","horbar":"―","HorizontalLine":"─","hscr":"𝒽","Hscr":"ℋ","hslash":"ℏ","Hstrok":"Ħ","hstrok":"ħ","HumpDownHump":"≎","HumpEqual":"≏","hybull":"⁃","hyphen":"‐","Iacute":"Í","iacute":"í","ic":"⁣","Icirc":"Î","icirc":"î","Icy":"И","icy":"и","Idot":"İ","IEcy":"Е","iecy":"е","iexcl":"¡","iff":"⇔","ifr":"𝔦","Ifr":"ℑ","Igrave":"Ì","igrave":"ì","ii":"ⅈ","iiiint":"⨌","iiint":"∭","iinfin":"⧜","iiota":"℩","IJlig":"IJ","ijlig":"ij","Imacr":"Ī","imacr":"ī","image":"ℑ","ImaginaryI":"ⅈ","imagline":"ℐ","imagpart":"ℑ","imath":"ı","Im":"ℑ","imof":"⊷","imped":"Ƶ","Implies":"⇒","incare":"℅","in":"∈","infin":"∞","infintie":"⧝","inodot":"ı","intcal":"⊺","int":"∫","Int":"∬","integers":"ℤ","Integral":"∫","intercal":"⊺","Intersection":"⋂","intlarhk":"⨗","intprod":"⨼","InvisibleComma":"⁣","InvisibleTimes":"⁢","IOcy":"Ё","iocy":"ё","Iogon":"Į","iogon":"į","Iopf":"𝕀","iopf":"𝕚","Iota":"Ι","iota":"ι","iprod":"⨼","iquest":"¿","iscr":"𝒾","Iscr":"ℐ","isin":"∈","isindot":"⋵","isinE":"⋹","isins":"⋴","isinsv":"⋳","isinv":"∈","it":"⁢","Itilde":"Ĩ","itilde":"ĩ","Iukcy":"І","iukcy":"і","Iuml":"Ï","iuml":"ï","Jcirc":"Ĵ","jcirc":"ĵ","Jcy":"Й","jcy":"й","Jfr":"𝔍","jfr":"𝔧","jmath":"ȷ","Jopf":"𝕁","jopf":"𝕛","Jscr":"𝒥","jscr":"𝒿","Jsercy":"Ј","jsercy":"ј","Jukcy":"Є","jukcy":"є","Kappa":"Κ","kappa":"κ","kappav":"ϰ","Kcedil":"Ķ","kcedil":"ķ","Kcy":"К","kcy":"к","Kfr":"𝔎","kfr":"𝔨","kgreen":"ĸ","KHcy":"Х","khcy":"х","KJcy":"Ќ","kjcy":"ќ","Kopf":"𝕂","kopf":"𝕜","Kscr":"𝒦","kscr":"𝓀","lAarr":"⇚","Lacute":"Ĺ","lacute":"ĺ","laemptyv":"⦴","lagran":"ℒ","Lambda":"Λ","lambda":"λ","lang":"⟨","Lang":"⟪","langd":"⦑","langle":"⟨","lap":"⪅","Laplacetrf":"ℒ","laquo":"«","larrb":"⇤","larrbfs":"⤟","larr":"←","Larr":"↞","lArr":"⇐","larrfs":"⤝","larrhk":"↩","larrlp":"↫","larrpl":"⤹","larrsim":"⥳","larrtl":"↢","latail":"⤙","lAtail":"⤛","lat":"⪫","late":"⪭","lates":"⪭︀","lbarr":"⤌","lBarr":"⤎","lbbrk":"❲","lbrace":"{","lbrack":"[","lbrke":"⦋","lbrksld":"⦏","lbrkslu":"⦍","Lcaron":"Ľ","lcaron":"ľ","Lcedil":"Ļ","lcedil":"ļ","lceil":"⌈","lcub":"{","Lcy":"Л","lcy":"л","ldca":"⤶","ldquo":"“","ldquor":"„","ldrdhar":"⥧","ldrushar":"⥋","ldsh":"↲","le":"≤","lE":"≦","LeftAngleBracket":"⟨","LeftArrowBar":"⇤","leftarrow":"←","LeftArrow":"←","Leftarrow":"⇐","LeftArrowRightArrow":"⇆","leftarrowtail":"↢","LeftCeiling":"⌈","LeftDoubleBracket":"⟦","LeftDownTeeVector":"⥡","LeftDownVectorBar":"⥙","LeftDownVector":"⇃","LeftFloor":"⌊","leftharpoondown":"↽","leftharpoonup":"↼","leftleftarrows":"⇇","leftrightarrow":"↔","LeftRightArrow":"↔","Leftrightarrow":"⇔","leftrightarrows":"⇆","leftrightharpoons":"⇋","leftrightsquigarrow":"↭","LeftRightVector":"⥎","LeftTeeArrow":"↤","LeftTee":"⊣","LeftTeeVector":"⥚","leftthreetimes":"⋋","LeftTriangleBar":"⧏","LeftTriangle":"⊲","LeftTriangleEqual":"⊴","LeftUpDownVector":"⥑","LeftUpTeeVector":"⥠","LeftUpVectorBar":"⥘","LeftUpVector":"↿","LeftVectorBar":"⥒","LeftVector":"↼","lEg":"⪋","leg":"⋚","leq":"≤","leqq":"≦","leqslant":"⩽","lescc":"⪨","les":"⩽","lesdot":"⩿","lesdoto":"⪁","lesdotor":"⪃","lesg":"⋚︀","lesges":"⪓","lessapprox":"⪅","lessdot":"⋖","lesseqgtr":"⋚","lesseqqgtr":"⪋","LessEqualGreater":"⋚","LessFullEqual":"≦","LessGreater":"≶","lessgtr":"≶","LessLess":"⪡","lesssim":"≲","LessSlantEqual":"⩽","LessTilde":"≲","lfisht":"⥼","lfloor":"⌊","Lfr":"𝔏","lfr":"𝔩","lg":"≶","lgE":"⪑","lHar":"⥢","lhard":"↽","lharu":"↼","lharul":"⥪","lhblk":"▄","LJcy":"Љ","ljcy":"љ","llarr":"⇇","ll":"≪","Ll":"⋘","llcorner":"⌞","Lleftarrow":"⇚","llhard":"⥫","lltri":"◺","Lmidot":"Ŀ","lmidot":"ŀ","lmoustache":"⎰","lmoust":"⎰","lnap":"⪉","lnapprox":"⪉","lne":"⪇","lnE":"≨","lneq":"⪇","lneqq":"≨","lnsim":"⋦","loang":"⟬","loarr":"⇽","lobrk":"⟦","longleftarrow":"⟵","LongLeftArrow":"⟵","Longleftarrow":"⟸","longleftrightarrow":"⟷","LongLeftRightArrow":"⟷","Longleftrightarrow":"⟺","longmapsto":"⟼","longrightarrow":"⟶","LongRightArrow":"⟶","Longrightarrow":"⟹","looparrowleft":"↫","looparrowright":"↬","lopar":"⦅","Lopf":"𝕃","lopf":"𝕝","loplus":"⨭","lotimes":"⨴","lowast":"∗","lowbar":"_","LowerLeftArrow":"↙","LowerRightArrow":"↘","loz":"◊","lozenge":"◊","lozf":"⧫","lpar":"(","lparlt":"⦓","lrarr":"⇆","lrcorner":"⌟","lrhar":"⇋","lrhard":"⥭","lrm":"‎","lrtri":"⊿","lsaquo":"‹","lscr":"𝓁","Lscr":"ℒ","lsh":"↰","Lsh":"↰","lsim":"≲","lsime":"⪍","lsimg":"⪏","lsqb":"[","lsquo":"‘","lsquor":"‚","Lstrok":"Ł","lstrok":"ł","ltcc":"⪦","ltcir":"⩹","lt":"<","LT":"<","Lt":"≪","ltdot":"⋖","lthree":"⋋","ltimes":"⋉","ltlarr":"⥶","ltquest":"⩻","ltri":"◃","ltrie":"⊴","ltrif":"◂","ltrPar":"⦖","lurdshar":"⥊","luruhar":"⥦","lvertneqq":"≨︀","lvnE":"≨︀","macr":"¯","male":"♂","malt":"✠","maltese":"✠","Map":"⤅","map":"↦","mapsto":"↦","mapstodown":"↧","mapstoleft":"↤","mapstoup":"↥","marker":"▮","mcomma":"⨩","Mcy":"М","mcy":"м","mdash":"—","mDDot":"∺","measuredangle":"∡","MediumSpace":" ","Mellintrf":"ℳ","Mfr":"𝔐","mfr":"𝔪","mho":"℧","micro":"µ","midast":"*","midcir":"⫰","mid":"∣","middot":"·","minusb":"⊟","minus":"−","minusd":"∸","minusdu":"⨪","MinusPlus":"∓","mlcp":"⫛","mldr":"…","mnplus":"∓","models":"⊧","Mopf":"𝕄","mopf":"𝕞","mp":"∓","mscr":"𝓂","Mscr":"ℳ","mstpos":"∾","Mu":"Μ","mu":"μ","multimap":"⊸","mumap":"⊸","nabla":"∇","Nacute":"Ń","nacute":"ń","nang":"∠⃒","nap":"≉","napE":"⩰̸","napid":"≋̸","napos":"ʼn","napprox":"≉","natural":"♮","naturals":"ℕ","natur":"♮","nbsp":" ","nbump":"≎̸","nbumpe":"≏̸","ncap":"⩃","Ncaron":"Ň","ncaron":"ň","Ncedil":"Ņ","ncedil":"ņ","ncong":"≇","ncongdot":"⩭̸","ncup":"⩂","Ncy":"Н","ncy":"н","ndash":"–","nearhk":"⤤","nearr":"↗","neArr":"⇗","nearrow":"↗","ne":"≠","nedot":"≐̸","NegativeMediumSpace":"​","NegativeThickSpace":"​","NegativeThinSpace":"​","NegativeVeryThinSpace":"​","nequiv":"≢","nesear":"⤨","nesim":"≂̸","NestedGreaterGreater":"≫","NestedLessLess":"≪","NewLine":"\\n","nexist":"∄","nexists":"∄","Nfr":"𝔑","nfr":"𝔫","ngE":"≧̸","nge":"≱","ngeq":"≱","ngeqq":"≧̸","ngeqslant":"⩾̸","nges":"⩾̸","nGg":"⋙̸","ngsim":"≵","nGt":"≫⃒","ngt":"≯","ngtr":"≯","nGtv":"≫̸","nharr":"↮","nhArr":"⇎","nhpar":"⫲","ni":"∋","nis":"⋼","nisd":"⋺","niv":"∋","NJcy":"Њ","njcy":"њ","nlarr":"↚","nlArr":"⇍","nldr":"‥","nlE":"≦̸","nle":"≰","nleftarrow":"↚","nLeftarrow":"⇍","nleftrightarrow":"↮","nLeftrightarrow":"⇎","nleq":"≰","nleqq":"≦̸","nleqslant":"⩽̸","nles":"⩽̸","nless":"≮","nLl":"⋘̸","nlsim":"≴","nLt":"≪⃒","nlt":"≮","nltri":"⋪","nltrie":"⋬","nLtv":"≪̸","nmid":"∤","NoBreak":"⁠","NonBreakingSpace":" ","nopf":"𝕟","Nopf":"ℕ","Not":"⫬","not":"¬","NotCongruent":"≢","NotCupCap":"≭","NotDoubleVerticalBar":"∦","NotElement":"∉","NotEqual":"≠","NotEqualTilde":"≂̸","NotExists":"∄","NotGreater":"≯","NotGreaterEqual":"≱","NotGreaterFullEqual":"≧̸","NotGreaterGreater":"≫̸","NotGreaterLess":"≹","NotGreaterSlantEqual":"⩾̸","NotGreaterTilde":"≵","NotHumpDownHump":"≎̸","NotHumpEqual":"≏̸","notin":"∉","notindot":"⋵̸","notinE":"⋹̸","notinva":"∉","notinvb":"⋷","notinvc":"⋶","NotLeftTriangleBar":"⧏̸","NotLeftTriangle":"⋪","NotLeftTriangleEqual":"⋬","NotLess":"≮","NotLessEqual":"≰","NotLessGreater":"≸","NotLessLess":"≪̸","NotLessSlantEqual":"⩽̸","NotLessTilde":"≴","NotNestedGreaterGreater":"⪢̸","NotNestedLessLess":"⪡̸","notni":"∌","notniva":"∌","notnivb":"⋾","notnivc":"⋽","NotPrecedes":"⊀","NotPrecedesEqual":"⪯̸","NotPrecedesSlantEqual":"⋠","NotReverseElement":"∌","NotRightTriangleBar":"⧐̸","NotRightTriangle":"⋫","NotRightTriangleEqual":"⋭","NotSquareSubset":"⊏̸","NotSquareSubsetEqual":"⋢","NotSquareSuperset":"⊐̸","NotSquareSupersetEqual":"⋣","NotSubset":"⊂⃒","NotSubsetEqual":"⊈","NotSucceeds":"⊁","NotSucceedsEqual":"⪰̸","NotSucceedsSlantEqual":"⋡","NotSucceedsTilde":"≿̸","NotSuperset":"⊃⃒","NotSupersetEqual":"⊉","NotTilde":"≁","NotTildeEqual":"≄","NotTildeFullEqual":"≇","NotTildeTilde":"≉","NotVerticalBar":"∤","nparallel":"∦","npar":"∦","nparsl":"⫽⃥","npart":"∂̸","npolint":"⨔","npr":"⊀","nprcue":"⋠","nprec":"⊀","npreceq":"⪯̸","npre":"⪯̸","nrarrc":"⤳̸","nrarr":"↛","nrArr":"⇏","nrarrw":"↝̸","nrightarrow":"↛","nRightarrow":"⇏","nrtri":"⋫","nrtrie":"⋭","nsc":"⊁","nsccue":"⋡","nsce":"⪰̸","Nscr":"𝒩","nscr":"𝓃","nshortmid":"∤","nshortparallel":"∦","nsim":"≁","nsime":"≄","nsimeq":"≄","nsmid":"∤","nspar":"∦","nsqsube":"⋢","nsqsupe":"⋣","nsub":"⊄","nsubE":"⫅̸","nsube":"⊈","nsubset":"⊂⃒","nsubseteq":"⊈","nsubseteqq":"⫅̸","nsucc":"⊁","nsucceq":"⪰̸","nsup":"⊅","nsupE":"⫆̸","nsupe":"⊉","nsupset":"⊃⃒","nsupseteq":"⊉","nsupseteqq":"⫆̸","ntgl":"≹","Ntilde":"Ñ","ntilde":"ñ","ntlg":"≸","ntriangleleft":"⋪","ntrianglelefteq":"⋬","ntriangleright":"⋫","ntrianglerighteq":"⋭","Nu":"Ν","nu":"ν","num":"#","numero":"№","numsp":" ","nvap":"≍⃒","nvdash":"⊬","nvDash":"⊭","nVdash":"⊮","nVDash":"⊯","nvge":"≥⃒","nvgt":">⃒","nvHarr":"⤄","nvinfin":"⧞","nvlArr":"⤂","nvle":"≤⃒","nvlt":"<⃒","nvltrie":"⊴⃒","nvrArr":"⤃","nvrtrie":"⊵⃒","nvsim":"∼⃒","nwarhk":"⤣","nwarr":"↖","nwArr":"⇖","nwarrow":"↖","nwnear":"⤧","Oacute":"Ó","oacute":"ó","oast":"⊛","Ocirc":"Ô","ocirc":"ô","ocir":"⊚","Ocy":"О","ocy":"о","odash":"⊝","Odblac":"Ő","odblac":"ő","odiv":"⨸","odot":"⊙","odsold":"⦼","OElig":"Œ","oelig":"œ","ofcir":"⦿","Ofr":"𝔒","ofr":"𝔬","ogon":"˛","Ograve":"Ò","ograve":"ò","ogt":"⧁","ohbar":"⦵","ohm":"Ω","oint":"∮","olarr":"↺","olcir":"⦾","olcross":"⦻","oline":"‾","olt":"⧀","Omacr":"Ō","omacr":"ō","Omega":"Ω","omega":"ω","Omicron":"Ο","omicron":"ο","omid":"⦶","ominus":"⊖","Oopf":"𝕆","oopf":"𝕠","opar":"⦷","OpenCurlyDoubleQuote":"“","OpenCurlyQuote":"‘","operp":"⦹","oplus":"⊕","orarr":"↻","Or":"⩔","or":"∨","ord":"⩝","order":"ℴ","orderof":"ℴ","ordf":"ª","ordm":"º","origof":"⊶","oror":"⩖","orslope":"⩗","orv":"⩛","oS":"Ⓢ","Oscr":"𝒪","oscr":"ℴ","Oslash":"Ø","oslash":"ø","osol":"⊘","Otilde":"Õ","otilde":"õ","otimesas":"⨶","Otimes":"⨷","otimes":"⊗","Ouml":"Ö","ouml":"ö","ovbar":"⌽","OverBar":"‾","OverBrace":"⏞","OverBracket":"⎴","OverParenthesis":"⏜","para":"¶","parallel":"∥","par":"∥","parsim":"⫳","parsl":"⫽","part":"∂","PartialD":"∂","Pcy":"П","pcy":"п","percnt":"%","period":".","permil":"‰","perp":"⊥","pertenk":"‱","Pfr":"𝔓","pfr":"𝔭","Phi":"Φ","phi":"φ","phiv":"ϕ","phmmat":"ℳ","phone":"☎","Pi":"Π","pi":"π","pitchfork":"⋔","piv":"ϖ","planck":"ℏ","planckh":"ℎ","plankv":"ℏ","plusacir":"⨣","plusb":"⊞","pluscir":"⨢","plus":"+","plusdo":"∔","plusdu":"⨥","pluse":"⩲","PlusMinus":"±","plusmn":"±","plussim":"⨦","plustwo":"⨧","pm":"±","Poincareplane":"ℌ","pointint":"⨕","popf":"𝕡","Popf":"ℙ","pound":"£","prap":"⪷","Pr":"⪻","pr":"≺","prcue":"≼","precapprox":"⪷","prec":"≺","preccurlyeq":"≼","Precedes":"≺","PrecedesEqual":"⪯","PrecedesSlantEqual":"≼","PrecedesTilde":"≾","preceq":"⪯","precnapprox":"⪹","precneqq":"⪵","precnsim":"⋨","pre":"⪯","prE":"⪳","precsim":"≾","prime":"′","Prime":"″","primes":"ℙ","prnap":"⪹","prnE":"⪵","prnsim":"⋨","prod":"∏","Product":"∏","profalar":"⌮","profline":"⌒","profsurf":"⌓","prop":"∝","Proportional":"∝","Proportion":"∷","propto":"∝","prsim":"≾","prurel":"⊰","Pscr":"𝒫","pscr":"𝓅","Psi":"Ψ","psi":"ψ","puncsp":" ","Qfr":"𝔔","qfr":"𝔮","qint":"⨌","qopf":"𝕢","Qopf":"ℚ","qprime":"⁗","Qscr":"𝒬","qscr":"𝓆","quaternions":"ℍ","quatint":"⨖","quest":"?","questeq":"≟","quot":"\\"","QUOT":"\\"","rAarr":"⇛","race":"∽̱","Racute":"Ŕ","racute":"ŕ","radic":"√","raemptyv":"⦳","rang":"⟩","Rang":"⟫","rangd":"⦒","range":"⦥","rangle":"⟩","raquo":"»","rarrap":"⥵","rarrb":"⇥","rarrbfs":"⤠","rarrc":"⤳","rarr":"→","Rarr":"↠","rArr":"⇒","rarrfs":"⤞","rarrhk":"↪","rarrlp":"↬","rarrpl":"⥅","rarrsim":"⥴","Rarrtl":"⤖","rarrtl":"↣","rarrw":"↝","ratail":"⤚","rAtail":"⤜","ratio":"∶","rationals":"ℚ","rbarr":"⤍","rBarr":"⤏","RBarr":"⤐","rbbrk":"❳","rbrace":"}","rbrack":"]","rbrke":"⦌","rbrksld":"⦎","rbrkslu":"⦐","Rcaron":"Ř","rcaron":"ř","Rcedil":"Ŗ","rcedil":"ŗ","rceil":"⌉","rcub":"}","Rcy":"Р","rcy":"р","rdca":"⤷","rdldhar":"⥩","rdquo":"”","rdquor":"”","rdsh":"↳","real":"ℜ","realine":"ℛ","realpart":"ℜ","reals":"ℝ","Re":"ℜ","rect":"▭","reg":"®","REG":"®","ReverseElement":"∋","ReverseEquilibrium":"⇋","ReverseUpEquilibrium":"⥯","rfisht":"⥽","rfloor":"⌋","rfr":"𝔯","Rfr":"ℜ","rHar":"⥤","rhard":"⇁","rharu":"⇀","rharul":"⥬","Rho":"Ρ","rho":"ρ","rhov":"ϱ","RightAngleBracket":"⟩","RightArrowBar":"⇥","rightarrow":"→","RightArrow":"→","Rightarrow":"⇒","RightArrowLeftArrow":"⇄","rightarrowtail":"↣","RightCeiling":"⌉","RightDoubleBracket":"⟧","RightDownTeeVector":"⥝","RightDownVectorBar":"⥕","RightDownVector":"⇂","RightFloor":"⌋","rightharpoondown":"⇁","rightharpoonup":"⇀","rightleftarrows":"⇄","rightleftharpoons":"⇌","rightrightarrows":"⇉","rightsquigarrow":"↝","RightTeeArrow":"↦","RightTee":"⊢","RightTeeVector":"⥛","rightthreetimes":"⋌","RightTriangleBar":"⧐","RightTriangle":"⊳","RightTriangleEqual":"⊵","RightUpDownVector":"⥏","RightUpTeeVector":"⥜","RightUpVectorBar":"⥔","RightUpVector":"↾","RightVectorBar":"⥓","RightVector":"⇀","ring":"˚","risingdotseq":"≓","rlarr":"⇄","rlhar":"⇌","rlm":"‏","rmoustache":"⎱","rmoust":"⎱","rnmid":"⫮","roang":"⟭","roarr":"⇾","robrk":"⟧","ropar":"⦆","ropf":"𝕣","Ropf":"ℝ","roplus":"⨮","rotimes":"⨵","RoundImplies":"⥰","rpar":")","rpargt":"⦔","rppolint":"⨒","rrarr":"⇉","Rrightarrow":"⇛","rsaquo":"›","rscr":"𝓇","Rscr":"ℛ","rsh":"↱","Rsh":"↱","rsqb":"]","rsquo":"’","rsquor":"’","rthree":"⋌","rtimes":"⋊","rtri":"▹","rtrie":"⊵","rtrif":"▸","rtriltri":"⧎","RuleDelayed":"⧴","ruluhar":"⥨","rx":"℞","Sacute":"Ś","sacute":"ś","sbquo":"‚","scap":"⪸","Scaron":"Š","scaron":"š","Sc":"⪼","sc":"≻","sccue":"≽","sce":"⪰","scE":"⪴","Scedil":"Ş","scedil":"ş","Scirc":"Ŝ","scirc":"ŝ","scnap":"⪺","scnE":"⪶","scnsim":"⋩","scpolint":"⨓","scsim":"≿","Scy":"С","scy":"с","sdotb":"⊡","sdot":"⋅","sdote":"⩦","searhk":"⤥","searr":"↘","seArr":"⇘","searrow":"↘","sect":"§","semi":";","seswar":"⤩","setminus":"∖","setmn":"∖","sext":"✶","Sfr":"𝔖","sfr":"𝔰","sfrown":"⌢","sharp":"♯","SHCHcy":"Щ","shchcy":"щ","SHcy":"Ш","shcy":"ш","ShortDownArrow":"↓","ShortLeftArrow":"←","shortmid":"∣","shortparallel":"∥","ShortRightArrow":"→","ShortUpArrow":"↑","shy":"­","Sigma":"Σ","sigma":"σ","sigmaf":"ς","sigmav":"ς","sim":"∼","simdot":"⩪","sime":"≃","simeq":"≃","simg":"⪞","simgE":"⪠","siml":"⪝","simlE":"⪟","simne":"≆","simplus":"⨤","simrarr":"⥲","slarr":"←","SmallCircle":"∘","smallsetminus":"∖","smashp":"⨳","smeparsl":"⧤","smid":"∣","smile":"⌣","smt":"⪪","smte":"⪬","smtes":"⪬︀","SOFTcy":"Ь","softcy":"ь","solbar":"⌿","solb":"⧄","sol":"/","Sopf":"𝕊","sopf":"𝕤","spades":"♠","spadesuit":"♠","spar":"∥","sqcap":"⊓","sqcaps":"⊓︀","sqcup":"⊔","sqcups":"⊔︀","Sqrt":"√","sqsub":"⊏","sqsube":"⊑","sqsubset":"⊏","sqsubseteq":"⊑","sqsup":"⊐","sqsupe":"⊒","sqsupset":"⊐","sqsupseteq":"⊒","square":"□","Square":"□","SquareIntersection":"⊓","SquareSubset":"⊏","SquareSubsetEqual":"⊑","SquareSuperset":"⊐","SquareSupersetEqual":"⊒","SquareUnion":"⊔","squarf":"▪","squ":"□","squf":"▪","srarr":"→","Sscr":"𝒮","sscr":"𝓈","ssetmn":"∖","ssmile":"⌣","sstarf":"⋆","Star":"⋆","star":"☆","starf":"★","straightepsilon":"ϵ","straightphi":"ϕ","strns":"¯","sub":"⊂","Sub":"⋐","subdot":"⪽","subE":"⫅","sube":"⊆","subedot":"⫃","submult":"⫁","subnE":"⫋","subne":"⊊","subplus":"⪿","subrarr":"⥹","subset":"⊂","Subset":"⋐","subseteq":"⊆","subseteqq":"⫅","SubsetEqual":"⊆","subsetneq":"⊊","subsetneqq":"⫋","subsim":"⫇","subsub":"⫕","subsup":"⫓","succapprox":"⪸","succ":"≻","succcurlyeq":"≽","Succeeds":"≻","SucceedsEqual":"⪰","SucceedsSlantEqual":"≽","SucceedsTilde":"≿","succeq":"⪰","succnapprox":"⪺","succneqq":"⪶","succnsim":"⋩","succsim":"≿","SuchThat":"∋","sum":"∑","Sum":"∑","sung":"♪","sup1":"¹","sup2":"²","sup3":"³","sup":"⊃","Sup":"⋑","supdot":"⪾","supdsub":"⫘","supE":"⫆","supe":"⊇","supedot":"⫄","Superset":"⊃","SupersetEqual":"⊇","suphsol":"⟉","suphsub":"⫗","suplarr":"⥻","supmult":"⫂","supnE":"⫌","supne":"⊋","supplus":"⫀","supset":"⊃","Supset":"⋑","supseteq":"⊇","supseteqq":"⫆","supsetneq":"⊋","supsetneqq":"⫌","supsim":"⫈","supsub":"⫔","supsup":"⫖","swarhk":"⤦","swarr":"↙","swArr":"⇙","swarrow":"↙","swnwar":"⤪","szlig":"ß","Tab":"\\t","target":"⌖","Tau":"Τ","tau":"τ","tbrk":"⎴","Tcaron":"Ť","tcaron":"ť","Tcedil":"Ţ","tcedil":"ţ","Tcy":"Т","tcy":"т","tdot":"⃛","telrec":"⌕","Tfr":"𝔗","tfr":"𝔱","there4":"∴","therefore":"∴","Therefore":"∴","Theta":"Θ","theta":"θ","thetasym":"ϑ","thetav":"ϑ","thickapprox":"≈","thicksim":"∼","ThickSpace":"  ","ThinSpace":" ","thinsp":" ","thkap":"≈","thksim":"∼","THORN":"Þ","thorn":"þ","tilde":"˜","Tilde":"∼","TildeEqual":"≃","TildeFullEqual":"≅","TildeTilde":"≈","timesbar":"⨱","timesb":"⊠","times":"×","timesd":"⨰","tint":"∭","toea":"⤨","topbot":"⌶","topcir":"⫱","top":"⊤","Topf":"𝕋","topf":"𝕥","topfork":"⫚","tosa":"⤩","tprime":"‴","trade":"™","TRADE":"™","triangle":"▵","triangledown":"▿","triangleleft":"◃","trianglelefteq":"⊴","triangleq":"≜","triangleright":"▹","trianglerighteq":"⊵","tridot":"◬","trie":"≜","triminus":"⨺","TripleDot":"⃛","triplus":"⨹","trisb":"⧍","tritime":"⨻","trpezium":"⏢","Tscr":"𝒯","tscr":"𝓉","TScy":"Ц","tscy":"ц","TSHcy":"Ћ","tshcy":"ћ","Tstrok":"Ŧ","tstrok":"ŧ","twixt":"≬","twoheadleftarrow":"↞","twoheadrightarrow":"↠","Uacute":"Ú","uacute":"ú","uarr":"↑","Uarr":"↟","uArr":"⇑","Uarrocir":"⥉","Ubrcy":"Ў","ubrcy":"ў","Ubreve":"Ŭ","ubreve":"ŭ","Ucirc":"Û","ucirc":"û","Ucy":"У","ucy":"у","udarr":"⇅","Udblac":"Ű","udblac":"ű","udhar":"⥮","ufisht":"⥾","Ufr":"𝔘","ufr":"𝔲","Ugrave":"Ù","ugrave":"ù","uHar":"⥣","uharl":"↿","uharr":"↾","uhblk":"▀","ulcorn":"⌜","ulcorner":"⌜","ulcrop":"⌏","ultri":"◸","Umacr":"Ū","umacr":"ū","uml":"¨","UnderBar":"_","UnderBrace":"⏟","UnderBracket":"⎵","UnderParenthesis":"⏝","Union":"⋃","UnionPlus":"⊎","Uogon":"Ų","uogon":"ų","Uopf":"𝕌","uopf":"𝕦","UpArrowBar":"⤒","uparrow":"↑","UpArrow":"↑","Uparrow":"⇑","UpArrowDownArrow":"⇅","updownarrow":"↕","UpDownArrow":"↕","Updownarrow":"⇕","UpEquilibrium":"⥮","upharpoonleft":"↿","upharpoonright":"↾","uplus":"⊎","UpperLeftArrow":"↖","UpperRightArrow":"↗","upsi":"υ","Upsi":"ϒ","upsih":"ϒ","Upsilon":"Υ","upsilon":"υ","UpTeeArrow":"↥","UpTee":"⊥","upuparrows":"⇈","urcorn":"⌝","urcorner":"⌝","urcrop":"⌎","Uring":"Ů","uring":"ů","urtri":"◹","Uscr":"𝒰","uscr":"𝓊","utdot":"⋰","Utilde":"Ũ","utilde":"ũ","utri":"▵","utrif":"▴","uuarr":"⇈","Uuml":"Ü","uuml":"ü","uwangle":"⦧","vangrt":"⦜","varepsilon":"ϵ","varkappa":"ϰ","varnothing":"∅","varphi":"ϕ","varpi":"ϖ","varpropto":"∝","varr":"↕","vArr":"⇕","varrho":"ϱ","varsigma":"ς","varsubsetneq":"⊊︀","varsubsetneqq":"⫋︀","varsupsetneq":"⊋︀","varsupsetneqq":"⫌︀","vartheta":"ϑ","vartriangleleft":"⊲","vartriangleright":"⊳","vBar":"⫨","Vbar":"⫫","vBarv":"⫩","Vcy":"В","vcy":"в","vdash":"⊢","vDash":"⊨","Vdash":"⊩","VDash":"⊫","Vdashl":"⫦","veebar":"⊻","vee":"∨","Vee":"⋁","veeeq":"≚","vellip":"⋮","verbar":"|","Verbar":"‖","vert":"|","Vert":"‖","VerticalBar":"∣","VerticalLine":"|","VerticalSeparator":"❘","VerticalTilde":"≀","VeryThinSpace":" ","Vfr":"𝔙","vfr":"𝔳","vltri":"⊲","vnsub":"⊂⃒","vnsup":"⊃⃒","Vopf":"𝕍","vopf":"𝕧","vprop":"∝","vrtri":"⊳","Vscr":"𝒱","vscr":"𝓋","vsubnE":"⫋︀","vsubne":"⊊︀","vsupnE":"⫌︀","vsupne":"⊋︀","Vvdash":"⊪","vzigzag":"⦚","Wcirc":"Ŵ","wcirc":"ŵ","wedbar":"⩟","wedge":"∧","Wedge":"⋀","wedgeq":"≙","weierp":"℘","Wfr":"𝔚","wfr":"𝔴","Wopf":"𝕎","wopf":"𝕨","wp":"℘","wr":"≀","wreath":"≀","Wscr":"𝒲","wscr":"𝓌","xcap":"⋂","xcirc":"◯","xcup":"⋃","xdtri":"▽","Xfr":"𝔛","xfr":"𝔵","xharr":"⟷","xhArr":"⟺","Xi":"Ξ","xi":"ξ","xlarr":"⟵","xlArr":"⟸","xmap":"⟼","xnis":"⋻","xodot":"⨀","Xopf":"𝕏","xopf":"𝕩","xoplus":"⨁","xotime":"⨂","xrarr":"⟶","xrArr":"⟹","Xscr":"𝒳","xscr":"𝓍","xsqcup":"⨆","xuplus":"⨄","xutri":"△","xvee":"⋁","xwedge":"⋀","Yacute":"Ý","yacute":"ý","YAcy":"Я","yacy":"я","Ycirc":"Ŷ","ycirc":"ŷ","Ycy":"Ы","ycy":"ы","yen":"¥","Yfr":"𝔜","yfr":"𝔶","YIcy":"Ї","yicy":"ї","Yopf":"𝕐","yopf":"𝕪","Yscr":"𝒴","yscr":"𝓎","YUcy":"Ю","yucy":"ю","yuml":"ÿ","Yuml":"Ÿ","Zacute":"Ź","zacute":"ź","Zcaron":"Ž","zcaron":"ž","Zcy":"З","zcy":"з","Zdot":"Ż","zdot":"ż","zeetrf":"ℨ","ZeroWidthSpace":"​","Zeta":"Ζ","zeta":"ζ","zfr":"𝔷","Zfr":"ℨ","ZHcy":"Ж","zhcy":"ж","zigrarr":"⇝","zopf":"𝕫","Zopf":"ℤ","Zscr":"𝒵","zscr":"𝓏","zwj":"‍","zwnj":"‌"}')},function(e){e.exports=JSON.parse('{"amp":"&","apos":"\'","gt":">","lt":"<","quot":"\\""}')},function(e,t,r){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.isTag=function(e){return"tag"===e.type||"script"===e.type||"style"===e.type},t.Text="text",t.Directive="directive",t.Comment="comment",t.Script="script",t.Style="style",t.Tag="tag",t.CDATA="cdata",t.Doctype="doctype"},function(e,t,r){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.RDFA_FEATURES={"":{baseTag:!0,xmlBase:!0,langAttribute:!0,onlyAllowUriRelRevIfProperty:!0,inheritSubjectInHeadBody:!0,datetimeAttribute:!0,timeTag:!0,htmlDatatype:!0,copyRdfaPatterns:!0,xmlnsPrefixMappings:!0,xhtmlInitialContext:!0,roleAttribute:!0},core:{baseTag:!1,xmlBase:!1,langAttribute:!0,onlyAllowUriRelRevIfProperty:!0,inheritSubjectInHeadBody:!1,datetimeAttribute:!1,timeTag:!1,htmlDatatype:!1,copyRdfaPatterns:!0,xmlnsPrefixMappings:!0,xhtmlInitialContext:!1,roleAttribute:!1},html:{baseTag:!0,xmlBase:!1,langAttribute:!0,onlyAllowUriRelRevIfProperty:!0,inheritSubjectInHeadBody:!0,datetimeAttribute:!0,timeTag:!0,htmlDatatype:!0,copyRdfaPatterns:!0,xmlnsPrefixMappings:!0,xhtmlInitialContext:!1,roleAttribute:!0},xhtml:{baseTag:!0,xmlBase:!1,langAttribute:!0,onlyAllowUriRelRevIfProperty:!0,inheritSubjectInHeadBody:!0,datetimeAttribute:!0,timeTag:!0,htmlDatatype:!0,copyRdfaPatterns:!0,xmlnsPrefixMappings:!0,xhtmlInitialContext:!0,roleAttribute:!0},xml:{baseTag:!1,xmlBase:!0,langAttribute:!0,onlyAllowUriRelRevIfProperty:!1,inheritSubjectInHeadBody:!1,datetimeAttribute:!0,timeTag:!0,htmlDatatype:!1,copyRdfaPatterns:!1,xmlnsPrefixMappings:!0,xhtmlInitialContext:!1,roleAttribute:!0}},t.RDFA_CONTENTTYPES={"text/html":"html","application/xhtml+xml":"xhtml","application/xml":"xml","text/xml":"xml","image/svg+xml":"xml"}},function(e,t,r){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),function(e){for(var r in e)t.hasOwnProperty(r)||(t[r]=e[r])}(r(275))},function(e,t,r){"use strict";function n(e){for(var r in e)t.hasOwnProperty(r)||(t[r]=e[r])}Object.defineProperty(t,"__esModule",{value:!0}),n(r(129)),n(r(292)),n(r(135))},function(e,t){e.exports=null},function(e,t,r){"use strict";function n(e){for(var r in e)t.hasOwnProperty(r)||(t[r]=e[r])}Object.defineProperty(t,"__esModule",{value:!0}),n(r(302)),n(r(132))},function(e,t,r){"use strict";(function(e){var n=r(133),i=r(303),a=e.from&&e.from!==Uint8Array.from;function o(e,t){return"string"==typeof e?t==e:e&&"function"==typeof e.exec?e.exec(t):"boolean"==typeof e||"object"==typeof e?e:"function"==typeof e&&e(t)}t.parse=function(t,r){var s,u,c=new n,l=i((function(t){"string"==typeof t&&(t=a?e.from(t):new e(t)),c.write(t)}),(function(e){e&&l.write(e),s&&l.emit("header",s),u&&l.emit("footer",u),l.queue(null)}));"string"==typeof t&&(t=t.split(".").map((function(e){return"$*"===e?{emitKey:!0}:"*"===e||(""===e?{recurse:!0}:e)})));return t&&t.length||(t=null),c.onValue=function(e){if(this.root||(l.root=e),t){for(var n=0,i=0,a=!1,u=!1;n-1&&(e.message="Invalid JSON ("+e.message+")"),l.emit("error",e)},l;function h(e,t){!1!==s&&((s=s||{})[e]=t),!1!==u&&!1===s&&((u=u||{})[e]=t)}},t.stringify=function(e,t,r,n){n=n||0,!1===e?(e="",t="\n",r=""):null==e&&(e="[\n",t="\n,\n",r="\n]\n");var a,o=!0,s=!1;return a=i((function(r){s=!0;try{var i=JSON.stringify(r,null,n)}catch(e){return a.emit("error",e)}o?(o=!1,a.queue(e+i)):a.queue(t+i)}),(function(t){s||a.queue(e),a.queue(r),a.queue(null)}))},t.stringifyObject=function(e,t,r,n){n=n||0,!1===e?(e="",t="\n",r=""):null==e&&(e="{\n",t="\n,\n",r="\n}\n");var a=!0,o=!1;return i((function(r){o=!0;var i=JSON.stringify(r[0])+":"+JSON.stringify(r[1],null,n);a?(a=!1,this.queue(e+i)):this.queue(t+i)}),(function(t){o||this.queue(e),this.queue(r),this.queue(null)}))}}).call(this,r(15).Buffer)},function(e,t,r){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),function(e){for(var r in e)t.hasOwnProperty(r)||(t[r]=e[r])}(r(309))},function(e,t,r){"use strict";Object.defineProperty(t,"__esModule",{value:!0});const n=r(52),i=r(53);class a{static inScopeVariables(e){const t=[];function r(e){t.find(t=>e.value===t.value)||t.push(e)}return a.recurseOperation(e,{[n.types.EXPRESSION]:e=>{let t=e;if("aggregate"===t.expressionType&&t.variable){r(t.variable)}return!0},[n.types.EXTEND]:e=>(r(e.variable),!0),[n.types.GRAPH]:e=>{let t=e;return"Variable"===t.name.termType&&r(t.name),!0},[n.types.GROUP]:e=>(e.variables.forEach(r),!0),[n.types.PATH]:e=>{let t=e;return"Variable"===t.subject.termType&&r(t.subject),"Variable"===t.object.termType&&r(t.object),"Variable"===t.graph.termType&&r(t.graph),!0},[n.types.PATTERN]:e=>{let t=e;return"Variable"===t.subject.termType&&r(t.subject),"Variable"===t.predicate.termType&&r(t.predicate),"Variable"===t.object.termType&&r(t.object),"Variable"===t.graph.termType&&r(t.graph),!0},[n.types.PROJECT]:e=>(e.variables.forEach(r),!1),[n.types.SERVICE]:e=>{let t=e;return"Variable"===t.name.termType&&r(t.name),!0},[n.types.VALUES]:e=>(e.variables.forEach(r),!0)}),t}static recurseOperation(e,t){let r=e,i=!0;if(t[e.type]&&(i=t[e.type](e)),!i)return;let o=e=>a.recurseOperation(e,t);switch(r.type){case n.types.ALT:const e=r;o(e.left),o(e.right);break;case n.types.ASK:o(r.input);break;case n.types.BGP:r.patterns.forEach(o);break;case n.types.CONSTRUCT:const t=r;o(t.input),t.template.map(o);break;case n.types.DESCRIBE:o(r.input);break;case n.types.DISTINCT:o(r.input);break;case n.types.EXPRESSION:const i=r;if(i.expressionType===n.expressionTypes.EXISTENCE){o(i.input)}break;case n.types.EXTEND:const a=r;o(a.input),o(a.expression);break;case n.types.FILTER:const s=r;o(s.input),o(s.expression);break;case n.types.FROM:o(r.input);break;case n.types.GRAPH:o(r.input);break;case n.types.GROUP:const u=r;o(u.input),u.aggregates.forEach(o);break;case n.types.INV:o(r.path);break;case n.types.JOIN:const c=r;o(c.left),o(c.right);break;case n.types.LEFT_JOIN:const l=r;o(l.left),o(l.right),l.expression&&o(l.expression);break;case n.types.LINK:break;case n.types.MINUS:const h=r;o(h.left),o(h.right);break;case n.types.NPS:break;case n.types.ONE_OR_MORE_PATH:o(r.path);break;case n.types.ORDER_BY:const p=r;o(p.input),p.expressions.forEach(o);break;case n.types.PATH:o(r.predicate);break;case n.types.PATTERN:break;case n.types.PROJECT:o(r.input);break;case n.types.REDUCED:o(r.input);break;case n.types.SEQ:const d=r;o(d.left),o(d.right);break;case n.types.SERVICE:o(r.input);break;case n.types.SLICE:o(r.input);break;case n.types.UNION:const f=r;o(f.left),o(f.right);break;case n.types.VALUES:break;case n.types.ZERO_OR_MORE_PATH:o(r.path);break;case n.types.ZERO_OR_ONE_PATH:o(r.path);break;default:throw new Error("Unknown Operation type "+r.type)}}static mapOperation(e,t,r){let o=e,s=!0;if(r=r||new i.default,t[e.type]&&({result:o,recurse:s}=t[e.type](e,r)),!s)return o;let u=e=>a.mapOperation(e,t,r);switch(o.type){case n.types.ALT:const e=o;return r.createAlt(u(e.left),u(e.right));case n.types.ASK:const i=o;return r.createAsk(u(i.input));case n.types.BGP:const s=o;return r.createBgp(s.patterns.map(u));case n.types.CONSTRUCT:const c=o;return r.createConstruct(u(c.input),c.template.map(u));case n.types.DESCRIBE:const l=o;return r.createDescribe(u(l.input),l.terms);case n.types.DISTINCT:const h=o;return r.createDistinct(u(h.input));case n.types.EXPRESSION:const p=o;return a.mapExpression(p,t,r);case n.types.EXTEND:const d=o;return r.createExtend(u(d.input),d.variable,u(d.expression));case n.types.FILTER:const f=o;return r.createFilter(u(f.input),u(f.expression));case n.types.FROM:const y=o;return r.createFrom(u(y.input),[].concat(y.default),[].concat(y.named));case n.types.GRAPH:const m=o;return r.createGraph(u(m.input),m.name);case n.types.GROUP:const g=o;return r.createGroup(u(g.input),[].concat(g.variables),g.aggregates.map(u));case n.types.INV:const _=o;return r.createInv(u(_.path));case n.types.JOIN:const b=o;return r.createJoin(u(b.left),u(b.right));case n.types.LEFT_JOIN:const v=o;return r.createLeftJoin(u(v.left),u(v.right),v.expression?u(v.expression):void 0);case n.types.LINK:const w=o;return r.createLink(w.iri);case n.types.MINUS:const E=o;return r.createMinus(u(E.left),u(E.right));case n.types.NPS:const S=o;return r.createNps([].concat(S.iris));case n.types.ONE_OR_MORE_PATH:const T=o;return r.createOneOrMorePath(u(T.path));case n.types.ORDER_BY:const x=o;return r.createOrderBy(u(x.input),x.expressions.map(u));case n.types.PATH:const O=o;return r.createPath(O.subject,u(O.predicate),O.object,O.graph);case n.types.PATTERN:const R=o;return r.createPattern(R.subject,R.predicate,R.object,R.graph);case n.types.PROJECT:const A=o;return r.createProject(u(A.input),[].concat(A.variables));case n.types.REDUCED:const I=o;return r.createReduced(u(I.input));case n.types.SEQ:const P=o;return r.createSeq(u(P.left),u(P.right));case n.types.SERVICE:const N=o;return r.createService(u(N.input),N.name,N.silent);case n.types.SLICE:const C=o;return r.createSlice(u(C.input),C.start,C.length);case n.types.UNION:const j=o;return r.createUnion(u(j.left),u(j.right));case n.types.VALUES:const D=o;return r.createValues([].concat(D.variables),D.bindings.map(e=>Object.assign({},e)));case n.types.ZERO_OR_MORE_PATH:const k=o;return r.createZeroOrMorePath(u(k.path));case n.types.ZERO_OR_ONE_PATH:const L=o;return r.createZeroOrOnePath(u(L.path));default:throw new Error("Unknown Operation type "+o.type)}}static mapExpression(e,t,r){let i=e=>a.mapOperation(e,t,r);switch(e.expressionType){case n.expressionTypes.AGGREGATE:if(e.variable){const t=e;return r.createBoundAggregate(t.variable,t.aggregator,i(t.expression),t.distinct,t.separator)}const t=e;return r.createAggregateExpression(t.aggregator,i(t.expression),t.distinct,t.separator);case n.expressionTypes.EXISTENCE:const a=e;return r.createExistenceExpression(a.not,i(a.input));case n.expressionTypes.NAMED:const o=e;return r.createNamedExpression(o.name,o.args.map(i));case n.expressionTypes.OPERATOR:const s=e;return r.createOperatorExpression(s.operator,s.args.map(i));case n.expressionTypes.TERM:const u=e;return r.createTermExpression(u.term);case n.expressionTypes.WILDCARD:return r.createWildcardExpression();default:throw new Error("Unknown Expression type "+e.expressionType)}}static createUniqueVariable(e,t,r){let n=0,i=e;for(;t[i];)i=e+n++;return r.variable(i)}static isTerm(e){return void 0!==e.termType&&"Wildcard"!==e.termType}static isWildcard(e){return"Wildcard"===e.termType}}t.default=a},function(e,t,r){"use strict";const n=r(390),i=Symbol("max"),a=Symbol("length"),o=Symbol("lengthCalculator"),s=Symbol("allowStale"),u=Symbol("maxAge"),c=Symbol("dispose"),l=Symbol("noDisposeOnSet"),h=Symbol("lruList"),p=Symbol("cache"),d=Symbol("updateAgeOnGet"),f=()=>1;const y=(e,t,r)=>{const n=e[p].get(t);if(n){const t=n.value;if(m(e,t)){if(_(e,n),!e[s])return}else r&&(e[d]&&(n.value.now=Date.now()),e[h].unshiftNode(n));return t.value}},m=(e,t)=>{if(!t||!t.maxAge&&!e[u])return!1;const r=Date.now()-t.now;return t.maxAge?r>t.maxAge:e[u]&&r>e[u]},g=e=>{if(e[a]>e[i])for(let t=e[h].tail;e[a]>e[i]&&null!==t;){const r=t.prev;_(e,t),t=r}},_=(e,t)=>{if(t){const r=t.value;e[c]&&e[c](r.key,r.value),e[a]-=r.length,e[p].delete(r.key),e[h].removeNode(t)}};class b{constructor(e,t,r,n,i){this.key=e,this.value=t,this.length=r,this.now=n,this.maxAge=i||0}}const v=(e,t,r,n)=>{let i=r.value;m(e,i)&&(_(e,r),e[s]||(i=void 0)),i&&t.call(n,i.value,i.key,e)};e.exports=class{constructor(e){if("number"==typeof e&&(e={max:e}),e||(e={}),e.max&&("number"!=typeof e.max||e.max<0))throw new TypeError("max must be a non-negative number");this[i]=e.max||1/0;const t=e.length||f;if(this[o]="function"!=typeof t?f:t,this[s]=e.stale||!1,e.maxAge&&"number"!=typeof e.maxAge)throw new TypeError("maxAge must be a number");this[u]=e.maxAge||0,this[c]=e.dispose,this[l]=e.noDisposeOnSet||!1,this[d]=e.updateAgeOnGet||!1,this.reset()}set max(e){if("number"!=typeof e||e<0)throw new TypeError("max must be a non-negative number");this[i]=e||1/0,g(this)}get max(){return this[i]}set allowStale(e){this[s]=!!e}get allowStale(){return this[s]}set maxAge(e){if("number"!=typeof e)throw new TypeError("maxAge must be a non-negative number");this[u]=e,g(this)}get maxAge(){return this[u]}set lengthCalculator(e){"function"!=typeof e&&(e=f),e!==this[o]&&(this[o]=e,this[a]=0,this[h].forEach(e=>{e.length=this[o](e.value,e.key),this[a]+=e.length})),g(this)}get lengthCalculator(){return this[o]}get length(){return this[a]}get itemCount(){return this[h].length}rforEach(e,t){t=t||this;for(let r=this[h].tail;null!==r;){const n=r.prev;v(this,e,r,t),r=n}}forEach(e,t){t=t||this;for(let r=this[h].head;null!==r;){const n=r.next;v(this,e,r,t),r=n}}keys(){return this[h].toArray().map(e=>e.key)}values(){return this[h].toArray().map(e=>e.value)}reset(){this[c]&&this[h]&&this[h].length&&this[h].forEach(e=>this[c](e.key,e.value)),this[p]=new Map,this[h]=new n,this[a]=0}dump(){return this[h].map(e=>!m(this,e)&&{k:e.key,v:e.value,e:e.now+(e.maxAge||0)}).toArray().filter(e=>e)}dumpLru(){return this[h]}set(e,t,r){if((r=r||this[u])&&"number"!=typeof r)throw new TypeError("maxAge must be a number");const n=r?Date.now():0,s=this[o](t,e);if(this[p].has(e)){if(s>this[i])return _(this,this[p].get(e)),!1;const o=this[p].get(e).value;return this[c]&&(this[l]||this[c](e,o.value)),o.now=n,o.maxAge=r,o.value=t,this[a]+=s-o.length,o.length=s,this.get(e),g(this),!0}const d=new b(e,t,s,n,r);return d.length>this[i]?(this[c]&&this[c](e,t),!1):(this[a]+=d.length,this[h].unshift(d),this[p].set(e,this[h].head),g(this),!0)}has(e){if(!this[p].has(e))return!1;const t=this[p].get(e).value;return!m(this,t)}get(e){return y(this,e,!0)}peek(e){return y(this,e,!1)}pop(){const e=this[h].tail;return e?(_(this,e),e.value):null}del(e){_(this,this[p].get(e))}load(e){this.reset();const t=Date.now();for(let r=e.length-1;r>=0;r--){const n=e[r],i=n.e||0;if(0===i)this.set(n.k,n.v);else{const e=i-t;e>0&&this.set(n.k,n.v,e)}}}prune(){this[p].forEach((e,t)=>y(this,t,!1))}}},function(e,t,r){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),function(e){for(var r in e)t.hasOwnProperty(r)||(t[r]=e[r])}(r(446))},function(e,t,r){"use strict";function n(e){for(var r in e)t.hasOwnProperty(r)||(t[r]=e[r])}Object.defineProperty(t,"__esModule",{value:!0}),n(r(448)),n(r(187))},function(e,t,r){"use strict";Object.defineProperty(t,"__esModule",{value:!0});const n=r(79),i=r(463),a=r(464),o=r(476);!function(e){for(var r in e)t.hasOwnProperty(r)||(t[r]=e[r])}(r(79)),t.regularFunctions=a.definitions.map((e,t)=>new n.RegularFunction(t,e)).toMap(),t.specialFunctions=o.specialDefinitions.map((e,t)=>new n.SpecialFunction(t,e)).toMap(),t.namedFunctions=i.namedDefinitions.map((e,t)=>new n.NamedFunction(t,e)).toMap()},function(e,t,r){"use strict";Object.defineProperty(t,"__esModule",{value:!0});const n=r(19),i=r(18);class a{constructor(e,t){this.operator=e,this.apply=e=>(this.monomorph(e)||this.handleInvalidTypes(e))(e),this.arity=t.arity,this.overloads=t.overloads}monomorph(e){return this.overloads.get(o.asConcreteTypes(e))||this.overloads.get(o.asTermTypes(e))||this.overloads.get(o.asGenericTerms(e))}}t.BaseFunction=a;class o{static asConcreteTypes(e){return n.List(e.map(e=>e.type||e.termType))}static asTermTypes(e){return n.List(e.map(e=>e.termType))}static asGenericTerms(e){return n.List(Array(e.length).fill("term"))}}t.RegularFunction=class extends a{constructor(e,t){super(e,t),this.functionClass="regular"}handleInvalidTypes(e){throw new i.InvalidArgumentTypes(e,this.operator)}};t.NamedFunction=class extends a{constructor(e,t){super(e,t),this.functionClass="named"}handleInvalidTypes(e){throw new i.InvalidArgumentTypes(e,this.operator)}};t.SpecialFunction=class{constructor(e,t){var r;this.operator=e,this.functionClass="special",this.arity=t.arity,this.applySync=t.applySync,this.applyAsync=t.applyAsync,this.checkArity=t.checkArity||(r=this.arity,e=>r===1/0||(Array.isArray(r)?r.indexOf(e.length)>=0:e.length===r))}};const s={integer:{integer:"integer",decimal:"decimal",float:"float",double:"double"},decimal:{integer:"decimal",decimal:"decimal",float:"float",double:"double"},float:{integer:"float",decimal:"float",float:"float",double:"double"},double:{integer:"double",decimal:"double",float:"double",double:"double"}};t.promote=function(e,t){return s[e][t]}},function(e,t,r){"use strict";r.r(t),r.d(t,"v1",(function(){return c})),r.d(t,"v3",(function(){return g})),r.d(t,"v4",(function(){return _.a})),r.d(t,"v5",(function(){return w}));var n,i,a=r(61),o=r(42),s=0,u=0;var c=function(e,t,r){var c=t&&r||0,l=t||[],h=(e=e||{}).node||n,p=void 0!==e.clockseq?e.clockseq:i;if(null==h||null==p){var d=e.random||(e.rng||a.a)();null==h&&(h=n=[1|d[0],d[1],d[2],d[3],d[4],d[5]]),null==p&&(p=i=16383&(d[6]<<8|d[7]))}var f=void 0!==e.msecs?e.msecs:(new Date).getTime(),y=void 0!==e.nsecs?e.nsecs:u+1,m=f-s+(y-u)/1e4;if(m<0&&void 0===e.clockseq&&(p=p+1&16383),(m<0||f>s)&&void 0===e.nsecs&&(y=0),y>=1e4)throw new Error("uuid.v1(): Can't create more than 10M uuids/sec");s=f,u=y,i=p;var g=(1e4*(268435455&(f+=122192928e5))+y)%4294967296;l[c++]=g>>>24&255,l[c++]=g>>>16&255,l[c++]=g>>>8&255,l[c++]=255&g;var _=f/4294967296*1e4&268435455;l[c++]=_>>>8&255,l[c++]=255&_,l[c++]=_>>>24&15|16,l[c++]=_>>>16&255,l[c++]=p>>>8|128,l[c++]=255&p;for(var b=0;b<6;++b)l[c+b]=h[b];return t||Object(o.a)(l)};var l=function(e,t,r){var n=function(e,n,i,a){var s=i&&a||0;if("string"==typeof e&&(e=function(e){e=unescape(encodeURIComponent(e));for(var t=new Array(e.length),r=0;r>16)+(t>>16)+(r>>16)<<16|65535&r}function p(e,t,r,n,i,a){return h((o=h(h(t,e),h(n,a)))<<(s=i)|o>>>32-s,r);var o,s}function d(e,t,r,n,i,a,o){return p(t&r|~t&n,e,t,i,a,o)}function f(e,t,r,n,i,a,o){return p(t&n|r&~n,e,t,i,a,o)}function y(e,t,r,n,i,a,o){return p(t^r^n,e,t,i,a,o)}function m(e,t,r,n,i,a,o){return p(r^(t|~n),e,t,i,a,o)}var g=l("v3",48,(function(e){if("string"==typeof e){var t=unescape(encodeURIComponent(e));e=new Array(t.length);for(var r=0;r>5]>>>t%32&255,n=parseInt("0123456789abcdef".charAt(r>>>4&15)+"0123456789abcdef".charAt(15&r),16),i.push(n);return i}(function(e,t){var r,n,i,a,o;e[t>>5]|=128<>>9<<4)]=t;var s=1732584193,u=-271733879,c=-1732584194,l=271733878;for(r=0;r>2)-1]=void 0,t=0;t>5]|=(255&e[t/8])<>>32-t}var w=l("v5",80,(function(e){var t=[1518500249,1859775393,2400959708,3395469782],r=[1732584193,4023233417,2562383102,271733878,3285377520];if("string"==typeof e){var n=unescape(encodeURIComponent(e));e=new Array(n.length);for(var i=0;i>>0;y=f,f=d,d=v(p,30)>>>0,p=h,h=g}r[0]=r[0]+h>>>0,r[1]=r[1]+p>>>0,r[2]=r[2]+d>>>0,r[3]=r[3]+f>>>0,r[4]=r[4]+y>>>0}return[r[0]>>24&255,r[0]>>16&255,r[0]>>8&255,255&r[0],r[1]>>24&255,r[1]>>16&255,r[1]>>8&255,255&r[1],r[2]>>24&255,r[2]>>16&255,r[2]>>8&255,255&r[2],r[3]>>24&255,r[3]>>16&255,r[3]>>8&255,255&r[3],r[4]>>24&255,r[4]>>16&255,r[4]>>8&255,255&r[4]]}))},function(e,t,r){"use strict";var n=this&&this.__awaiter||function(e,t,r,n){return new(r||(r=Promise))((function(i,a){function o(e){try{u(n.next(e))}catch(e){a(e)}}function s(e){try{u(n.throw(e))}catch(e){a(e)}}function u(e){e.done?i(e.value):new r((function(t){t(e.value)})).then(o,s)}u((n=n.apply(e,t||[])).next())}))};Object.defineProperty(t,"__esModule",{value:!0}),r(43);const i=r(25),a=r(49),o=r(82),s=r(83),u=r(62),c=r(84);class l{constructor(e){e=e||{},this.documentLoader=e.documentLoader||new o.FetchDocumentLoader,this.documentCache={},this.validateContext=!e.skipValidation,this.expandContentTypeToBase=!!e.expandContentTypeToBase,this.remoteContextsDepthLimit=e.remoteContextsDepthLimit||32}static validateLanguage(e,t,r){if("string"!=typeof e)throw new a.ErrorCoded(`The value of an '@language' must be a string, got '${JSON.stringify(e)}'`,r);if(!u.Util.REGEX_LANGUAGE_TAG.test(e)){if(t)throw new a.ErrorCoded(`The value of an '@language' must be a valid language tag, got '${JSON.stringify(e)}'`,r);return!1}return!0}static validateDirection(e,t){if("string"!=typeof e)throw new a.ErrorCoded(`The value of an '@direction' must be a string, got '${JSON.stringify(e)}'`,a.ERROR_CODES.INVALID_BASE_DIRECTION);if(!u.Util.REGEX_DIRECTION_TAG.test(e)){if(t)throw new a.ErrorCoded(`The value of an '@direction' must be 'ltr' or 'rtl', got '${JSON.stringify(e)}'`,a.ERROR_CODES.INVALID_BASE_DIRECTION);return!1}return!0}idifyReverseTerms(e){for(const t of Object.keys(e)){const r=e[t];if(r&&"object"==typeof r&&r["@reverse"]&&!r["@id"]){if("string"!=typeof r["@reverse"]||u.Util.isValidKeyword(r["@reverse"]))throw new a.ErrorCoded(`Invalid @reverse value, must be absolute IRI or blank node: '${r["@reverse"]}'`,a.ERROR_CODES.INVALID_IRI_MAPPING);r["@id"]=r["@reverse"],u.Util.isPotentialKeyword(r["@reverse"])?delete r["@reverse"]:r["@reverse"]=!0}}return e}expandPrefixedTerms(e,t){const r=e.getContextRaw();for(const n of Object.keys(r))if(u.Util.EXPAND_KEYS_BLACKLIST.indexOf(n)<0&&!u.Util.isReservedInternalKeyword(n)){const i=r[n];if(u.Util.isPotentialKeyword(n)&&u.Util.ALIAS_DOMAIN_BLACKLIST.indexOf(n)>=0&&("@type"!==n||"object"==typeof r[n]&&!r[n]["@protected"]&&"@set"!==r[n]["@container"]))throw new a.ErrorCoded(`Keywords can not be aliased to something else.\nTried mapping ${n} to ${JSON.stringify(i)}`,a.ERROR_CODES.KEYWORD_REDEFINITION);if(u.Util.ALIAS_RANGE_BLACKLIST.indexOf(u.Util.getContextValueId(i))>=0)throw new a.ErrorCoded(`Aliasing to certain keywords is not allowed.\nTried mapping ${n} to ${JSON.stringify(i)}`,a.ERROR_CODES.INVALID_KEYWORD_ALIAS);if(i&&u.Util.isPotentialKeyword(u.Util.getContextValueId(i))&&!0===i["@prefix"])throw new a.ErrorCoded(`Tried to use keyword aliases as prefix: '${n}': '${JSON.stringify(i)}'`,a.ERROR_CODES.INVALID_TERM_DEFINITION);for(;u.Util.isPrefixValue(r[n]);){const i=r[n];let a=!1;if("string"==typeof i)r[n]=e.expandTerm(i,!0),a=a||i!==r[n];else{const o=i["@id"],s=i["@type"],c=!("@prefix"in i)||u.Util.isValidIri(n);if("@id"in i)null!=o&&"string"==typeof o&&(r[n]["@id"]=e.expandTerm(o,!0),a=a||o!==r[n]["@id"]);else if(!u.Util.isPotentialKeyword(n)&&c){const t=e.expandTerm(n,!0);t!==n&&(r[n]["@id"]=t,a=!0)}!s||"string"!=typeof s||"@vocab"===s||i["@container"]&&i["@container"]["@type"]||!c||(r[n]["@type"]=e.expandTerm(s,!0),t&&s===r[n]["@type"]&&(r[n]["@type"]=e.expandTerm(s,!1)),a=a||s!==r[n]["@type"])}if(!a)break}}}normalize(e,{processingMode:t,normalizeLanguageTags:r}){if(r||1===t)for(const t of Object.keys(e))if("@language"===t&&"string"==typeof e[t])e[t]=e[t].toLowerCase();else{const r=e[t];r&&"object"==typeof r&&"string"==typeof r["@language"]&&(r["@language"]=r["@language"].toLowerCase())}}containersToHash(e){for(const t of Object.keys(e)){const r=e[t];if(r&&"object"==typeof r)if("string"==typeof r["@container"])r["@container"]={[r["@container"]]:!0};else if(Array.isArray(r["@container"])){const e={};for(const t of r["@container"])e[t]=!0;r["@container"]=e}}}applyScopedProtected(e,{processingMode:t}){if(t&&t>=1.1&&e["@protected"]){for(const t of Object.keys(e))if(!u.Util.isReservedInternalKeyword(t)&&!u.Util.isPotentialKeyword(t)&&!u.Util.isTermProtected(e,t)){const r=e[t];r&&"object"==typeof r?"@protected"in e[t]||(e[t]["@protected"]=!0):e[t]={"@id":r,"@protected":!0}}delete e["@protected"]}}validateKeywordRedefinitions(e,t,r){for(const n of Object.keys(t))if(u.Util.isTermProtected(e,n)){if("string"==typeof t[n]){const i=u.Util.isSimpleTermDefinitionPrefix(t[n],r);t[n]={"@id":t[n]},i&&(t[n]["@prefix"]=!0,e[n]["@prefix"]=!0)}const i=c(e[n]);t[n]["@protected"]=!0;if(i!==c(t[n]))throw new a.ErrorCoded(`Attempted to override the protected keyword ${n} from ${JSON.stringify(u.Util.getContextValueId(e[n]))} to ${JSON.stringify(u.Util.getContextValueId(t[n]))}`,a.ERROR_CODES.PROTECTED_TERM_REDEFINITION)}}validate(e,{processingMode:t}){for(const r of Object.keys(e)){if(u.Util.isReservedInternalKeyword(r))continue;if(""===r)throw new a.ErrorCoded(`The empty term is not allowed, got: '${r}': '${JSON.stringify(e[r])}'`,a.ERROR_CODES.INVALID_TERM_DEFINITION);const n=e[r],i=typeof n;if(u.Util.isPotentialKeyword(r)){switch(r.substr(1)){case"vocab":if(null!==n&&"string"!==i)throw new a.ErrorCoded("Found an invalid @vocab IRI: "+n,a.ERROR_CODES.INVALID_VOCAB_MAPPING);break;case"base":if(null!==n&&"string"!==i)throw new a.ErrorCoded("Found an invalid @base IRI: "+e[r],a.ERROR_CODES.INVALID_BASE_IRI);break;case"language":null!==n&&l.validateLanguage(n,!0,a.ERROR_CODES.INVALID_DEFAULT_LANGUAGE);break;case"version":if(null!==n&&"number"!==i)throw new a.ErrorCoded("Found an invalid @version number: "+n,a.ERROR_CODES.INVALID_VERSION_VALUE);break;case"direction":null!==n&&l.validateDirection(n,!0);break;case"propagate":if(1===t)throw new a.ErrorCoded("Found an illegal @propagate keyword: "+n,a.ERROR_CODES.INVALID_CONTEXT_ENTRY);if(null!==n&&"boolean"!==i)throw new a.ErrorCoded("Found an invalid @propagate value: "+n,a.ERROR_CODES.INVALID_PROPAGATE_VALUE)}if(u.Util.isValidKeyword(r)&&u.Util.isValidKeyword(u.Util.getContextValueId(n)))throw new a.ErrorCoded(`Illegal keyword alias in term value, found: '${r}': '${u.Util.getContextValueId(n)}'`,a.ERROR_CODES.KEYWORD_REDEFINITION)}else if(null!==n)switch(i){case"string":if(u.Util.getPrefix(n,e)===r)throw new a.ErrorCoded(`Detected cyclical IRI mapping in context entry: '${r}': '${JSON.stringify(n)}'`,a.ERROR_CODES.CYCLIC_IRI_MAPPING);if(u.Util.isValidIriWeak(r)){if("@type"===n)throw new a.ErrorCoded(`IRIs can not be mapped to @type, found: '${r}': '${n}'`,a.ERROR_CODES.INVALID_IRI_MAPPING);if(u.Util.isValidIri(n)&&n!==new s.JsonLdContextNormalized(e).expandTerm(r))throw new a.ErrorCoded(`IRIs can not be mapped to other IRIs, found: '${r}': '${n}'`,a.ERROR_CODES.INVALID_IRI_MAPPING)}break;case"object":if(!(u.Util.isCompactIri(r)||"@id"in n||("@id"===n["@type"]?e["@base"]:e["@vocab"])))throw new a.ErrorCoded(`Missing @id in context entry: '${r}': '${JSON.stringify(n)}'`,a.ERROR_CODES.INVALID_IRI_MAPPING);for(const i of Object.keys(n)){const o=n[i];if(o)switch(i){case"@id":if(u.Util.isValidKeyword(o)&&"@type"!==o&&"@id"!==o&&"@graph"!==o)throw new a.ErrorCoded(`Illegal keyword alias in term value, found: '${r}': '${JSON.stringify(n)}'`,a.ERROR_CODES.INVALID_IRI_MAPPING);if(u.Util.isValidIriWeak(r)){if("@type"===o)throw new a.ErrorCoded(`IRIs can not be mapped to @type, found: '${r}': '${JSON.stringify(n)}'`,a.ERROR_CODES.INVALID_IRI_MAPPING);if(u.Util.isValidIri(o)&&o!==new s.JsonLdContextNormalized(e).expandTerm(r))throw new a.ErrorCoded(`IRIs can not be mapped to other IRIs, found: '${r}': '${JSON.stringify(n)}'`,a.ERROR_CODES.INVALID_IRI_MAPPING)}if("string"!=typeof o)throw new a.ErrorCoded(`Detected non-string @id in context entry: '${r}': '${JSON.stringify(n)}'`,a.ERROR_CODES.INVALID_IRI_MAPPING);if(u.Util.getPrefix(o,e)===r)throw new a.ErrorCoded(`Detected cyclical IRI mapping in context entry: '${r}': '${JSON.stringify(n)}'`,a.ERROR_CODES.CYCLIC_IRI_MAPPING);break;case"@type":if("@type"===n["@container"]&&"@id"!==o&&"@vocab"!==o)throw new a.ErrorCoded(`@container: @type only allows @type: @id or @vocab, but got: '${r}': '${o}'`,a.ERROR_CODES.INVALID_TYPE_MAPPING);if(!("@id"===o||"@vocab"===o||1!==t&&"@json"===o||1!==t&&"@none"===o||"_"!==o[0]&&u.Util.isValidIri(o)))throw new a.ErrorCoded(`A context @type must be an absolute IRI, found: '${r}': '${o}'`,a.ERROR_CODES.INVALID_TYPE_MAPPING);break;case"@reverse":if("string"==typeof o&&n["@id"]&&n["@id"]!==o)throw new a.ErrorCoded(`Found non-matching @id and @reverse term values in '${r}':'${o}' and '${n["@id"]}'`,a.ERROR_CODES.INVALID_REVERSE_PROPERTY);if("@nest"in n)throw new a.ErrorCoded(`@nest is not allowed in the reverse property '${r}'`,a.ERROR_CODES.INVALID_REVERSE_PROPERTY);break;case"@container":if(1===t&&(Object.keys(o).length>1||u.Util.CONTAINERS_1_0.indexOf(Object.keys(o)[0])<0))throw new a.ErrorCoded(`Invalid term @container for '${r}' ('${Object.keys(o)}') in 1.0, must be only one of ${u.Util.CONTAINERS_1_0.join(", ")}`,a.ERROR_CODES.INVALID_CONTAINER_MAPPING);for(const e of Object.keys(o)){if("@list"===e&&n["@reverse"])throw new a.ErrorCoded(`Term value can not be @container: @list and @reverse at the same time on '${r}'`,a.ERROR_CODES.INVALID_REVERSE_PROPERTY);if(u.Util.CONTAINERS.indexOf(e)<0)throw new a.ErrorCoded(`Invalid term @container for '${r}' ('${e}'), must be one of ${u.Util.CONTAINERS.join(", ")}`,a.ERROR_CODES.INVALID_CONTAINER_MAPPING)}break;case"@language":l.validateLanguage(o,!0,a.ERROR_CODES.INVALID_LANGUAGE_MAPPING);break;case"@direction":l.validateDirection(o,!0);break;case"@prefix":if(null!==o&&"boolean"!=typeof o)throw new a.ErrorCoded(`Found an invalid term @prefix boolean in: '${r}': '${JSON.stringify(n)}'`,a.ERROR_CODES.INVALID_PREFIX_VALUE);if(!("@id"in n)&&!u.Util.isValidIri(r))throw new a.ErrorCoded(`Invalid @prefix definition for '${r}' ('${JSON.stringify(n)}'`,a.ERROR_CODES.INVALID_TERM_DEFINITION);break;case"@index":if(1===t||!n["@container"]||!n["@container"]["@index"])throw new a.ErrorCoded(`Attempt to add illegal key to value object: '${r}': '${JSON.stringify(n)}'`,a.ERROR_CODES.INVALID_TERM_DEFINITION);break;case"@nest":if(u.Util.isPotentialKeyword(o)&&"@nest"!==o)throw new a.ErrorCoded(`Found an invalid term @nest value in: '${r}': '${JSON.stringify(n)}'`,a.ERROR_CODES.INVALID_NEST_VALUE)}}break;default:throw new a.ErrorCoded(`Found an invalid term value: '${r}': '${n}'`,a.ERROR_CODES.INVALID_TERM_DEFINITION)}}}applyBaseEntry(e,t,r){return"string"==typeof e||(r&&!("@base"in e)&&t.parentContext&&"@base"in t.parentContext&&(e["@base"]=t.parentContext["@base"],t.parentContext["@__baseDocument"]&&(e["@__baseDocument"]=!0)),t.baseIRI&&!t.external&&("@base"in e?null===e["@base"]||"string"!=typeof e["@base"]||u.Util.isValidIri(e["@base"])||(e["@base"]=i.resolve(e["@base"],t.parentContext&&t.parentContext["@base"]||t.baseIRI)):(e["@base"]=t.baseIRI,e["@__baseDocument"]=!0))),e}normalizeContextIri(e,t){if(!u.Util.isValidIri(e)&&(e=i.resolve(e,t),!u.Util.isValidIri(e)))throw new Error("Invalid context IRI: "+e);return e}parseInnerContexts(e,t){return n(this,void 0,void 0,(function*(){for(const r of Object.keys(e)){const n=e[r];if(n&&"object"==typeof n&&"@context"in n&&null!==n["@context"]){if(this.validateContext)try{const i=Object.assign({},e);i[r]=Object.assign({},i[r]),delete i[r]["@context"],yield this.parse(n["@context"],Object.assign({},t,{parentContext:i,ignoreProtection:!0,ignoreRemoteScopedContexts:!0}))}catch(e){throw new a.ErrorCoded(e.message,a.ERROR_CODES.INVALID_SCOPED_CONTEXT)}n["@context"]=(yield this.parse(n["@context"],Object.assign({},t,{minimalProcessing:!0,ignoreRemoteScopedContexts:!0,parentContext:e}))).getContextRaw()}}return e}))}parse(e,r={processingMode:l.DEFAULT_PROCESSING_MODE}){return n(this,void 0,void 0,(function*(){const{baseIRI:n,parentContext:i,external:o,processingMode:c,normalizeLanguageTags:h,ignoreProtection:p,minimalProcessing:d}=r;let f=i;const y=r.remoteContexts||{};if(Object.keys(y).length>=this.remoteContextsDepthLimit)throw new a.ErrorCoded("Detected an overflow in remote context inclusions: "+Object.keys(y),a.ERROR_CODES.CONTEXT_OVERFLOW);if(null==e){if(!p&&f&&u.Util.hasProtectedTerms(f))throw new a.ErrorCoded("Illegal context nullification when terms are protected",a.ERROR_CODES.INVALID_CONTEXT_NULLIFICATION);return new s.JsonLdContextNormalized(this.applyBaseEntry({},r,!1))}if("string"==typeof e){const t=this.normalizeContextIri(e,n),i=this.getOverriddenLoad(t,r);if(i)return new s.JsonLdContextNormalized(i);const a=yield this.parse(yield this.load(t),Object.assign({},r,{baseIRI:t,external:!0,remoteContexts:Object.assign({},y,{[t]:!0})}));return this.applyBaseEntry(a.getContextRaw(),r,!0),a}if(Array.isArray(e)){const t=[],i=yield Promise.all(e.map((e,i)=>{if("string"==typeof e){const a=this.normalizeContextIri(e,n);t[i]=a;const o=this.getOverriddenLoad(a,r);return o||this.load(a)}return e}));if(d)return new s.JsonLdContextNormalized(i);const a=yield i.reduce((e,n,i)=>e.then(e=>this.parse(n,Object.assign({},r,{baseIRI:t[i]||r.baseIRI,external:!!t[i]||r.external,parentContext:e.getContextRaw(),remoteContexts:t[i]?Object.assign({},y,{[t[i]]:!0}):y}))),Promise.resolve(new s.JsonLdContextNormalized(f||{})));return this.applyBaseEntry(a.getContextRaw(),r,!0),a}if("object"==typeof e){if("@context"in e)return yield this.parse(e["@context"],r);e=JSON.parse(JSON.stringify(e)),f&&(f=JSON.parse(JSON.stringify(f)));let i={};if(o&&delete e["@base"],this.applyBaseEntry(e,r,!0),this.containersToHash(e),d)return new s.JsonLdContextNormalized(e);let u={};if("@import"in e){if(!(c&&c>=1.1))throw new a.ErrorCoded("Context importing is not supported in JSON-LD 1.0",a.ERROR_CODES.INVALID_CONTEXT_ENTRY);if("string"!=typeof e["@import"])throw new a.ErrorCoded("An @import value must be a string, but got "+typeof e["@import"],a.ERROR_CODES.INVALID_IMPORT_VALUE);u=yield this.loadImportContext(this.normalizeContextIri(e["@import"],n)),delete e["@import"]}i=Object.assign({},i,f,u,e);const y=new s.JsonLdContextNormalized(i);return yield this.parseInnerContexts(i,r),!p&&f&&c&&c>=1.1&&this.validateKeywordRedefinitions(f,i,t.defaultExpandOptions),(i&&i["@version"]||c||l.DEFAULT_PROCESSING_MODE)>=1.1&&(e["@vocab"]&&"string"==typeof e["@vocab"]||""===e["@vocab"])&&e["@vocab"].indexOf(":")<0&&f&&"@vocab"in f&&(i["@vocab"]=f["@vocab"]+e["@vocab"]),this.idifyReverseTerms(i),this.expandPrefixedTerms(y,this.expandContentTypeToBase),this.normalize(i,{processingMode:c,normalizeLanguageTags:h}),this.applyScopedProtected(i,{processingMode:c}),this.validateContext&&this.validate(i,{processingMode:c}),y}throw new a.ErrorCoded("Tried parsing a context that is not a string, array or object, but got "+e,a.ERROR_CODES.INVALID_LOCAL_CONTEXT)}))}load(e){return n(this,void 0,void 0,(function*(){const t=this.documentCache[e];if(t)return"string"==typeof t?t:Array.isArray(t)?t.slice():Object.assign({},t);let r;try{r=yield this.documentLoader.load(e)}catch(t){throw new a.ErrorCoded(`Failed to load remote context ${e}: ${t.message}`,a.ERROR_CODES.LOADING_REMOTE_CONTEXT_FAILED)}if(!("@context"in r))throw new a.ErrorCoded("Missing @context in remote context at "+e,a.ERROR_CODES.INVALID_REMOTE_CONTEXT);return this.documentCache[e]=r["@context"]}))}getOverriddenLoad(e,t){if(e in(t.remoteContexts||{})){if(t.ignoreRemoteScopedContexts)return e;throw new a.ErrorCoded("Detected a cyclic context inclusion of "+e,a.ERROR_CODES.RECURSIVE_CONTEXT_INCLUSION)}return null}loadImportContext(e){return n(this,void 0,void 0,(function*(){const t=yield this.load(e);if("object"!=typeof t||Array.isArray(t))throw new a.ErrorCoded("An imported context must be a single object: "+e,a.ERROR_CODES.INVALID_REMOTE_CONTEXT);if("@import"in t)throw new a.ErrorCoded("An imported context can not import another context: "+e,a.ERROR_CODES.INVALID_CONTEXT_ENTRY);return t}))}}l.DEFAULT_PROCESSING_MODE=1.1,t.ContextParser=l,t.defaultExpandOptions={allowPrefixForcing:!0,allowPrefixNonGenDelims:!1,allowVocabRelativeToBase:!0}},function(e,t,r){"use strict";var n=this&&this.__awaiter||function(e,t,r,n){return new(r||(r=Promise))((function(i,a){function o(e){try{u(n.next(e))}catch(e){a(e)}}function s(e){try{u(n.throw(e))}catch(e){a(e)}}function u(e){e.done?i(e.value):new r((function(t){t(e.value)})).then(o,s)}u((n=n.apply(e,t||[])).next())}))};Object.defineProperty(t,"__esModule",{value:!0}),r(43);t.FetchDocumentLoader=class{load(e){return n(this,void 0,void 0,(function*(){const t=yield fetch(e,{headers:{accept:"application/ld+json"}});if(t.ok)return yield t.json();throw new Error(t.statusText||""+t.status)}))}}},function(e,t,r){"use strict";Object.defineProperty(t,"__esModule",{value:!0});const n=r(25),i=r(81),a=r(49),o=r(62);t.JsonLdContextNormalized=class{constructor(e){this.contextRaw=e}getContextRaw(){return this.contextRaw}expandTerm(e,t,r=i.defaultExpandOptions){const s=this.contextRaw[e];if(null===s||s&&null===s["@id"])return null;let u=!0;if(s&&t){const t=o.Util.getContextValueId(s);if(t&&t!==e){if("string"==typeof t&&(o.Util.isValidIri(t)||o.Util.isValidKeyword(t)))return t;o.Util.isPotentialKeyword(t)||(u=!1)}}const c=o.Util.getPrefix(e,this.contextRaw),l=this.contextRaw["@vocab"],h=(!!l||""===l)&&l.indexOf(":")<0,p=this.contextRaw["@base"],d=o.Util.isPotentialKeyword(e);if(c){const t=this.contextRaw[c],n=o.Util.getContextValueId(t);if(n){if("string"!=typeof t&&r.allowPrefixForcing){if("_"!==n[0]&&!d&&!t["@prefix"]&&!(e in this.contextRaw))return e}else if(!o.Util.isSimpleTermDefinitionPrefix(n,r))return e;return n+e.substr(c.length+1)}}else{if(t&&(l||""===l||r.allowVocabRelativeToBase&&p&&h)&&!d&&!o.Util.isCompactIri(e)){if(h){if(r.allowVocabRelativeToBase)return n.resolve(l,p)+e;throw new a.ErrorCoded(`Relative vocab expansion for term '${e}' with vocab '${l}' is not allowed.`,a.ERROR_CODES.INVALID_VOCAB_MAPPING)}return l+e}if(!t&&p&&!d&&!o.Util.isCompactIri(e))return n.resolve(e,p)}if(u)return e;throw new a.ErrorCoded(`Invalid IRI mapping found for context entry '${e}': '${JSON.stringify(s)}'`,a.ERROR_CODES.INVALID_IRI_MAPPING)}compactIri(e,t){if(t&&this.contextRaw["@vocab"]&&e.startsWith(this.contextRaw["@vocab"]))return e.substr(this.contextRaw["@vocab"].length);if(!t&&this.contextRaw["@base"]&&e.startsWith(this.contextRaw["@base"]))return e.substr(this.contextRaw["@base"].length);const r={prefix:"",suffix:e};for(const n in this.contextRaw){const i=this.contextRaw[n];if(i&&!o.Util.isPotentialKeyword(n)){const a=o.Util.getContextValueId(i);if(e.startsWith(a)){const i=e.substr(a.length);if(i)i.length(t=1===n?e(t):t)+","+e(r))+"]";const r=Object.keys(t);if(0===r.length)return"{}";if(1===r.length)return"{"+e(r[0])+":"+e(t[r[0]])+"}";return"{"+r.sort().reduce((r,n,i)=>(r=1===i?e(r)+":"+e(t[r]):r)+","+e(n)+":"+e(t[n]))+"}"}(e)}},function(e,t){function r(){this.value=""}r.prototype.equals=function(e){return!!e&&e.termType===this.termType},r.prototype.termType="DefaultGraph",e.exports=r},function(e,t){function r(e){this.value=e}r.prototype.equals=function(e){return!!e&&e.termType===this.termType&&e.value===this.value},r.prototype.termType="NamedNode",e.exports=r},function(e,t,r){"use strict";var n=r(61),i=r(42);t.a=function(e,t,r){var a=t&&r||0;"string"==typeof e&&(t="binary"===e?new Array(16):null,e=null);var o=(e=e||{}).random||(e.rng||n.a)();if(o[6]=15&o[6]|64,o[8]=63&o[8]|128,t)for(var s=0;s<16;++s)t[a+s]=o[s];return t||Object(i.a)(o)}},function(e,t,r){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),function(e){for(var r in e)t.hasOwnProperty(r)||(t[r]=e[r])}(r(220))},function(e,t,r){"use strict";Object.defineProperty(t,"__esModule",{value:!0});t.Bus=class{constructor(e){this.actors=[],this.observers=[],this.dependencyLinks=new Map,r(44)(this,e)}subscribe(e){this.actors.push(e),this.reorderForDependencies()}subscribeObserver(e){this.observers.push(e)}unsubscribe(e){const t=this.actors.indexOf(e);return t>=0&&(this.actors.splice(t,1),!0)}unsubscribeObserver(e){const t=this.observers.indexOf(e);return t>=0&&(this.observers.splice(t,1),!0)}publish(e){return this.actors.map(t=>({actor:t,reply:t.test(e)}))}onRun(e,t,r){for(const n of this.observers)n.onRun(e,t,r)}addDependencies(e,t){for(const r of t){let t=this.dependencyLinks.get(r);t||(t=[],this.dependencyLinks.set(r,t)),t.push(e)}this.reorderForDependencies()}reorderForDependencies(){if(this.dependencyLinks.size>0){const e=[];for(const t of this.dependencyLinks.keys()){const r=this.actors.indexOf(t);r>=0&&(this.actors.splice(r,1),e.push(t))}for(;e.length>0;){let t=-1;for(let r=0;r=0){n=!1;break}if(n){t=r;break}}if(t<0)throw new Error("Cyclic dependency links detected in bus "+this.name);const r=e.splice(t,1)[0];this.actors.push(r)}}}}},function(e,t,r){"use strict";Object.defineProperty(t,"__esModule",{value:!0});class n{static getLevelOrdinal(e){return n.LEVELS[e]}}n.LEVELS={trace:0,debug:1,info:2,warn:3,error:4,fatal:5},t.Logger=n,t.KEY_CONTEXT_LOG="@comunica/core:log"},function(e,t,r){"use strict";(function(t){r(2);const n=r(241),i=r(242);e.exports=r(98),e.exports.toNodeReadable=function(t){if(t instanceof e.exports.ReadableStream||t&&"function"==typeof t.getReader)return i.readable.webToNode(t);throw new TypeError("Expected a ReadableStream.")},e.exports.toWebReadableStream=function(e){if(n(e)&&e.readable)return i.readable.nodeToWeb(e);if(Array.isArray(e))return i.readable.arrayToWeb(e);if(t.isBuffer(e)||"string"==typeof e)return i.readable.arrayToWeb([e]);throw new TypeError("Expected a Node streams.Readable, an Array, Buffer or String.")}}).call(this,r(15).Buffer)},function(e,t,r){"use strict";(function(t,n){var i;e.exports=x,x.ReadableState=T;r(45).EventEmitter;var a=function(e,t){return e.listeners(t).length},o=r(93),s=r(15).Buffer,u=t.Uint8Array||function(){};var c,l=r(233);c=l&&l.debuglog?l.debuglog("stream"):function(){};var h,p,d,f=r(234),y=r(94),m=r(95).getHighWaterMark,g=r(33).codes,_=g.ERR_INVALID_ARG_TYPE,b=g.ERR_STREAM_PUSH_AFTER_EOF,v=g.ERR_METHOD_NOT_IMPLEMENTED,w=g.ERR_STREAM_UNSHIFT_AFTER_END_EVENT;r(10)(x,o);var E=y.errorOrDestroy,S=["error","close","destroy","pause","resume"];function T(e,t,n){i=i||r(34),e=e||{},"boolean"!=typeof n&&(n=t instanceof i),this.objectMode=!!e.objectMode,n&&(this.objectMode=this.objectMode||!!e.readableObjectMode),this.highWaterMark=m(this,e,"readableHighWaterMark",n),this.buffer=new f,this.length=0,this.pipes=null,this.pipesCount=0,this.flowing=null,this.ended=!1,this.endEmitted=!1,this.reading=!1,this.sync=!0,this.needReadable=!1,this.emittedReadable=!1,this.readableListening=!1,this.resumeScheduled=!1,this.paused=!0,this.emitClose=!1!==e.emitClose,this.autoDestroy=!!e.autoDestroy,this.destroyed=!1,this.defaultEncoding=e.defaultEncoding||"utf8",this.awaitDrain=0,this.readingMore=!1,this.decoder=null,this.encoding=null,e.encoding&&(h||(h=r(50).StringDecoder),this.decoder=new h(e.encoding),this.encoding=e.encoding)}function x(e){if(i=i||r(34),!(this instanceof x))return new x(e);var t=this instanceof i;this._readableState=new T(e,this,t),this.readable=!0,e&&("function"==typeof e.read&&(this._read=e.read),"function"==typeof e.destroy&&(this._destroy=e.destroy)),o.call(this)}function O(e,t,r,n,i){c("readableAddChunk",t);var a,o=e._readableState;if(null===t)o.reading=!1,function(e,t){if(c("onEofChunk"),t.ended)return;if(t.decoder){var r=t.decoder.end();r&&r.length&&(t.buffer.push(r),t.length+=t.objectMode?1:r.length)}t.ended=!0,t.sync?I(e):(t.needReadable=!1,t.emittedReadable||(t.emittedReadable=!0,P(e)))}(e,o);else if(i||(a=function(e,t){var r;n=t,s.isBuffer(n)||n instanceof u||"string"==typeof t||void 0===t||e.objectMode||(r=new _("chunk",["string","Buffer","Uint8Array"],t));var n;return r}(o,t)),a)E(e,a);else if(o.objectMode||t&&t.length>0)if("string"==typeof t||o.objectMode||Object.getPrototypeOf(t)===s.prototype||(t=function(e){return s.from(e)}(t)),n)o.endEmitted?E(e,new w):R(e,o,t,!0);else if(o.ended)E(e,new b);else{if(o.destroyed)return!1;o.reading=!1,o.decoder&&!r?(t=o.decoder.write(t),o.objectMode||0!==t.length?R(e,o,t,!1):N(e,o)):R(e,o,t,!1)}else n||(o.reading=!1,N(e,o));return!o.ended&&(o.lengtht.highWaterMark&&(t.highWaterMark=function(e){return e>=1073741824?e=1073741824:(e--,e|=e>>>1,e|=e>>>2,e|=e>>>4,e|=e>>>8,e|=e>>>16,e++),e}(e)),e<=t.length?e:t.ended?t.length:(t.needReadable=!0,0))}function I(e){var t=e._readableState;c("emitReadable",t.needReadable,t.emittedReadable),t.needReadable=!1,t.emittedReadable||(c("emitReadable",t.flowing),t.emittedReadable=!0,n.nextTick(P,e))}function P(e){var t=e._readableState;c("emitReadable_",t.destroyed,t.length,t.ended),t.destroyed||!t.length&&!t.ended||(e.emit("readable"),t.emittedReadable=!1),t.needReadable=!t.flowing&&!t.ended&&t.length<=t.highWaterMark,L(e)}function N(e,t){t.readingMore||(t.readingMore=!0,n.nextTick(C,e,t))}function C(e,t){for(;!t.reading&&!t.ended&&(t.length0,t.resumeScheduled&&!t.paused?t.flowing=!0:e.listenerCount("data")>0&&e.resume()}function D(e){c("readable nexttick read 0"),e.read(0)}function k(e,t){c("resume",t.reading),t.reading||e.read(0),t.resumeScheduled=!1,e.emit("resume"),L(e),t.flowing&&!t.reading&&e.read(0)}function L(e){var t=e._readableState;for(c("flow",t.flowing);t.flowing&&null!==e.read(););}function M(e,t){return 0===t.length?null:(t.objectMode?r=t.buffer.shift():!e||e>=t.length?(r=t.decoder?t.buffer.join(""):1===t.buffer.length?t.buffer.first():t.buffer.concat(t.length),t.buffer.clear()):r=t.buffer.consume(e,t.decoder),r);var r}function F(e){var t=e._readableState;c("endReadable",t.endEmitted),t.endEmitted||(t.ended=!0,n.nextTick(q,t,e))}function q(e,t){if(c("endReadableNT",e.endEmitted,e.length),!e.endEmitted&&0===e.length&&(e.endEmitted=!0,t.readable=!1,t.emit("end"),e.autoDestroy)){var r=t._writableState;(!r||r.autoDestroy&&r.finished)&&t.destroy()}}function B(e,t){for(var r=0,n=e.length;r=t.highWaterMark:t.length>0)||t.ended))return c("read: emitReadable",t.length,t.ended),0===t.length&&t.ended?F(this):I(this),null;if(0===(e=A(e,t))&&t.ended)return 0===t.length&&F(this),null;var n,i=t.needReadable;return c("need readable",i),(0===t.length||t.length-e0?M(e,t):null)?(t.needReadable=t.length<=t.highWaterMark,e=0):(t.length-=e,t.awaitDrain=0),0===t.length&&(t.ended||(t.needReadable=!0),r!==e&&t.ended&&F(this)),null!==n&&this.emit("data",n),n},x.prototype._read=function(e){E(this,new v("_read()"))},x.prototype.pipe=function(e,t){var r=this,i=this._readableState;switch(i.pipesCount){case 0:i.pipes=e;break;case 1:i.pipes=[i.pipes,e];break;default:i.pipes.push(e)}i.pipesCount+=1,c("pipe count=%d opts=%j",i.pipesCount,t);var o=(!t||!1!==t.end)&&e!==n.stdout&&e!==n.stderr?u:m;function s(t,n){c("onunpipe"),t===r&&n&&!1===n.hasUnpiped&&(n.hasUnpiped=!0,c("cleanup"),e.removeListener("close",f),e.removeListener("finish",y),e.removeListener("drain",l),e.removeListener("error",d),e.removeListener("unpipe",s),r.removeListener("end",u),r.removeListener("end",m),r.removeListener("data",p),h=!0,!i.awaitDrain||e._writableState&&!e._writableState.needDrain||l())}function u(){c("onend"),e.end()}i.endEmitted?n.nextTick(o):r.once("end",o),e.on("unpipe",s);var l=function(e){return function(){var t=e._readableState;c("pipeOnDrain",t.awaitDrain),t.awaitDrain&&t.awaitDrain--,0===t.awaitDrain&&a(e,"data")&&(t.flowing=!0,L(e))}}(r);e.on("drain",l);var h=!1;function p(t){c("ondata");var n=e.write(t);c("dest.write",n),!1===n&&((1===i.pipesCount&&i.pipes===e||i.pipesCount>1&&-1!==B(i.pipes,e))&&!h&&(c("false write response, pause",i.awaitDrain),i.awaitDrain++),r.pause())}function d(t){c("onerror",t),m(),e.removeListener("error",d),0===a(e,"error")&&E(e,t)}function f(){e.removeListener("finish",y),m()}function y(){c("onfinish"),e.removeListener("close",f),m()}function m(){c("unpipe"),r.unpipe(e)}return r.on("data",p),function(e,t,r){if("function"==typeof e.prependListener)return e.prependListener(t,r);e._events&&e._events[t]?Array.isArray(e._events[t])?e._events[t].unshift(r):e._events[t]=[r,e._events[t]]:e.on(t,r)}(e,"error",d),e.once("close",f),e.once("finish",y),e.emit("pipe",r),i.flowing||(c("pipe resume"),r.resume()),e},x.prototype.unpipe=function(e){var t=this._readableState,r={hasUnpiped:!1};if(0===t.pipesCount)return this;if(1===t.pipesCount)return e&&e!==t.pipes||(e||(e=t.pipes),t.pipes=null,t.pipesCount=0,t.flowing=!1,e&&e.emit("unpipe",this,r)),this;if(!e){var n=t.pipes,i=t.pipesCount;t.pipes=null,t.pipesCount=0,t.flowing=!1;for(var a=0;a0,!1!==i.flowing&&this.resume()):"readable"===e&&(i.endEmitted||i.readableListening||(i.readableListening=i.needReadable=!0,i.flowing=!1,i.emittedReadable=!1,c("on readable",i.length,i.reading),i.length?I(this):i.reading||n.nextTick(D,this))),r},x.prototype.addListener=x.prototype.on,x.prototype.removeListener=function(e,t){var r=o.prototype.removeListener.call(this,e,t);return"readable"===e&&n.nextTick(j,this),r},x.prototype.removeAllListeners=function(e){var t=o.prototype.removeAllListeners.apply(this,arguments);return"readable"!==e&&void 0!==e||n.nextTick(j,this),t},x.prototype.resume=function(){var e=this._readableState;return e.flowing||(c("resume"),e.flowing=!e.readableListening,function(e,t){t.resumeScheduled||(t.resumeScheduled=!0,n.nextTick(k,e,t))}(this,e)),e.paused=!1,this},x.prototype.pause=function(){return c("call pause flowing=%j",this._readableState.flowing),!1!==this._readableState.flowing&&(c("pause"),this._readableState.flowing=!1,this.emit("pause")),this._readableState.paused=!0,this},x.prototype.wrap=function(e){var t=this,r=this._readableState,n=!1;for(var i in e.on("end",(function(){if(c("wrapped end"),r.decoder&&!r.ended){var e=r.decoder.end();e&&e.length&&t.push(e)}t.push(null)})),e.on("data",(function(i){(c("wrapped data"),r.decoder&&(i=r.decoder.write(i)),r.objectMode&&null==i)||(r.objectMode||i&&i.length)&&(t.push(i)||(n=!0,e.pause()))})),e)void 0===this[i]&&"function"==typeof e[i]&&(this[i]=function(t){return function(){return e[t].apply(e,arguments)}}(i));for(var a=0;a-1))throw new w(e);return this._writableState.defaultEncoding=e,this},Object.defineProperty(x.prototype,"writableBuffer",{enumerable:!1,get:function(){return this._writableState&&this._writableState.getBuffer()}}),Object.defineProperty(x.prototype,"writableHighWaterMark",{enumerable:!1,get:function(){return this._writableState.highWaterMark}}),x.prototype._write=function(e,t,r){r(new y("_write()"))},x.prototype._writev=null,x.prototype.end=function(e,t,r){var i=this._writableState;return"function"==typeof e?(r=e,e=null,t=null):"function"==typeof t&&(r=t,t=null),null!=e&&this.write(e,t),i.corked&&(i.corked=1,this.uncork()),i.ending||function(e,t,r){t.ending=!0,N(e,t),r&&(t.finished?n.nextTick(r):e.once("finish",r));t.ended=!0,e.writable=!1}(this,i,r),this},Object.defineProperty(x.prototype,"writableLength",{enumerable:!1,get:function(){return this._writableState.length}}),Object.defineProperty(x.prototype,"destroyed",{enumerable:!1,get:function(){return void 0!==this._writableState&&this._writableState.destroyed},set:function(e){this._writableState&&(this._writableState.destroyed=e)}}),x.prototype.destroy=h.destroy,x.prototype._undestroy=h.undestroy,x.prototype._destroy=function(e,t){t(e)}}).call(this,r(11),r(12))},function(e,t,r){"use strict";e.exports=l;var n=r(33).codes,i=n.ERR_METHOD_NOT_IMPLEMENTED,a=n.ERR_MULTIPLE_CALLBACK,o=n.ERR_TRANSFORM_ALREADY_TRANSFORMING,s=n.ERR_TRANSFORM_WITH_LENGTH_0,u=r(34);function c(e,t){var r=this._transformState;r.transforming=!1;var n=r.writecb;if(null===n)return this.emit("error",new a);r.writechunk=null,r.writecb=null,null!=t&&this.push(t),n(e);var i=this._readableState;i.reading=!1,(i.needReadable||i.length=0;s--)if(u[s]!==c[s])return!1;for(s=u.length-1;s>=0;s--)if(o=u[s],!p(e[o],t[o],r,n))return!1;return!0}(e,t,r,s))}return r?e===t:e==t}function d(e){return"[object Arguments]"==Object.prototype.toString.call(e)}function f(e,t){if(!e||!t)return!1;if("[object RegExp]"==Object.prototype.toString.call(t))return t.test(e);try{if(e instanceof t)return!0}catch(e){}return!Error.isPrototypeOf(t)&&!0===t.call({},e)}function y(e,t,r,n){var i;if("function"!=typeof t)throw new TypeError('"block" argument must be a function');"string"==typeof r&&(n=r,r=null),i=function(e){var t;try{e()}catch(e){t=e}return t}(t),n=(r&&r.name?" ("+r.name+").":".")+(n?" "+n:"."),e&&!i&&l(i,r,"Missing expected exception"+n);var a="string"==typeof n,o=!e&&i&&!r;if((!e&&m.isError(i)&&a&&f(i,r)||o)&&l(i,r,"Got unwanted exception"+n),e&&i&&r&&!f(i,r)||!e&&i)throw i}var m=e("util/"),g=Object.prototype.hasOwnProperty,_=Array.prototype.slice,b="foo"===function(){}.name,v=r.exports=h,w=/\s*function\s+([^\(\s]*)\s*/;v.AssertionError=function(e){this.name="AssertionError",this.actual=e.actual,this.expected=e.expected,this.operator=e.operator,e.message?(this.message=e.message,this.generatedMessage=!1):(this.message=function(e){return u(c(e.actual),128)+" "+e.operator+" "+u(c(e.expected),128)}(this),this.generatedMessage=!0);var t=e.stackStartFunction||l;if(Error.captureStackTrace)Error.captureStackTrace(this,t);else{var r=new Error;if(r.stack){var n=r.stack,i=s(t),a=n.indexOf("\n"+i);if(a>=0){var o=n.indexOf("\n",a+1);n=n.substring(o+1)}this.stack=n}}},m.inherits(v.AssertionError,Error),v.fail=l,v.ok=h,v.equal=function(e,t,r){e!=t&&l(e,t,r,"==",v.equal)},v.notEqual=function(e,t,r){e==t&&l(e,t,r,"!=",v.notEqual)},v.deepEqual=function(e,t,r){p(e,t,!1)||l(e,t,r,"deepEqual",v.deepEqual)},v.deepStrictEqual=function(e,t,r){p(e,t,!0)||l(e,t,r,"deepStrictEqual",v.deepStrictEqual)},v.notDeepEqual=function(e,t,r){p(e,t,!1)&&l(e,t,r,"notDeepEqual",v.notDeepEqual)},v.notDeepStrictEqual=function e(t,r,n){p(t,r,!0)&&l(t,r,n,"notDeepStrictEqual",e)},v.strictEqual=function(e,t,r){e!==t&&l(e,t,r,"===",v.strictEqual)},v.notStrictEqual=function(e,t,r){e===t&&l(e,t,r,"!==",v.notStrictEqual)},v.throws=function(e,t,r){y(!0,e,t,r)},v.doesNotThrow=function(e,t,r){y(!1,e,t,r)},v.ifError=function(e){if(e)throw e};var E=Object.keys||function(e){var t=[];for(var r in e)g.call(e,r)&&t.push(r);return t}}).call(this,void 0!==t?t:"undefined"!=typeof self?self:"undefined"!=typeof window?window:{})},{"util/":7}],3:[function(e,t,r){},{}],4:[function(e,t,r){function n(){throw new Error("setTimeout has not been defined")}function i(){throw new Error("clearTimeout has not been defined")}function a(e){if(l===setTimeout)return setTimeout(e,0);if((l===n||!l)&&setTimeout)return l=setTimeout,setTimeout(e,0);try{return l(e,0)}catch(t){try{return l.call(null,e,0)}catch(t){return l.call(this,e,0)}}}function o(){y&&d&&(y=!1,d.length?f=d.concat(f):m=-1,f.length&&s())}function s(){if(!y){var e=a(o);y=!0;for(var t=f.length;t;){for(d=f,f=[];++m1)for(var r=1;r=3&&(r.depth=arguments[2]),arguments.length>=4&&(r.colors=arguments[3]),h(t)?r.showHidden=t:t&&n._extend(r,t),y(r.showHidden)&&(r.showHidden=!1),y(r.depth)&&(r.depth=2),y(r.colors)&&(r.colors=!1),y(r.customInspect)&&(r.customInspect=!0),r.colors&&(r.stylize=a),s(r,e,r.depth)}function a(e,t){var r=i.styles[t];return r?"["+i.colors[r][0]+"m"+e+"["+i.colors[r][1]+"m":e}function o(e,t){return e}function s(e,t,r){if(e.customInspect&&t&&v(t.inspect)&&t.inspect!==n.inspect&&(!t.constructor||t.constructor.prototype!==t)){var i=t.inspect(r,e);return f(i)||(i=s(e,i,r)),i}var a=function(e,t){if(y(t))return e.stylize("undefined","undefined");if(f(t)){var r="'"+JSON.stringify(t).replace(/^"|"$/g,"").replace(/'/g,"\\'").replace(/\\"/g,'"')+"'";return e.stylize(r,"string")}return d(t)?e.stylize(""+t,"number"):h(t)?e.stylize(""+t,"boolean"):p(t)?e.stylize("null","null"):void 0}(e,t);if(a)return a;var o=Object.keys(t),g=function(e){var t={};return e.forEach((function(e,r){t[e]=!0})),t}(o);if(e.showHidden&&(o=Object.getOwnPropertyNames(t)),b(t)&&(o.indexOf("message")>=0||o.indexOf("description")>=0))return u(t);if(0===o.length){if(v(t)){var w=t.name?": "+t.name:"";return e.stylize("[Function"+w+"]","special")}if(m(t))return e.stylize(RegExp.prototype.toString.call(t),"regexp");if(_(t))return e.stylize(Date.prototype.toString.call(t),"date");if(b(t))return u(t)}var E,S="",x=!1,O=["{","}"];return l(t)&&(x=!0,O=["[","]"]),v(t)&&(S=" [Function"+(t.name?": "+t.name:"")+"]"),m(t)&&(S=" "+RegExp.prototype.toString.call(t)),_(t)&&(S=" "+Date.prototype.toUTCString.call(t)),b(t)&&(S=" "+u(t)),0!==o.length||x&&0!=t.length?r<0?m(t)?e.stylize(RegExp.prototype.toString.call(t),"regexp"):e.stylize("[Object]","special"):(e.seen.push(t),E=x?function(e,t,r,n,i){for(var a=[],o=0,s=t.length;o60?r[0]+(""===t?"":t+"\n ")+" "+e.join(",\n ")+" "+r[1]:r[0]+t+" "+e.join(", ")+" "+r[1]}(E,S,O)):O[0]+S+O[1]}function u(e){return"["+Error.prototype.toString.call(e)+"]"}function c(e,t,r,n,i,a){var o,u,c;if((c=Object.getOwnPropertyDescriptor(t,i)||{value:t[i]}).get?u=c.set?e.stylize("[Getter/Setter]","special"):e.stylize("[Getter]","special"):c.set&&(u=e.stylize("[Setter]","special")),T(n,i)||(o="["+i+"]"),u||(e.seen.indexOf(c.value)<0?(u=p(r)?s(e,c.value,null):s(e,c.value,r-1)).indexOf("\n")>-1&&(u=a?u.split("\n").map((function(e){return" "+e})).join("\n").substr(2):"\n"+u.split("\n").map((function(e){return" "+e})).join("\n")):u=e.stylize("[Circular]","special")),y(o)){if(a&&i.match(/^\d+$/))return u;(o=JSON.stringify(""+i)).match(/^"([a-zA-Z_][a-zA-Z_0-9]*)"$/)?(o=o.substr(1,o.length-2),o=e.stylize(o,"name")):(o=o.replace(/'/g,"\\'").replace(/\\"/g,'"').replace(/(^"|"$)/g,"'"),o=e.stylize(o,"string"))}return o+": "+u}function l(e){return Array.isArray(e)}function h(e){return"boolean"==typeof e}function p(e){return null===e}function d(e){return"number"==typeof e}function f(e){return"string"==typeof e}function y(e){return void 0===e}function m(e){return g(e)&&"[object RegExp]"===w(e)}function g(e){return"object"==typeof e&&null!==e}function _(e){return g(e)&&"[object Date]"===w(e)}function b(e){return g(e)&&("[object Error]"===w(e)||e instanceof Error)}function v(e){return"function"==typeof e}function w(e){return Object.prototype.toString.call(e)}function E(e){return e<10?"0"+e.toString(10):e.toString(10)}function S(){var e=new Date,t=[E(e.getHours()),E(e.getMinutes()),E(e.getSeconds())].join(":");return[e.getDate(),A[e.getMonth()],t].join(" ")}function T(e,t){return Object.prototype.hasOwnProperty.call(e,t)}var x=/%[sdj%]/g;n.format=function(e){if(!f(e)){for(var t=[],r=0;r=a)return e;switch(e){case"%s":return String(n[r++]);case"%d":return Number(n[r++]);case"%j":try{return JSON.stringify(n[r++])}catch(e){return"[Circular]"}default:return e}})),s=n[r];r3&&void 0!==arguments[3]?arguments[3]:1,i=arguments.length>4&&void 0!==arguments[4]?arguments[4]:function(){return 1},a=Object.create(qe.prototype);return s(a),L(a,Object.create(Ve.prototype),e,t,r,n,i),a}function s(e){e._state="readable",e._reader=void 0,e._storedError=void 0,e._disturbed=!1}function u(e){return!!Ee(e)&&!!Object.prototype.hasOwnProperty.call(e,"_readableStreamController")}function c(e){return void 0!==e._reader}function l(e){return new Promise((function(t,r){var n={_resolve:t,_reject:r};e._reader._readIntoRequests.push(n)}))}function h(e){return new Promise((function(t,r){var n={_resolve:t,_reject:r};e._reader._readRequests.push(n)}))}function p(e,t){return e._disturbed=!0,"closed"===e._state?Promise.resolve(void 0):"errored"===e._state?Promise.reject(e._storedError):(d(e),e._readableStreamController[Me](t).then((function(){})))}function d(e){e._state="closed";var t=e._reader;if(void 0!==t){if(!0===w(t)){var r=!0,n=!1,i=void 0;try{for(var a,o=t._readRequests[Symbol.iterator]();!(r=(a=o.next()).done);r=!0)(0,a.value._resolve)(fe(void 0,!0))}catch(e){n=!0,i=e}finally{try{!r&&o.return&&o.return()}finally{if(n)throw i}}t._readRequests=[]}!function(e){e._closedPromise_resolve(void 0),e._closedPromise_resolve=void 0,e._closedPromise_reject=void 0}(t)}}function f(e,t){e._state="errored",e._storedError=t;var r=e._reader;if(void 0!==r){if(!0===w(r)){var n=!0,i=!1,a=void 0;try{for(var o,s=r._readRequests[Symbol.iterator]();!(n=(o=s.next()).done);n=!0)o.value._reject(t)}catch(e){i=!0,a=e}finally{try{!n&&s.return&&s.return()}finally{if(i)throw a}}r._readRequests=[]}else{var u=!0,c=!1,l=void 0;try{for(var h,p=r._readIntoRequests[Symbol.iterator]();!(u=(h=p.next()).done);u=!0)h.value._reject(t)}catch(e){c=!0,l=e}finally{try{!u&&p.return&&p.return()}finally{if(c)throw l}}r._readIntoRequests=[]}ae(r,t),r._closedPromise.catch((function(){}))}}function y(e,t,r){e._reader._readRequests.shift()._resolve(fe(t,r))}function m(e){return e._reader._readIntoRequests.length}function g(e){return e._reader._readRequests.length}function _(e){var t=e._reader;return void 0!==t&&!1!==v(t)}function b(e){var t=e._reader;return void 0!==t&&!1!==w(t)}function v(e){return!!Ee(e)&&!!Object.prototype.hasOwnProperty.call(e,"_readIntoRequests")}function w(e){return!!Ee(e)&&!!Object.prototype.hasOwnProperty.call(e,"_readRequests")}function E(e,t){e._ownerReadableStream=t,t._reader=e,"readable"===t._state?function(e){e._closedPromise=new Promise((function(t,r){e._closedPromise_resolve=t,e._closedPromise_reject=r}))}(e):"closed"===t._state?function(e){e._closedPromise=Promise.resolve(void 0),e._closedPromise_resolve=void 0,e._closedPromise_reject=void 0}(e):(function(e,t){e._closedPromise=Promise.reject(t),e._closedPromise_resolve=void 0,e._closedPromise_reject=void 0}(e,t._storedError),e._closedPromise.catch((function(){})))}function S(e,t){return p(e._ownerReadableStream,t)}function T(e){"readable"===e._ownerReadableStream._state?ae(e,new TypeError("Reader was released and can no longer be used to monitor the stream's closedness")):function(e,t){e._closedPromise=Promise.reject(t)}(e,new TypeError("Reader was released and can no longer be used to monitor the stream's closedness")),e._closedPromise.catch((function(){})),e._ownerReadableStream._reader=void 0,e._ownerReadableStream=void 0}function x(e,t){var r=e._ownerReadableStream;return r._disturbed=!0,"errored"===r._state?Promise.reject(r._storedError):function(e,t){var r=e._controlledReadableByteStream,n=1;t.constructor!==DataView&&(n=t.constructor.BYTES_PER_ELEMENT);var i=t.constructor,a={buffer:_e(t.buffer),byteOffset:t.byteOffset,byteLength:t.byteLength,bytesFilled:0,elementSize:n,ctor:i,readerType:"byob"};if(e._pendingPullIntos.length>0)return e._pendingPullIntos.push(a),l(r);if("closed"===r._state){var o=new t.constructor(a.buffer,a.byteOffset,0);return Promise.resolve(fe(o,!0))}if(e._queueTotalSize>0){if(!0===z(e,a)){var s=H(a);return $(e),Promise.resolve(fe(s,!1))}if(!0===e._closeRequested){var u=new TypeError("Insufficient bytes to fill elements in the given buffer");return K(e,u),Promise.reject(u)}}e._pendingPullIntos.push(a);var c=l(r);return B(e),c}(r._readableStreamController,t)}function O(e){var t=e._ownerReadableStream;return t._disturbed=!0,"closed"===t._state?Promise.resolve(fe(void 0,!0)):"errored"===t._state?Promise.reject(t._storedError):t._readableStreamController[Fe]()}function R(e){return!!Ee(e)&&!!Object.prototype.hasOwnProperty.call(e,"_controlledReadableStream")}function A(e){!1!==I(e)&&(!0!==e._pulling?(e._pulling=!0,e._pullAlgorithm().then((function(){if(e._pulling=!1,!0===e._pullAgain)return e._pullAgain=!1,A(e)}),(function(t){j(e,t)})).catch(Se)):e._pullAgain=!0)}function I(e){var t=e._controlledReadableStream;return!1!==k(e)&&!1!==e._started&&(!0===c(t)&&g(t)>0||D(e)>0)}function P(e){var t=e._controlledReadableStream;e._closeRequested=!0,0===e._queue.length&&d(t)}function N(e,t){var r=e._controlledReadableStream;if(!0===c(r)&&g(r)>0)y(r,t,!1);else{var n=void 0;try{n=e._strategySizeAlgorithm(t)}catch(t){throw j(e,t),t}try{Oe(e,t,n)}catch(t){throw j(e,t),t}}A(e)}function C(e,t){var r=e._controlledReadableStream;Re(e),f(r,t)}function j(e,t){"readable"===e._controlledReadableStream._state&&C(e,t)}function D(e){var t=e._controlledReadableStream._state;return"errored"===t?null:"closed"===t?0:e._strategyHWM-e._queueTotalSize}function k(e){var t=e._controlledReadableStream._state;return!1===e._closeRequested&&"readable"===t}function L(e,t,r,n,i,a,o){t._controlledReadableStream=e,t._queue=void 0,t._queueTotalSize=void 0,Re(t),t._started=!1,t._closeRequested=!1,t._pullAgain=!1,t._pulling=!1,t._strategySizeAlgorithm=o,t._strategyHWM=a,t._pullAlgorithm=n,t._cancelAlgorithm=i,e._readableStreamController=t;var s=r();Promise.resolve(s).then((function(){t._started=!0,A(t)}),(function(e){j(t,e)})).catch(Se)}function M(e,t,r,n){var i=Object.create(Ve.prototype),a=de(t,"pull",0,[i]),o=de(t,"cancel",1,[]);L(e,i,(function(){return me(t,"start",[i])}),a,o,r,n)}function F(e){return!!Ee(e)&&!!Object.prototype.hasOwnProperty.call(e,"_controlledReadableByteStream")}function q(e){return!!Ee(e)&&!!Object.prototype.hasOwnProperty.call(e,"_associatedReadableByteStreamController")}function B(e){!1!==function(e){var t=e._controlledReadableByteStream;return"readable"===t._state&&!0!==e._closeRequested&&!1!==e._started&&(!0===b(t)&&g(t)>0||!0===_(t)&&m(t)>0||Z(e)>0)}(e)&&(!0!==e._pulling?(e._pulling=!0,e._pullAlgorithm().then((function(){e._pulling=!1,!0===e._pullAgain&&(e._pullAgain=!1,B(e))}),(function(t){"readable"===e._controlledReadableByteStream._state&&K(e,t)})).catch(Se)):e._pullAgain=!0)}function U(e){X(e),e._pendingPullIntos=[]}function V(e,t){var r=!1;"closed"===e._state&&(r=!0);var n=H(t);"default"===t.readerType?y(e,n,r):function(e,t,r){e._reader._readIntoRequests.shift()._resolve(fe(t,r))}(e,n,r)}function H(e){var t=e.bytesFilled,r=e.elementSize;return new e.ctor(e.buffer,e.byteOffset,t/r)}function G(e,t,r,n){e._queue.push({buffer:t,byteOffset:r,byteLength:n}),e._queueTotalSize+=n}function z(e,t){var r=t.elementSize,n=t.bytesFilled-t.bytesFilled%r,i=Math.min(e._queueTotalSize,t.byteLength-t.bytesFilled),a=t.bytesFilled+i,o=a-a%r,s=i,u=!1;o>n&&(s=o-t.bytesFilled,u=!0);for(var c=e._queue;s>0;){var l=c[0],h=Math.min(s,l.byteLength),p=t.byteOffset+t.bytesFilled;pe(t.buffer,p,l.buffer,l.byteOffset,h),l.byteLength===h?c.shift():(l.byteOffset+=h,l.byteLength-=h),e._queueTotalSize-=h,Q(e,h,t),s-=h}return u}function Q(e,t,r){X(e),r.bytesFilled+=t}function $(e){0===e._queueTotalSize&&!0===e._closeRequested?d(e._controlledReadableByteStream):B(e)}function X(e){void 0!==e._byobRequest&&(e._byobRequest._associatedReadableByteStreamController=void 0,e._byobRequest._view=void 0,e._byobRequest=void 0)}function Y(e){for(;e._pendingPullIntos.length>0;){if(0===e._queueTotalSize)return;var t=e._pendingPullIntos[0];!0===z(e,t)&&(W(e),V(e._controlledReadableByteStream,t))}}function J(e,t){var r=e._pendingPullIntos[0];if("closed"===e._controlledReadableByteStream._state){if(0!==t)throw new TypeError("bytesWritten must be 0 when calling respond() on a closed stream");!function(e,t){t.buffer=_e(t.buffer);var r=e._controlledReadableByteStream;if(!0===_(r))for(;m(r)>0;)V(r,W(e))}(e,r)}else!function(e,t,r){if(r.bytesFilled+t>r.byteLength)throw new RangeError("bytesWritten out of range");if(Q(e,t,r),!(r.bytesFilled0){var i=r.byteOffset+r.bytesFilled,a=r.buffer.slice(i-n,i);G(e,a,0,a.byteLength)}r.buffer=_e(r.buffer),r.bytesFilled-=n,V(e._controlledReadableByteStream,r),Y(e)}}(e,t,r)}function W(e){var t=e._pendingPullIntos.shift();return X(e),t}function K(e,t){var r=e._controlledReadableByteStream;U(e),Re(e),f(r,t)}function Z(e){var t=e._controlledReadableByteStream._state;return"errored"===t?null:"closed"===t?0:e._strategyHWM-e._queueTotalSize}function ee(e,t,r,n,i,a,o){t._controlledReadableByteStream=e,t._pullAgain=!1,t._pulling=!1,U(t),t._queue=t._queueTotalSize=void 0,Re(t),t._closeRequested=!1,t._started=!1,t._strategyHWM=be(a),t._pullAlgorithm=n,t._cancelAlgorithm=i,t._autoAllocateChunkSize=o,t._pendingPullIntos=[],e._readableStreamController=t;var s=r();Promise.resolve(s).then((function(){t._started=!0,B(t)}),(function(r){"readable"===e._state&&K(t,r)})).catch(Se)}function te(e,t,r){var n=Object.create(Ge.prototype),i=de(t,"pull",0,[n]),a=de(t,"cancel",1,[]),o=t.autoAllocateChunkSize;if(void 0!==o&&(!1===Number.isInteger(o)||o<=0))throw new RangeError("autoAllocateChunkSize must be a positive integer");ee(e,n,(function(){return me(t,"start",[n])}),i,a,r,o)}function re(e){return new TypeError("ReadableStream.prototype."+e+" can only be used on a ReadableStream")}function ne(e){return new TypeError("Cannot "+e+" a stream using a released reader")}function ie(e){return new TypeError("ReadableStreamDefaultReader.prototype."+e+" can only be used on a ReadableStreamDefaultReader")}function ae(e,t){e._closedPromise_reject(t),e._closedPromise_resolve=void 0,e._closedPromise_reject=void 0}function oe(e){return new TypeError("ReadableStreamBYOBReader.prototype."+e+" can only be used on a ReadableStreamBYOBReader")}function se(e){return new TypeError("ReadableStreamDefaultController.prototype."+e+" can only be used on a ReadableStreamDefaultController")}function ue(e){return new TypeError("ReadableStreamBYOBRequest.prototype."+e+" can only be used on a ReadableStreamBYOBRequest")}function ce(e){return new TypeError("ReadableByteStreamController.prototype."+e+" can only be used on a ReadableByteStreamController")}var le=function(){function e(e,t){for(var r=0;r0&&void 0!==arguments[0]?arguments[0]:{},r=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},i=r.size,a=r.highWaterMark;n(this,e),s(this);var o=t.type;if("bytes"===String(o)){if(void 0===a&&(a=0),a=be(a),void 0!==i)throw new RangeError("The strategy for a byte stream cannot have a size function");te(this,t,a)}else{if(void 0!==o)throw new RangeError("Invalid type is specified");void 0===a&&(a=1),M(this,t,a=be(a),ve(i))}}return le(e,[{key:"cancel",value:function(e){return!1===u(this)?Promise.reject(re("cancel")):!0===c(this)?Promise.reject(new TypeError("Cannot cancel a stream that already has a reader")):p(this,e)}},{key:"getReader",value:function(){var e=(arguments.length>0&&void 0!==arguments[0]?arguments[0]:{}).mode;if(!1===u(this))throw re("getReader");if(void 0===e)return a(this);if("byob"===(e=String(e)))return i(this);throw new RangeError("Invalid mode is specified")}},{key:"pipeThrough",value:function(e,t){var r=e.writable,n=e.readable;if(void 0===r||void 0===n)throw new TypeError("readable and writable arguments must be defined");return function(e){try{Promise.prototype.then.call(e,void 0,(function(){}))}catch(e){}}(this.pipeTo(r,t)),n}},{key:"pipeTo",value:function(e){var t=this,r=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},n=r.preventClose,i=r.preventAbort,o=r.preventCancel;if(!1===u(this))return Promise.reject(re("pipeTo"));if(!1===Pe(e))return Promise.reject(new TypeError("ReadableStream.prototype.pipeTo's first argument must be a WritableStream"));if(n=Boolean(n),i=Boolean(i),o=Boolean(o),!0===c(this))return Promise.reject(new TypeError("ReadableStream.prototype.pipeTo cannot be used on a locked ReadableStream"));if(!0===Ne(e))return Promise.reject(new TypeError("ReadableStream.prototype.pipeTo cannot be used on a locked WritableStream"));var s=a(this),l=Ie(e),h=!1,d=Promise.resolve();return new Promise((function(r,a){function u(){var e=d;return d.then((function(){return e!==d?u():void 0}))}function c(e,t,r){"errored"===e._state?r(e._storedError):t.catch(r).catch(Se)}function f(t,r,n){function i(){t().then((function(){return m(r,n)}),(function(e){return m(!0,e)})).catch(Se)}!0!==h&&(h=!0,"writable"===e._state&&!1===Le(e)?u().then(i):i())}function y(t,r){!0!==h&&(h=!0,"writable"===e._state&&!1===Le(e)?u().then((function(){return m(t,r)})).catch(Se):m(t,r))}function m(e,t){De(l),T(s),e?a(t):r(void 0)}if(c(t,s._closedPromise,(function(t){!1===i?f((function(){return Ce(e,t)}),!0,t):y(!0,t)})),c(e,l._closedPromise,(function(e){!1===o?f((function(){return p(t,e)}),!0,e):y(!0,e)})),function(e,t,r){"closed"===e._state?r():t.then(r).catch(Se)}(t,s._closedPromise,(function(){!1===n?f((function(){return je(l)})):y()})),!0===Le(e)||"closed"===e._state){var g=new TypeError("the destination writable stream closed before all data could be piped to it");!1===o?f((function(){return p(t,g)}),!0,g):y(!0,g)}(function e(){return!0===h?Promise.resolve():l._readyPromise.then((function(){return O(s).then((function(e){var t=e.value;!0!==e.done&&(d=ke(l,t).catch((function(){})))}))})).then(e)})().catch((function(e){d=Promise.resolve(),Se(e)}))}))}},{key:"tee",value:function(){if(!1===u(this))throw re("tee");var e=function(e,t){function r(){return O(i).then((function(e){var t=e.value;if(!0===e.done&&!1===s&&(!1===u&&P(d._readableStreamController),!1===c&&P(f._readableStreamController),s=!0),!0!==s){var r=t,n=t;!1===u&&N(d._readableStreamController,r),!1===c&&N(f._readableStreamController,n)}}))}function n(){}var i=a(e),s=!1,u=!1,c=!1,l=void 0,h=void 0,d=void 0,f=void 0,y=void 0,m=new Promise((function(e){y=e}));return d=o(n,r,(function(t){if(u=!0,l=t,!0===c){var r=we([l,h]),n=p(e,r);y(n)}return m})),f=o(n,r,(function(t){if(c=!0,h=t,!0===u){var r=we([l,h]),n=p(e,r);y(n)}return m})),i._closedPromise.catch((function(e){!0!==s&&(j(d._readableStreamController,e),j(f._readableStreamController,e),s=!0)})),[d,f]}(this);return we(e)}},{key:"locked",get:function(){if(!1===u(this))throw re("locked");return c(this)}}]),e}();t.exports={CreateReadableByteStream:function(e,t,r){var n=arguments.length>3&&void 0!==arguments[3]?arguments[3]:0,i=arguments.length>4&&void 0!==arguments[4]?arguments[4]:void 0,a=Object.create(qe.prototype);return s(a),ee(a,Object.create(Ge.prototype),e,t,r,n,i),a},CreateReadableStream:o,ReadableStream:qe,IsReadableStreamDisturbed:function(e){return e._disturbed},ReadableStreamDefaultControllerClose:P,ReadableStreamDefaultControllerEnqueue:N,ReadableStreamDefaultControllerError:C,ReadableStreamDefaultControllerGetDesiredSize:D,ReadableStreamDefaultControllerHasBackpressure:function(e){return!0!==I(e)},ReadableStreamDefaultControllerCanCloseOrEnqueue:k};var Be=function(){function e(t){if(n(this,e),!1===u(t))throw new TypeError("ReadableStreamDefaultReader can only be constructed with a ReadableStream instance");if(!0===c(t))throw new TypeError("This stream has already been locked for exclusive reading by another reader");E(this,t),this._readRequests=[]}return le(e,[{key:"cancel",value:function(e){return!1===w(this)?Promise.reject(ie("cancel")):void 0===this._ownerReadableStream?Promise.reject(ne("cancel")):S(this,e)}},{key:"read",value:function(){return!1===w(this)?Promise.reject(ie("read")):void 0===this._ownerReadableStream?Promise.reject(ne("read from")):O(this)}},{key:"releaseLock",value:function(){if(!1===w(this))throw ie("releaseLock");if(void 0!==this._ownerReadableStream){if(this._readRequests.length>0)throw new TypeError("Tried to release a reader lock when that reader has pending read() calls un-settled");T(this)}}},{key:"closed",get:function(){return!1===w(this)?Promise.reject(ie("closed")):this._closedPromise}}]),e}(),Ue=function(){function e(t){if(n(this,e),!u(t))throw new TypeError("ReadableStreamBYOBReader can only be constructed with a ReadableStream instance given a byte source");if(!1===F(t._readableStreamController))throw new TypeError("Cannot construct a ReadableStreamBYOBReader for a stream not constructed with a byte source");if(c(t))throw new TypeError("This stream has already been locked for exclusive reading by another reader");E(this,t),this._readIntoRequests=[]}return le(e,[{key:"cancel",value:function(e){return v(this)?void 0===this._ownerReadableStream?Promise.reject(ne("cancel")):S(this,e):Promise.reject(oe("cancel"))}},{key:"read",value:function(e){return v(this)?void 0===this._ownerReadableStream?Promise.reject(ne("read from")):ArrayBuffer.isView(e)?!0===ge(e.buffer)?Promise.reject(new TypeError("Cannot read into a view onto a detached ArrayBuffer")):0===e.byteLength?Promise.reject(new TypeError("view must have non-zero byteLength")):x(this,e):Promise.reject(new TypeError("view must be an array buffer view")):Promise.reject(oe("read"))}},{key:"releaseLock",value:function(){if(!v(this))throw oe("releaseLock");if(void 0!==this._ownerReadableStream){if(this._readIntoRequests.length>0)throw new TypeError("Tried to release a reader lock when that reader has pending read() calls un-settled");T(this)}}},{key:"closed",get:function(){return v(this)?this._closedPromise:Promise.reject(oe("closed"))}}]),e}(),Ve=function(){function e(){throw n(this,e),new TypeError}return le(e,[{key:"close",value:function(){if(!1===R(this))throw se("close");if(!1===k(this))throw new TypeError("The stream is not in a state that permits close");P(this)}},{key:"enqueue",value:function(e){if(!1===R(this))throw se("enqueue");if(!1===k(this))throw new TypeError("The stream is not in a state that permits enqueue");return N(this,e)}},{key:"error",value:function(e){if(!1===R(this))throw se("error");var t=this._controlledReadableStream;if("readable"!==t._state)throw new TypeError("The stream is "+t._state+" and so cannot be errored");C(this,e)}},{key:Me,value:function(e){return Re(this),this._cancelAlgorithm(e)}},{key:Fe,value:function(){var e=this._controlledReadableStream;if(this._queue.length>0){var t=xe(this);return!0===this._closeRequested&&0===this._queue.length?d(e):A(this),Promise.resolve(fe(t,!1))}var r=h(e);return A(this),r}},{key:"desiredSize",get:function(){if(!1===R(this))throw se("desiredSize");return D(this)}}]),e}(),He=function(){function e(){throw n(this,e),new TypeError("ReadableStreamBYOBRequest cannot be used directly")}return le(e,[{key:"respond",value:function(e){if(!1===q(this))throw ue("respond");if(void 0===this._associatedReadableByteStreamController)throw new TypeError("This BYOB request has been invalidated");if(!0===ge(this._view.buffer))throw new TypeError("The BYOB request's buffer has been detached and so cannot be used as a response");!function(e,t){if(t=Number(t),!1===ye(t))throw new RangeError("bytesWritten must be a finite");J(e,t)}(this._associatedReadableByteStreamController,e)}},{key:"respondWithNewView",value:function(e){if(!1===q(this))throw ue("respond");if(void 0===this._associatedReadableByteStreamController)throw new TypeError("This BYOB request has been invalidated");if(!ArrayBuffer.isView(e))throw new TypeError("You can only respond with array buffer views");if(!0===ge(e.buffer))throw new TypeError("The supplied view's buffer has been detached and so cannot be used as a response");!function(e,t){var r=e._pendingPullIntos[0];if(r.byteOffset+r.bytesFilled!==t.byteOffset)throw new RangeError("The region specified by view does not match byobRequest");if(r.byteLength!==t.byteLength)throw new RangeError("The buffer of view has different capacity than byobRequest");r.buffer=t.buffer,J(e,t.byteLength)}(this._associatedReadableByteStreamController,e)}},{key:"view",get:function(){if(!1===q(this))throw ue("view");return this._view}}]),e}(),Ge=function(){function e(){throw n(this,e),new TypeError("ReadableByteStreamController constructor cannot be used directly")}return le(e,[{key:"close",value:function(){if(!1===F(this))throw ce("close");if(!0===this._closeRequested)throw new TypeError("The stream has already been closed; do not close it again!");var e=this._controlledReadableByteStream._state;if("readable"!==e)throw new TypeError("The stream (in "+e+" state) is not in the readable state and cannot be closed");!function(e){var t=e._controlledReadableByteStream;if(e._queueTotalSize>0)e._closeRequested=!0;else{if(e._pendingPullIntos.length>0&&e._pendingPullIntos[0].bytesFilled>0){var r=new TypeError("Insufficient bytes to fill elements in the given buffer");throw K(e,r),r}d(t)}}(this)}},{key:"enqueue",value:function(e){if(!1===F(this))throw ce("enqueue");if(!0===this._closeRequested)throw new TypeError("stream is closed or draining");var t=this._controlledReadableByteStream._state;if("readable"!==t)throw new TypeError("The stream (in "+t+" state) is not in the readable state and cannot be enqueued to");if(!ArrayBuffer.isView(e))throw new TypeError("You can only enqueue array buffer views when using a ReadableByteStreamController");if(!0===ge(e.buffer))throw new TypeError("Cannot enqueue a view onto a detached ArrayBuffer");!function(e,t){var r=e._controlledReadableByteStream,n=t.buffer,i=t.byteOffset,a=t.byteLength,o=_e(n);!0===b(r)?0===g(r)?G(e,o,i,a):y(r,new Uint8Array(o,i,a),!1):!0===_(r)?(G(e,o,i,a),Y(e)):G(e,o,i,a)}(this,e)}},{key:"error",value:function(e){if(!1===F(this))throw ce("error");var t=this._controlledReadableByteStream;if("readable"!==t._state)throw new TypeError("The stream is "+t._state+" and so cannot be errored");K(this,e)}},{key:Me,value:function(e){return this._pendingPullIntos.length>0&&(this._pendingPullIntos[0].bytesFilled=0),Re(this),this._cancelAlgorithm(e)}},{key:Fe,value:function(){var e=this._controlledReadableByteStream;if(this._queueTotalSize>0){var t=this._queue.shift();this._queueTotalSize-=t.byteLength,$(this);var r=void 0;try{r=new Uint8Array(t.buffer,t.byteOffset,t.byteLength)}catch(e){return Promise.reject(e)}return Promise.resolve(fe(r,!1))}var n=this._autoAllocateChunkSize;if(void 0!==n){var i=void 0;try{i=new ArrayBuffer(n)}catch(e){return Promise.reject(e)}var a={buffer:i,byteOffset:0,byteLength:n,bytesFilled:0,elementSize:1,ctor:Uint8Array,readerType:"default"};this._pendingPullIntos.push(a)}var o=h(e);return B(this),o}},{key:"byobRequest",get:function(){if(!1===F(this))throw ce("byobRequest");if(void 0===this._byobRequest&&this._pendingPullIntos.length>0){var e=this._pendingPullIntos[0],t=new Uint8Array(e.buffer,e.byteOffset+e.bytesFilled,e.byteLength-e.bytesFilled),r=Object.create(He.prototype);(function(e,t,r){e._associatedReadableByteStreamController=t,e._view=r})(r,this,t),this._byobRequest=r}return this._byobRequest}},{key:"desiredSize",get:function(){if(!1===F(this))throw ce("desiredSize");return Z(this)}}]),e}()},{"./helpers.js":10,"./queue-with-sizes.js":11,"./utils.js":14,"./writable-stream.js":15,"better-assert":16}],13:[function(e,t,r){"use strict";function n(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}function i(e,t,r,n,i,a){function c(){return t}e._writable=j(c,(function(t){return function(e,t){m("TransformStreamDefaultSinkWriteAlgorithm()");var r=e._transformStreamController;return!0===e._backpressure?e._backpressureChangePromise.then((function(){var n=e._writable;if("erroring"===n._state)throw n._storedError;return r._transformAlgorithm(t)})):r._transformAlgorithm(t)}(e,t)}),(function(){return function(e){m("TransformStreamDefaultSinkCloseAlgorithm()");var t=e._readable;return e._transformStreamController._flushAlgorithm().then((function(){if("errored"===t._state)throw t._storedError;var e=t._readableStreamController;!0===N(e)&&O(e)})).catch((function(r){throw o(e,r),t._storedError}))}(e)}),(function(){return function(e){return o(e,new TypeError("Writable side aborted")),Promise.resolve()}(e)}),r,n),e._readable=x(c,(function(){return function(e){return m("TransformStreamDefaultSourcePullAlgorithm()"),u(e,!1),e._backpressureChangePromise}(e)}),(function(t){return s(e,t),Promise.resolve()}),i,a),e._backpressure=void 0,e._backpressureChangePromise=void 0,e._backpressureChangePromise_resolve=void 0,u(e,!0),e._transformStreamController=void 0}function a(e){return!!w(e)&&!!Object.prototype.hasOwnProperty.call(e,"_transformStreamController")}function o(e,t){m("TransformStreamError()"),"readable"===e._readable._state&&A(e._readable._readableStreamController,t),s(e,t)}function s(e,t){D(e._writable._writableStreamController,t),!0===e._backpressure&&u(e,!1)}function u(e,t){m("TransformStreamSetBackpressure() [backpressure = "+t+"]"),void 0!==e._backpressureChangePromise&&e._backpressureChangePromise_resolve(),e._backpressureChangePromise=new Promise((function(t){e._backpressureChangePromise_resolve=t})),e._backpressure=t}function c(e){return!!w(e)&&!!Object.prototype.hasOwnProperty.call(e,"_controlledTransformStream")}function l(e,t,r,n){t._controlledTransformStream=e,e._transformStreamController=t,t._transformAlgorithm=r,t._flushAlgorithm=n}function h(e,t){var r=Object.create(L.prototype),n=function(e){try{return p(r,e),Promise.resolve()}catch(e){return Promise.reject(e)}},i=t.transform;if(void 0!==i){if("function"!=typeof i)throw new TypeError("transform is not a method");n=function(n){return v(i,t,[n,r]).catch((function(t){throw o(e,t),t}))}}var a=b(t,"flush",0,[r]);l(e,r,n,a)}function p(e,t){m("TransformStreamDefaultControllerEnqueue()");var r=e._controlledTransformStream,n=r._readable._readableStreamController;if(!1===N(n))throw new TypeError("Readable side is not in a state that permits enqueue");try{R(n,t)}catch(e){throw s(r,e),r._readable._storedError}P(n)!==r._backpressure&&u(r,!0)}function d(e){return new TypeError("TransformStreamDefaultController.prototype."+e+" can only be used on a TransformStreamDefaultController")}function f(e){return new TypeError("TransformStream.prototype."+e+" can only be used on a TransformStream")}var y=function(){function e(e,t){for(var r=0;r0&&void 0!==arguments[0]?arguments[0]:{},r=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},a=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};if(n(this,e),void 0!==t.readableType)throw new RangeError("Invalid readable type specified");if(void 0!==t.writableType)throw new RangeError("Invalid writable type specified");var o=r.size,s=S(o),u=r.highWaterMark;void 0===u&&(u=1),u=E(u);var c=a.size,l=S(c),p=a.highWaterMark;void 0===p&&(p=0),p=E(p);var d=void 0;i(this,new Promise((function(e){d=e})),u,s,p,l),h(this,t);var f=_(t,"start",[this._transformStreamController]);d(f)}return y(e,[{key:"readable",get:function(){if(!1===a(this))throw f("readable");return this._readable}},{key:"writable",get:function(){if(!1===a(this))throw f("writable");return this._writable}}]),e}(),L=function(){function e(){throw n(this,e),new TypeError("TransformStreamDefaultController instances cannot be created directly")}return y(e,[{key:"enqueue",value:function(e){if(!1===c(this))throw d("enqueue");p(this,e)}},{key:"error",value:function(e){if(!1===c(this))throw d("error");!function(e,t){o(e._controlledTransformStream,t)}(this,e)}},{key:"terminate",value:function(){if(!1===c(this))throw d("terminate");!function(e){m("TransformStreamDefaultControllerTerminate()");var t=e._controlledTransformStream,r=t._readable._readableStreamController;!0===N(r)&&O(r),s(t,new TypeError("TransformStream terminated"))}(this)}},{key:"desiredSize",get:function(){if(!1===c(this))throw d("desiredSize");var e=this._controlledTransformStream._readable._readableStreamController;return I(e)}}]),e}();t.exports={CreateTransformStream:function(e,t,r){var n=arguments.length>3&&void 0!==arguments[3]?arguments[3]:1,a=arguments.length>4&&void 0!==arguments[4]?arguments[4]:function(){return 1},o=arguments.length>5&&void 0!==arguments[5]?arguments[5]:0,s=arguments.length>6&&void 0!==arguments[6]?arguments[6]:function(){return 1},u=Object.create(k.prototype),c=void 0;i(u,new Promise((function(e){c=e})),n,a,o,s),l(u,Object.create(L.prototype),t,r);var h=e();return c(h),u},TransformStream:k}},{"./helpers.js":10,"./readable-stream.js":12,"./writable-stream.js":15,"better-assert":16,debug:18}],14:[function(e,t,r){"use strict";var n=e("better-assert");r.rethrowAssertionErrorRejection=function(e){e&&e.constructor===n.AssertionError&&setTimeout((function(){throw e}),0)}},{"better-assert":16}],15:[function(e,t,r){"use strict";function n(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}function i(e){return new Z(e)}function a(e){e._state="writable",e._storedError=void 0,e._writer=void 0,e._writableStreamController=void 0,e._writeRequests=[],e._inFlightWriteRequest=void 0,e._closeRequest=void 0,e._inFlightCloseRequest=void 0,e._pendingAbortRequest=void 0,e._backpressure=!1}function o(e){return!!H(e)&&!!Object.prototype.hasOwnProperty.call(e,"_writableStreamController")}function s(e){return void 0!==e._writer}function u(e,t){var r=e._state;if("closed"===r)return Promise.resolve(void 0);if("errored"===r)return Promise.reject(e._storedError);var n=new TypeError("Requested to abort");if(void 0!==e._pendingAbortRequest)return Promise.reject(n);var i=!1;"erroring"===r&&(i=!0,t=void 0);var a=new Promise((function(r,n){e._pendingAbortRequest={_resolve:r,_reject:n,_reason:t,_wasAlreadyErroring:i}}));return!1===i&&l(e,n),a}function c(e,t){M("WritableStreamDealWithRejection(stream, %o)",t),"writable"!==e._state?h(e):l(e,t)}function l(e,t){M("WritableStreamStartErroring(stream, %o)",t);var r=e._writableStreamController;e._state="erroring",e._storedError=t;var n=e._writer;void 0!==n&&_(n,t),!1===function(e){return void 0===e._inFlightWriteRequest&&void 0===e._inFlightCloseRequest?(M("WritableStreamHasOperationMarkedInFlight() is false"),!1):(M("WritableStreamHasOperationMarkedInFlight() is true"),!0)}(e)&&!0===r._started&&h(e)}function h(e){M("WritableStreamFinishErroring()"),e._state="errored",e._writableStreamController[W]();var t=e._storedError,r=!0,n=!1,i=void 0;try{for(var a,o=e._writeRequests[Symbol.iterator]();!(r=(a=o.next()).done);r=!0)a.value._reject(t)}catch(e){n=!0,i=e}finally{try{!r&&o.return&&o.return()}finally{if(n)throw i}}if(e._writeRequests=[],void 0!==e._pendingAbortRequest){var s=e._pendingAbortRequest;if(e._pendingAbortRequest=void 0,!0===s._wasAlreadyErroring)return s._reject(t),void d(e);e._writableStreamController[J](s._reason).then((function(){s._resolve(),d(e)}),(function(t){s._reject(t),d(e)}))}else d(e)}function p(e){return void 0!==e._closeRequest||void 0!==e._inFlightCloseRequest}function d(e){M("WritableStreamRejectCloseAndClosedPromiseIfNeeded()"),void 0!==e._closeRequest&&(e._closeRequest._reject(e._storedError),e._closeRequest=void 0);var t=e._writer;void 0!==t&&(C(t,e._storedError),t._closedPromise.catch((function(){})))}function f(e,t){var r=e._writer;void 0!==r&&t!==e._backpressure&&(!0===t?function(e){M("defaultWriterReadyPromiseReset()"),e._readyPromise=new Promise((function(t,r){e._readyPromise_resolve=t,e._readyPromise_reject=r})),e._readyPromiseState="pending"}(r):k(r)),e._backpressure=t}function y(e){return!!H(e)&&!!Object.prototype.hasOwnProperty.call(e,"_ownerWritableStream")}function m(e){var t=e._ownerWritableStream,r=t._state;if("closed"===r||"errored"===r)return Promise.reject(new TypeError("The stream (in "+r+" state) is not in the writable state and cannot be closed"));var n=new Promise((function(e,r){var n={_resolve:e,_reject:r};t._closeRequest=n}));return!0===t._backpressure&&"writable"===r&&k(e),function(e){$(e,"close",0),T(e)}(t._writableStreamController),n}function g(e,t){"pending"===e._closedPromiseState?C(e,t):function(e,t){e._closedPromise=Promise.reject(t),e._closedPromiseState="rejected"}(e,t),e._closedPromise.catch((function(){}))}function _(e,t){M("WritableStreamDefaultWriterEnsureReadyPromiseRejected(writer, %o)",t),"pending"===e._readyPromiseState?function(e,t){M("defaultWriterReadyPromiseReject(writer, %o)",t),e._readyPromise_reject(t),e._readyPromise_resolve=void 0,e._readyPromise_reject=void 0,e._readyPromiseState="rejected"}(e,t):function(e,t){M("defaultWriterReadyPromiseResetToRejected(writer, %o)",t),e._readyPromise=Promise.reject(t),e._readyPromiseState="rejected"}(e,t),e._readyPromise.catch((function(){}))}function b(e){var t=e._ownerWritableStream,r=new TypeError("Writer was released and can no longer be used to monitor the stream's closedness");_(e,r),g(e,r),t._writer=void 0,e._ownerWritableStream=void 0}function v(e,t){var r=e._ownerWritableStream,n=r._writableStreamController,i=function(e,t){try{return e._strategySizeAlgorithm(t)}catch(t){return x(e,t),1}}(n,t);if(r!==e._ownerWritableStream)return Promise.reject(P("write to"));var a=r._state;if("errored"===a)return Promise.reject(r._storedError);if(!0===p(r)||"closed"===a)return Promise.reject(new TypeError("The stream is closing or closed and cannot be written to"));if("erroring"===a)return Promise.reject(r._storedError);var o=function(e){return new Promise((function(t,r){var n={_resolve:t,_reject:r};e._writeRequests.push(n)}))}(r);return function(e,t,r){var n={chunk:t};try{$(e,n,r)}catch(t){return void x(e,t)}var i=e._controlledWritableStream;!1===p(i)&&"writable"===i._state&&f(i,O(e)),T(e)}(n,t,i),o}function w(e,t,r,n,i,a,o,s){t._controlledWritableStream=e,e._writableStreamController=t,t._queue=void 0,t._queueTotalSize=void 0,Y(t),t._started=!1,t._strategySizeAlgorithm=s,t._strategyHWM=o,t._writeAlgorithm=n,t._closeAlgorithm=i,t._abortAlgorithm=a;var u=O(t);f(e,u);var l=r();Promise.resolve(l).then((function(){t._started=!0,T(t)}),(function(r){t._started=!0,c(e,r)})).catch(G)}function E(e,t,r,n){var i=Object.create(ee.prototype),a=q(t,"write",1,[i]),o=q(t,"close",0,[]),s=q(t,"abort",1,[]);w(e,i,(function(){return B(t,"start",[i])}),a,o,s,r,n)}function S(e){return e._strategyHWM-e._queueTotalSize}function T(e){M("WritableStreamDefaultControllerAdvanceQueueIfNeeded()");var t=e._controlledWritableStream;if(!1!==e._started&&void 0===t._inFlightWriteRequest){var r=t._state;if("closed"!==r&&"errored"!==r)if("erroring"!==r){if(0!==e._queue.length){var n=X(e);"close"===n?function(e){var t=e._controlledWritableStream;(function(e){e._inFlightCloseRequest=e._closeRequest,e._closeRequest=void 0})(t),Q(e),e._closeAlgorithm().then((function(){!function(e){e._inFlightCloseRequest._resolve(void 0),e._inFlightCloseRequest=void 0,"erroring"===e._state&&(e._storedError=void 0,void 0!==e._pendingAbortRequest&&(e._pendingAbortRequest._resolve(),e._pendingAbortRequest=void 0)),e._state="closed";var t=e._writer;void 0!==t&&function(e){e._closedPromise_resolve(void 0),e._closedPromise_resolve=void 0,e._closedPromise_reject=void 0,e._closedPromiseState="resolved"}(t)}(t)}),(function(e){!function(e,t){e._inFlightCloseRequest._reject(t),e._inFlightCloseRequest=void 0,void 0!==e._pendingAbortRequest&&(e._pendingAbortRequest._reject(t),e._pendingAbortRequest=void 0),c(e,t)}(t,e)})).catch(G)}(e):function(e,t){var r=e._controlledWritableStream;(function(e){e._inFlightWriteRequest=e._writeRequests.shift()})(r),e._writeAlgorithm(t).then((function(){!function(e){e._inFlightWriteRequest._resolve(void 0),e._inFlightWriteRequest=void 0}(r);var t=r._state;if(Q(e),!1===p(r)&&"writable"===t){var n=O(e);f(r,n)}T(e)}),(function(e){!function(e,t){e._inFlightWriteRequest._reject(t),e._inFlightWriteRequest=void 0,c(e,t)}(r,e)})).catch(G)}(e,n.chunk)}}else h(t)}}function x(e,t){"writable"===e._controlledWritableStream._state&&R(e,t)}function O(e){return S(e)<=0}function R(e,t){l(e._controlledWritableStream,t)}function A(e){return new TypeError("WritableStream.prototype."+e+" can only be used on a WritableStream")}function I(e){return new TypeError("WritableStreamDefaultWriter.prototype."+e+" can only be used on a WritableStreamDefaultWriter")}function P(e){return new TypeError("Cannot "+e+" a stream using a released writer")}function N(e){e._closedPromise=new Promise((function(t,r){e._closedPromise_resolve=t,e._closedPromise_reject=r,e._closedPromiseState="pending"}))}function C(e,t){e._closedPromise_reject(t),e._closedPromise_resolve=void 0,e._closedPromise_reject=void 0,e._closedPromiseState="rejected"}function j(e,t){M("defaultWriterReadyPromiseInitializeAsRejected(writer, %o)",t),e._readyPromise=Promise.reject(t),e._readyPromise_resolve=void 0,e._readyPromise_reject=void 0,e._readyPromiseState="rejected"}function D(e){M("defaultWriterReadyPromiseInitializeAsResolved()"),e._readyPromise=Promise.resolve(void 0),e._readyPromise_resolve=void 0,e._readyPromise_reject=void 0,e._readyPromiseState="fulfilled"}function k(e){M("defaultWriterReadyPromiseResolve()"),e._readyPromise_resolve(void 0),e._readyPromise_resolve=void 0,e._readyPromise_reject=void 0,e._readyPromiseState="fulfilled"}var L=function(){function e(e,t){for(var r=0;r0&&void 0!==arguments[0]?arguments[0]:{},r=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},i=r.size,o=r.highWaterMark,s=void 0===o?1:o;if(n(this,e),a(this),void 0!==t.type)throw new RangeError("Invalid type is specified");var u=V(i);E(this,t,s=U(s),u)}return L(e,[{key:"abort",value:function(e){return!1===o(this)?Promise.reject(A("abort")):!0===s(this)?Promise.reject(new TypeError("Cannot abort a stream that already has a writer")):u(this,e)}},{key:"getWriter",value:function(){if(!1===o(this))throw A("getWriter");return i(this)}},{key:"locked",get:function(){if(!1===o(this))throw A("locked");return s(this)}}]),e}();t.exports={AcquireWritableStreamDefaultWriter:i,CreateWritableStream:function(e,t,r,n){var i=arguments.length>4&&void 0!==arguments[4]?arguments[4]:1,o=arguments.length>5&&void 0!==arguments[5]?arguments[5]:function(){return 1},s=Object.create(K.prototype);return a(s),w(s,Object.create(ee.prototype),e,t,r,n,i,o),s},IsWritableStream:o,IsWritableStreamLocked:s,WritableStream:K,WritableStreamAbort:u,WritableStreamDefaultControllerErrorIfNeeded:x,WritableStreamDefaultWriterCloseWithErrorPropagation:function(e){var t=e._ownerWritableStream,r=t._state;return!0===p(t)||"closed"===r?Promise.resolve():"errored"===r?Promise.reject(t._storedError):m(e)},WritableStreamDefaultWriterRelease:b,WritableStreamDefaultWriterWrite:v,WritableStreamCloseQueuedOrInFlight:p};var Z=function(){function e(t){if(n(this,e),!1===o(t))throw new TypeError("WritableStreamDefaultWriter can only be constructed with a WritableStream instance");if(!0===s(t))throw new TypeError("This stream has already been locked for exclusive writing by another writer");this._ownerWritableStream=t,t._writer=this;var r=t._state;if("writable"===r)!1===p(t)&&!0===t._backpressure?function(e){M("defaultWriterReadyPromiseInitialize()"),e._readyPromise=new Promise((function(t,r){e._readyPromise_resolve=t,e._readyPromise_reject=r})),e._readyPromiseState="pending"}(this):D(this),N(this);else if("erroring"===r)j(this,t._storedError),this._readyPromise.catch((function(){})),N(this);else if("closed"===r)D(this),function(e){e._closedPromise=Promise.resolve(void 0),e._closedPromise_resolve=void 0,e._closedPromise_reject=void 0,e._closedPromiseState="resolved"}(this);else{var i=t._storedError;j(this,i),this._readyPromise.catch((function(){})),function(e,t){e._closedPromise=Promise.reject(t),e._closedPromise_resolve=void 0,e._closedPromise_reject=void 0,e._closedPromiseState="rejected"}(this,i),this._closedPromise.catch((function(){}))}}return L(e,[{key:"abort",value:function(e){return!1===y(this)?Promise.reject(I("abort")):void 0===this._ownerWritableStream?Promise.reject(P("abort")):function(e,t){return u(e._ownerWritableStream,t)}(this,e)}},{key:"close",value:function(){if(!1===y(this))return Promise.reject(I("close"));var e=this._ownerWritableStream;return void 0===e?Promise.reject(P("close")):!0===p(e)?Promise.reject(new TypeError("cannot close an already-closing stream")):m(this)}},{key:"releaseLock",value:function(){if(!1===y(this))throw I("releaseLock");void 0!==this._ownerWritableStream&&b(this)}},{key:"write",value:function(e){return!1===y(this)?Promise.reject(I("write")):void 0===this._ownerWritableStream?Promise.reject(P("write to")):v(this,e)}},{key:"closed",get:function(){return!1===y(this)?Promise.reject(I("closed")):this._closedPromise}},{key:"desiredSize",get:function(){if(!1===y(this))throw I("desiredSize");if(void 0===this._ownerWritableStream)throw P("desiredSize");return e=this._ownerWritableStream,"errored"===(t=e._state)||"erroring"===t?null:"closed"===t?0:S(e._writableStreamController);var e,t}},{key:"ready",get:function(){return!1===y(this)?Promise.reject(I("ready")):this._readyPromise}}]),e}(),ee=function(){function e(){throw n(this,e),new TypeError("WritableStreamDefaultController cannot be constructed explicitly")}return L(e,[{key:"error",value:function(e){if(!1===function(e){return!!H(e)&&!!Object.prototype.hasOwnProperty.call(e,"_controlledWritableStream")}(this))throw new TypeError("WritableStreamDefaultController.prototype.error can only be used on a WritableStreamDefaultController");"writable"===this._controlledWritableStream._state&&R(this,e)}},{key:J,value:function(e){return this._abortAlgorithm(e)}},{key:W,value:function(){Y(this)}}]),e}()},{"./helpers.js":10,"./queue-with-sizes.js":11,"./utils.js":14,"better-assert":16,debug:18}],16:[function(e,t,r){(function(r){var n=e("assert").AssertionError,i=e("callsite"),a=e("fs");t.exports=r.env.NO_ASSERT?function(){}:function(e){if(!e){var t=i(),r=t[1],o=r.getFileName(),s=r.getLineNumber(),u=(u=a.readFileSync(o,"utf8")).split("\n")[s-1].match(/assert\((.*)\)/)[1];throw new n({message:u,stackStartFunction:t[0].getFunction()})}}}).call(this,e("_process"))},{_process:4,assert:2,callsite:17,fs:3}],17:[function(e,t,r){t.exports=function(){var e=Error.prepareStackTrace;Error.prepareStackTrace=function(e,t){return t};var t=new Error;Error.captureStackTrace(t,arguments.callee);var r=t.stack;return Error.prepareStackTrace=e,r}},{}],18:[function(e,t,r){(function(n){function i(){var e;try{e=r.storage.debug}catch(e){}return!e&&void 0!==n&&"env"in n&&(e=n.env.DEBUG),e}(r=t.exports=e("./debug")).log=function(){return"object"==typeof console&&console.log&&Function.prototype.apply.call(console.log,console,arguments)},r.formatArgs=function(e){var t=this.useColors;if(e[0]=(t?"%c":"")+this.namespace+(t?" %c":" ")+e[0]+(t?"%c ":" ")+"+"+r.humanize(this.diff),t){var n="color: "+this.color;e.splice(1,0,n,"color: inherit");var i=0,a=0;e[0].replace(/%[a-zA-Z%]/g,(function(e){"%%"!==e&&(i++,"%c"===e&&(a=i))})),e.splice(a,0,n)}},r.save=function(e){try{null==e?r.storage.removeItem("debug"):r.storage.debug=e}catch(e){}},r.load=i,r.useColors=function(){return!("undefined"==typeof window||!window.process||"renderer"!==window.process.type)||("undefined"==typeof navigator||!navigator.userAgent||!navigator.userAgent.toLowerCase().match(/(edge|trident)\/(\d+)/))&&("undefined"!=typeof document&&document.documentElement&&document.documentElement.style&&document.documentElement.style.WebkitAppearance||"undefined"!=typeof window&&window.console&&(window.console.firebug||window.console.exception&&window.console.table)||"undefined"!=typeof navigator&&navigator.userAgent&&navigator.userAgent.toLowerCase().match(/firefox\/(\d+)/)&&parseInt(RegExp.$1,10)>=31||"undefined"!=typeof navigator&&navigator.userAgent&&navigator.userAgent.toLowerCase().match(/applewebkit\/(\d+)/))},r.storage="undefined"!=typeof chrome&&void 0!==chrome.storage?chrome.storage.local:function(){try{return window.localStorage}catch(e){}}(),r.colors=["#0000CC","#0000FF","#0033CC","#0033FF","#0066CC","#0066FF","#0099CC","#0099FF","#00CC00","#00CC33","#00CC66","#00CC99","#00CCCC","#00CCFF","#3300CC","#3300FF","#3333CC","#3333FF","#3366CC","#3366FF","#3399CC","#3399FF","#33CC00","#33CC33","#33CC66","#33CC99","#33CCCC","#33CCFF","#6600CC","#6600FF","#6633CC","#6633FF","#66CC00","#66CC33","#9900CC","#9900FF","#9933CC","#9933FF","#99CC00","#99CC33","#CC0000","#CC0033","#CC0066","#CC0099","#CC00CC","#CC00FF","#CC3300","#CC3333","#CC3366","#CC3399","#CC33CC","#CC33FF","#CC6600","#CC6633","#CC9900","#CC9933","#CCCC00","#CCCC33","#FF0000","#FF0033","#FF0066","#FF0099","#FF00CC","#FF00FF","#FF3300","#FF3333","#FF3366","#FF3399","#FF33CC","#FF33FF","#FF6600","#FF6633","#FF9900","#FF9933","#FFCC00","#FFCC33"],r.formatters.j=function(e){try{return JSON.stringify(e)}catch(e){return"[UnexpectedJSONParseError]: "+e.message}},r.enable(i())}).call(this,e("_process"))},{"./debug":19,_process:4}],19:[function(e,t,r){function n(e){function t(){if(t.enabled){var e=t,i=+new Date,a=i-(n||i);e.diff=a,e.prev=n,e.curr=i,n=i;for(var o=new Array(arguments.length),s=0;s100)){var t=/^((?:\d+)?\.?\d+) *(milliseconds?|msecs?|ms|seconds?|secs?|s|minutes?|mins?|m|hours?|hrs?|h|days?|d|years?|yrs?|y)?$/i.exec(e);if(t){var r=parseFloat(t[1]);switch((t[2]||"ms").toLowerCase()){case"years":case"year":case"yrs":case"yr":case"y":return r*h;case"days":case"day":case"d":return r*l;case"hours":case"hour":case"hrs":case"hr":case"h":return r*c;case"minutes":case"minute":case"mins":case"min":case"m":return r*u;case"seconds":case"second":case"secs":case"sec":case"s":return r*s;case"milliseconds":case"millisecond":case"msecs":case"msec":case"ms":return r;default:return}}}}function i(e){return e>=l?Math.round(e/l)+"d":e>=c?Math.round(e/c)+"h":e>=u?Math.round(e/u)+"m":e>=s?Math.round(e/s)+"s":e+"ms"}function a(e){return o(e,l,"day")||o(e,c,"hour")||o(e,u,"minute")||o(e,s,"second")||e+" ms"}function o(e,t,r){if(!(e0)return n(e);if("number"===r&&!1===isNaN(e))return t.long?a(e):i(e);throw new Error("val is not a non-empty string or a valid number. val="+JSON.stringify(e))}},{}]},{},[1])(1)}).call(this,r(11))},function(e,t,r){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),function(e){for(var r in e)t.hasOwnProperty(r)||(t[r]=e[r])}(r(248))},function(e,t,r){"use strict";Object.defineProperty(t,"__esModule",{value:!0});const n=r(0);class i extends n.Actor{constructor(e){super(e)}async run(e){if("handle"in e){const t=e;return{handle:await this.runHandle(t.handle,t.handleMediaType,e.context)}}if("mediaTypes"in e)return{mediaTypes:await this.getMediaTypes(e.context)};if("mediaTypeFormats"in e)return{mediaTypeFormats:await this.getMediaTypeFormats(e.context)};throw new Error("Either a handle, mediaTypes or mediaTypeFormats action needs to be provided")}async test(e){if("handle"in e){const t=e;return{handle:await this.testHandle(t.handle,t.handleMediaType,e.context)}}if("mediaTypes"in e)return{mediaTypes:await this.testMediaType(e.context)};if("mediaTypeFormats"in e)return{mediaTypeFormats:await this.testMediaTypeFormats(e.context)};throw new Error("Either a handle, mediaTypes or mediaTypeFormats action needs to be provided")}}t.ActorAbstractMediaTyped=i},function(e,t,r){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),function(e){for(var r in e)t.hasOwnProperty(r)||(t[r]=e[r])}(r(253))},function(e,t,r){(function(e){!function(t){t.parser=function(e,t){return new a(e,t)},t.SAXParser=a,t.SAXStream=s,t.createStream=function(e,t){return new s(e,t)},t.MAX_BUFFER_LENGTH=65536;var n,i=["comment","sgmlDecl","textNode","tagName","doctype","procInstName","procInstBody","entity","attribName","attribValue","cdata","script"];function a(e,r){if(!(this instanceof a))return new a(e,r);!function(e){for(var t=0,r=i.length;t"===n?(x(this,"onsgmldeclaration",this.sgmlDecl),this.sgmlDecl="",this.state=E.TEXT):y(n)?(this.state=E.SGML_DECL_QUOTED,this.sgmlDecl+=n):this.sgmlDecl+=n;continue;case E.SGML_DECL_QUOTED:n===this.q&&(this.state=E.SGML_DECL,this.q=""),this.sgmlDecl+=n;continue;case E.DOCTYPE:">"===n?(this.state=E.TEXT,x(this,"ondoctype",this.doctype),this.doctype=!0):(this.doctype+=n,"["===n?this.state=E.DOCTYPE_DTD:y(n)&&(this.state=E.DOCTYPE_QUOTED,this.q=n));continue;case E.DOCTYPE_QUOTED:this.doctype+=n,n===this.q&&(this.q="",this.state=E.DOCTYPE);continue;case E.DOCTYPE_DTD:this.doctype+=n,"]"===n?this.state=E.DOCTYPE:y(n)&&(this.state=E.DOCTYPE_DTD_QUOTED,this.q=n);continue;case E.DOCTYPE_DTD_QUOTED:this.doctype+=n,n===this.q&&(this.state=E.DOCTYPE_DTD,this.q="");continue;case E.COMMENT:"-"===n?this.state=E.COMMENT_ENDING:this.comment+=n;continue;case E.COMMENT_ENDING:"-"===n?(this.state=E.COMMENT_ENDED,this.comment=R(this.opt,this.comment),this.comment&&x(this,"oncomment",this.comment),this.comment=""):(this.comment+="-"+n,this.state=E.COMMENT);continue;case E.COMMENT_ENDED:">"!==n?(P(this,"Malformed comment"),this.comment+="--"+n,this.state=E.COMMENT):this.state=E.TEXT;continue;case E.CDATA:"]"===n?this.state=E.CDATA_ENDING:this.cdata+=n;continue;case E.CDATA_ENDING:"]"===n?this.state=E.CDATA_ENDING_2:(this.cdata+="]"+n,this.state=E.CDATA);continue;case E.CDATA_ENDING_2:">"===n?(this.cdata&&x(this,"oncdata",this.cdata),x(this,"onclosecdata"),this.cdata="",this.state=E.TEXT):"]"===n?this.cdata+="]":(this.cdata+="]]"+n,this.state=E.CDATA);continue;case E.PROC_INST:"?"===n?this.state=E.PROC_INST_ENDING:f(n)?this.state=E.PROC_INST_BODY:this.procInstName+=n;continue;case E.PROC_INST_BODY:if(!this.procInstBody&&f(n))continue;"?"===n?this.state=E.PROC_INST_ENDING:this.procInstBody+=n;continue;case E.PROC_INST_ENDING:">"===n?(x(this,"onprocessinginstruction",{name:this.procInstName,body:this.procInstBody}),this.procInstName=this.procInstBody="",this.state=E.TEXT):(this.procInstBody+="?"+n,this.state=E.PROC_INST_BODY);continue;case E.OPEN_TAG:g(h,n)?this.tagName+=n:(N(this),">"===n?D(this):"/"===n?this.state=E.OPEN_TAG_SLASH:(f(n)||P(this,"Invalid character in tag name"),this.state=E.ATTRIB));continue;case E.OPEN_TAG_SLASH:">"===n?(D(this,!0),k(this)):(P(this,"Forward-slash in opening tag not followed by >"),this.state=E.ATTRIB);continue;case E.ATTRIB:if(f(n))continue;">"===n?D(this):"/"===n?this.state=E.OPEN_TAG_SLASH:g(l,n)?(this.attribName=n,this.attribValue="",this.state=E.ATTRIB_NAME):P(this,"Invalid attribute name");continue;case E.ATTRIB_NAME:"="===n?this.state=E.ATTRIB_VALUE:">"===n?(P(this,"Attribute without value"),this.attribValue=this.attribName,j(this),D(this)):f(n)?this.state=E.ATTRIB_NAME_SAW_WHITE:g(h,n)?this.attribName+=n:P(this,"Invalid attribute name");continue;case E.ATTRIB_NAME_SAW_WHITE:if("="===n)this.state=E.ATTRIB_VALUE;else{if(f(n))continue;P(this,"Attribute without value"),this.tag.attributes[this.attribName]="",this.attribValue="",x(this,"onattribute",{name:this.attribName,value:""}),this.attribName="",">"===n?D(this):g(l,n)?(this.attribName=n,this.state=E.ATTRIB_NAME):(P(this,"Invalid attribute name"),this.state=E.ATTRIB)}continue;case E.ATTRIB_VALUE:if(f(n))continue;y(n)?(this.q=n,this.state=E.ATTRIB_VALUE_QUOTED):(P(this,"Unquoted attribute value"),this.state=E.ATTRIB_VALUE_UNQUOTED,this.attribValue=n);continue;case E.ATTRIB_VALUE_QUOTED:if(n!==this.q){"&"===n?this.state=E.ATTRIB_VALUE_ENTITY_Q:this.attribValue+=n;continue}j(this),this.q="",this.state=E.ATTRIB_VALUE_CLOSED;continue;case E.ATTRIB_VALUE_CLOSED:f(n)?this.state=E.ATTRIB:">"===n?D(this):"/"===n?this.state=E.OPEN_TAG_SLASH:g(l,n)?(P(this,"No whitespace between attributes"),this.attribName=n,this.attribValue="",this.state=E.ATTRIB_NAME):P(this,"Invalid attribute name");continue;case E.ATTRIB_VALUE_UNQUOTED:if(!m(n)){"&"===n?this.state=E.ATTRIB_VALUE_ENTITY_U:this.attribValue+=n;continue}j(this),">"===n?D(this):this.state=E.ATTRIB;continue;case E.CLOSE_TAG:if(this.tagName)">"===n?k(this):g(h,n)?this.tagName+=n:this.script?(this.script+=""===n?k(this):P(this,"Invalid characters in closing tag");continue;case E.TEXT_ENTITY:case E.ATTRIB_VALUE_ENTITY_Q:case E.ATTRIB_VALUE_ENTITY_U:var s,u;switch(this.state){case E.TEXT_ENTITY:s=E.TEXT,u="textNode";break;case E.ATTRIB_VALUE_ENTITY_Q:s=E.ATTRIB_VALUE_QUOTED,u="attribValue";break;case E.ATTRIB_VALUE_ENTITY_U:s=E.ATTRIB_VALUE_UNQUOTED,u="attribValue"}";"===n?(this[u]+=L(this),this.entity="",this.state=s):g(this.entity.length?d:p,n)?this.entity+=n:(P(this,"Invalid character in entity name"),this[u]+="&"+this.entity+n,this.entity="",this.state=s);continue;default:throw new Error(this,"Unknown state: "+this.state)}this.position>=this.bufferCheckPosition&&function(e){for(var r=Math.max(t.MAX_BUFFER_LENGTH,10),n=0,a=0,o=i.length;ar)switch(i[a]){case"textNode":O(e);break;case"cdata":x(e,"oncdata",e.cdata),e.cdata="";break;case"script":x(e,"onscript",e.script),e.script="";break;default:A(e,"Max buffer length exceeded: "+i[a])}n=Math.max(n,s)}var u=t.MAX_BUFFER_LENGTH-n;e.bufferCheckPosition=u+e.position}(this);return this} -/*! http://mths.be/fromcodepoint v0.1.0 by @mathias */,resume:function(){return this.error=null,this},close:function(){return this.write(null)},flush:function(){var e;O(e=this),""!==e.cdata&&(x(e,"oncdata",e.cdata),e.cdata=""),""!==e.script&&(x(e,"onscript",e.script),e.script="")}};try{n=r(2).Stream}catch(e){n=function(){}}var o=t.EVENTS.filter((function(e){return"error"!==e&&"end"!==e}));function s(e,t){if(!(this instanceof s))return new s(e,t);n.apply(this),this._parser=new a(e,t),this.writable=!0,this.readable=!0;var r=this;this._parser.onend=function(){r.emit("end")},this._parser.onerror=function(e){r.emit("error",e),r._parser.error=null},this._decoder=null,o.forEach((function(e){Object.defineProperty(r,"on"+e,{get:function(){return r._parser["on"+e]},set:function(t){if(!t)return r.removeAllListeners(e),r._parser["on"+e]=t,t;r.on(e,t)},enumerable:!0,configurable:!1})}))}s.prototype=Object.create(n.prototype,{constructor:{value:s}}),s.prototype.write=function(t){if("function"==typeof e&&"function"==typeof e.isBuffer&&e.isBuffer(t)){if(!this._decoder){var n=r(50).StringDecoder;this._decoder=new n("utf8")}t=this._decoder.write(t)}return this._parser.write(t.toString()),this.emit("data",t),!0},s.prototype.end=function(e){return e&&e.length&&this.write(e),this._parser.end(),!0},s.prototype.on=function(e,t){var r=this;return r._parser["on"+e]||-1===o.indexOf(e)||(r._parser["on"+e]=function(){var t=1===arguments.length?[arguments[0]]:Array.apply(null,arguments);t.splice(0,0,e),r.emit.apply(r,t)}),n.prototype.on.call(r,e,t)};var u="http://www.w3.org/XML/1998/namespace",c={xml:u,xmlns:"http://www.w3.org/2000/xmlns/"},l=/[:_A-Za-z\u00C0-\u00D6\u00D8-\u00F6\u00F8-\u02FF\u0370-\u037D\u037F-\u1FFF\u200C-\u200D\u2070-\u218F\u2C00-\u2FEF\u3001-\uD7FF\uF900-\uFDCF\uFDF0-\uFFFD]/,h=/[:_A-Za-z\u00C0-\u00D6\u00D8-\u00F6\u00F8-\u02FF\u0370-\u037D\u037F-\u1FFF\u200C-\u200D\u2070-\u218F\u2C00-\u2FEF\u3001-\uD7FF\uF900-\uFDCF\uFDF0-\uFFFD\u00B7\u0300-\u036F\u203F-\u2040.\d-]/,p=/[#:_A-Za-z\u00C0-\u00D6\u00D8-\u00F6\u00F8-\u02FF\u0370-\u037D\u037F-\u1FFF\u200C-\u200D\u2070-\u218F\u2C00-\u2FEF\u3001-\uD7FF\uF900-\uFDCF\uFDF0-\uFFFD]/,d=/[#:_A-Za-z\u00C0-\u00D6\u00D8-\u00F6\u00F8-\u02FF\u0370-\u037D\u037F-\u1FFF\u200C-\u200D\u2070-\u218F\u2C00-\u2FEF\u3001-\uD7FF\uF900-\uFDCF\uFDF0-\uFFFD\u00B7\u0300-\u036F\u203F-\u2040.\d-]/;function f(e){return" "===e||"\n"===e||"\r"===e||"\t"===e}function y(e){return'"'===e||"'"===e}function m(e){return">"===e||f(e)}function g(e,t){return e.test(t)}function _(e,t){return!g(e,t)}var b,v,w,E=0;for(var S in t.STATE={BEGIN:E++,BEGIN_WHITESPACE:E++,TEXT:E++,TEXT_ENTITY:E++,OPEN_WAKA:E++,SGML_DECL:E++,SGML_DECL_QUOTED:E++,DOCTYPE:E++,DOCTYPE_QUOTED:E++,DOCTYPE_DTD:E++,DOCTYPE_DTD_QUOTED:E++,COMMENT_STARTING:E++,COMMENT:E++,COMMENT_ENDING:E++,COMMENT_ENDED:E++,CDATA:E++,CDATA_ENDING:E++,CDATA_ENDING_2:E++,PROC_INST:E++,PROC_INST_BODY:E++,PROC_INST_ENDING:E++,OPEN_TAG:E++,OPEN_TAG_SLASH:E++,ATTRIB:E++,ATTRIB_NAME:E++,ATTRIB_NAME_SAW_WHITE:E++,ATTRIB_VALUE:E++,ATTRIB_VALUE_QUOTED:E++,ATTRIB_VALUE_CLOSED:E++,ATTRIB_VALUE_UNQUOTED:E++,ATTRIB_VALUE_ENTITY_Q:E++,ATTRIB_VALUE_ENTITY_U:E++,CLOSE_TAG:E++,CLOSE_TAG_SAW_WHITE:E++,SCRIPT:E++,SCRIPT_ENDING:E++},t.XML_ENTITIES={amp:"&",gt:">",lt:"<",quot:'"',apos:"'"},t.ENTITIES={amp:"&",gt:">",lt:"<",quot:'"',apos:"'",AElig:198,Aacute:193,Acirc:194,Agrave:192,Aring:197,Atilde:195,Auml:196,Ccedil:199,ETH:208,Eacute:201,Ecirc:202,Egrave:200,Euml:203,Iacute:205,Icirc:206,Igrave:204,Iuml:207,Ntilde:209,Oacute:211,Ocirc:212,Ograve:210,Oslash:216,Otilde:213,Ouml:214,THORN:222,Uacute:218,Ucirc:219,Ugrave:217,Uuml:220,Yacute:221,aacute:225,acirc:226,aelig:230,agrave:224,aring:229,atilde:227,auml:228,ccedil:231,eacute:233,ecirc:234,egrave:232,eth:240,euml:235,iacute:237,icirc:238,igrave:236,iuml:239,ntilde:241,oacute:243,ocirc:244,ograve:242,oslash:248,otilde:245,ouml:246,szlig:223,thorn:254,uacute:250,ucirc:251,ugrave:249,uuml:252,yacute:253,yuml:255,copy:169,reg:174,nbsp:160,iexcl:161,cent:162,pound:163,curren:164,yen:165,brvbar:166,sect:167,uml:168,ordf:170,laquo:171,not:172,shy:173,macr:175,deg:176,plusmn:177,sup1:185,sup2:178,sup3:179,acute:180,micro:181,para:182,middot:183,cedil:184,ordm:186,raquo:187,frac14:188,frac12:189,frac34:190,iquest:191,times:215,divide:247,OElig:338,oelig:339,Scaron:352,scaron:353,Yuml:376,fnof:402,circ:710,tilde:732,Alpha:913,Beta:914,Gamma:915,Delta:916,Epsilon:917,Zeta:918,Eta:919,Theta:920,Iota:921,Kappa:922,Lambda:923,Mu:924,Nu:925,Xi:926,Omicron:927,Pi:928,Rho:929,Sigma:931,Tau:932,Upsilon:933,Phi:934,Chi:935,Psi:936,Omega:937,alpha:945,beta:946,gamma:947,delta:948,epsilon:949,zeta:950,eta:951,theta:952,iota:953,kappa:954,lambda:955,mu:956,nu:957,xi:958,omicron:959,pi:960,rho:961,sigmaf:962,sigma:963,tau:964,upsilon:965,phi:966,chi:967,psi:968,omega:969,thetasym:977,upsih:978,piv:982,ensp:8194,emsp:8195,thinsp:8201,zwnj:8204,zwj:8205,lrm:8206,rlm:8207,ndash:8211,mdash:8212,lsquo:8216,rsquo:8217,sbquo:8218,ldquo:8220,rdquo:8221,bdquo:8222,dagger:8224,Dagger:8225,bull:8226,hellip:8230,permil:8240,prime:8242,Prime:8243,lsaquo:8249,rsaquo:8250,oline:8254,frasl:8260,euro:8364,image:8465,weierp:8472,real:8476,trade:8482,alefsym:8501,larr:8592,uarr:8593,rarr:8594,darr:8595,harr:8596,crarr:8629,lArr:8656,uArr:8657,rArr:8658,dArr:8659,hArr:8660,forall:8704,part:8706,exist:8707,empty:8709,nabla:8711,isin:8712,notin:8713,ni:8715,prod:8719,sum:8721,minus:8722,lowast:8727,radic:8730,prop:8733,infin:8734,ang:8736,and:8743,or:8744,cap:8745,cup:8746,int:8747,there4:8756,sim:8764,cong:8773,asymp:8776,ne:8800,equiv:8801,le:8804,ge:8805,sub:8834,sup:8835,nsub:8836,sube:8838,supe:8839,oplus:8853,otimes:8855,perp:8869,sdot:8901,lceil:8968,rceil:8969,lfloor:8970,rfloor:8971,lang:9001,rang:9002,loz:9674,spades:9824,clubs:9827,hearts:9829,diams:9830},Object.keys(t.ENTITIES).forEach((function(e){var r=t.ENTITIES[e],n="number"==typeof r?String.fromCharCode(r):r;t.ENTITIES[e]=n})),t.STATE)t.STATE[t.STATE[S]]=S;function T(e,t,r){e[t]&&e[t](r)}function x(e,t,r){e.textNode&&O(e),T(e,t,r)}function O(e){e.textNode=R(e.opt,e.textNode),e.textNode&&T(e,"ontext",e.textNode),e.textNode=""}function R(e,t){return e.trim&&(t=t.trim()),e.normalize&&(t=t.replace(/\s+/g," ")),t}function A(e,t){return O(e),e.trackPosition&&(t+="\nLine: "+e.line+"\nColumn: "+e.column+"\nChar: "+e.c),t=new Error(t),e.error=t,T(e,"onerror",t),e}function I(e){return e.sawRoot&&!e.closedRoot&&P(e,"Unclosed root tag"),e.state!==E.BEGIN&&e.state!==E.BEGIN_WHITESPACE&&e.state!==E.TEXT&&A(e,"Unexpected end"),O(e),e.c="",e.closed=!0,T(e,"onend"),a.call(e,e.strict,e.opt),e}function P(e,t){if("object"!=typeof e||!(e instanceof a))throw new Error("bad call to strictFail");e.strict&&A(e,t)}function N(e){e.strict||(e.tagName=e.tagName[e.looseCase]());var t=e.tags[e.tags.length-1]||e,r=e.tag={name:e.tagName,attributes:{}};e.opt.xmlns&&(r.ns=t.ns),e.attribList.length=0,x(e,"onopentagstart",r)}function C(e,t){var r=e.indexOf(":")<0?["",e]:e.split(":"),n=r[0],i=r[1];return t&&"xmlns"===e&&(n="xmlns",i=""),{prefix:n,local:i}}function j(e){if(e.strict||(e.attribName=e.attribName[e.looseCase]()),-1!==e.attribList.indexOf(e.attribName)||e.tag.attributes.hasOwnProperty(e.attribName))e.attribName=e.attribValue="";else{if(e.opt.xmlns){var t=C(e.attribName,!0),r=t.prefix,n=t.local;if("xmlns"===r)if("xml"===n&&e.attribValue!==u)P(e,"xml: prefix must be bound to "+u+"\nActual: "+e.attribValue);else if("xmlns"===n&&"http://www.w3.org/2000/xmlns/"!==e.attribValue)P(e,"xmlns: prefix must be bound to http://www.w3.org/2000/xmlns/\nActual: "+e.attribValue);else{var i=e.tag,a=e.tags[e.tags.length-1]||e;i.ns===a.ns&&(i.ns=Object.create(a.ns)),i.ns[n]=e.attribValue}e.attribList.push([e.attribName,e.attribValue])}else e.tag.attributes[e.attribName]=e.attribValue,x(e,"onattribute",{name:e.attribName,value:e.attribValue});e.attribName=e.attribValue=""}}function D(e,t){if(e.opt.xmlns){var r=e.tag,n=C(e.tagName);r.prefix=n.prefix,r.local=n.local,r.uri=r.ns[n.prefix]||"",r.prefix&&!r.uri&&(P(e,"Unbound namespace prefix: "+JSON.stringify(e.tagName)),r.uri=n.prefix);var i=e.tags[e.tags.length-1]||e;r.ns&&i.ns!==r.ns&&Object.keys(r.ns).forEach((function(t){x(e,"onopennamespace",{prefix:t,uri:r.ns[t]})}));for(var a=0,o=e.attribList.length;a",e.tagName="",void(e.state=E.SCRIPT);x(e,"onscript",e.script),e.script=""}var t=e.tags.length,r=e.tagName;e.strict||(r=r[e.looseCase]());for(var n=r;t--;){if(e.tags[t].name===n)break;P(e,"Unexpected close tag")}if(t<0)return P(e,"Unmatched closing tag: "+e.tagName),e.textNode+="",void(e.state=E.TEXT);e.tagName=r;for(var i=e.tags.length;i-- >t;){var a=e.tag=e.tags.pop();e.tagName=e.tag.name,x(e,"onclosetag",e.tagName);var o={};for(var s in a.ns)o[s]=a.ns[s];var u=e.tags[e.tags.length-1]||e;e.opt.xmlns&&a.ns!==u.ns&&Object.keys(a.ns).forEach((function(t){var r=a.ns[t];x(e,"onclosenamespace",{prefix:t,uri:r})}))}0===t&&(e.closedRoot=!0),e.tagName=e.attribValue=e.attribName="",e.attribList.length=0,e.state=E.TEXT}function L(e){var t,r=e.entity,n=r.toLowerCase(),i="";return e.ENTITIES[r]?e.ENTITIES[r]:e.ENTITIES[n]?e.ENTITIES[n]:("#"===(r=n).charAt(0)&&("x"===r.charAt(1)?(r=r.slice(2),i=(t=parseInt(r,16)).toString(16)):(r=r.slice(1),i=(t=parseInt(r,10)).toString(10))),r=r.replace(/^0+/,""),isNaN(t)||i.toLowerCase()!==r?(P(e,"Invalid character entity"),"&"+e.entity+";"):String.fromCodePoint(t))}function M(e,t){"<"===t?(e.state=E.OPEN_WAKA,e.startTagPosition=e.position):f(t)||(P(e,"Non-whitespace before first tag."),e.textNode=t,e.state=E.TEXT)}function F(e,t){var r="";return t1114111||v(s)!==s)throw RangeError("Invalid code point: "+s);s<=65535?n.push(s):(e=55296+((s-=65536)>>10),t=s%1024+56320,n.push(e,t)),(i+1===a||n.length>r)&&(o+=b.apply(null,n),n.length=0)}return o},Object.defineProperty?Object.defineProperty(String,"fromCodePoint",{value:w,configurable:!0,writable:!0}):String.fromCodePoint=w)}(t)}).call(this,r(15).Buffer)},function(e,t,r){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),function(e){for(var r in e)t.hasOwnProperty(r)||(t[r]=e[r])}(r(257))},function(e,t,r){"use strict";function n(e){for(var r in e)t.hasOwnProperty(r)||(t[r]=e[r])}Object.defineProperty(t,"__esModule",{value:!0}),n(r(258)),n(r(67)),n(r(116))},function(e,t,r){"use strict";function n(e){for(var r in e)t.hasOwnProperty(r)||(t[r]=e[r])}var i=this&&this.__importStar||function(e){if(e&&e.__esModule)return e;var t={};if(null!=e)for(var r in e)Object.hasOwnProperty.call(e,r)&&(t[r]=e[r]);return t.default=e,t};Object.defineProperty(t,"__esModule",{value:!0});var a=r(106);t.Parser=a.Parser;var o=r(110);t.DomHandler=o.DomHandler,t.DefaultHandler=o.DomHandler,t.parseDOM=function(e,t){var r=new o.DomHandler(void 0,t);return new a.Parser(r,t).end(e),r.dom},t.createDomStream=function(e,t,r){var n=new o.DomHandler(e,t,r);return new a.Parser(n,t)};var s=r(107);t.Tokenizer=s.default;var u=i(r(66));t.ElementType=u,t.EVENTS={attribute:2,cdatastart:0,cdataend:0,text:1,processinginstruction:2,comment:1,commentend:0,closetag:1,opentag:2,opentagname:1,error:1,end:0},n(r(111)),n(r(269)),n(r(270));var c=i(r(112));t.DomUtils=c;var l=r(111);t.RssHandler=l.FeedHandler},function(e,t,r){"use strict";var n,i=this&&this.__extends||(n=function(e,t){return(n=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(e,t){e.__proto__=t}||function(e,t){for(var r in t)t.hasOwnProperty(r)&&(e[r]=t[r])})(e,t)},function(e,t){function r(){this.constructor=e}n(e,t),e.prototype=null===t?Object.create(t):(r.prototype=t.prototype,new r)}),a=this&&this.__importDefault||function(e){return e&&e.__esModule?e:{default:e}};Object.defineProperty(t,"__esModule",{value:!0});var o=a(r(107)),s=r(45),u=new Set(["input","option","optgroup","select","button","datalist","textarea"]),c=new Set(["p"]),l={tr:new Set(["tr","th","td"]),th:new Set(["th"]),td:new Set(["thead","th","td"]),body:new Set(["head","link","script"]),li:new Set(["li"]),p:c,h1:c,h2:c,h3:c,h4:c,h5:c,h6:c,select:u,input:u,output:u,button:u,datalist:u,textarea:u,option:new Set(["option"]),optgroup:new Set(["optgroup","option"]),dd:new Set(["dt","dd"]),dt:new Set(["dt","dd"]),address:c,article:c,aside:c,blockquote:c,details:c,div:c,dl:c,fieldset:c,figcaption:c,figure:c,footer:c,form:c,header:c,hr:c,main:c,nav:c,ol:c,pre:c,section:c,table:c,ul:c,rt:new Set(["rt","rp"]),rp:new Set(["rt","rp"]),tbody:new Set(["thead","tbody"]),tfoot:new Set(["thead","tbody"])},h=new Set(["area","base","basefont","br","col","command","embed","frame","hr","img","input","isindex","keygen","link","meta","param","source","track","wbr"]),p=new Set(["math","svg"]),d=new Set(["mi","mo","mn","ms","mtext","annotation-xml","foreignObject","desc","title"]),f=/\s|\//,y=function(e){function t(r,n){var i=e.call(this)||this;return i._tagname="",i._attribname="",i._attribvalue="",i._attribs=null,i._stack=[],i._foreignContext=[],i.startIndex=0,i.endIndex=null,i.parseChunk=t.prototype.write,i.done=t.prototype.end,i._options=n||{},i._cbs=r||{},i._tagname="",i._attribname="",i._attribvalue="",i._attribs=null,i._stack=[],i._foreignContext=[],i.startIndex=0,i.endIndex=null,i._lowerCaseTagNames="lowerCaseTags"in i._options?!!i._options.lowerCaseTags:!i._options.xmlMode,i._lowerCaseAttributeNames="lowerCaseAttributeNames"in i._options?!!i._options.lowerCaseAttributeNames:!i._options.xmlMode,i._tokenizer=new(i._options.Tokenizer||o.default)(i._options,i),i._cbs.onparserinit&&i._cbs.onparserinit(i),i}return i(t,e),t.prototype._updatePosition=function(e){null===this.endIndex?this._tokenizer._sectionStart<=e?this.startIndex=0:this.startIndex=this._tokenizer._sectionStart-e:this.startIndex=this.endIndex+1,this.endIndex=this._tokenizer.getAbsoluteIndex()},t.prototype.ontext=function(e){this._updatePosition(1),this.endIndex--,this._cbs.ontext&&this._cbs.ontext(e)},t.prototype.onopentagname=function(e){if(this._lowerCaseTagNames&&(e=e.toLowerCase()),this._tagname=e,!this._options.xmlMode&&Object.prototype.hasOwnProperty.call(l,e))for(var t=void 0;l[e].has(t=this._stack[this._stack.length-1]);this.onclosetag(t));!this._options.xmlMode&&h.has(e)||(this._stack.push(e),p.has(e)?this._foreignContext.push(!0):d.has(e)&&this._foreignContext.push(!1)),this._cbs.onopentagname&&this._cbs.onopentagname(e),this._cbs.onopentag&&(this._attribs={})},t.prototype.onopentagend=function(){this._updatePosition(1),this._attribs&&(this._cbs.onopentag&&this._cbs.onopentag(this._tagname,this._attribs),this._attribs=null),!this._options.xmlMode&&this._cbs.onclosetag&&h.has(this._tagname)&&this._cbs.onclosetag(this._tagname),this._tagname=""},t.prototype.onclosetag=function(e){if(this._updatePosition(1),this._lowerCaseTagNames&&(e=e.toLowerCase()),(p.has(e)||d.has(e))&&this._foreignContext.pop(),!this._stack.length||!this._options.xmlMode&&h.has(e))this._options.xmlMode||"br"!==e&&"p"!==e||(this.onopentagname(e),this._closeCurrentTag());else{var t=this._stack.lastIndexOf(e);if(-1!==t)if(this._cbs.onclosetag)for(t=this._stack.length-t;t--;)this._cbs.onclosetag(this._stack.pop());else this._stack.length=t;else"p"!==e||this._options.xmlMode||(this.onopentagname(e),this._closeCurrentTag())}},t.prototype.onselfclosingtag=function(){this._options.xmlMode||this._options.recognizeSelfClosing||this._foreignContext[this._foreignContext.length-1]?this._closeCurrentTag():this.onopentagend()},t.prototype._closeCurrentTag=function(){var e=this._tagname;this.onopentagend(),this._stack[this._stack.length-1]===e&&(this._cbs.onclosetag&&this._cbs.onclosetag(e),this._stack.pop())},t.prototype.onattribname=function(e){this._lowerCaseAttributeNames&&(e=e.toLowerCase()),this._attribname=e},t.prototype.onattribdata=function(e){this._attribvalue+=e},t.prototype.onattribend=function(){this._cbs.onattribute&&this._cbs.onattribute(this._attribname,this._attribvalue),this._attribs&&!Object.prototype.hasOwnProperty.call(this._attribs,this._attribname)&&(this._attribs[this._attribname]=this._attribvalue),this._attribname="",this._attribvalue=""},t.prototype._getInstructionName=function(e){var t=e.search(f),r=t<0?e:e.substr(0,t);return this._lowerCaseTagNames&&(r=r.toLowerCase()),r},t.prototype.ondeclaration=function(e){if(this._cbs.onprocessinginstruction){var t=this._getInstructionName(e);this._cbs.onprocessinginstruction("!"+t,"!"+e)}},t.prototype.onprocessinginstruction=function(e){if(this._cbs.onprocessinginstruction){var t=this._getInstructionName(e);this._cbs.onprocessinginstruction("?"+t,"?"+e)}},t.prototype.oncomment=function(e){this._updatePosition(4),this._cbs.oncomment&&this._cbs.oncomment(e),this._cbs.oncommentend&&this._cbs.oncommentend()},t.prototype.oncdata=function(e){this._updatePosition(1),this._options.xmlMode||this._options.recognizeCDATA?(this._cbs.oncdatastart&&this._cbs.oncdatastart(),this._cbs.ontext&&this._cbs.ontext(e),this._cbs.oncdataend&&this._cbs.oncdataend()):this.oncomment("[CDATA["+e+"]]")},t.prototype.onerror=function(e){this._cbs.onerror&&this._cbs.onerror(e)},t.prototype.onend=function(){if(this._cbs.onclosetag)for(var e=this._stack.length;e>0;this._cbs.onclosetag(this._stack[--e]));this._cbs.onend&&this._cbs.onend()},t.prototype.reset=function(){this._cbs.onreset&&this._cbs.onreset(),this._tokenizer.reset(),this._tagname="",this._attribname="",this._attribs=null,this._stack=[],this._cbs.onparserinit&&this._cbs.onparserinit(this)},t.prototype.parseComplete=function(e){this.reset(),this.end(e)},t.prototype.write=function(e){this._tokenizer.write(e)},t.prototype.end=function(e){this._tokenizer.end(e)},t.prototype.pause=function(){this._tokenizer.pause()},t.prototype.resume=function(){this._tokenizer.resume()},t}(s.EventEmitter);t.Parser=y},function(e,t,r){"use strict";var n=this&&this.__importDefault||function(e){return e&&e.__esModule?e:{default:e}};Object.defineProperty(t,"__esModule",{value:!0});var i=n(r(108)),a=n(r(64)),o=n(r(109)),s=n(r(65));function u(e){return" "===e||"\n"===e||"\t"===e||"\f"===e||"\r"===e}function c(e,t,r){var n=e.toLowerCase();return e===n?function(e,i){i===n?e._state=t:(e._state=r,e._index--)}:function(i,a){a===n||a===e?i._state=t:(i._state=r,i._index--)}}function l(e,t){var r=e.toLowerCase();return function(n,i){i===r||i===e?n._state=t:(n._state=3,n._index--)}}var h=c("C",23,16),p=c("D",24,16),d=c("A",25,16),f=c("T",26,16),y=c("A",27,16),m=l("R",34),g=l("I",35),_=l("P",36),b=l("T",37),v=c("R",39,1),w=c("I",40,1),E=c("P",41,1),S=c("T",42,1),T=l("Y",44),x=l("L",45),O=l("E",46),R=c("Y",48,1),A=c("L",49,1),I=c("E",50,1),P=c("#",52,53),N=c("X",55,54),C=function(){function e(e,t){this._state=1,this._buffer="",this._sectionStart=0,this._index=0,this._bufferOffset=0,this._baseState=1,this._special=1,this._running=!0,this._ended=!1,this._cbs=t,this._xmlMode=!(!e||!e.xmlMode),this._decodeEntities=!(!e||!e.decodeEntities)}return e.prototype.reset=function(){this._state=1,this._buffer="",this._sectionStart=0,this._index=0,this._bufferOffset=0,this._baseState=1,this._special=1,this._running=!0,this._ended=!1},e.prototype._stateText=function(e){"<"===e?(this._index>this._sectionStart&&this._cbs.ontext(this._getSection()),this._state=2,this._sectionStart=this._index):this._decodeEntities&&1===this._special&&"&"===e&&(this._index>this._sectionStart&&this._cbs.ontext(this._getSection()),this._baseState=1,this._state=51,this._sectionStart=this._index)},e.prototype._stateBeforeTagName=function(e){"/"===e?this._state=5:"<"===e?(this._cbs.ontext(this._getSection()),this._sectionStart=this._index):">"===e||1!==this._special||u(e)?this._state=1:"!"===e?(this._state=15,this._sectionStart=this._index+1):"?"===e?(this._state=17,this._sectionStart=this._index+1):(this._state=this._xmlMode||"s"!==e&&"S"!==e?3:31,this._sectionStart=this._index)},e.prototype._stateInTagName=function(e){("/"===e||">"===e||u(e))&&(this._emitToken("onopentagname"),this._state=8,this._index--)},e.prototype._stateBeforeClosingTagName=function(e){u(e)||(">"===e?this._state=1:1!==this._special?"s"===e||"S"===e?this._state=32:(this._state=1,this._index--):(this._state=6,this._sectionStart=this._index))},e.prototype._stateInClosingTagName=function(e){(">"===e||u(e))&&(this._emitToken("onclosetag"),this._state=7,this._index--)},e.prototype._stateAfterClosingTagName=function(e){">"===e&&(this._state=1,this._sectionStart=this._index+1)},e.prototype._stateBeforeAttributeName=function(e){">"===e?(this._cbs.onopentagend(),this._state=1,this._sectionStart=this._index+1):"/"===e?this._state=4:u(e)||(this._state=9,this._sectionStart=this._index)},e.prototype._stateInSelfClosingTag=function(e){">"===e?(this._cbs.onselfclosingtag(),this._state=1,this._sectionStart=this._index+1):u(e)||(this._state=8,this._index--)},e.prototype._stateInAttributeName=function(e){("="===e||"/"===e||">"===e||u(e))&&(this._cbs.onattribname(this._getSection()),this._sectionStart=-1,this._state=10,this._index--)},e.prototype._stateAfterAttributeName=function(e){"="===e?this._state=11:"/"===e||">"===e?(this._cbs.onattribend(),this._state=8,this._index--):u(e)||(this._cbs.onattribend(),this._state=9,this._sectionStart=this._index)},e.prototype._stateBeforeAttributeValue=function(e){'"'===e?(this._state=12,this._sectionStart=this._index+1):"'"===e?(this._state=13,this._sectionStart=this._index+1):u(e)||(this._state=14,this._sectionStart=this._index,this._index--)},e.prototype._stateInAttributeValueDoubleQuotes=function(e){'"'===e?(this._emitToken("onattribdata"),this._cbs.onattribend(),this._state=8):this._decodeEntities&&"&"===e&&(this._emitToken("onattribdata"),this._baseState=this._state,this._state=51,this._sectionStart=this._index)},e.prototype._stateInAttributeValueSingleQuotes=function(e){"'"===e?(this._emitToken("onattribdata"),this._cbs.onattribend(),this._state=8):this._decodeEntities&&"&"===e&&(this._emitToken("onattribdata"),this._baseState=this._state,this._state=51,this._sectionStart=this._index)},e.prototype._stateInAttributeValueNoQuotes=function(e){u(e)||">"===e?(this._emitToken("onattribdata"),this._cbs.onattribend(),this._state=8,this._index--):this._decodeEntities&&"&"===e&&(this._emitToken("onattribdata"),this._baseState=this._state,this._state=51,this._sectionStart=this._index)},e.prototype._stateBeforeDeclaration=function(e){this._state="["===e?22:"-"===e?18:16},e.prototype._stateInDeclaration=function(e){">"===e&&(this._cbs.ondeclaration(this._getSection()),this._state=1,this._sectionStart=this._index+1)},e.prototype._stateInProcessingInstruction=function(e){">"===e&&(this._cbs.onprocessinginstruction(this._getSection()),this._state=1,this._sectionStart=this._index+1)},e.prototype._stateBeforeComment=function(e){"-"===e?(this._state=19,this._sectionStart=this._index+1):this._state=16},e.prototype._stateInComment=function(e){"-"===e&&(this._state=20)},e.prototype._stateAfterComment1=function(e){this._state="-"===e?21:19},e.prototype._stateAfterComment2=function(e){">"===e?(this._cbs.oncomment(this._buffer.substring(this._sectionStart,this._index-2)),this._state=1,this._sectionStart=this._index+1):"-"!==e&&(this._state=19)},e.prototype._stateBeforeCdata6=function(e){"["===e?(this._state=28,this._sectionStart=this._index+1):(this._state=16,this._index--)},e.prototype._stateInCdata=function(e){"]"===e&&(this._state=29)},e.prototype._stateAfterCdata1=function(e){this._state="]"===e?30:28},e.prototype._stateAfterCdata2=function(e){">"===e?(this._cbs.oncdata(this._buffer.substring(this._sectionStart,this._index-2)),this._state=1,this._sectionStart=this._index+1):"]"!==e&&(this._state=28)},e.prototype._stateBeforeSpecial=function(e){"c"===e||"C"===e?this._state=33:"t"===e||"T"===e?this._state=43:(this._state=3,this._index--)},e.prototype._stateBeforeSpecialEnd=function(e){2!==this._special||"c"!==e&&"C"!==e?3!==this._special||"t"!==e&&"T"!==e?this._state=1:this._state=47:this._state=38},e.prototype._stateBeforeScript5=function(e){("/"===e||">"===e||u(e))&&(this._special=2),this._state=3,this._index--},e.prototype._stateAfterScript5=function(e){">"===e||u(e)?(this._special=1,this._state=6,this._sectionStart=this._index-6,this._index--):this._state=1},e.prototype._stateBeforeStyle4=function(e){("/"===e||">"===e||u(e))&&(this._special=3),this._state=3,this._index--},e.prototype._stateAfterStyle4=function(e){">"===e||u(e)?(this._special=1,this._state=6,this._sectionStart=this._index-5,this._index--):this._state=1},e.prototype._parseNamedEntityStrict=function(){if(this._sectionStart+16&&(t=6);t>=2;){var r=this._buffer.substr(e,t);if(Object.prototype.hasOwnProperty.call(o.default,r))return this._emitPartial(o.default[r]),void(this._sectionStart+=t+1);t--}},e.prototype._stateInNamedEntity=function(e){";"===e?(this._parseNamedEntityStrict(),this._sectionStart+1"z")&&(e<"A"||e>"Z")&&(e<"0"||e>"9")&&(this._xmlMode||this._sectionStart+1===this._index||(1!==this._baseState?"="!==e&&this._parseNamedEntityStrict():this._parseLegacyEntity()),this._state=this._baseState,this._index--)},e.prototype._decodeNumericEntity=function(e,t){var r=this._sectionStart+e;if(r!==this._index){var n=this._buffer.substring(r,this._index),a=parseInt(n,t);this._emitPartial(i.default(a)),this._sectionStart=this._index}else this._sectionStart--;this._state=this._baseState},e.prototype._stateInNumericEntity=function(e){";"===e?(this._decodeNumericEntity(2,10),this._sectionStart++):(e<"0"||e>"9")&&(this._xmlMode?this._state=this._baseState:this._decodeNumericEntity(2,10),this._index--)},e.prototype._stateInHexEntity=function(e){";"===e?(this._decodeNumericEntity(3,16),this._sectionStart++):(e<"a"||e>"f")&&(e<"A"||e>"F")&&(e<"0"||e>"9")&&(this._xmlMode?this._state=this._baseState:this._decodeNumericEntity(3,16),this._index--)},e.prototype._cleanup=function(){this._sectionStart<0?(this._buffer="",this._bufferOffset+=this._index,this._index=0):this._running&&(1===this._state?(this._sectionStart!==this._index&&this._cbs.ontext(this._buffer.substr(this._sectionStart)),this._buffer="",this._bufferOffset+=this._index,this._index=0):this._sectionStart===this._index?(this._buffer="",this._bufferOffset+=this._index,this._index=0):(this._buffer=this._buffer.substr(this._sectionStart),this._index-=this._sectionStart,this._bufferOffset+=this._sectionStart),this._sectionStart=0)},e.prototype.write=function(e){this._ended&&this._cbs.onerror(Error(".write() after done!")),this._buffer+=e,this._parse()},e.prototype._parse=function(){for(;this._index=55296&&e<=57343||e>1114111)return"�";e in i.default&&(e=i.default[e]);var t="";return e>65535&&(e-=65536,t+=String.fromCharCode(e>>>10&1023|55296),e=56320|1023&e),t+=String.fromCharCode(e)}},function(e){e.exports=JSON.parse('{"Aacute":"Á","aacute":"á","Acirc":"Â","acirc":"â","acute":"´","AElig":"Æ","aelig":"æ","Agrave":"À","agrave":"à","amp":"&","AMP":"&","Aring":"Å","aring":"å","Atilde":"Ã","atilde":"ã","Auml":"Ä","auml":"ä","brvbar":"¦","Ccedil":"Ç","ccedil":"ç","cedil":"¸","cent":"¢","copy":"©","COPY":"©","curren":"¤","deg":"°","divide":"÷","Eacute":"É","eacute":"é","Ecirc":"Ê","ecirc":"ê","Egrave":"È","egrave":"è","ETH":"Ð","eth":"ð","Euml":"Ë","euml":"ë","frac12":"½","frac14":"¼","frac34":"¾","gt":">","GT":">","Iacute":"Í","iacute":"í","Icirc":"Î","icirc":"î","iexcl":"¡","Igrave":"Ì","igrave":"ì","iquest":"¿","Iuml":"Ï","iuml":"ï","laquo":"«","lt":"<","LT":"<","macr":"¯","micro":"µ","middot":"·","nbsp":" ","not":"¬","Ntilde":"Ñ","ntilde":"ñ","Oacute":"Ó","oacute":"ó","Ocirc":"Ô","ocirc":"ô","Ograve":"Ò","ograve":"ò","ordf":"ª","ordm":"º","Oslash":"Ø","oslash":"ø","Otilde":"Õ","otilde":"õ","Ouml":"Ö","ouml":"ö","para":"¶","plusmn":"±","pound":"£","quot":"\\"","QUOT":"\\"","raquo":"»","reg":"®","REG":"®","sect":"§","shy":"­","sup1":"¹","sup2":"²","sup3":"³","szlig":"ß","THORN":"Þ","thorn":"þ","times":"×","Uacute":"Ú","uacute":"ú","Ucirc":"Û","ucirc":"û","Ugrave":"Ù","ugrave":"ù","uml":"¨","Uuml":"Ü","uuml":"ü","Yacute":"Ý","yacute":"ý","yen":"¥","yuml":"ÿ"}')},function(e,t,r){"use strict";Object.defineProperty(t,"__esModule",{value:!0});var n=r(260);t.Node=n.Node,t.Element=n.Element,t.DataNode=n.DataNode,t.NodeWithChildren=n.NodeWithChildren;var i=/\s+/g,a={normalizeWhitespace:!1,withStartIndices:!1,withEndIndices:!1},o=function(){function e(e,t,r){this.dom=[],this._done=!1,this._tagStack=[],this._lastNode=null,this._parser=null,"function"==typeof t&&(r=t,t=a),"object"==typeof e&&(t=e,e=void 0),this._callback=e||null,this._options=t||a,this._elementCB=r||null}return e.prototype.onparserinit=function(e){this._parser=e},e.prototype.onreset=function(){this.dom=[],this._done=!1,this._tagStack=[],this._lastNode=null,this._parser=this._parser||null},e.prototype.onend=function(){this._done||(this._done=!0,this._parser=null,this.handleCallback(null))},e.prototype.onerror=function(e){this.handleCallback(e)},e.prototype.onclosetag=function(){this._lastNode=null;var e=this._tagStack.pop();e&&this._parser&&(this._options.withEndIndices&&(e.endIndex=this._parser.endIndex),this._elementCB&&this._elementCB(e))},e.prototype.onopentag=function(e,t){var r=new n.Element(e,t);this.addNode(r),this._tagStack.push(r)},e.prototype.ontext=function(e){var t=this._options.normalizeWhitespace,r=this._lastNode;if(r&&"text"===r.type)t?r.data=(r.data+e).replace(i," "):r.data+=e;else{t&&(e=e.replace(i," "));var a=new n.DataNode("text",e);this.addNode(a),this._lastNode=a}},e.prototype.oncomment=function(e){if(this._lastNode&&"comment"===this._lastNode.type)this._lastNode.data+=e;else{var t=new n.DataNode("comment",e);this.addNode(t),this._lastNode=t}},e.prototype.oncommentend=function(){this._lastNode=null},e.prototype.oncdatastart=function(){var e=new n.DataNode("text",""),t=new n.NodeWithChildren("cdata",[e]);this.addNode(t),e.parent=t,this._lastNode=e},e.prototype.oncdataend=function(){this._lastNode=null},e.prototype.onprocessinginstruction=function(e,t){var r=new n.ProcessingInstruction(e,t);this.addNode(r)},e.prototype.handleCallback=function(e){if("function"==typeof this._callback)this._callback(e,this.dom);else if(e)throw e},e.prototype.addNode=function(e){var t=this._tagStack[this._tagStack.length-1],r=t?t.children:this.dom,n=r[r.length-1];this._parser&&(this._options.withStartIndices&&(e.startIndex=this._parser.startIndex),this._options.withEndIndices&&(e.endIndex=this._parser.endIndex)),r.push(e),n&&(e.prev=n,n.next=e),t&&(e.parent=t),this._lastNode=null},e.prototype.addDataNode=function(e){this.addNode(e),this._lastNode=e},e}();t.DomHandler=o,t.default=o},function(e,t,r){"use strict";var n,i=this&&this.__extends||(n=function(e,t){return(n=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(e,t){e.__proto__=t}||function(e,t){for(var r in t)t.hasOwnProperty(r)&&(e[r]=t[r])})(e,t)},function(e,t){function r(){this.constructor=e}n(e,t),e.prototype=null===t?Object.create(t):(r.prototype=t.prototype,new r)}),a=this&&this.__importDefault||function(e){return e&&e.__esModule?e:{default:e}},o=this&&this.__importStar||function(e){if(e&&e.__esModule)return e;var t={};if(null!=e)for(var r in e)Object.hasOwnProperty.call(e,r)&&(t[r]=e[r]);return t.default=e,t};Object.defineProperty(t,"__esModule",{value:!0});var s=a(r(110)),u=o(r(112)),c=r(106),l=function(e){function t(t,r){return"object"==typeof t&&null!==t&&(r=t=void 0),e.call(this,t,r)||this}return i(t,e),t.prototype.onend=function(){var e={},t=p(m,this.dom);if(t)if("feed"===t.name){var r=t.children;e.type="atom",y(e,"id","id",r),y(e,"title","title",r);var n=f("href",p("link",r));n&&(e.link=n),y(e,"description","subtitle",r),(i=d("updated",r))&&(e.updated=new Date(i)),y(e,"author","email",r,!0),e.items=h("entry",r).map((function(e){var t={},r=e.children;y(t,"id","id",r),y(t,"title","title",r);var n=f("href",p("link",r));n&&(t.link=n);var i=d("summary",r)||d("content",r);i&&(t.description=i);var a=d("updated",r);return a&&(t.pubDate=new Date(a)),t}))}else{var i;r=p("channel",t.children).children;e.type=t.name.substr(0,3),e.id="",y(e,"title","title",r),y(e,"link","link",r),y(e,"description","description",r),(i=d("lastBuildDate",r))&&(e.updated=new Date(i)),y(e,"author","managingEditor",r,!0),e.items=h("item",t.children).map((function(e){var t={},r=e.children;y(t,"id","guid",r),y(t,"title","title",r),y(t,"link","link",r),y(t,"description","description",r);var n=d("pubDate",r);return n&&(t.pubDate=new Date(n)),t}))}this.feed=e,this.handleCallback(t?null:Error("couldn't find root of feed"))},t}(s.default);function h(e,t){return u.getElementsByTagName(e,t,!0)}function p(e,t){return u.getElementsByTagName(e,t,!0,1)[0]}function d(e,t,r){return void 0===r&&(r=!1),u.getText(u.getElementsByTagName(e,t,r,1)).trim()}function f(e,t){return t?t.attribs[e]:null}function y(e,t,r,n,i){void 0===i&&(i=!1);var a=d(r,n,i);a&&(e[t]=a)}function m(e){return"rss"===e||"feed"===e||"rdf:RDF"===e}t.FeedHandler=l;var g={xmlMode:!0};t.parseFeed=function(e,t){void 0===t&&(t=g);var r=new l(t);return new c.Parser(r,t).end(e),r.feed}},function(e,t,r){"use strict";function n(e){for(var r in e)t.hasOwnProperty(r)||(t[r]=e[r])}Object.defineProperty(t,"__esModule",{value:!0}),n(r(261)),n(r(265)),n(r(266)),n(r(115)),n(r(267)),n(r(268)),n(r(47))},function(e,t,r){"use strict";var n=this&&this.__importDefault||function(e){return e&&e.__esModule?e:{default:e}};Object.defineProperty(t,"__esModule",{value:!0});var i=n(r(64)),a=n(r(109)),o=n(r(65)),s=n(r(108));function u(e){var t=Object.keys(e).join("|"),r=l(e),n=new RegExp("&(?:"+(t+="|#[xX][\\da-fA-F]+|#\\d+")+");","g");return function(e){return String(e).replace(n,r)}}t.decodeXML=u(o.default),t.decodeHTMLStrict=u(i.default);var c=function(e,t){return e0){var l=i(e,c.children,r,a);if(o.push.apply(o,l),(a-=l.length)<=0)break}}return o}t.filter=function(e,t,r,n){return void 0===r&&(r=!0),void 0===n&&(n=1/0),Array.isArray(t)||(t=[t]),i(e,t,r,n)},t.find=i,t.findOneChild=function(e,t){return t.find(e)},t.findOne=function e(t,r,i){void 0===i&&(i=!0);for(var a=null,o=0;o0&&(a=e(t,s.children)))}return a},t.existsOne=function e(t,r){return r.some((function(r){return n.isTag(r)&&(t(r)||r.children.length>0&&e(t,r.children))}))},t.findAll=function(e,t){for(var r,i,a=[],o=t.filter(n.isTag);i=o.shift();){var s=null===(r=i.children)||void 0===r?void 0:r.filter(n.isTag);s&&s.length>0&&o.unshift.apply(o,s),e(i)&&a.push(i)}return a}},function(e,t,r){"use strict";Object.defineProperty(t,"__esModule",{value:!0});const n=r(25),i=r(67);class a{constructor(e,t){this.dataFactory=e||r(1),this.baseIRI=this.dataFactory.namedNode(t||""),this.baseIRIDocument=this.baseIRI}static parsePrefixes(e,t,r){const n={};if(r)for(const t in e)t.startsWith("xmlns")&&(n[t.substr(6)]=e[t]);if(e.prefix||Object.keys(n).length>0){const r=Object.assign(Object.assign({},t),n);if(e.prefix){let t;for(;t=a.PREFIX_REGEX.exec(e.prefix);)r[t[1]]=t[2]}return r}return t}static expandPrefixedTerm(e,t){const r=e.indexOf(":");let n,i;if(r>=0&&(n=e.substr(0,r),i=e.substr(r+1)),""===n)return"http://www.w3.org/1999/xhtml/vocab#"+i;if(n){const e=t.prefixesAll[n];if(e)return e+i}if(e){const r=t.prefixesAll[e.toLocaleLowerCase()];if(r)return r}return e}static isValidIri(e){return a.IRI_REGEX.test(e)}static contentTypeToProfile(e){return i.RDFA_CONTENTTYPES[e]||""}getBaseIRI(e){let t=e;const r=t.indexOf("#");return r>=0&&(t=t.substr(0,r)),this.dataFactory.namedNode(n.resolve(t,this.baseIRI.value))}getResourceOrBaseIri(e,t){return!0===e?this.getBaseIriTerm(t):e}getBaseIriTerm(e){return e.localBaseIRI||this.baseIRI}createVocabIris(e,t,r,n){return e.split(/\s+/).filter(e=>e&&(r||e.indexOf(":")>=0)).map(e=>this.createIri(e,t,!0,!0,n)).filter(e=>null!=e)}createLiteral(e,t){if(t.interpretObjectAsTime&&!t.datatype)for(const r of a.TIME_REGEXES)if(e.match(r.regex)){t.datatype=this.dataFactory.namedNode(a.XSD+r.type);break}return this.dataFactory.literal(e,t.datatype||t.language)}createBlankNode(){return this.blankNodeFactory?this.blankNodeFactory():this.dataFactory.blankNode()}createIri(e,t,r,i,o){if(e=e||"",!i)return r||(e=n.resolve(e,this.getBaseIriTerm(t).value)),a.isValidIri(e)?this.dataFactory.namedNode(e):null;if(e.length>0&&"["===e[0]&&"]"===e[e.length-1]&&(e=e.substr(1,e.length-2)).indexOf(":")<0)return null;if(e.startsWith("_:"))return o?this.dataFactory.blankNode(e.substr(2)||"b_identity"):null;if(r&&t.vocab&&e.indexOf(":")<0)return this.dataFactory.namedNode(t.vocab+e);let s=a.expandPrefixedTerm(e,t);return r?e!==s&&(s=n.resolve(s,this.baseIRIDocument.value)):s=n.resolve(s,this.getBaseIriTerm(t).value),a.isValidIri(s)?this.dataFactory.namedNode(s):null}}t.Util=a,a.RDF="http://www.w3.org/1999/02/22-rdf-syntax-ns#",a.XSD="http://www.w3.org/2001/XMLSchema#",a.RDFA="http://www.w3.org/ns/rdfa#",a.PREFIX_REGEX=/\s*([^:\s]*)*:\s*([^\s]*)*\s*/g,a.TIME_REGEXES=[{regex:/^-?P([0-9]+Y)?([0-9]+M)?([0-9]+D)?(T([0-9]+H)?([0-9]+M)?([0-9]+(\.[0-9])?S)?)?$/,type:"duration"},{regex:/^[0-9]+-[0-9][0-9]-[0-9][0-9]T[0-9][0-9]:[0-9][0-9]:[0-9][0-9]((Z?)|([\+-][0-9][0-9]:[0-9][0-9]))$/,type:"dateTime"},{regex:/^[0-9]+-[0-9][0-9]-[0-9][0-9]Z?$/,type:"date"},{regex:/^[0-9][0-9]:[0-9][0-9]:[0-9][0-9]((Z?)|([\+-][0-9][0-9]:[0-9][0-9]))$/,type:"time"},{regex:/^[0-9]+-[0-9][0-9]$/,type:"gYearMonth"},{regex:/^[0-9]+$/,type:"gYear"}],a.IRI_REGEX=/^([A-Za-z][A-Za-z0-9+-.]*|_):[^ "<>{}|\\\[\]`]*$/},function(e,t,r){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),function(e){for(var r in e)t.hasOwnProperty(r)||(t[r]=e[r])}(r(274))},function(e,t,r){(function(t){var r=/^\[object .+?Constructor\]$/,n="object"==typeof t&&t&&t.Object===Object&&t,i="object"==typeof self&&self&&self.Object===Object&&self,a=n||i||Function("return this")();function o(e,t,r){switch(r.length){case 0:return e.call(t);case 1:return e.call(t,r[0]);case 2:return e.call(t,r[0],r[1]);case 3:return e.call(t,r[0],r[1],r[2])}return e.apply(t,r)}function s(e,t){return!!(e?e.length:0)&&function(e,t,r){if(t!=t)return function(e,t,r,n){var i=e.length,a=r+(n?1:-1);for(;n?a--:++a-1}function u(e,t,r){for(var n=-1,i=e?e.length:0;++n-1},C.prototype.set=function(e,t){var r=this.__data__,n=k(r,e);return n<0?r.push([e,t]):r[n][1]=t,this},j.prototype.clear=function(){this.__data__={hash:new N,map:new(A||C),string:new N}},j.prototype.delete=function(e){return F(this,e).delete(e)},j.prototype.get=function(e){return F(this,e).get(e)},j.prototype.has=function(e){return F(this,e).has(e)},j.prototype.set=function(e,t){return F(this,e).set(e,t),this},D.prototype.add=D.prototype.push=function(e){return this.__data__.set(e,"__lodash_hash_undefined__"),this},D.prototype.has=function(e){return this.__data__.has(e)};var M=I&&1/p(new I([,-0]))[1]==1/0?function(e){return new I(e)}:function(){};function F(e,t){var r,n,i=e.__data__;return("string"==(n=typeof(r=t))||"number"==n||"symbol"==n||"boolean"==n?"__proto__"!==r:null===r)?i["string"==typeof t?"string":"hash"]:i.map}function q(e,t){var r=function(e,t){return null==e?void 0:e[t]}(e,t);return L(r)?r:void 0}function B(e){return G(e)||function(e){return Q(e)&&v.call(e,"callee")&&(!T.call(e,"callee")||"[object Arguments]"==w.call(e))}(e)||!!(O&&e&&e[O])}var U,V,H=(U=function(e){return function(e,t,r){var n=-1,i=s,a=e.length,o=!0,c=[],l=c;if(r)o=!1,i=u;else if(a>=200){var d=t?null:M(e);if(d)return p(d);o=!1,i=h,l=new D}else l=t?[]:c;e:for(;++n0&&n(u)?r>1?e(u,r-1,n,i,a):c(a,u):i||(a[a.length]=u)}return a}(e,1,Q,!0))},V=R(void 0===V?U.length-1:V,0),function(){for(var e=arguments,t=-1,r=R(e.length-V,0),n=Array(r);++t-1&&e%1==0&&e<=9007199254740991}(e.length)&&!$(e)}function Q(e){return function(e){return!!e&&"object"==typeof e}(e)&&z(e)}function $(e){var t=X(e)?w.call(e):"";return"[object Function]"==t||"[object GeneratorFunction]"==t}function X(e){var t=typeof e;return!!e&&("object"==t||"function"==t)}e.exports=H}).call(this,r(11))},function(e,t,r){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),function(e){for(var r in e)t.hasOwnProperty(r)||(t[r]=e[r])}(r(283))},function(e,t,r){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),function(e){for(var r in e)t.hasOwnProperty(r)||(t[r]=e[r])}(r(284))},function(e,t,r){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),function(e){for(var r in e)t.hasOwnProperty(r)||(t[r]=e[r])}(r(285))},function(e,t,r){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),function(e){for(var r in e)t.hasOwnProperty(r)||(t[r]=e[r])}(r(286))},function(e,t,r){"use strict";Object.defineProperty(t,"__esModule",{value:!0});const n=r(0);class i extends n.Actor{constructor(e){super(e)}getContextSources(e){return e?e.get(t.KEY_CONTEXT_SOURCES):null}getContextSource(e){return e?e.get(t.KEY_CONTEXT_SOURCE):null}getContextSourceUrl(e){if(e){let t=o(e);const r=t.indexOf("#");return r>=0&&(t=t.substr(0,r)),t}return null}hasContextSingleSource(e){const t=this.getContextSource(e);return!(!t||"string"!=typeof t&&!t.value)}hasContextSingleSourceOfType(e,t){const r=this.getContextSource(t);return!(!r||a(r)!==e||!o(r))}}function a(e){return"string"==typeof e?"":e.type}function o(e){return"string"==typeof e?e:e.value}t.ActorRdfResolveQuadPattern=i,t.getDataSourceType=a,t.getDataSourceValue=o,t.KEY_CONTEXT_SOURCES="@comunica/bus-rdf-resolve-quad-pattern:sources",t.KEY_CONTEXT_SOURCE="@comunica/bus-rdf-resolve-quad-pattern:source"},function(e,t,r){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),function(e){for(var r in e)t.hasOwnProperty(r)||(t[r]=e[r])}(r(288))},function(e,t,r){"use strict";function n(e){for(var r in e)t.hasOwnProperty(r)||(t[r]=e[r])}Object.defineProperty(t,"__esModule",{value:!0}),n(r(126)),n(r(289))},function(e,t,r){"use strict";Object.defineProperty(t,"__esModule",{value:!0});const n=r(0);class i extends n.Actor{constructor(e){super(e)}}t.ActorRdfMetadata=i},function(e,t,r){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),function(e){for(var r in e)t.hasOwnProperty(r)||(t[r]=e[r])}(r(290))},function(e,t,r){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),function(e){for(var r in e)t.hasOwnProperty(r)||(t[r]=e[r])}(r(291))},function(e,t,r){"use strict";Object.defineProperty(t,"__esModule",{value:!0});const n=r(0);class i extends n.Actor{constructor(e){super(e)}}t.ActorRdfMetadataExtract=i},function(e,t,r){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),function(e){for(var r in e)t.hasOwnProperty(r)||(t[r]=e[r])}(r(295))},function(e,t,r){"use strict";function n(e){for(var r in e)t.hasOwnProperty(r)||(t[r]=e[r])}Object.defineProperty(t,"__esModule",{value:!0}),n(r(297)),n(r(298)),n(r(299)),n(r(300)),n(r(301))},function(e,t,r){"use strict";Object.defineProperty(t,"__esModule",{value:!0});const n=r(2);class i extends n.Transform{constructor(e){super({objectMode:!0}),this.parser=e}_transform(e,t,r){r(null,this.parser.parseJsonBindings(e))}}t.SparqlJsonBindingsTransformer=i},function(e,t,r){(function(t){var r={},n=r.LEFT_BRACE=1,i=r.RIGHT_BRACE=2,a=r.LEFT_BRACKET=3,o=r.RIGHT_BRACKET=4,s=r.COLON=5,u=r.COMMA=6,c=r.TRUE=7,l=r.FALSE=8,h=r.NULL=9,p=r.STRING=10,d=r.NUMBER=11,f=r.START=17,y=r.STOP=18,m=r.TRUE1=33,g=r.TRUE2=34,_=r.TRUE3=35,b=r.FALSE1=49,v=r.FALSE2=50,w=r.FALSE3=51,E=r.FALSE4=52,S=r.NULL1=65,T=r.NULL2=66,x=r.NULL3=67,O=r.NUMBER1=81,R=r.NUMBER3=83,A=r.STRING1=97,I=r.STRING2=98,P=r.STRING3=99,N=r.STRING4=100,C=r.STRING5=101,j=r.STRING6=102,D=r.VALUE=113,k=r.KEY=114,L=r.OBJECT=129,M=r.ARRAY=130,F="\\".charCodeAt(0),q="/".charCodeAt(0),B="\b".charCodeAt(0),U="\f".charCodeAt(0),V="\n".charCodeAt(0),H="\r".charCodeAt(0),G="\t".charCodeAt(0);function z(){this.tState=f,this.value=void 0,this.string=void 0,this.stringBuffer=t.alloc?t.alloc(65536):new t(65536),this.stringBufferOffset=0,this.unicode=void 0,this.highSurrogate=void 0,this.key=void 0,this.mode=void 0,this.stack=[],this.state=D,this.bytes_remaining=0,this.bytes_in_sequence=0,this.temp_buffs={2:new t(2),3:new t(3),4:new t(4)},this.offset=-1}z.toknam=function(e){for(var t=Object.keys(r),n=0,i=t.length;n=65536&&(this.string+=this.stringBuffer.toString("utf8"),this.stringBufferOffset=0),this.stringBuffer[this.stringBufferOffset++]=e},Q.appendStringBuf=function(e,t,r){var n=e.length;"number"==typeof t&&(n="number"==typeof r?r<0?e.length-t+r:r-t:e.length-t),n<0&&(n=0),this.stringBufferOffset+n>65536&&(this.string+=this.stringBuffer.toString("utf8",0,this.stringBufferOffset),this.stringBufferOffset=0),e.copy(this.stringBuffer,this.stringBufferOffset,t,r),this.stringBufferOffset+=n},Q.write=function(e){var r;"string"==typeof e&&(e=new t(e));for(var y=0,D=e.length;y=48&&r<64)this.string=String.fromCharCode(r),this.tState=R;else if(32!==r&&9!==r&&10!==r&&13!==r)return this.charError(e,y)}else if(this.tState===A)if(r=e[y],this.bytes_remaining>0){for(var k=0;k=128){if(r<=193||r>244)return this.onError(new Error("Invalid UTF-8 character at position "+y+" in state "+z.toknam(this.tState)));if(r>=194&&r<=223&&(this.bytes_in_sequence=2),r>=224&&r<=239&&(this.bytes_in_sequence=3),r>=240&&r<=244&&(this.bytes_in_sequence=4),this.bytes_in_sequence+y>e.length){for(var L=0;L<=e.length-1-y;L++)this.temp_buffs[this.bytes_in_sequence][L]=e[y+L];this.bytes_remaining=y+this.bytes_in_sequence-e.length,y=e.length-1}else this.appendStringBuf(e,y,y+this.bytes_in_sequence),y=y+this.bytes_in_sequence-1}else if(34===r)this.tState=f,this.string+=this.stringBuffer.toString("utf8",0,this.stringBufferOffset),this.stringBufferOffset=0,this.onToken(p,this.string),this.offset+=t.byteLength(this.string,"utf8")+1,this.string=void 0;else if(92===r)this.tState=I;else{if(!(r>=32))return this.charError(e,y);this.appendStringChar(r)}else if(this.tState===I)if(34===(r=e[y]))this.appendStringChar(r),this.tState=A;else if(92===r)this.appendStringChar(F),this.tState=A;else if(47===r)this.appendStringChar(q),this.tState=A;else if(98===r)this.appendStringChar(B),this.tState=A;else if(102===r)this.appendStringChar(U),this.tState=A;else if(110===r)this.appendStringChar(V),this.tState=A;else if(114===r)this.appendStringChar(H),this.tState=A;else if(116===r)this.appendStringChar(G),this.tState=A;else{if(117!==r)return this.charError(e,y);this.unicode="",this.tState=P}else if(this.tState===P||this.tState===N||this.tState===C||this.tState===j){if(!((r=e[y])>=48&&r<64||r>64&&r<=70||r>96&&r<=102))return this.charError(e,y);if(this.unicode+=String.fromCharCode(r),this.tState++===j){var M=parseInt(this.unicode,16);this.unicode=void 0,void 0!==this.highSurrogate&&M>=56320&&M<57344?(this.appendStringBuf(new t(String.fromCharCode(this.highSurrogate,M))),this.highSurrogate=void 0):void 0===this.highSurrogate&&M>=55296&&M<56320?this.highSurrogate=M:(void 0!==this.highSurrogate&&(this.appendStringBuf(new t(String.fromCharCode(this.highSurrogate))),this.highSurrogate=void 0),this.appendStringBuf(new t(String.fromCharCode(M)))),this.tState=A}}else if(this.tState===O||this.tState===R)switch(r=e[y]){case 48:case 49:case 50:case 51:case 52:case 53:case 54:case 55:case 56:case 57:case 46:case 101:case 69:case 43:case 45:this.string+=String.fromCharCode(r),this.tState=R;break;default:this.tState=f;var Q=Number(this.string);if(isNaN(Q))return this.charError(e,y);this.string.match(/[0-9]+/)==this.string&&Q.toString()!=this.string?this.onToken(p,this.string):this.onToken(d,Q),this.offset+=this.string.length-1,this.string=void 0,y--}else if(this.tState===m){if(114!==e[y])return this.charError(e,y);this.tState=g}else if(this.tState===g){if(117!==e[y])return this.charError(e,y);this.tState=_}else if(this.tState===_){if(101!==e[y])return this.charError(e,y);this.tState=f,this.onToken(c,!0),this.offset+=3}else if(this.tState===b){if(97!==e[y])return this.charError(e,y);this.tState=v}else if(this.tState===v){if(108!==e[y])return this.charError(e,y);this.tState=w}else if(this.tState===w){if(115!==e[y])return this.charError(e,y);this.tState=E}else if(this.tState===E){if(101!==e[y])return this.charError(e,y);this.tState=f,this.onToken(l,!1),this.offset+=4}else if(this.tState===S){if(117!==e[y])return this.charError(e,y);this.tState=T}else if(this.tState===T){if(108!==e[y])return this.charError(e,y);this.tState=x}else if(this.tState===x){if(108!==e[y])return this.charError(e,y);this.tState=f,this.onToken(h,null),this.offset+=3}},Q.onToken=function(e,t){},Q.parseError=function(e,t){this.tState=y,this.onError(new Error("Unexpected "+z.toknam(e)+(t?"("+JSON.stringify(t)+")":"")+" in state "+z.toknam(this.state)))},Q.push=function(){this.stack.push({value:this.value,key:this.key,mode:this.mode})},Q.pop=function(){var e=this.value,t=this.stack.pop();this.value=t.value,this.key=t.key,this.mode=t.mode,this.emit(e),this.mode||(this.state=D)},Q.emit=function(e){this.mode&&(this.state=u),this.onValue(e)},Q.onValue=function(e){},Q.onToken=function(e,t){if(this.state===D)if(e===p||e===d||e===c||e===l||e===h)this.value&&(this.value[this.key]=t),this.emit(t);else if(e===n)this.push(),this.value?this.value=this.value[this.key]={}:this.value={},this.key=void 0,this.state=k,this.mode=L;else if(e===a)this.push(),this.value?this.value=this.value[this.key]=[]:this.value=[],this.key=0,this.mode=M,this.state=D;else if(e===i){if(this.mode!==L)return this.parseError(e,t);this.pop()}else{if(e!==o)return this.parseError(e,t);if(this.mode!==M)return this.parseError(e,t);this.pop()}else if(this.state===k)if(e===p)this.key=t,this.state=s;else{if(e!==i)return this.parseError(e,t);this.pop()}else if(this.state===s){if(e!==s)return this.parseError(e,t);this.state=D}else{if(this.state!==u)return this.parseError(e,t);if(e===u)this.mode===M?(this.key++,this.state=D):this.mode===L&&(this.state=k);else{if(!(e===o&&this.mode===M||e===i&&this.mode===L))return this.parseError(e,t);this.pop()}}},z.C=r,e.exports=z}).call(this,r(15).Buffer)},function(e,t,r){"use strict";Object.defineProperty(t,"__esModule",{value:!0});const n=r(41);t.storeStream=function(e){const t=new n.Store;return new Promise(r=>t.import(e).once("end",()=>r(t)))}},function(e,t,r){"use strict";Object.defineProperty(t,"__esModule",{value:!0});const n=r(136);t.GraphQlQueryEngine=class{constructor(e){this.comunicaEngine=e}async query(e,t){const{data:r}=await this.comunicaEngine.resultToString(await this.comunicaEngine.query(e,t),"application/sparql-results+json");return JSON.parse(await n(r))}}},function(e,t,r){var n=r(304);e.exports=function(e,t,r){"function"==typeof t&&(r=t,t=null),r=r||function(){};var i="";return new n((function(n,a){e.on("data",(function(e){i+="string"==typeof t?e.toString(t):e.toString()})),e.on("end",(function(){n(i),r(null,i)})),e.on("error",(function(e){a(e),r(e)}))}))}},function(e,t,r){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),function(e){for(var r in e)t.hasOwnProperty(r)||(t[r]=e[r])}(r(306))},function(e,t,r){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),function(e){for(var r in e)t.hasOwnProperty(r)||(t[r]=e[r])}(r(307))},function(e,t,r){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),function(e){for(var r in e)t.hasOwnProperty(r)||(t[r]=e[r])}(r(308))},function(e,t,r){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),function(e){for(var r in e)t.hasOwnProperty(r)||(t[r]=e[r])}(r(311))},function(e,t,r){"use strict";function n(e){for(var r in e)t.hasOwnProperty(r)||(t[r]=e[r])}Object.defineProperty(t,"__esModule",{value:!0}),n(r(142)),n(r(314))},function(e,t,r){"use strict";Object.defineProperty(t,"__esModule",{value:!0});const n=r(0);class i extends n.Actor{constructor(e){super(e)}}t.ActorHttpInvalidate=i},function(e,t,r){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),function(e){for(var r in e)t.hasOwnProperty(r)||(t[r]=e[r])}(r(315))},function(e,t,r){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),function(e){for(var r in e)t.hasOwnProperty(r)||(t[r]=e[r])}(r(316))},function(e,t,r){var n=r(41).DataFactory.internal.Term;class i extends n{constructor(){return super(""),a||this}equals(e){return e&&this.termType===e.termType}}Object.defineProperty(i.prototype,"value",{enumerable:!0,value:"*"}),Object.defineProperty(i.prototype,"termType",{enumerable:!0,value:"Wildcard"});var a=new i;e.exports.Wildcard=i},function(e,t,r){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),function(e){for(var r in e)t.hasOwnProperty(r)||(t[r]=e[r])}(r(328))},function(e,t,r){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),function(e){for(var r in e)t.hasOwnProperty(r)||(t[r]=e[r])}(r(329))},function(e,t,r){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),function(e){for(var r in e)t.hasOwnProperty(r)||(t[r]=e[r])}(r(330))},function(e,t,r){"use strict";Object.defineProperty(t,"__esModule",{value:!0});const n=r(0),i=r(150);class a extends n.Actor{constructor(e){super(e)}static getSafeBindings(e){return a.validateQueryOutput(e,"bindings"),e}static getSafeQuads(e){return a.validateQueryOutput(e,"quads"),e}static getSafeBoolean(e){return a.validateQueryOutput(e,"boolean"),e}static cachifyMetadata(e){let t=null;return()=>t||(t=e())}static validateQueryOutput(e,t){if(e.type!==t)throw new Error("Invalid query output type: Expected '"+t+"' but got '"+e.type+"'")}static getExpressionContext(e,r){if(e){const n=e.get(t.KEY_CONTEXT_QUERY_TIMESTAMP),i=e.get(t.KEY_CONTEXT_BASEIRI);return Object.assign({now:n,baseIRI:i},r?{exists:a.createExistenceResolver(e,r)}:{})}return{}}static createExistenceResolver(e,t){return async(r,n)=>{const o=i.materializeOperation(r.input,n),s=await t.mediate({operation:o,context:e}),u=a.getSafeBindings(s);return new Promise((e,t)=>{u.bindingsStream.on("end",()=>{e(!1)}),u.bindingsStream.on("error",t),u.bindingsStream.on("data",()=>{u.bindingsStream.close(),e(!0)})}).then(e=>r.not?!e:e)}}}t.ActorQueryOperation=a,t.KEY_CONTEXT_BGP_CURRENTMETADATA="@comunica/bus-query-operation:bgpCurrentMetadata",t.KEY_CONTEXT_BGP_PARENTMETADATA="@comunica/bus-query-operation:bgpParentMetadata",t.KEY_CONTEXT_BGP_PATTERNBINDINGS="@comunica/bus-query-operation:bgpPatternBindings",t.KEY_CONTEXT_PATTERN_PARENTMETADATA="@comunica/bus-query-operation:patternParentMetadata",t.KEY_CONTEXT_BASEIRI="@comunica/actor-init-sparql:baseIRI",t.KEY_CONTEXT_QUERY_TIMESTAMP="@comunica/actor-init-sparql:queryTimestamp"},function(e,t,r){"use strict";Object.defineProperty(t,"__esModule",{value:!0});const n=r(19),i=r(7),a=r(5);function o(e){return n.Map(e)}function s(e){return n.Map.isMap(e)}function u(e,t){if("Variable"===e.termType){const r=t.get(a.termToString(e));if(r)return r}return e}t.Bindings=o,t.isBindings=s,t.ensureBindings=function(e){return s(e)?e:o(e)},t.materializeOperation=function e(t,r,n=!1){return i.Util.mapOperation(t,{path:(e,t)=>({recurse:!1,result:t.createPath(u(e.subject,r),e.predicate,u(e.object,r),u(e.graph,r))}),pattern:(e,t)=>({recurse:!1,result:t.createPattern(u(e.subject,r),u(e.predicate,r),u(e.object,r),u(e.graph,r))}),extend:t=>{if(r.has(a.termToString(t.variable))){if(n)throw new Error(`Tried to bind variable ${a.termToString(t.variable)} in a BIND operator.`);return{recurse:!0,result:e(t.input,r,n)}}return{recurse:!0,result:t}},group:(e,t)=>{if(n){for(const t of e.variables)if(r.has(a.termToString(t)))throw new Error(`Tried to bind variable ${a.termToString(t)} in a GROUP BY operator.`);return{recurse:!0,result:e}}{const n=e.variables.filter(e=>!r.has(a.termToString(e)));return{recurse:!0,result:t.createGroup(e.input,n,e.aggregates)}}},project:(e,t)=>{if(n){for(const t of e.variables)if(r.has(a.termToString(t)))throw new Error(`Tried to bind variable ${a.termToString(t)} in a SELECT operator.`);return{recurse:!0,result:e}}{const n=e.variables.filter(e=>!r.has(a.termToString(e)));return{recurse:!0,result:t.createProject(e.input,n)}}},values:(e,t)=>{if(!n){const n=e.variables.filter(e=>!r.has(a.termToString(e))),i=e.bindings.map(e=>{const t=Object.assign({},e);return r.forEach((e,r)=>delete t[r]),t});return{recurse:!0,result:t.createValues(n,i)}}for(const t of e.variables)if(r.has(a.termToString(t)))throw new Error(`Tried to bind variable ${a.termToString(t)} in a VALUES operator.`);return{recurse:!1,result:e}},expression:(e,t)=>{if("term"===e.expressionType)return{recurse:!1,result:t.createTermExpression(u(e.term,r))};if("aggregate"===e.expressionType&&"variable"in e&&r.has(a.termToString(e.variable))){if(n)throw new Error(`Tried to bind ${a.termToString(e.variable)} in a ${e.aggregator} aggregate.`);return{recurse:!0,result:e}}return{recurse:!0,result:e}}})},t.materializeTerm=u},function(e,t,r){"use strict";Object.defineProperty(t,"__esModule",{value:!0});const n=r(149);class i extends n.ActorQueryOperation{constructor(e,t){if(super(Object.assign(Object.assign({},e),{operationName:t})),!this.operationName)throw new Error('A valid "operationName" argument must be provided.')}async test(e){if(!e.operation)throw new Error("Missing field 'operation' in a query operation action.");if(e.operation.type!==this.operationName)throw new Error("Actor "+this.name+" only supports "+this.operationName+" operations, but got "+e.operation.type);const t=e.operation;return this.testOperation(t,e.context)}async run(e){const r=e.operation,i=e.context?e.context.set(t.KEY_CONTEXT_QUERYOPERATION,r):null,a=await this.runOperation(r,i);return a.metadata&&(a.metadata=n.ActorQueryOperation.cachifyMetadata(a.metadata)),a}}t.ActorQueryOperationTyped=i,t.KEY_CONTEXT_QUERYOPERATION="@comunica/bus-query-operation:operation"},function(e,t,r){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),function(e){for(var r in e)t.hasOwnProperty(r)||(t[r]=e[r])}(r(332))},function(e,t,r){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),function(e){for(var r in e)t.hasOwnProperty(r)||(t[r]=e[r])}(r(333))},function(e,t,r){"use strict";Object.defineProperty(t,"__esModule",{value:!0});const n=r(133),i=r(8),a=r(2),o=r(335),s=r(155),u=r(340),c=r(55),l=r(341),h=r(342),p=r(343),d=r(344),f=r(345),y=r(346),m=r(347),g=r(348),_=r(349),b=r(27),v=r(351);class w extends a.Transform{constructor(e){super({objectMode:!0}),e=e||{},this.options=e,this.parsingContext=new _.ParsingContext(Object.assign({parser:this},e)),this.util=new b.Util({dataFactory:e.dataFactory,parsingContext:this.parsingContext}),this.jsonParser=new n,this.contextJobs=[],this.typeJobs=[],this.contextAwaitingJobs=[],this.lastDepth=0,this.lastKeys=[],this.lastOnValueJob=Promise.resolve(),this.attachJsonParserListeners()}static fromHttpResponse(e,t,r,n){let a,o;if("application/ld+json"!==t){if("application/json"!==t&&!t.endsWith("+json"))throw new i.ErrorCoded("Unsupported JSON-LD media type "+t,i.ERROR_CODES.LOADING_DOCUMENT_FAILED);if(r&&r.has("Link")&&r.forEach((t,r)=>{if("link"===r){const r=v.parse(t);for(const t of r.get("rel","http://www.w3.org/ns/json-ld#context")){if(a)throw new i.ErrorCoded("Multiple JSON-LD context link headers were found on "+e,i.ERROR_CODES.MULTIPLE_CONTEXT_LINK_HEADERS);a=t.uri}}}),!a)throw new i.ErrorCoded(`Missing context link header for media type ${t} on ${e}`,i.ERROR_CODES.LOADING_DOCUMENT_FAILED)}if(r&&r.has("Content-Type")){const e=r.get("Content-Type"),t=/; *profile=([^"]*)/.exec(e);t&&"http://www.w3.org/ns/json-ld#streaming"===t[1]&&(o=!0)}return new w(Object.assign({baseIRI:e,context:a,streamingProfile:o},n||{}))}import(e){const t=new a.PassThrough({objectMode:!0});e.on("error",e=>r.emit("error",e)),e.on("data",e=>t.write(e)),e.on("end",()=>t.emit("end"));const r=t.pipe(new w(this.options));return r}_transform(e,t,r){this.jsonParser.write(e),this.lastOnValueJob.then(()=>r(),e=>r(e))}async newOnValueJob(e,t,r,n){let a=!0;if(n&&r1&&(l=this.parsingContext.validationStack[this.parsingContext.validationStack.length-1].property);for(let t=Math.max(1,this.parsingContext.validationStack.length-1);t=0?this.parsingContext.idStack[e-r-1]:[await this.util.getGraphContainerValue(t,e)];if(a)for(const t of a){this.parsingContext.emittedStack[e]=!0;for(const r of n)r.reverse?this.parsingContext.emitQuad(e,this.util.dataFactory.quad(r.object,r.predicate,i,t)):this.parsingContext.emitQuad(e,this.util.dataFactory.quad(i,r.predicate,r.object,t))}else{const r=this.parsingContext.getUnidentifiedGraphBufferSafe(e-await this.util.getDepthOffsetGraph(e,t)-1);for(const e of n)e.reverse?r.push({object:i,predicate:e.predicate,subject:e.object}):r.push({object:e.object,predicate:e.predicate,subject:i})}}this.parsingContext.unidentifiedValuesBuffer.splice(e,1),this.parsingContext.literalStack.splice(e,1),this.parsingContext.jsonLiteralStack.splice(e,1)}const i=this.parsingContext.unidentifiedGraphsBuffer[e];if(i){for(const t of r){const r=1!==e||"BlankNode"!==t.termType||this.parsingContext.topLevelProperties?t:this.util.getDefaultGraph();this.parsingContext.emittedStack[e]=!0;for(const t of i)this.parsingContext.emitQuad(e,this.util.dataFactory.quad(t.subject,t.predicate,t.object,r))}this.parsingContext.unidentifiedGraphsBuffer.splice(e,1)}}async validateKey(e,t,r){for(const n of w.ENTRY_HANDLERS)if(await n.validate(this.parsingContext,this.util,e,t,r))return{valid:!0,property:r||n.isPropertyHandler()};return{valid:!1,property:!1}}attachJsonParserListeners(){this.jsonParser.onValue=e=>{const t=this.jsonParser.stack.length,r=new Array(t+1).fill(0).map((e,r)=>r===t?this.jsonParser.key:this.jsonParser.stack[r].key);if(!this.isParsingContextInner(t)){const n=()=>this.newOnValueJob(r,e,t,!0);if(this.parsingContext.streamingProfile||this.parsingContext.contextTree.getContext(r.slice(0,-1)))this.lastOnValueJob=this.lastOnValueJob.then(n);else if("@context"===r[t]){let e=this.contextJobs[t];e||(e=this.contextJobs[t]=[]),e.push(n)}else"@type"===r[t]||"number"==typeof r[t]&&"@type"===r[t-1]?this.typeJobs.push({job:n,keys:r.slice(0,r.length-1)}):this.contextAwaitingJobs.push({job:n,keys:r});this.parsingContext.streamingProfile||0!==t||(this.lastOnValueJob=this.lastOnValueJob.then(()=>this.executeBufferedJobs()))}},this.jsonParser.onError=e=>{this.emit("error",e)}}isParsingContextInner(e){for(let t=e;t>0;t--)if("@context"===this.jsonParser.stack[t-1].key)return!0;return!1}async executeBufferedJobs(){for(const e of this.contextJobs)if(e)for(const t of e)await t();this.parsingContext.unaliasedKeywordCacheStack.splice(0);for(const e of this.contextAwaitingJobs){if(this.typeJobs.length>0){const t=[],r=[];for(let n=0;ne.keys.length-t.keys.length);for(const e of n)await e.job();const i=r.sort().reverse();for(const e of i)this.typeJobs.splice(e,1)}await e.job()}}}w.DEFAULT_PROCESSING_MODE="1.1",w.ENTRY_HANDLERS=[new o.EntryHandlerArrayValue,new l.EntryHandlerKeywordContext,new p.EntryHandlerKeywordId,new d.EntryHandlerKeywordIncluded,new h.EntryHandlerKeywordGraph,new f.EntryHandlerKeywordNest,new y.EntryHandlerKeywordType,new g.EntryHandlerKeywordValue,new s.EntryHandlerContainer,new m.EntryHandlerKeywordUnknownFallback,new c.EntryHandlerPredicate,new u.EntryHandlerInvalidFallback],t.JsonLdParser=w},function(e,t,r){"use strict";Object.defineProperty(t,"__esModule",{value:!0});const n=r(336),i=r(337),a=r(338),o=r(339),s=r(27);class u{static isSimpleGraphContainer(e){return"@graph"in e&&("@set"in e&&2===Object.keys(e).length||1===Object.keys(e).length)}static isComplexGraphContainer(e){return"@graph"in e&&("@set"in e&&Object.keys(e).length>2||!("@set"in e)&&Object.keys(e).length>1)}static getContainerGraphIndex(e,t,r){let n=u.isSimpleGraphContainer(e),i="";for(let e=t;e=0;e--)if("number"!=typeof t[e]){const r=s.Util.getContextValue(a,"@container",t[e],!1);if(r&&u.isSimpleGraphContainer(r))return{containers:r,depth:e+1,fallback:!1};const o=s.Util.getContextValue(a,"@container",t[e-1],!1);if(o){const t="@graph"in o;for(const r in u.CONTAINER_HANDLERS)if(o[r])return t?u.CONTAINER_HANDLERS[r].canCombineWithGraph()?{containers:o,depth:e,fallback:!1}:n:i?n:{containers:o,depth:e,fallback:!1};return n}if(i)return n;i=!0}return n}static async isBufferableContainerHandler(e,t,r){const n=await u.getContainerHandler(e,t,r);return!n.fallback&&!("@graph"in n.containers)}isPropertyHandler(){return!1}isStackProcessor(){return!0}async validate(e,t,r,n,i){return!!await this.test(e,t,null,r,n)}async test(e,t,r,n,i){const a=s.Util.getContextValueContainer(await e.getContext(n,2),n[i-1]);for(const e in u.CONTAINER_HANDLERS)if(a[e])return{containers:a,handler:u.CONTAINER_HANDLERS[e]};return null}async handle(e,t,r,n,i,a,o){return o.handler.handle(o.containers,e,t,n,i,a)}}u.CONTAINER_HANDLERS={"@id":new n.ContainerHandlerIdentifier,"@index":new i.ContainerHandlerIndex,"@language":new a.ContainerHandlerLanguage,"@type":new o.ContainerHandlerType},t.EntryHandlerContainer=u},function(e,t,r){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),function(e){for(var r in e)t.hasOwnProperty(r)||(t[r]=e[r])}(r(353))},function(e,t,r){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),function(e){for(var r in e)t.hasOwnProperty(r)||(t[r]=e[r])}(r(359))},function(e,t,r){"use strict";Object.defineProperty(t,"__esModule",{value:!0});const n=r(2);class i extends n.Transform{constructor(e){super({objectMode:!0}),this.parser=e}_transform(e,t,r){let n;try{n=this.parser.parseXmlBindings(e)}catch(e){return r(e)}r(null,n)}}t.SparqlXmlBindingsTransformer=i},function(e,t,r){"use strict";function n(e){for(var r in e)t.hasOwnProperty(r)||(t[r]=e[r])}Object.defineProperty(t,"__esModule",{value:!0}),n(r(160)),n(r(379))},function(e,t,r){"use strict";Object.defineProperty(t,"__esModule",{value:!0});const n=r(26),i=r(377),a=r(25);class o extends i.ActorRdfDereferenceMediaMappings{constructor(e){super(e)}async test(e){if(!/^https?:/.test(e.url))throw new Error(`Cannot retrieve ${e.url} because it is not an HTTP(S) URL.`);return!0}async run(e){const t=(await this.mediatorRdfParseMediatypes.mediate({context:e.context,mediaTypes:!0})).mediaTypes,r=this.mediaTypesToAcceptString(t,this.getMaxAcceptHeaderLength()),i=new Headers;i.append("Accept",r);for(const t in e.headers)i.append(t,e.headers[t]);const s={context:e.context,init:{headers:i,method:e.method},input:e.url};let u;try{u=await this.mediatorHttp.mediate(s)}catch(t){return this.handleDereferenceError(e,t)}const c=a.resolve(u.url,e.url),l={};u.headers.forEach((e,t)=>l[t]=e);const h=n.ActorHttp.toNodeReadable(u.body);if(200!==u.status){const t=new Error(`Could not retrieve ${e.url} (${u.status}: ${u.statusText||"unknown error"})`);return this.handleDereferenceError(e,t)}let p=u.headers.has("content-type")?o.REGEX_MEDIATYPE.exec(u.headers.get("content-type"))[0]:null;p&&"text/plain"!==p||(p=this.getMediaTypeFromExtension(u.url));const d={baseIRI:c,headers:u.headers,input:h};let f;try{f=(await this.mediatorRdfParseHandle.mediate({context:e.context,handle:d,handleMediaType:p})).handle}catch(t){return this.handleDereferenceError(e,t)}return{url:c,quads:this.handleDereferenceStreamErrors(e,f.quads),triples:f.triples,headers:l}}mediaTypesToAcceptString(e,t){t-=10;const r=[],n=Object.keys(e).map(t=>({mediaType:t,priority:e[t]})).sort((e,t)=>t.priority-e.priority);let i=0;for(const e of n){const n=e.mediaType+(1!==e.priority?";q="+e.priority.toFixed(3).replace(/0*$/,""):"");if(i+n.length>t){r.push("*/*;q=0.1");break}r.push(n),i+=n.length}return r.length?r.join(","):"*/*"}}t.ActorRdfDereferenceHttpParseBase=o,o.REGEX_MEDIATYPE=/^[^ ;]*/},function(e,t,r){"use strict";Object.defineProperty(t,"__esModule",{value:!0});const n=r(0),i=r(2);class a extends n.Actor{constructor(e){super(e)}isHardError(e){return!e.context||!e.context.get(t.KEY_CONTEXT_LENIENT)}handleDereferenceStreamErrors(e,t){return this.isHardError(e)||(t.on("error",r=>{this.logError(e.context,r.message,{url:e.url}),t.push(null)}),t=t.pipe(new i.PassThrough({objectMode:!0}))),t}async handleDereferenceError(e,t){if(this.isHardError(e))throw t;{this.logError(e.context,t.message);const r=new i.Readable;return r.push(null),{url:e.url,quads:r}}}}t.ActorRdfDereference=a,t.KEY_CONTEXT_LENIENT="@comunica/actor-init-sparql:lenient"},function(e,t,r){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),function(e){for(var r in e)t.hasOwnProperty(r)||(t[r]=e[r])}(r(380))},function(e,t,r){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),function(e){for(var r in e)t.hasOwnProperty(r)||(t[r]=e[r])}(r(382))},function(e,t,r){"use strict";function n(e){for(var r in e)t.hasOwnProperty(r)||(t[r]=e[r])}Object.defineProperty(t,"__esModule",{value:!0}),n(r(383)),n(r(165))},function(e,t,r){"use strict";(function(e){Object.defineProperty(t,"__esModule",{value:!0});const n=r(20),i=r(166),a=r(1),o=r(4),s=r(21),u=r(56),c=r(22),l=r(7);class h{constructor(e,t,r,i){this.mediatorResolveQuadPattern=e,this.sources=t.get(n.KEY_CONTEXT_SOURCES),this.contextDefault=t.delete(n.KEY_CONTEXT_SOURCES),this.emptyPatterns=r,this.sourceIds=new Map,this.skipEmptyPatterns=i,this.algebraFactory=new l.Factory,this.skipEmptyPatterns&&this.sources.iterator().on("data",e=>{this.emptyPatterns.has(e)||this.emptyPatterns.set(e,[])})}static isTermBound(e){return"Variable"!==e.termType}static isSubPatternOf(e,t){return(!h.isTermBound(t.subject)||t.subject.equals(e.subject))&&(!h.isTermBound(t.predicate)||t.predicate.equals(e.predicate))&&(!h.isTermBound(t.object)||t.object.equals(e.object))&&(!h.isTermBound(t.graph)||t.graph.equals(e.graph))}static skolemizeTerm(e,t){return"BlankNode"===e.termType?new i.BlankNodeScoped(`bc_${t}_${e.value}`,a.namedNode(`${h.SKOLEM_PREFIX}${t}:${e.value}`)):e}static skolemizeQuad(e,t){return c.mapTerms(e,e=>h.skolemizeTerm(e,t))}static deskolemizeTerm(e,t){if("BlankNode"===e.termType&&"skolemized"in e&&(e=e.skolemized),"NamedNode"===e.termType&&e.value.startsWith(h.SKOLEM_PREFIX)){const r=e.value.indexOf(":",h.SKOLEM_PREFIX.length);if(e.value.substr(h.SKOLEM_PREFIX.length,r-h.SKOLEM_PREFIX.length)===t){const t=e.value.substr(r+1,e.value.length);return a.blankNode(t)}return null}return e}isSourceEmpty(e,t){if(!this.skipEmptyPatterns)return!1;const r=this.emptyPatterns.get(e);if(r)for(const e of r)if(h.isSubPatternOf(t,e))return!0;return!1}getSourceId(e){let t=this.sourceIds.get(e);return void 0===t&&(t=""+this.sourceIds.size,this.sourceIds.set(e,t)),t}matchLazy(t,r,i,c){if(t instanceof RegExp||r instanceof RegExp||i instanceof RegExp||c instanceof RegExp)throw new Error("FederatedQuadSource does not support matching by regular expressions.");const l={totalItems:0};let p=1,d=0;const f=(e,t,r,n)=>{this.skipEmptyPatterns&&!e&&(this.isSourceEmpty(t,r)||this.emptyPatterns.get(t).push(r)),p||(n&&1===d?g.emit("metadata",n):g.emit("metadata",l))},y=this.sources.iterator(),m=y.map(e=>{const u=this.getSourceId(e);return p++,d++,new s.PromiseProxyIterator(async()=>{const s=t?h.deskolemizeTerm(t,u):a.variable("vs"),d=r?h.deskolemizeTerm(r,u):a.variable("vp"),y=i?h.deskolemizeTerm(i,u):a.variable("vo"),m=c?h.deskolemizeTerm(c,u):a.variable("vg");let g;const _=this.contextDefault.set(n.KEY_CONTEXT_SOURCE,{type:n.getDataSourceType(e),value:n.getDataSourceValue(e)});let b;return b=s&&d&&y&&m&&!this.isSourceEmpty(e,g=this.algebraFactory.createPattern(s,d,y,m))?await this.mediatorResolveQuadPattern.mediate({pattern:g,context:_}):{data:new o.EmptyIterator,metadata:()=>Promise.resolve({totalItems:0})},b.metadata?b.metadata().then(t=>{!t.totalItems&&0!==t.totalItems||!isFinite(t.totalItems)?(l.totalItems=1/0,p=0,f(1/0,e,g,t)):(l.totalItems+=t.totalItems,p--,f(t.totalItems,e,g,t))}):(l.totalItems=1/0,p=0,f(1/0,e,g)),b.data.map(e=>h.skolemizeQuad(e,u))})}),g=new u.RoundRobinUnionIterator(m.clone());return g.on("newListener",t=>{"metadata"===t&&e(()=>m.clone().each(e=>e.loadSource()))}),y.on("end",()=>{--p||g.emit("metadata",l)}),g}match(e,t,r,n){return this.matchLazy(e,t,r,n)}}t.FederatedQuadSource=h,h.SKOLEM_PREFIX="urn:comunica_skolem:source_"}).call(this,r(14).setImmediate)},function(e,t,r){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),function(e){for(var r in e)t.hasOwnProperty(r)||(t[r]=e[r])}(r(384))},function(e,t,r){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),function(e){for(var r in e)t.hasOwnProperty(r)||(t[r]=e[r])}(r(386))},function(e,t,r){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),function(e){for(var r in e)t.hasOwnProperty(r)||(t[r]=e[r])}(r(387))},function(e,t,r){"use strict";function n(e){for(var r in e)t.hasOwnProperty(r)||(t[r]=e[r])}Object.defineProperty(t,"__esModule",{value:!0}),n(r(389)),n(r(170))},function(e,t,r){"use strict";Object.defineProperty(t,"__esModule",{value:!0});const n=r(392);t.MediatedQuadSource=class{constructor(e,t,r,n,i){this.cacheSize=e,this.context=t,this.firstUrl=r,this.forceSourceType=n,this.mediators=i}matchLazy(e,t,r,i){if(e instanceof RegExp||t instanceof RegExp||r instanceof RegExp||i instanceof RegExp)throw new Error("MediatedQuadSource does not support matching by regular expressions.");const a=new n.MediatedLinkedRdfSourcesAsyncRdfIterator(this.cacheSize,this.context,this.forceSourceType,e,t,r,i,this.firstUrl,this.mediators);return this.sourcesState?a.setSourcesState(this.sourcesState):(a.setSourcesState(),this.sourcesState=a.sourcesState),a}match(e,t,r,n){return this.matchLazy(e,t,r,n)}}},function(e,t,r){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),function(e){for(var r in e)t.hasOwnProperty(r)||(t[r]=e[r])}(r(394));var n=r(173);function i(){return r(400)}t.bindingsStreamToGraphQl=n.bindingsStreamToGraphQl,t.newEngine=i,t.evaluateQuery=function(e,t){return i().query(e,t)}},function(e,t,r){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),function(e){for(var r in e)t.hasOwnProperty(r)||(t[r]=e[r])}(r(397))},function(e,t,r){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),function(e){for(var r in e)t.hasOwnProperty(r)||(t[r]=e[r])}(r(174));const n=r(174).ActorSparqlSerializeTree.bindingsStreamToGraphQl;t.bindingsStreamToGraphQl=n},function(e,t,r){"use strict";Object.defineProperty(t,"__esModule",{value:!0});const n=r(23),i=r(0),a=r(130),o=r(2);class s extends n.ActorSparqlSerializeFixedMediaTypes{constructor(e){super(e)}static bindingsStreamToGraphQl(e,t,r){const n=i.ensureActionContext(t);return new Promise((t,i)=>{const o=[],s=new a.Converter(r),u={singularizeVariables:n.get("@comunica/actor-init-sparql:singularizeVariables")||{}};e.on("error",i),e.on("data",e=>{const t=e.toJS(),r={};for(const e in t){const n=t[e];n&&(r[e.substr(1)]=n)}o.push(r)}),e.on("end",()=>{t(s.bindingsToTree(o,u))})})}async testHandleChecked(e){if("bindings"!==e.type)throw new Error("This actor can only handle bindings streams.");return!0}async runHandle(e,t){const r=new o.Readable;r._read=()=>{};const n=e.bindingsStream;return n.on("error",e=>r.emit("error",e)),s.bindingsStreamToGraphQl(n,e.context,{materializeRdfJsTerms:!0}).then(e=>{r.push(JSON.stringify(e,null," ")),r.push(null)}).catch(e=>r.emit("error",e)),{data:r}}}t.ActorSparqlSerializeTree=s},function(e,t,r){"use strict";var n=r(176),i=r(406),a=r(409);function o(e){return e&&e.rel}function s(e,t){return t.rel.split(/\s+/).forEach((function(r){e[r]=a(t,{rel:r})})),e}function u(e,t){var r=t.match(/\s*(.+)\s*=\s*"?([^"]+)"?/);return r&&(e[r[1]]=r[2]),e}function c(e){try{var t=e.match(/]*)>(.*)/),r=t[1],o=t[2].split(";"),s=i.parse(r),c=n.parse(s.query);o.shift();var l=o.reduce(u,{});return(l=a(c,l)).url=r,l}catch(e){return null}}e.exports=function(e){return e?e.split(/,\s*-1}function s(e,t,r){for(var n=-1,i=e?e.length:0;++n-1},O.prototype.set=function(e,t){var r=this.__data__,n=I(r,e);return n<0?r.push([e,t]):r[n][1]=t,this},R.prototype.clear=function(){this.__data__={hash:new x,map:new(E||O),string:new x}},R.prototype.delete=function(e){return C(this,e).delete(e)},R.prototype.get=function(e){return C(this,e).get(e)},R.prototype.has=function(e){return C(this,e).has(e)},R.prototype.set=function(e,t){return C(this,e).set(e,t),this},A.prototype.add=A.prototype.push=function(e){return this.__data__.set(e,"__lodash_hash_undefined__"),this},A.prototype.has=function(e){return this.__data__.has(e)};var N=S&&1/l(new S([,-0]))[1]==1/0?function(e){return new S(e)}:function(){};function C(e,t){var r,n,i=e.__data__;return("string"==(n=typeof(r=t))||"number"==n||"symbol"==n||"boolean"==n?"__proto__"!==r:null===r)?i["string"==typeof t?"string":"hash"]:i.map}function j(e,t){var r=function(e,t){return null==e?void 0:e[t]}(e,t);return P(r)?r:void 0}function D(e){var t=typeof e;return!!e&&("object"==t||"function"==t)}e.exports=function(e){return e&&e.length?function(e,t,r){var n=-1,i=o,a=e.length,u=!0,h=[],p=h;if(r)u=!1,i=s;else if(a>=200){var d=t?null:N(e);if(d)return l(d);u=!1,i=c,p=new A}else p=t?[]:h;e:for(;++n=0}static doesDigestAlgorithmExist(e){return["latin1","hex","base64"].indexOf(e)>=0}static hash(e,t,n){const o=i.createHash(e);return o.update(r(450)(n.map(a.termToString))),o.digest(t)}}t.AbstractFilterHash=o},function(e,t,r){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),function(e){for(var r in e)t.hasOwnProperty(r)||(t[r]=e[r])}(r(454))},function(e,t,r){"use strict";var n=r(16).Buffer,i=r(2).Transform;function a(e){i.call(this),this._block=n.allocUnsafe(e),this._blockSize=e,this._blockOffset=0,this._length=[0,0,0,0],this._finalized=!1}r(10)(a,i),a.prototype._transform=function(e,t,r){var n=null;try{this.update(e,t)}catch(e){n=e}r(n)},a.prototype._flush=function(e){var t=null;try{this.push(this.digest())}catch(e){t=e}e(t)},a.prototype.update=function(e,t){if(function(e,t){if(!n.isBuffer(e)&&"string"!=typeof e)throw new TypeError(t+" must be a string or a buffer")}(e,"Data"),this._finalized)throw new Error("Digest already called");n.isBuffer(e)||(e=n.from(e,t));for(var r=this._block,i=0;this._blockOffset+e.length-i>=this._blockSize;){for(var a=this._blockOffset;a0;++o)this._length[o]+=s,(s=this._length[o]/4294967296|0)>0&&(this._length[o]-=4294967296*s);return this},a.prototype._update=function(){throw new Error("_update is not implemented")},a.prototype.digest=function(e){if(this._finalized)throw new Error("Digest already called");this._finalized=!0;var t=this._digest();void 0!==e&&(t=t.toString(e)),this._block.fill(0),this._blockOffset=0;for(var r=0;r<4;++r)this._length[r]=0;return t},a.prototype._digest=function(){throw new Error("_digest is not implemented")},e.exports=a},function(e,t,r){var n=r(10),i=r(40),a=r(16).Buffer,o=[1116352408,1899447441,3049323471,3921009573,961987163,1508970993,2453635748,2870763221,3624381080,310598401,607225278,1426881987,1925078388,2162078206,2614888103,3248222580,3835390401,4022224774,264347078,604807628,770255983,1249150122,1555081692,1996064986,2554220882,2821834349,2952996808,3210313671,3336571891,3584528711,113926993,338241895,666307205,773529912,1294757372,1396182291,1695183700,1986661051,2177026350,2456956037,2730485921,2820302411,3259730800,3345764771,3516065817,3600352804,4094571909,275423344,430227734,506948616,659060556,883997877,958139571,1322822218,1537002063,1747873779,1955562222,2024104815,2227730452,2361852424,2428436474,2756734187,3204031479,3329325298],s=new Array(64);function u(){this.init(),this._w=s,i.call(this,64,56)}function c(e,t,r){return r^e&(t^r)}function l(e,t,r){return e&t|r&(e|t)}function h(e){return(e>>>2|e<<30)^(e>>>13|e<<19)^(e>>>22|e<<10)}function p(e){return(e>>>6|e<<26)^(e>>>11|e<<21)^(e>>>25|e<<7)}function d(e){return(e>>>7|e<<25)^(e>>>18|e<<14)^e>>>3}n(u,i),u.prototype.init=function(){return this._a=1779033703,this._b=3144134277,this._c=1013904242,this._d=2773480762,this._e=1359893119,this._f=2600822924,this._g=528734635,this._h=1541459225,this},u.prototype._update=function(e){for(var t,r=this._w,n=0|this._a,i=0|this._b,a=0|this._c,s=0|this._d,u=0|this._e,f=0|this._f,y=0|this._g,m=0|this._h,g=0;g<16;++g)r[g]=e.readInt32BE(4*g);for(;g<64;++g)r[g]=0|(((t=r[g-2])>>>17|t<<15)^(t>>>19|t<<13)^t>>>10)+r[g-7]+d(r[g-15])+r[g-16];for(var _=0;_<64;++_){var b=m+p(u)+c(u,f,y)+o[_]+r[_]|0,v=h(n)+l(n,i,a)|0;m=y,y=f,f=u,u=s+b|0,s=a,a=i,i=n,n=b+v|0}this._a=n+this._a|0,this._b=i+this._b|0,this._c=a+this._c|0,this._d=s+this._d|0,this._e=u+this._e|0,this._f=f+this._f|0,this._g=y+this._g|0,this._h=m+this._h|0},u.prototype._hash=function(){var e=a.allocUnsafe(32);return e.writeInt32BE(this._a,0),e.writeInt32BE(this._b,4),e.writeInt32BE(this._c,8),e.writeInt32BE(this._d,12),e.writeInt32BE(this._e,16),e.writeInt32BE(this._f,20),e.writeInt32BE(this._g,24),e.writeInt32BE(this._h,28),e},e.exports=u},function(e,t,r){var n=r(10),i=r(40),a=r(16).Buffer,o=[1116352408,3609767458,1899447441,602891725,3049323471,3964484399,3921009573,2173295548,961987163,4081628472,1508970993,3053834265,2453635748,2937671579,2870763221,3664609560,3624381080,2734883394,310598401,1164996542,607225278,1323610764,1426881987,3590304994,1925078388,4068182383,2162078206,991336113,2614888103,633803317,3248222580,3479774868,3835390401,2666613458,4022224774,944711139,264347078,2341262773,604807628,2007800933,770255983,1495990901,1249150122,1856431235,1555081692,3175218132,1996064986,2198950837,2554220882,3999719339,2821834349,766784016,2952996808,2566594879,3210313671,3203337956,3336571891,1034457026,3584528711,2466948901,113926993,3758326383,338241895,168717936,666307205,1188179964,773529912,1546045734,1294757372,1522805485,1396182291,2643833823,1695183700,2343527390,1986661051,1014477480,2177026350,1206759142,2456956037,344077627,2730485921,1290863460,2820302411,3158454273,3259730800,3505952657,3345764771,106217008,3516065817,3606008344,3600352804,1432725776,4094571909,1467031594,275423344,851169720,430227734,3100823752,506948616,1363258195,659060556,3750685593,883997877,3785050280,958139571,3318307427,1322822218,3812723403,1537002063,2003034995,1747873779,3602036899,1955562222,1575990012,2024104815,1125592928,2227730452,2716904306,2361852424,442776044,2428436474,593698344,2756734187,3733110249,3204031479,2999351573,3329325298,3815920427,3391569614,3928383900,3515267271,566280711,3940187606,3454069534,4118630271,4000239992,116418474,1914138554,174292421,2731055270,289380356,3203993006,460393269,320620315,685471733,587496836,852142971,1086792851,1017036298,365543100,1126000580,2618297676,1288033470,3409855158,1501505948,4234509866,1607167915,987167468,1816402316,1246189591],s=new Array(160);function u(){this.init(),this._w=s,i.call(this,128,112)}function c(e,t,r){return r^e&(t^r)}function l(e,t,r){return e&t|r&(e|t)}function h(e,t){return(e>>>28|t<<4)^(t>>>2|e<<30)^(t>>>7|e<<25)}function p(e,t){return(e>>>14|t<<18)^(e>>>18|t<<14)^(t>>>9|e<<23)}function d(e,t){return(e>>>1|t<<31)^(e>>>8|t<<24)^e>>>7}function f(e,t){return(e>>>1|t<<31)^(e>>>8|t<<24)^(e>>>7|t<<25)}function y(e,t){return(e>>>19|t<<13)^(t>>>29|e<<3)^e>>>6}function m(e,t){return(e>>>19|t<<13)^(t>>>29|e<<3)^(e>>>6|t<<26)}function g(e,t){return e>>>0>>0?1:0}n(u,i),u.prototype.init=function(){return this._ah=1779033703,this._bh=3144134277,this._ch=1013904242,this._dh=2773480762,this._eh=1359893119,this._fh=2600822924,this._gh=528734635,this._hh=1541459225,this._al=4089235720,this._bl=2227873595,this._cl=4271175723,this._dl=1595750129,this._el=2917565137,this._fl=725511199,this._gl=4215389547,this._hl=327033209,this},u.prototype._update=function(e){for(var t=this._w,r=0|this._ah,n=0|this._bh,i=0|this._ch,a=0|this._dh,s=0|this._eh,u=0|this._fh,_=0|this._gh,b=0|this._hh,v=0|this._al,w=0|this._bl,E=0|this._cl,S=0|this._dl,T=0|this._el,x=0|this._fl,O=0|this._gl,R=0|this._hl,A=0;A<32;A+=2)t[A]=e.readInt32BE(4*A),t[A+1]=e.readInt32BE(4*A+4);for(;A<160;A+=2){var I=t[A-30],P=t[A-30+1],N=d(I,P),C=f(P,I),j=y(I=t[A-4],P=t[A-4+1]),D=m(P,I),k=t[A-14],L=t[A-14+1],M=t[A-32],F=t[A-32+1],q=C+L|0,B=N+k+g(q,C)|0;B=(B=B+j+g(q=q+D|0,D)|0)+M+g(q=q+F|0,F)|0,t[A]=B,t[A+1]=q}for(var U=0;U<160;U+=2){B=t[U],q=t[U+1];var V=l(r,n,i),H=l(v,w,E),G=h(r,v),z=h(v,r),Q=p(s,T),$=p(T,s),X=o[U],Y=o[U+1],J=c(s,u,_),W=c(T,x,O),K=R+$|0,Z=b+Q+g(K,R)|0;Z=(Z=(Z=Z+J+g(K=K+W|0,W)|0)+X+g(K=K+Y|0,Y)|0)+B+g(K=K+q|0,q)|0;var ee=z+H|0,te=G+V+g(ee,z)|0;b=_,R=O,_=u,O=x,u=s,x=T,s=a+Z+g(T=S+K|0,S)|0,a=i,S=E,i=n,E=w,n=r,w=v,r=Z+te+g(v=K+ee|0,K)|0}this._al=this._al+v|0,this._bl=this._bl+w|0,this._cl=this._cl+E|0,this._dl=this._dl+S|0,this._el=this._el+T|0,this._fl=this._fl+x|0,this._gl=this._gl+O|0,this._hl=this._hl+R|0,this._ah=this._ah+r+g(this._al,v)|0,this._bh=this._bh+n+g(this._bl,w)|0,this._ch=this._ch+i+g(this._cl,E)|0,this._dh=this._dh+a+g(this._dl,S)|0,this._eh=this._eh+s+g(this._el,T)|0,this._fh=this._fh+u+g(this._fl,x)|0,this._gh=this._gh+_+g(this._gl,O)|0,this._hh=this._hh+b+g(this._hl,R)|0},u.prototype._hash=function(){var e=a.allocUnsafe(64);function t(t,r,n){e.writeInt32BE(t,n),e.writeInt32BE(r,n+4)}return t(this._ah,this._al,0),t(this._bh,this._bl,8),t(this._ch,this._cl,16),t(this._dh,this._dl,24),t(this._eh,this._el,32),t(this._fh,this._fl,40),t(this._gh,this._gl,48),t(this._hh,this._hl,56),e},e.exports=u},function(e,t,r){"use strict";Object.defineProperty(t,"__esModule",{value:!0});const n=r(39),i=r(18),a=r(57),o={term:(e,t)=>e,variable(e,t){const r=t.get(e.name);if(!r)throw new i.UnboundVariableError(e.name,t);return a.transformRDFTermUnsafe(r)}};t.AsyncRecursiveEvaluator=class{constructor(e){this.context=e,this.subEvaluators={[n.ExpressionType.Term]:o.term,[n.ExpressionType.Variable]:o.variable,[n.ExpressionType.Operator]:this.evalOperator,[n.ExpressionType.SpecialOperator]:this.evalSpecialOperator,[n.ExpressionType.Named]:this.evalNamed,[n.ExpressionType.Existence]:this.evalExistence,[n.ExpressionType.Aggregate]:this.evalAggregate}}async evaluate(e,t){const r=this.subEvaluators[e.expressionType];if(!r)throw new i.InvalidExpressionType(e);return r.bind(this)(e,t)}async evalOperator(e,t){const r=e.args.map(e=>this.evaluate(e,t)),n=await Promise.all(r);return e.apply(n)}async evalSpecialOperator(e,t){const r=this.evaluate.bind(this),n={args:e.args,mapping:t,evaluate:r,context:{now:this.context.now,baseIRI:this.context.baseIRI,bnode:this.context.bnode}};return e.applyAsync(n)}async evalNamed(e,t){const r=e.args.map(e=>this.evaluate(e,t)),n=await Promise.all(r);return e.apply(n)}async evalExistence(e,t){if(!this.context.exists)throw new i.NoExistenceHook;return new n.BooleanLiteral(await this.context.exists(e.expression,t))}async evalAggregate(e,t){if(!this.context.aggregate)throw new i.NoExistenceHook;return a.transformRDFTermUnsafe(await this.context.aggregate(e.expression))}};t.SyncRecursiveEvaluator=class{constructor(e){this.context=e,this.subEvaluators={[n.ExpressionType.Term]:o.term,[n.ExpressionType.Variable]:o.variable,[n.ExpressionType.Operator]:this.evalOperator,[n.ExpressionType.SpecialOperator]:this.evalSpecialOperator,[n.ExpressionType.Named]:this.evalNamed,[n.ExpressionType.Existence]:this.evalExistence,[n.ExpressionType.Aggregate]:this.evalAggregate}}evaluate(e,t){const r=this.subEvaluators[e.expressionType];if(!r)throw new i.InvalidExpressionType(e);return r.bind(this)(e,t)}evalOperator(e,t){const r=e.args.map(e=>this.evaluate(e,t));return e.apply(r)}evalSpecialOperator(e,t){const r=this.evaluate.bind(this),n={args:e.args,mapping:t,evaluate:r,context:{now:this.context.now,baseIRI:this.context.baseIRI,bnode:this.context.bnode}};return e.applySync(n)}evalNamed(e,t){const r=e.args.map(e=>this.evaluate(e,t));return e.apply(r)}evalExistence(e,t){if(!this.context.exists)throw new i.NoExistenceHook;return new n.BooleanLiteral(this.context.exists(e.expression,t))}evalAggregate(e,t){if(!this.context.aggregate)throw new i.NoAggregator;return a.transformRDFTermUnsafe(this.context.aggregate(e.expression))}};class s extends Error{constructor(e){super(`Operation '${e}' is unsupported in SimpleEvaluator`)}}t.UnsupportedOperation=s},function(e,t,r){"use strict";Object.defineProperty(t,"__esModule",{value:!0});const n=r(57),i=r(192);t.SyncEvaluator=class{constructor(e,t={}){this.algExpr=e,this.config=t,this.expr=n.transformAlgebra(e);const r={now:t.now||new Date(Date.now()),baseIRI:t.baseIRI||void 0,exists:t.exists,aggregate:t.aggregate};this.evaluator=new i.SyncRecursiveEvaluator(r)}evaluate(e){return this.evaluator.evaluate(this.expr,e).toRDF()}evaluateAsEBV(e){return this.evaluator.evaluate(this.expr,e).coerceEBV()}evaluateAsInternal(e){return this.evaluator.evaluate(this.expr,e)}}},function(e,t,r){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),function(e){for(var r in e)t.hasOwnProperty(r)||(t[r]=e[r])}(r(479))},function(e,t,r){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),function(e){for(var r in e)t.hasOwnProperty(r)||(t[r]=e[r])}(r(480))},function(e,t,r){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),function(e){for(var r in e)t.hasOwnProperty(r)||(t[r]=e[r])}(r(481))},function(e,t,r){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),function(e){for(var r in e)t.hasOwnProperty(r)||(t[r]=e[r])}(r(483))},function(e,t,r){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),function(e){for(var r in e)t.hasOwnProperty(r)||(t[r]=e[r])}(r(485))},function(e,t,r){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),function(e){for(var r in e)t.hasOwnProperty(r)||(t[r]=e[r])}(r(486))},function(e,t,r){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),function(e){for(var r in e)t.hasOwnProperty(r)||(t[r]=e[r])}(r(487))},function(e,t,r){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),function(e){for(var r in e)t.hasOwnProperty(r)||(t[r]=e[r])}(r(489))},function(e,t,r){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),function(e){for(var r in e)t.hasOwnProperty(r)||(t[r]=e[r])}(r(490))},function(e,t,r){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),function(e){for(var r in e)t.hasOwnProperty(r)||(t[r]=e[r])}(r(492))},function(e,t,r){"use strict";Object.defineProperty(t,"__esModule",{value:!0});const n=r(3),i=r(1),a=r(4),o=r(5),s=r(7);class u extends n.ActorQueryOperationTypedMediated{constructor(e,t){super(e,"path"),this.predicateType=t}async testOperation(e,t){if(e.predicate.type!==this.predicateType)throw new Error("This Actor only supports "+this.predicateType+" Path operations.");return!0}generateBlankNode(e,t){return t?!e||e.subject.value!==t&&e.object.value!==t?i.blankNode(t):this.generateBlankNode(e,t+"b"):this.generateBlankNode(e,"b")}async ALPeval(e,t,r){const n=new a.BufferedIterator;return await this.ALP(e,t,r,{},n,{count:0}),n}async ALP(e,t,r,i,a,s){const c=o.termToString(e);if(i[c])return;a._push(e),i[c]=e;const l=this.generateBlankNode(),h=o.termToString(l),p=u.FACTORY.createPath(e,t,l),d=n.ActorQueryOperation.getSafeBindings(await this.mediatorQueryOperation.mediate({operation:p,context:r}));s.count++,d.bindingsStream.on("data",async e=>{const n=e.get(h);await this.ALP(n,t,r,i,a,s)}),d.bindingsStream.on("end",()=>{0==--s.count&&a.close()})}}t.ActorAbstractPath=u,u.FACTORY=new s.Factory},function(e,t,r){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),function(e){for(var r in e)t.hasOwnProperty(r)||(t[r]=e[r])}(r(493))},function(e,t,r){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),function(e){for(var r in e)t.hasOwnProperty(r)||(t[r]=e[r])}(r(494))},function(e,t,r){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),function(e){for(var r in e)t.hasOwnProperty(r)||(t[r]=e[r])}(r(495))},function(e,t,r){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),function(e){for(var r in e)t.hasOwnProperty(r)||(t[r]=e[r])}(r(496))},function(e,t,r){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),function(e){for(var r in e)t.hasOwnProperty(r)||(t[r]=e[r])}(r(497))},function(e,t,r){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),function(e){for(var r in e)t.hasOwnProperty(r)||(t[r]=e[r])}(r(498))},function(e,t,r){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),function(e){for(var r in e)t.hasOwnProperty(r)||(t[r]=e[r])}(r(499))},function(e,t,r){const n=new(r(88).LoggerVoid)({}),i=new(r(0).Bus)({name:"https://linkedsoftwaredependencies.org/bundles/npm/@comunica/bus-init/Bus/Init"}),a=new(r(0).Bus)({name:"https://linkedsoftwaredependencies.org/bundles/npm/@comunica/bus-http/Bus/Http"}),o=new(r(0).Bus)({name:"https://linkedsoftwaredependencies.org/bundles/npm/@comunica/bus-rdf-parse/Bus/RdfParse"}),s=new(r(0).Bus)({name:"https://linkedsoftwaredependencies.org/bundles/npm/@comunica/bus-rdf-dereference/Bus/RdfDereference"}),u=new(r(0).Bus)({name:"https://linkedsoftwaredependencies.org/bundles/npm/@comunica/bus-rdf-join/Bus/RdfJoin"}),c=new(r(0).Bus)({name:"https://linkedsoftwaredependencies.org/bundles/npm/@comunica/bus-rdf-parse-html/Bus/RdfParseHtml"}),l=new(r(0).Bus)({name:"https://linkedsoftwaredependencies.org/bundles/npm/@comunica/bus-rdf-resolve-quad-pattern/Bus/RdfResolveQuadPattern"}),h=new(r(0).Bus)({name:"https://linkedsoftwaredependencies.org/bundles/npm/@comunica/bus-rdf-metadata/Bus/RdfMetadata"}),p=new(r(0).Bus)({name:"https://linkedsoftwaredependencies.org/bundles/npm/@comunica/bus-rdf-metadata-extract/Bus/RdfMetadataExtract"}),d=new(r(0).Bus)({name:"https://linkedsoftwaredependencies.org/bundles/npm/@comunica/bus-rdf-resolve-hypermedia/Bus/RdfResolveHypermedia"}),f=new(r(0).Bus)({name:"https://linkedsoftwaredependencies.org/bundles/npm/@comunica/bus-rdf-resolve-hypermedia-links/Bus/RdfResolveHypermediaLinks"}),y=new(r(0).Bus)({name:"https://linkedsoftwaredependencies.org/bundles/npm/@comunica/bus-http-invalidate/Bus/HttpInvalidate"}),m=new(r(0).Bus)({name:"https://linkedsoftwaredependencies.org/bundles/npm/@comunica/bus-optimize-query-operation/Bus/OptimizeQueryOperation"}),g=new(r(0).Bus)({name:"https://linkedsoftwaredependencies.org/bundles/npm/@comunica/bus-sparql-parse/Bus/SparqlParse"}),_=new(r(0).Bus)({name:"https://linkedsoftwaredependencies.org/bundles/npm/@comunica/bus-sparql-serialize/Bus/SparqlSerialize"}),b=new(r(0).Bus)({name:"https://linkedsoftwaredependencies.org/bundles/npm/@comunica/bus-context-preprocess/Bus/ContextPreprocess"}),v=new(r(0).BusIndexed)({actorIdentifierFields:["operationName"],actionIdentifierFields:["operation","type"],name:"https://linkedsoftwaredependencies.org/bundles/npm/@comunica/bus-query-operation/Bus/QueryOperation"}),w=new(r(226).ActorHttpSolidAuthFetch)({name:"https://linkedsoftwaredependencies.org/bundles/npm/@comunica/actor-init-sparql/^1.0.0/config/sets/http.json#myHttpFetcher",bus:a}),E=new(r(35).MediatorNumber)({field:"time",type:"https://linkedsoftwaredependencies.org/bundles/npm/@comunica/mediator-number/Mediator/Number/type/TypeMin",ignoreErrors:!0,name:"https://linkedsoftwaredependencies.org/bundles/npm/@comunica/actor-init-sparql/^1.0.0/config/sets/http.json#mediatorHttp",bus:a}),S=new(r(13).MediatorCombineUnion)({field:"mediaTypes",name:"https://linkedsoftwaredependencies.org/bundles/npm/@comunica/actor-init-sparql/^1.0.0/config/sets/rdf-dereference.json#mediatorRdfParseMediatypes",bus:o}),T=new(r(9).MediatorRace)({name:"https://linkedsoftwaredependencies.org/bundles/npm/@comunica/actor-init-sparql/^1.0.0/config/sets/rdf-dereference.json#mediatorRdfParseHandle",bus:o}),x=new(r(99).ActorRdfParseN3)({mediaTypes:{"application/n-quads":"1.0","application/trig":"0.95","application/n-triples":"0.8","text/turtle":"0.5","text/n3":"0.35"},mediaTypeFormats:{"application/n-quads":"http://www.w3.org/ns/formats/N-Quads","application/trig":"http://www.w3.org/ns/formats/TriG","application/n-triples":"http://www.w3.org/ns/formats/N-Triples","text/turtle":"http://www.w3.org/ns/formats/Turtle","text/n3":"http://www.w3.org/ns/formats/N3"},priorityScale:"1",name:"https://linkedsoftwaredependencies.org/bundles/npm/@comunica/actor-init-sparql/^1.0.0/config/sets/rdf-parsers.json#myRdfParserN3",bus:o}),O=new(r(101).ActorRdfParseRdfXml)({mediaTypes:{"application/rdf+xml":"1.0"},mediaTypeFormats:{"application/rdf+xml":"http://www.w3.org/ns/formats/RDF_XML"},priorityScale:"5.0E-1",name:"https://linkedsoftwaredependencies.org/bundles/npm/@comunica/actor-init-sparql/^1.0.0/config/sets/rdf-parsers.json#myRdfParserRdfXml",bus:o}),R=new(r(103).ActorRdfParseXmlRdfa)({mediaTypes:{"application/xml":"1.0","text/xml":"1.0","image/svg+xml":"1.0"},mediaTypeFormats:{"application/xml":"http://www.w3.org/ns/formats/RDFa","text/xml":"http://www.w3.org/ns/formats/RDFa","image/svg+xml":"http://www.w3.org/ns/formats/RDFa"},priorityScale:"3.0E-1",name:"https://linkedsoftwaredependencies.org/bundles/npm/@comunica/actor-init-sparql/^1.0.0/config/sets/rdf-parsers.json#myRdfParserXmlRdfa",bus:o}),A=new(r(13).MediatorCombineUnion)({field:"mediaTypes",name:"https://linkedsoftwaredependencies.org/bundles/npm/@comunica/actor-init-sparql/^1.0.0/config/sets/rdf-parsers.json#mediatorRdfParseMediatypes",bus:o}),I=new(r(9).MediatorRace)({name:"https://linkedsoftwaredependencies.org/bundles/npm/@comunica/actor-init-sparql/^1.0.0/config/sets/rdf-parsers.json#mediatorRdfParseHandle",bus:o}),P=new(r(9).MediatorRace)({name:"https://linkedsoftwaredependencies.org/bundles/npm/@comunica/actor-init-sparql/^1.0.0/config/sets/resolve-hypermedia.json#mediatorRdfDereference",bus:s}),N=new(r(9).MediatorRace)({name:"https://linkedsoftwaredependencies.org/bundles/npm/@comunica/actor-init-sparql/^1.0.0/config/sets/sparql-queryoperators.json#mediatorRdfJoin",bus:u}),C=new(r(117).ActorRdfJoinSymmetricHash)({name:"https://linkedsoftwaredependencies.org/bundles/npm/@comunica/actor-init-sparql/^1.0.0/config/sets/join.json#myRdfJoinActor",bus:u}),j=new(r(119).ActorRdfParseHtml)({busRdfParseHtml:c,mediaTypes:{"text/html":"1.0","application/xhtml+xml":"0.9"},mediaTypeFormats:{"text/html":"http://www.w3.org/ns/formats/HTML","application/xhtml+xml":"http://www.w3.org/ns/formats/HTML"},priorityScale:"2.0E-1",name:"https://linkedsoftwaredependencies.org/bundles/npm/@comunica/actor-init-sparql/^1.0.0/config/sets/rdf-parsers.json#myRdfParserHtml",bus:o}),D=new(r(120).ActorRdfParseHtmlRdfa)({name:"https://linkedsoftwaredependencies.org/bundles/npm/@comunica/actor-init-sparql/^1.0.0/config/sets/rdf-parsers.json#myRdfParserHtmlRdfa",bus:c}),k=new(r(9).MediatorRace)({name:"https://linkedsoftwaredependencies.org/bundles/npm/@comunica/actor-init-sparql/^1.0.0/config/sets/sparql-queryoperators.json#mediatorResolveQuadPattern",bus:l}),L=new(r(122).ActorRdfResolveQuadPatternRdfJsSource)({name:"config-sets:resolve-file.json#myRdfRdfJsSourceQuadPatternResolver",bus:l}),M=new(r(9).MediatorRace)({name:"https://linkedsoftwaredependencies.org/bundles/npm/@comunica/actor-init-sparql/^1.0.0/config/sets/resolve-hypermedia.json#mediatorMetadata",bus:h}),F=new(r(124).ActorRdfMetadataPrimaryTopic)({metadataToData:!1,dataToMetadataOnInvalidMetadataGraph:!0,name:"https://linkedsoftwaredependencies.org/bundles/npm/@comunica/actor-init-sparql/^1.0.0/config/sets/resolve-hypermedia.json#myRdfMetadataPrimaryTopic",bus:h}),q=new(r(127).ActorRdfMetadataAll)({name:"https://linkedsoftwaredependencies.org/bundles/npm/@comunica/actor-init-sparql/^1.0.0/config/sets/resolve-hypermedia.json#myRdfMetadataAll",bus:h}),B=new(r(13).MediatorCombineUnion)({field:"metadata",name:"https://linkedsoftwaredependencies.org/bundles/npm/@comunica/actor-init-sparql/^1.0.0/config/sets/resolve-hypermedia.json#mediatorMetadataExtract",bus:p}),U=new(r(128).ActorRdfMetadataExtractHydraControls)({name:"https://linkedsoftwaredependencies.org/bundles/npm/@comunica/actor-init-sparql/^1.0.0/config/sets/resolve-hypermedia.json#myRdfMetadataExtractHydraControls",bus:p}),V=new(r(137).ActorRdfMetadataExtractHydraCount)({predicates:["http://www.w3.org/ns/hydra/core#totalItems","http://rdfs.org/ns/void#triples"],name:"https://linkedsoftwaredependencies.org/bundles/npm/@comunica/actor-init-sparql/^1.0.0/config/sets/resolve-hypermedia.json#myRdfMetadataExtractHydraCount",bus:p}),H=new(r(138).ActorRdfMetadataExtractSparqlService)({name:"https://linkedsoftwaredependencies.org/bundles/npm/@comunica/actor-init-sparql/^1.0.0/config/sets/resolve-sparql.json#myRdfMetadataExtractSparqlService",bus:p}),G=new(r(139).ActorRdfResolveHypermediaNone)({name:"https://linkedsoftwaredependencies.org/bundles/npm/@comunica/actor-init-sparql/^1.0.0/config/sets/resolve-hypermedia.json#myHypermediaNoneResolver",bus:d}),z=new(r(35).MediatorNumber)({field:"filterFactor",type:"https://linkedsoftwaredependencies.org/bundles/npm/@comunica/mediator-number/Mediator/Number/type/TypeMax",ignoreErrors:!0,name:"https://linkedsoftwaredependencies.org/bundles/npm/@comunica/actor-init-sparql/^1.0.0/config/sets/resolve-hypermedia.json#mediatorRdfResolveHypermedia",bus:d}),Q=new(r(9).MediatorRace)({name:"https://linkedsoftwaredependencies.org/bundles/npm/@comunica/actor-init-sparql/^1.0.0/config/sets/resolve-hypermedia.json#mediatorRdfResolveHypermediaLinks",bus:f}),$=new(r(140).ActorRdfResolveHypermediaLinksNext)({name:"https://linkedsoftwaredependencies.org/bundles/npm/@comunica/actor-init-sparql/^1.0.0/config/sets/resolve-hypermedia.json#myHypermediaLinksNext",bus:f}),X=new(r(141).ActorHttpInvalidateListenable)({name:"https://linkedsoftwaredependencies.org/bundles/npm/@comunica/actor-rdf-resolve-quad-pattern-hypermedia/Actor/RdfResolveQuadPattern/Hypermedia/httpInvalidator#default",bus:y}),Y=new(r(143).MediatorAll)({name:"https://linkedsoftwaredependencies.org/bundles/npm/@comunica/actor-init-sparql/^1.0.0/config/sets/sparql-init.json#mediatorHttpInvalidate",bus:y}),J=new(r(144).ActorOptimizeQueryOperationJoinBgp)({name:"https://linkedsoftwaredependencies.org/bundles/npm/@comunica/actor-init-sparql/^1.0.0/config/sets/sparql-optimize.json#myJoinBgpOptimizer",bus:m}),W=new(r(54).MediatorCombinePipeline)({name:"https://linkedsoftwaredependencies.org/bundles/npm/@comunica/actor-init-sparql/^1.0.0/config/sets/sparql-init.json#mediatorOptimizeQueryOperation",bus:m}),K=new(r(146).ActorSparqlParseAlgebra)({prefixes:{rdf:"http://www.w3.org/1999/02/22-rdf-syntax-ns#",rdfs:"http://www.w3.org/2000/01/rdf-schema#",owl:"http://www.w3.org/2002/07/owl#",xsd:"http://www.w3.org/2001/XMLSchema#",dc:"http://purl.org/dc/terms/",dcterms:"http://purl.org/dc/terms/",dc11:"http://purl.org/dc/elements/1.1/",foaf:"http://xmlns.com/foaf/0.1/",geo:"http://www.w3.org/2003/01/geo/wgs84_pos#",dbpedia:"http://dbpedia.org/resource/","dbpedia-owl":"http://dbpedia.org/ontology/",dbpprop:"http://dbpedia.org/property/",schema:"http://schema.org/",skos:"http://www.w3.org/2008/05/skos#"},name:"https://linkedsoftwaredependencies.org/bundles/npm/@comunica/actor-init-sparql/^1.0.0/config/sets/sparql-parsers.json#mySparqlParser",bus:g}),Z=new(r(9).MediatorRace)({name:"https://linkedsoftwaredependencies.org/bundles/npm/@comunica/actor-init-sparql/^1.0.0/config/sets/sparql-init.json#mediatorSparqlParse",bus:g}),ee=new(r(9).MediatorRace)({name:"https://linkedsoftwaredependencies.org/bundles/npm/@comunica/actor-init-sparql/^1.0.0/config/sets/sparql-init.json#mediatorSparqlSerialize",bus:_}),te=new(r(13).MediatorCombineUnion)({field:"mediaTypes",name:"_:b0bnode251",bus:_}),re=new(r(13).MediatorCombineUnion)({field:"mediaTypeFormats",name:"_:b1bnode251",bus:_}),ne=new(r(54).MediatorCombinePipeline)({name:"https://linkedsoftwaredependencies.org/bundles/npm/@comunica/actor-init-sparql/^1.0.0/config/sets/sparql-init.json#mediatorContextPreprocess",bus:b}),ie=new(r(35).MediatorNumber)({field:"httpRequests",type:"https://linkedsoftwaredependencies.org/bundles/npm/@comunica/mediator-number/Mediator/Number/type/TypeMin",ignoreErrors:!0,name:"https://linkedsoftwaredependencies.org/bundles/npm/@comunica/actor-init-sparql/^1.0.0/config/sets/sparql-queryoperators.json#mediatorQueryOperation",bus:v}),ae=new(r(148).ActorQueryOperationBgpEmpty)({name:"https://linkedsoftwaredependencies.org/bundles/npm/@comunica/actor-init-sparql/^1.0.0/config/sets/sparql-queryoperators.json#myEmptyBgpQueryOperator",bus:v}),oe=new(r(152).ActorQueryOperationValues)({name:"https://linkedsoftwaredependencies.org/bundles/npm/@comunica/actor-init-sparql/^1.0.0/config/sets/sparql-queryoperators.json#myValuesQueryOperator",bus:v}),se=new(r(153).ActorRdfParseJsonLd)({mediatorHttp:E,mediaTypes:{"application/ld+json":"1.0","application/json":"0.5"},mediaTypeFormats:{"application/ld+json":"http://www.w3.org/ns/formats/JSON-LD","application/json":"http://www.w3.org/ns/formats/JSON-LD"},priorityScale:"9.0E-1",name:"https://linkedsoftwaredependencies.org/bundles/npm/@comunica/actor-init-sparql/^1.0.0/config/sets/rdf-parsers.json#myRdfParserJsonLd",bus:o}),ue=new(r(156).ActorRdfResolveHypermediaSparql)({mediatorHttp:E,checkUrlSuffix:!0,name:"https://linkedsoftwaredependencies.org/bundles/npm/@comunica/actor-init-sparql/^1.0.0/config/sets/resolve-sparql.json#mySparqlQuadPatternResolver",bus:d}),ce=new(r(157).ActorQueryOperationSparqlEndpoint)({mediatorHttp:E,name:"https://linkedsoftwaredependencies.org/bundles/npm/@comunica/actor-init-sparql/^1.0.0/config/sets/resolve-sparql.json#mySparqlEndpointResolver",bus:v}),le=new(r(159).ActorRdfDereferenceHttpParse)({mediatorHttp:E,mediatorRdfParseMediatypes:S,mediatorRdfParseHandle:T,maxAcceptHeaderLength:1024,maxAcceptHeaderLengthBrowser:128,mediaMappings:{ttl:"text/turtle",turtle:"text/turtle",nt:"application/n-triples",ntriples:"application/n-triples",nq:"application/n-quads",nquads:"application/n-quads",rdf:"application/rdf+xml",rdfxml:"application/rdf+xml",owl:"application/rdf+xml",n3:"text/n3",trig:"application/trig",jsonld:"application/ld+json",json:"application/json",html:"text/html",htm:"text/html",xhtml:"application/xhtml+xml",xht:"application/xhtml+xml",xml:"application/xml",svg:"image/svg+xml",svgz:"image/svg+xml"},name:"https://linkedsoftwaredependencies.org/bundles/npm/@comunica/actor-init-sparql/^1.0.0/config/sets/rdf-dereference.json#myRdfDereferencer",bus:s}),he=new(r(162).ActorRdfParseHtmlScript)({mediatorRdfParseMediatypes:A,mediatorRdfParseHandle:I,name:"https://linkedsoftwaredependencies.org/bundles/npm/@comunica/actor-init-sparql/^1.0.0/config/sets/rdf-parsers.json#myRdfParserHtmlScript",bus:c}),pe=new(r(163).ActorRdfJoinMultiSmallest)({mediatorJoin:N,name:"https://linkedsoftwaredependencies.org/bundles/npm/@comunica/actor-init-sparql/^1.0.0/config/sets/join.json#myRdfJoinMultiActor",bus:u}),de=new(r(164).ActorRdfResolveQuadPatternFederated)({mediatorResolveQuadPattern:k,skipEmptyPatterns:!1,name:"https://linkedsoftwaredependencies.org/bundles/npm/@comunica/actor-init-sparql/^1.0.0/config/sets/resolve-federated.json#myFederatedQuadPatternResolver",bus:l}),fe=new(r(167).ActorQueryOperationQuadpattern)({mediatorResolveQuadPattern:k,name:"https://linkedsoftwaredependencies.org/bundles/npm/@comunica/actor-init-sparql/^1.0.0/config/sets/sparql-queryoperators.json#myQuadPatternQueryOperator",bus:v}),ye=new(r(168).ActorRdfResolveHypermediaQpf)({mediatorMetadata:M,mediatorMetadataExtract:B,mediatorRdfDereference:P,subjectUri:"http://www.w3.org/1999/02/22-rdf-syntax-ns#subject",predicateUri:"http://www.w3.org/1999/02/22-rdf-syntax-ns#predicate",objectUri:"http://www.w3.org/1999/02/22-rdf-syntax-ns#object",graphUri:"http://www.w3.org/ns/sparql-service-description#graph",name:"https://linkedsoftwaredependencies.org/bundles/npm/@comunica/actor-init-sparql/^1.0.0/config/sets/resolve-hypermedia.json#myHypermediaQpfResolver",bus:d}),me=new(r(169).ActorRdfResolveQuadPatternHypermedia)({mediatorRdfDereference:P,mediatorMetadata:M,mediatorMetadataExtract:B,mediatorRdfResolveHypermedia:z,mediatorRdfResolveHypermediaLinks:Q,cacheSize:100,httpInvalidator:X,name:"https://linkedsoftwaredependencies.org/bundles/npm/@comunica/actor-init-sparql/^1.0.0/config/sets/resolve-hypermedia.json#myQuadPatternHypermediaResolver",bus:l}),ge=new(r(171).ActorInitSparql)({mediatorOptimizeQueryOperation:W,mediatorQueryOperation:ie,mediatorSparqlParse:Z,mediatorSparqlSerialize:ee,mediatorSparqlSerializeMediaTypeCombiner:te,mediatorSparqlSerializeMediaTypeFormatCombiner:re,mediatorContextPreprocess:ne,mediatorHttpInvalidate:Y,logger:n,contextKeyShortcuts:{source:"@comunica/bus-rdf-resolve-quad-pattern:source",sources:"@comunica/bus-rdf-resolve-quad-pattern:sources",initialBindings:"@comunica/actor-init-sparql:initialBindings",queryFormat:"@comunica/actor-init-sparql:queryFormat",baseIRI:"@comunica/actor-init-sparql:baseIRI",log:"@comunica/core:log",datetime:"@comunica/actor-http-memento:datetime",queryTimestamp:"@comunica/actor-init-sparql:queryTimestamp",httpProxyHandler:"@comunica/actor-http-proxy:httpProxyHandler",lenient:"@comunica/actor-init-sparql:lenient"},name:"urn:comunica:sparqlinit",bus:i});new(r(178).ActorQueryOperationAsk)({mediatorQueryOperation:ie,name:"https://linkedsoftwaredependencies.org/bundles/npm/@comunica/actor-init-sparql/^1.0.0/config/sets/sparql-queryoperators.json#myAskQueryOperator",bus:v}),new(r(179).ActorQueryOperationService)({forceSparqlEndpoint:!1,mediatorQueryOperation:ie,name:"https://linkedsoftwaredependencies.org/bundles/npm/@comunica/actor-init-sparql/^1.0.0/config/sets/sparql-queryoperators.json#myServiceQueryOperator",bus:v}),new(r(180).ActorQueryOperationSlice)({mediatorQueryOperation:ie,name:"https://linkedsoftwaredependencies.org/bundles/npm/@comunica/actor-init-sparql/^1.0.0/config/sets/sparql-queryoperators.json#mySliceQueryOperator",bus:v}),new(r(181).ActorQueryOperationBgpSingle)({mediatorQueryOperation:ie,name:"https://linkedsoftwaredependencies.org/bundles/npm/@comunica/actor-init-sparql/^1.0.0/config/sets/sparql-queryoperators.json#mySingleBgpQueryOperator",bus:v}),new(r(182).ActorQueryOperationBgpLeftDeepSmallest)({mediatorQueryOperation:ie,name:"https://linkedsoftwaredependencies.org/bundles/npm/@comunica/actor-init-sparql/^1.0.0/config/sets/sparql-queryoperators.json#myLeftDeepSmallestBgpQueryOperator",bus:v}),new(r(184).ActorQueryOperationConstruct)({mediatorQueryOperation:ie,name:"https://linkedsoftwaredependencies.org/bundles/npm/@comunica/actor-init-sparql/^1.0.0/config/sets/sparql-queryoperators.json#myConstructQueryOperator",bus:v}),new(r(185).ActorQueryOperationDescribeSubject)({mediatorQueryOperation:ie,name:"https://linkedsoftwaredependencies.org/bundles/npm/@comunica/actor-init-sparql/^1.0.0/config/sets/sparql-queryoperators.json#myDescribeQueryOperator",bus:v}),new(r(186).ActorQueryOperationDistinctHash)({hashAlgorithm:"sha1",digestAlgorithm:"base64",mediatorQueryOperation:ie,name:"https://linkedsoftwaredependencies.org/bundles/npm/@comunica/actor-init-sparql/^1.0.0/config/sets/sparql-queryoperators.json#myDistinctQueryOperator",bus:v}),new(r(188).ActorQueryOperationExtend)({mediatorQueryOperation:ie,name:"https://linkedsoftwaredependencies.org/bundles/npm/@comunica/actor-init-sparql/^1.0.0/config/sets/sparql-queryoperators.json#myExtendQueryOperator",bus:v}),new(r(194).ActorQueryOperationReducedHash)({hashAlgorithm:"sha1",digestAlgorithm:"base64",cacheSize:100,mediatorQueryOperation:ie,name:"https://linkedsoftwaredependencies.org/bundles/npm/@comunica/actor-init-sparql/^1.0.0/config/sets/sparql-queryoperators.json#myReducedQueryOperator",bus:v}),new(r(195).ActorQueryOperationFilterSparqlee)({mediatorQueryOperation:ie,name:"https://linkedsoftwaredependencies.org/bundles/npm/@comunica/actor-init-sparql/^1.0.0/config/sets/sparql-queryoperators.json#myFilterQueryOperator",bus:v}),new(r(196).ActorQueryOperationFromQuad)({mediatorQueryOperation:ie,name:"https://linkedsoftwaredependencies.org/bundles/npm/@comunica/actor-init-sparql/^1.0.0/config/sets/sparql-queryoperators.json#myFromQueryOperator",bus:v}),new(r(197).ActorQueryOperationGroup)({mediatorQueryOperation:ie,name:"https://linkedsoftwaredependencies.org/bundles/npm/@comunica/actor-init-sparql/^1.0.0/config/sets/sparql-queryoperators.json#myGroupQueryOperator",bus:v}),new(r(198).ActorQueryOperationJoin)({mediatorJoin:N,mediatorQueryOperation:ie,name:"https://linkedsoftwaredependencies.org/bundles/npm/@comunica/actor-init-sparql/^1.0.0/config/sets/sparql-queryoperators.json#myJoinQueryOperator",bus:v}),new(r(199).ActorQueryOperationLeftJoinLeftDeep)({mediatorQueryOperation:ie,name:"https://linkedsoftwaredependencies.org/bundles/npm/@comunica/actor-init-sparql/^1.0.0/config/sets/sparql-queryoperators.json#myLeftJoinQueryOperator",bus:v}),new(r(200).ActorQueryOperationOrderBySparqlee)({mediatorQueryOperation:ie,name:"https://linkedsoftwaredependencies.org/bundles/npm/@comunica/actor-init-sparql/^1.0.0/config/sets/sparql-queryoperators.json#myOrderByQueryOperator",bus:v}),new(r(201).ActorQueryOperationProject)({mediatorQueryOperation:ie,name:"https://linkedsoftwaredependencies.org/bundles/npm/@comunica/actor-init-sparql/^1.0.0/config/sets/sparql-queryoperators.json#myProjectQueryOperator",bus:v}),new(r(76).ActorQueryOperationUnion)({mediatorQueryOperation:ie,name:"https://linkedsoftwaredependencies.org/bundles/npm/@comunica/actor-init-sparql/^1.0.0/config/sets/sparql-queryoperators.json#myUnionQueryOperator",bus:v}),new(r(202).ActorQueryOperationMinus)({mediatorQueryOperation:ie,name:"https://linkedsoftwaredependencies.org/bundles/npm/@comunica/actor-init-sparql/^1.0.0/config/sets/sparql-queryoperators.json#myMinusQueryOperator",bus:v}),new(r(203).ActorQueryOperationPathAlt)({mediatorQueryOperation:ie,name:"https://linkedsoftwaredependencies.org/bundles/npm/@comunica/actor-init-sparql/^1.0.0/config/sets/sparql-queryoperator-path.json#myAltPathOperator",bus:v}),new(r(205).ActorQueryOperationPathInv)({mediatorQueryOperation:ie,name:"https://linkedsoftwaredependencies.org/bundles/npm/@comunica/actor-init-sparql/^1.0.0/config/sets/sparql-queryoperator-path.json#myInvPathOperator",bus:v}),new(r(206).ActorQueryOperationPathLink)({mediatorQueryOperation:ie,name:"https://linkedsoftwaredependencies.org/bundles/npm/@comunica/actor-init-sparql/^1.0.0/config/sets/sparql-queryoperator-path.json#myLinkPathOperator",bus:v}),new(r(207).ActorQueryOperationPathNps)({mediatorQueryOperation:ie,name:"https://linkedsoftwaredependencies.org/bundles/npm/@comunica/actor-init-sparql/^1.0.0/config/sets/sparql-queryoperator-path.json#myNpsPathOperator",bus:v}),new(r(208).ActorQueryOperationPathOneOrMore)({mediatorQueryOperation:ie,name:"https://linkedsoftwaredependencies.org/bundles/npm/@comunica/actor-init-sparql/^1.0.0/config/sets/sparql-queryoperator-path.json#myOneOrMorePathOperator",bus:v}),new(r(209).ActorQueryOperationPathSeq)({mediatorJoin:N,mediatorQueryOperation:ie,name:"https://linkedsoftwaredependencies.org/bundles/npm/@comunica/actor-init-sparql/^1.0.0/config/sets/sparql-queryoperator-path.json#mySeqPathOperator",bus:v}),new(r(210).ActorQueryOperationPathZeroOrMore)({mediatorQueryOperation:ie,name:"https://linkedsoftwaredependencies.org/bundles/npm/@comunica/actor-init-sparql/^1.0.0/config/sets/sparql-queryoperator-path.json#myZeroOrMorePathOperator",bus:v}),new(r(211).ActorQueryOperationPathZeroOrOne)({mediatorQueryOperation:ie,name:"https://linkedsoftwaredependencies.org/bundles/npm/@comunica/actor-init-sparql/^1.0.0/config/sets/sparql-queryoperator-path.json#myZeroOrOnePathOperator",bus:v});e.exports=ge},function(e,t,r){"use strict";r.r(t),r.d(t,"Headers",(function(){return d})),r.d(t,"Request",(function(){return v})),r.d(t,"Response",(function(){return E})),r.d(t,"DOMException",(function(){return T})),r.d(t,"fetch",(function(){return x}));var n="URLSearchParams"in self,i="Symbol"in self&&"iterator"in Symbol,a="FileReader"in self&&"Blob"in self&&function(){try{return new Blob,!0}catch(e){return!1}}(),o="FormData"in self,s="ArrayBuffer"in self;if(s)var u=["[object Int8Array]","[object Uint8Array]","[object Uint8ClampedArray]","[object Int16Array]","[object Uint16Array]","[object Int32Array]","[object Uint32Array]","[object Float32Array]","[object Float64Array]"],c=ArrayBuffer.isView||function(e){return e&&u.indexOf(Object.prototype.toString.call(e))>-1};function l(e){if("string"!=typeof e&&(e=String(e)),/[^a-z0-9\-#$%&'*+.^_`|~]/i.test(e))throw new TypeError("Invalid character in header field name");return e.toLowerCase()}function h(e){return"string"!=typeof e&&(e=String(e)),e}function p(e){var t={next:function(){var t=e.shift();return{done:void 0===t,value:t}}};return i&&(t[Symbol.iterator]=function(){return t}),t}function d(e){this.map={},e instanceof d?e.forEach((function(e,t){this.append(t,e)}),this):Array.isArray(e)?e.forEach((function(e){this.append(e[0],e[1])}),this):e&&Object.getOwnPropertyNames(e).forEach((function(t){this.append(t,e[t])}),this)}function f(e){if(e.bodyUsed)return Promise.reject(new TypeError("Already read"));e.bodyUsed=!0}function y(e){return new Promise((function(t,r){e.onload=function(){t(e.result)},e.onerror=function(){r(e.error)}}))}function m(e){var t=new FileReader,r=y(t);return t.readAsArrayBuffer(e),r}function g(e){if(e.slice)return e.slice(0);var t=new Uint8Array(e.byteLength);return t.set(new Uint8Array(e)),t.buffer}function _(){return this.bodyUsed=!1,this._initBody=function(e){var t;this._bodyInit=e,e?"string"==typeof e?this._bodyText=e:a&&Blob.prototype.isPrototypeOf(e)?this._bodyBlob=e:o&&FormData.prototype.isPrototypeOf(e)?this._bodyFormData=e:n&&URLSearchParams.prototype.isPrototypeOf(e)?this._bodyText=e.toString():s&&a&&((t=e)&&DataView.prototype.isPrototypeOf(t))?(this._bodyArrayBuffer=g(e.buffer),this._bodyInit=new Blob([this._bodyArrayBuffer])):s&&(ArrayBuffer.prototype.isPrototypeOf(e)||c(e))?this._bodyArrayBuffer=g(e):this._bodyText=e=Object.prototype.toString.call(e):this._bodyText="",this.headers.get("content-type")||("string"==typeof e?this.headers.set("content-type","text/plain;charset=UTF-8"):this._bodyBlob&&this._bodyBlob.type?this.headers.set("content-type",this._bodyBlob.type):n&&URLSearchParams.prototype.isPrototypeOf(e)&&this.headers.set("content-type","application/x-www-form-urlencoded;charset=UTF-8"))},a&&(this.blob=function(){var e=f(this);if(e)return e;if(this._bodyBlob)return Promise.resolve(this._bodyBlob);if(this._bodyArrayBuffer)return Promise.resolve(new Blob([this._bodyArrayBuffer]));if(this._bodyFormData)throw new Error("could not read FormData body as blob");return Promise.resolve(new Blob([this._bodyText]))},this.arrayBuffer=function(){return this._bodyArrayBuffer?f(this)||Promise.resolve(this._bodyArrayBuffer):this.blob().then(m)}),this.text=function(){var e,t,r,n=f(this);if(n)return n;if(this._bodyBlob)return e=this._bodyBlob,t=new FileReader,r=y(t),t.readAsText(e),r;if(this._bodyArrayBuffer)return Promise.resolve(function(e){for(var t=new Uint8Array(e),r=new Array(t.length),n=0;n-1?n:r),this.mode=t.mode||this.mode||null,this.signal=t.signal||this.signal,this.referrer=null,("GET"===this.method||"HEAD"===this.method)&&i)throw new TypeError("Body not allowed for GET or HEAD requests");this._initBody(i)}function w(e){var t=new FormData;return e.trim().split("&").forEach((function(e){if(e){var r=e.split("="),n=r.shift().replace(/\+/g," "),i=r.join("=").replace(/\+/g," ");t.append(decodeURIComponent(n),decodeURIComponent(i))}})),t}function E(e,t){t||(t={}),this.type="default",this.status=void 0===t.status?200:t.status,this.ok=this.status>=200&&this.status<300,this.statusText="statusText"in t?t.statusText:"OK",this.headers=new d(t.headers),this.url=t.url||"",this._initBody(e)}v.prototype.clone=function(){return new v(this,{body:this._bodyInit})},_.call(v.prototype),_.call(E.prototype),E.prototype.clone=function(){return new E(this._bodyInit,{status:this.status,statusText:this.statusText,headers:new d(this.headers),url:this.url})},E.error=function(){var e=new E(null,{status:0,statusText:""});return e.type="error",e};var S=[301,302,303,307,308];E.redirect=function(e,t){if(-1===S.indexOf(t))throw new RangeError("Invalid status code");return new E(null,{status:t,headers:{location:e}})};var T=self.DOMException;try{new T}catch(e){(T=function(e,t){this.message=e,this.name=t;var r=Error(e);this.stack=r.stack}).prototype=Object.create(Error.prototype),T.prototype.constructor=T}function x(e,t){return new Promise((function(r,n){var i=new v(e,t);if(i.signal&&i.signal.aborted)return n(new T("Aborted","AbortError"));var o=new XMLHttpRequest;function s(){o.abort()}o.onload=function(){var e,t,n={status:o.status,statusText:o.statusText,headers:(e=o.getAllResponseHeaders()||"",t=new d,e.replace(/\r?\n[\t ]+/g," ").split(/\r?\n/).forEach((function(e){var r=e.split(":"),n=r.shift().trim();if(n){var i=r.join(":").trim();t.append(n,i)}})),t)};n.url="responseURL"in o?o.responseURL:n.headers.get("X-Request-URL");var i="response"in o?o.response:o.responseText;r(new E(i,n))},o.onerror=function(){n(new TypeError("Network request failed"))},o.ontimeout=function(){n(new TypeError("Network request failed"))},o.onabort=function(){n(new T("Aborted","AbortError"))},o.open(i.method,i.url,!0),"include"===i.credentials?o.withCredentials=!0:"omit"===i.credentials&&(o.withCredentials=!1),"responseType"in o&&a&&(o.responseType="blob"),i.headers.forEach((function(e,t){o.setRequestHeader(t,e)})),i.signal&&(i.signal.addEventListener("abort",s),o.onreadystatechange=function(){4===o.readyState&&i.signal.removeEventListener("abort",s)}),o.send(void 0===i._bodyInit?null:i._bodyInit)}))}x.polyfill=!0,self.fetch||(self.fetch=x,self.Headers=d,self.Request=v,self.Response=E)},function(e,t,r){"use strict";function n(e){const t=[];let r=0;for(;re.join("")).join("/")}function i(e,t){let r=t+1;t>=0?"/"===e[t+1]&&"/"===e[t+2]&&(r=t+3):"/"===e[0]&&"/"===e[1]&&(r=2);const i=e.indexOf("/",r);if(i<0)return e;return e.substr(0,i)+n(e.substr(i))}function a(e){return!e||"#"===e||"?"===e||"/"===e}Object.defineProperty(t,"__esModule",{value:!0}),t.resolve=function(e,t){const r=(t=t||"").indexOf("#");if(r>0&&(t=t.substr(0,r)),!e.length)return t;if(e.startsWith("?")){const r=t.indexOf("?");return r>0&&(t=t.substr(0,r)),t+e}if(e.startsWith("#"))return t+e;if(!t.length)return i(e,e.indexOf(":"));const a=e.indexOf(":");if(a>=0)return i(e,a);const o=t.indexOf(":");if(o<0)throw new Error(`Found invalid baseIRI '${t}' for value '${e}'`);const s=t.substr(0,o+1);if(0===e.indexOf("//"))return s+i(e,a);let u;if(t.indexOf("//",o)===o+1){if(u=t.indexOf("/",o+3),u<0)return t.length>o+3?t+"/"+i(e,a):s+i(e,a)}else if(u=t.indexOf("/",o+1),u<0)return s+i(e,a);if(0===e.indexOf("/"))return t.substr(0,u)+n(e);let c=t.substr(u);const l=c.lastIndexOf("/");return l>=0&&le(...t))}},function(e,t,r){"use strict";Object.defineProperty(t,"__esModule",{value:!0});const n=r(89);class i extends n.Bus{constructor(e){super(e),this.actorsIndex={}}subscribe(e){const t=this.getActorIdentifier(e)||"_undefined_";let r=this.actorsIndex[t];r||(r=this.actorsIndex[t]=[]),r.push(e),super.subscribe(e)}unsubscribe(e){const t=this.getActorIdentifier(e)||"_undefined_",r=this.actorsIndex[t];if(r){const n=r.indexOf(e);n>=0&&r.splice(n,1),0===r.length&&delete this.actorsIndex[t]}return super.unsubscribe(e)}publish(e){const t=this.getActionIdentifier(e);if(t){return(this.actorsIndex[t]||[]).concat(this.actorsIndex._undefined_||[]).map(t=>({actor:t,reply:t.test(e)}))}return super.publish(e)}getActorIdentifier(e){return this.actorIdentifierFields.reduce((e,t)=>e[t],e)}getActionIdentifier(e){return this.actionIdentifierFields.reduce((e,t)=>e[t],e)}}t.BusIndexed=i},function(e,t,r){"use strict";Object.defineProperty(t,"__esModule",{value:!0});t.ActionObserver=class{constructor(e){r(44)(this,e)}}},function(e,t,r){"use strict";Object.defineProperty(t,"__esModule",{value:!0});const n=r(19),i=r(90);class a{constructor(e){this.beforeActors=[],r(44)(this,e),this.bus.subscribe(this),this.beforeActors.length&&this.bus.addDependencies(this,this.beforeActors)}static getContextLogger(e){return e?e.get(i.KEY_CONTEXT_LOG):null}runObservable(e){const t=this.run(e);return this.bus.onRun(this,e,t),t}async initialize(){return!0}async deinitialize(){return!0}getDefaultLogData(e,t){return t||(t={}),t.actor=this.name,t}logTrace(e,t,r){const n=a.getContextLogger(e);n&&n.trace(t,this.getDefaultLogData(e,r))}logDebug(e,t,r){const n=a.getContextLogger(e);n&&n.debug(t,this.getDefaultLogData(e,r))}logInfo(e,t,r){const n=a.getContextLogger(e);n&&n.info(t,this.getDefaultLogData(e,r))}logWarn(e,t,r){const n=a.getContextLogger(e);n&&n.warn(t,this.getDefaultLogData(e,r))}logError(e,t,r){const n=a.getContextLogger(e);n&&n.error(t,this.getDefaultLogData(e,r))}logFatal(e,t,r){const n=a.getContextLogger(e);n&&n.fatal(t,this.getDefaultLogData(e,r))}}function o(e){return n.Map(e)}t.Actor=a,t.ActionContext=o,t.ensureActionContext=function(e){return n.Map.isMap(e)?e:o(e)}},function(e,t,r){"use strict";Object.defineProperty(t,"__esModule",{value:!0});t.Mediator=class{constructor(e){r(44)(this,e)}publish(e){const t=this.bus.publish(e);if(!t.length)throw new Error("No actors are able to reply to a message in the bus "+this.bus.name);return t}async mediateActor(e){return await this.mediateWith(e,this.publish(e))}async mediate(e){return(await this.mediateActor(e)).runObservable(e)}}},function(e,t,r){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),function(e){for(var r in e)t.hasOwnProperty(r)||(t[r]=e[r])}(r(227))},function(e,t,r){"use strict";Object.defineProperty(t,"__esModule",{value:!0});const n=r(26),i=r(30);class a extends n.ActorHttp{constructor(e){super(e)}async test(e){return{time:1/0}}run(e){return i.fetch(e.input,e.init)}}t.ActorHttpSolidAuthFetch=a},function(e,t,r){"use strict";Object.defineProperty(t,"__esModule",{value:!0});const n=r(0);class i extends n.Actor{constructor(e){super(e)}static toNodeReadable(e){return r(229)(e)?e:r(91).toNodeReadable(e)}}t.ActorHttp=i},function(e,t,r){"use strict";const n=e=>null!==e&&"object"==typeof e&&"function"==typeof e.pipe;n.writable=e=>n(e)&&!1!==e.writable&&"function"==typeof e._write&&"object"==typeof e._writableState,n.readable=e=>n(e)&&!1!==e.readable&&"function"==typeof e._read&&"object"==typeof e._readableState,n.duplex=e=>n.writable(e)&&n.readable(e),n.transform=e=>n.duplex(e)&&"function"==typeof e._transform&&"object"==typeof e._transformState,e.exports=n},function(e,t,r){"use strict";t.byteLength=function(e){var t=c(e),r=t[0],n=t[1];return 3*(r+n)/4-n},t.toByteArray=function(e){var t,r,n=c(e),o=n[0],s=n[1],u=new a(function(e,t,r){return 3*(t+r)/4-r}(0,o,s)),l=0,h=s>0?o-4:o;for(r=0;r>16&255,u[l++]=t>>8&255,u[l++]=255&t;2===s&&(t=i[e.charCodeAt(r)]<<2|i[e.charCodeAt(r+1)]>>4,u[l++]=255&t);1===s&&(t=i[e.charCodeAt(r)]<<10|i[e.charCodeAt(r+1)]<<4|i[e.charCodeAt(r+2)]>>2,u[l++]=t>>8&255,u[l++]=255&t);return u},t.fromByteArray=function(e){for(var t,r=e.length,i=r%3,a=[],o=0,s=r-i;os?s:o+16383));1===i?(t=e[r-1],a.push(n[t>>2]+n[t<<4&63]+"==")):2===i&&(t=(e[r-2]<<8)+e[r-1],a.push(n[t>>10]+n[t>>4&63]+n[t<<2&63]+"="));return a.join("")};for(var n=[],i=[],a="undefined"!=typeof Uint8Array?Uint8Array:Array,o="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/",s=0,u=o.length;s0)throw new Error("Invalid string. Length must be a multiple of 4");var r=e.indexOf("=");return-1===r&&(r=t),[r,r===t?0:4-r%4]}function l(e,t,r){for(var i,a,o=[],s=t;s>18&63]+n[a>>12&63]+n[a>>6&63]+n[63&a]);return o.join("")}i["-".charCodeAt(0)]=62,i["_".charCodeAt(0)]=63},function(e,t){t.read=function(e,t,r,n,i){var a,o,s=8*i-n-1,u=(1<>1,l=-7,h=r?i-1:0,p=r?-1:1,d=e[t+h];for(h+=p,a=d&(1<<-l)-1,d>>=-l,l+=s;l>0;a=256*a+e[t+h],h+=p,l-=8);for(o=a&(1<<-l)-1,a>>=-l,l+=n;l>0;o=256*o+e[t+h],h+=p,l-=8);if(0===a)a=1-c;else{if(a===u)return o?NaN:1/0*(d?-1:1);o+=Math.pow(2,n),a-=c}return(d?-1:1)*o*Math.pow(2,a-n)},t.write=function(e,t,r,n,i,a){var o,s,u,c=8*a-i-1,l=(1<>1,p=23===i?Math.pow(2,-24)-Math.pow(2,-77):0,d=n?0:a-1,f=n?1:-1,y=t<0||0===t&&1/t<0?1:0;for(t=Math.abs(t),isNaN(t)||t===1/0?(s=isNaN(t)?1:0,o=l):(o=Math.floor(Math.log(t)/Math.LN2),t*(u=Math.pow(2,-o))<1&&(o--,u*=2),(t+=o+h>=1?p/u:p*Math.pow(2,1-h))*u>=2&&(o++,u/=2),o+h>=l?(s=0,o=l):o+h>=1?(s=(t*u-1)*Math.pow(2,i),o+=h):(s=t*Math.pow(2,h-1)*Math.pow(2,i),o=0));i>=8;e[r+d]=255&s,d+=f,s/=256,i-=8);for(o=o<0;e[r+d]=255&o,d+=f,o/=256,c-=8);e[r+d-f]|=128*y}},function(e,t){var r={}.toString;e.exports=Array.isArray||function(e){return"[object Array]"==r.call(e)}},function(e,t){},function(e,t,r){"use strict";function n(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),r.push.apply(r,n)}return r}function i(e,t,r){return t in e?Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[t]=r,e}function a(e,t){for(var r=0;r0?this.tail.next=t:this.head=t,this.tail=t,++this.length}},{key:"unshift",value:function(e){var t={data:e,next:this.head};0===this.length&&(this.tail=t),this.head=t,++this.length}},{key:"shift",value:function(){if(0!==this.length){var e=this.head.data;return 1===this.length?this.head=this.tail=null:this.head=this.head.next,--this.length,e}}},{key:"clear",value:function(){this.head=this.tail=null,this.length=0}},{key:"join",value:function(e){if(0===this.length)return"";for(var t=this.head,r=""+t.data;t=t.next;)r+=e+t.data;return r}},{key:"concat",value:function(e){if(0===this.length)return o.alloc(0);for(var t,r,n,i=o.allocUnsafe(e>>>0),a=this.head,s=0;a;)t=a.data,r=i,n=s,o.prototype.copy.call(t,r,n),s+=a.data.length,a=a.next;return i}},{key:"consume",value:function(e,t){var r;return ei.length?i.length:e;if(a===i.length?n+=i:n+=i.slice(0,e),0==(e-=a)){a===i.length?(++r,t.next?this.head=t.next:this.head=this.tail=null):(this.head=t,t.data=i.slice(a));break}++r}return this.length-=r,n}},{key:"_getBuffer",value:function(e){var t=o.allocUnsafe(e),r=this.head,n=1;for(r.data.copy(t),e-=r.data.length;r=r.next;){var i=r.data,a=e>i.length?i.length:e;if(i.copy(t,t.length-e,0,a),0==(e-=a)){a===i.length?(++n,r.next?this.head=r.next:this.head=this.tail=null):(this.head=r,r.data=i.slice(a));break}++n}return this.length-=n,t}},{key:u,value:function(e,t){return s(this,function(e){for(var t=1;t0,(function(e){n||(n=e),e&&o.forEach(c),a||(o.forEach(c),i(n))}))}));return t.reduce(l)}},function(e,t,r){"use strict";var n=e.exports=function(e){return null!==e&&"object"==typeof e&&"function"==typeof e.pipe};n.writable=function(e){return n(e)&&!1!==e.writable&&"function"==typeof e._write&&"object"==typeof e._writableState},n.readable=function(e){return n(e)&&!1!==e.readable&&"function"==typeof e._read&&"object"==typeof e._readableState},n.duplex=function(e){return n.writable(e)&&n.readable(e)},n.transform=function(e){return n.duplex(e)&&"function"==typeof e._transform&&"object"==typeof e._transformState}},function(e,t,r){"use strict";(function(t){const n=r(2).Readable,i=r(98).ReadableStream;t.ReadableStream=t.ReadableStream||i;const a=r(243);class o extends n{constructor(e,t){super(t),this._webStream=e,this._reader=e.getReader(),this._reading=!1}_read(e){if(this._reading)return;this._reading=!0;const t=()=>{this._reader.read().then(r=>(this._doneReading&&(this._reading=!1,this._reader.releaseLock(),this._doneReading()),r.done?(this.push(null),this._reading=!1,void this._reader.releaseLock()):this.push(r.value)?t(e):(this._reading=!1,void this._reader.releaseLock())))};t()}_destroy(e,t){if(this._reading){new Promise(e=>{this._doneReading=e}).then(()=>this._handleDestroy(e,t))}else this._handleDestroy(e,t)}_handleDestroy(e,t){this._webStream.cancel(),super._destroy(e,t)}}e.exports={readable:{nodeToWeb:a,arrayToWeb:function(e){return new i({start(t){for(var r=0;re.reduce((e,t,r)=>{const n=this.getOrDefault(t[this.field],1/0);return null!==n&&(isNaN(e[0])||e[0]>n)?[n,r]:e},[NaN,-1])[1];case i.MAX:return e=>e.reduce((e,t,r)=>{const n=this.getOrDefault(t[this.field],-1/0);return null!==n&&(isNaN(e[0])||e[0]e);const n=[];if(this.ignoreErrors){const e={};e[this.field]=null,r=r.map(t=>t.catch(t=>(n.push(t),e)))}const i=await Promise.all(r),a=this.indexPicker(i);if(a<0)throw new Error("All actors rejected their test in "+this.name+"\n"+n.map(e=>e.toString()).join("\n"));return t[a].actor}}i.MIN="https://linkedsoftwaredependencies.org/bundles/npm/@comunica/mediator-number/Mediator/Number/type/TypeMin",i.MAX="https://linkedsoftwaredependencies.org/bundles/npm/@comunica/mediator-number/Mediator/Number/type/TypeMax",t.MediatorNumber=i},function(e,t,r){"use strict";Object.defineProperty(t,"__esModule",{value:!0});const n=r(0);class i extends n.Mediator{constructor(e){super(e),this.combiner=this.createCombiner()}async mediate(e){let t;try{t=this.publish(e)}catch(e){t=[]}await Promise.all(t.map(({reply:e})=>e));const r=await Promise.all(t.map(t=>t.actor.runObservable(e)));return this.combiner(r)}mediateWith(e,t){throw new Error("Method not supported.")}createCombiner(){return e=>{const t={};return t[this.field]=r(246).apply({},[{}].concat(e.map(e=>e[this.field]))),t}}}t.MediatorCombineUnion=i},function(e,t){var r=/^(?:0|[1-9]\d*)$/;function n(e,t,r){switch(r.length){case 0:return e.call(t);case 1:return e.call(t,r[0]);case 2:return e.call(t,r[0],r[1]);case 3:return e.call(t,r[0],r[1],r[2])}return e.apply(t,r)}var i=Object.prototype,a=i.hasOwnProperty,o=i.toString,s=i.propertyIsEnumerable,u=Math.max;function c(e,t){var r=m(e)||function(e){return function(e){return function(e){return!!e&&"object"==typeof e}(e)&&g(e)}(e)&&a.call(e,"callee")&&(!s.call(e,"callee")||"[object Arguments]"==o.call(e))}(e)?function(e,t){for(var r=-1,n=Array(e);++r-1&&e%1==0&&e-1&&e%1==0&&e<=9007199254740991}(e.length)&&!function(e){var t=_(e)?o.call(e):"";return"[object Function]"==t||"[object GeneratorFunction]"==t}(e)}function _(e){var t=typeof e;return!!e&&("object"==t||"function"==t)}var b,v=(b=function(e,t,r,n){!function(e,t,r,n){r||(r={});for(var i=-1,a=t.length;++i1?t[n-1]:void 0,a=n>2?t[2]:void 0;for(i=b.length>3&&"function"==typeof i?(n--,i):void 0,a&&function(e,t,r){if(!_(r))return!1;var n=typeof t;return!!("number"==n?g(r)&&f(t,r.length):"string"==n&&t in r)&&y(r[t],e)}(t[0],t[1],a)&&(i=n<3?void 0:i,n=1),e=Object(e);++r{const n=[];for(const i of t)i.reply.then(()=>{e(i.actor)}).catch(e=>{n.push(e),n.length===t.length&&r(new Error(this.name+" mediated over all rejecting actors:\n"+n.map(e=>e.toString()).join("\n")))})})}}t.MediatorRace=i},function(e,t,r){"use strict";Object.defineProperty(t,"__esModule",{value:!0});const n=r(46),i=r(41);class a extends n.ActorRdfParseFixedMediaTypes{constructor(e){super(e)}async runHandle(e,t,r){e.input.on("error",e=>n.emit("error",e));const n=e.input.pipe(new i.StreamParser({baseIRI:e.baseIRI}));return{quads:n,triples:"text/turtle"===t||"application/n-triples"===t||"text/n3"===t}}}t.ActorRdfParseN3=a},function(e,t,r){"use strict";Object.defineProperty(t,"__esModule",{value:!0});const n=r(36);class i extends n.ActorAbstractMediaTyped{constructor(e){super(e)}}t.ActorRdfParse=i},function(e,t,r){"use strict";Object.defineProperty(t,"__esModule",{value:!0});const n=r(100);class i extends n.ActorAbstractMediaTyped{constructor(e){super(e);const t=this.priorityScale||0===this.priorityScale?this.priorityScale:1;this.mediaTypes=r(251)(this.mediaTypes,e=>e*t),this.mediaTypes=Object.freeze(this.mediaTypes),this.mediaTypeFormats=Object.freeze(this.mediaTypeFormats)}async testHandle(e,t,r){if(!(t in this.mediaTypes))throw new Error("Unrecognized media type: "+t);return await this.testHandleChecked(e,r)}async testMediaType(e){return!0}async getMediaTypes(e){return this.mediaTypes}async testMediaTypeFormats(e){return!0}async getMediaTypeFormats(e){return this.mediaTypeFormats}}t.ActorAbstractMediaTypedFixed=i},function(e,t,r){(function(e,r){var n="[object Arguments]",i="[object Map]",a="[object Object]",o="[object Set]",s=/\.|\[(?:[^[\]]*|(["'])(?:(?!\1)[^\\]|\\.)*?\1)\]/,u=/^\w*$/,c=/^\./,l=/[^.[\]]+|\[(?:(-?\d+(?:\.\d+)?)|(["'])((?:(?!\2)[^\\]|\\.)*?)\2)\]|(?=(?:\.|\[\])(?:\.|\[\]|$))/g,h=/\\(\\)?/g,p=/^\[object .+?Constructor\]$/,d=/^(?:0|[1-9]\d*)$/,f={};f["[object Float32Array]"]=f["[object Float64Array]"]=f["[object Int8Array]"]=f["[object Int16Array]"]=f["[object Int32Array]"]=f["[object Uint8Array]"]=f["[object Uint8ClampedArray]"]=f["[object Uint16Array]"]=f["[object Uint32Array]"]=!0,f[n]=f["[object Array]"]=f["[object ArrayBuffer]"]=f["[object Boolean]"]=f["[object DataView]"]=f["[object Date]"]=f["[object Error]"]=f["[object Function]"]=f[i]=f["[object Number]"]=f[a]=f["[object RegExp]"]=f[o]=f["[object String]"]=f["[object WeakMap]"]=!1;var y="object"==typeof e&&e&&e.Object===Object&&e,m="object"==typeof self&&self&&self.Object===Object&&self,g=y||m||Function("return this")(),_=t&&!t.nodeType&&t,b=_&&"object"==typeof r&&r&&!r.nodeType&&r,v=b&&b.exports===_&&y.process,w=function(){try{return v&&v.binding("util")}catch(e){}}(),E=w&&w.isTypedArray;function S(e,t){for(var r=-1,n=e?e.length:0;++r-1},ae.prototype.set=function(e,t){var r=this.__data__,n=le(r,e);return n<0?r.push([e,t]):r[n][1]=t,this},oe.prototype.clear=function(){this.__data__={hash:new ie,map:new(z||ae),string:new ie}},oe.prototype.delete=function(e){return we(this,e).delete(e)},oe.prototype.get=function(e){return we(this,e).get(e)},oe.prototype.has=function(e){return we(this,e).has(e)},oe.prototype.set=function(e,t){return we(this,e).set(e,t),this},se.prototype.add=se.prototype.push=function(e){return this.__data__.set(e,"__lodash_hash_undefined__"),this},se.prototype.has=function(e){return this.__data__.has(e)},ue.prototype.clear=function(){this.__data__=new ae},ue.prototype.delete=function(e){return this.__data__.delete(e)},ue.prototype.get=function(e){return this.__data__.get(e)},ue.prototype.has=function(e){return this.__data__.has(e)},ue.prototype.set=function(e,t){var r=this.__data__;if(r instanceof ae){var n=r.__data__;if(!z||n.length<199)return n.push([e,t]),this;r=this.__data__=new oe(n)}return r.set(e,t),this};var he,pe=function(e,t,r){for(var n=-1,i=Object(e),a=r(e),o=a.length;o--;){var s=a[he?o:++n];if(!1===t(i[s],s,i))break}return e};function de(e,t){for(var r=0,n=(t=xe(t,e)?[t]:be(t)).length;null!=e&&rs))return!1;var c=a.get(e);if(c&&a.get(t))return c==t;var l=-1,h=!0,p=1&i?new se:void 0;for(a.set(e,t),a.set(t,e);++l-1&&e%1==0&&e-1&&e%1==0&&e<=9007199254740991}function Fe(e){var t=typeof e;return!!e&&("object"==t||"function"==t)}function qe(e){return!!e&&"object"==typeof e}function Be(e){return"symbol"==typeof e||qe(e)&&"[object Symbol]"==M.call(e)}var Ue=E?function(e){return function(t){return e(t)}}(E):function(e){return qe(e)&&Me(e.length)&&!!f[M.call(e)]};function Ve(e){return ke(e)?ce(e):_e(e)}function He(e){return e}r.exports=function(e,t){var r={};return t=ge(t),function(e,t){e&&pe(e,t,Ve)}(e,(function(e,n,i){r[n]=t(e,n,i)})),r}}).call(this,r(11),r(51)(e))},function(e,t,r){"use strict";Object.defineProperty(t,"__esModule",{value:!0});const n=r(36);class i extends n.ActorAbstractMediaTypedFixed{constructor(e){super(e)}async testHandleChecked(e){return!0}}t.ActorRdfParseFixedMediaTypes=i},function(e,t,r){"use strict";Object.defineProperty(t,"__esModule",{value:!0});const n=r(46),i=r(254);class a extends n.ActorRdfParseFixedMediaTypes{constructor(e){super(e)}async runHandle(e,t,r){e.input.on("error",e=>n.emit("error",e));const n=e.input.pipe(new i.RdfXmlParser({baseIRI:e.baseIRI}));return{quads:n,triples:!0}}}t.ActorRdfParseRdfXml=a},function(e,t,r){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),function(e){for(var r in e)t.hasOwnProperty(r)||(t[r]=e[r])}(r(255))},function(e,t,r){"use strict";Object.defineProperty(t,"__esModule",{value:!0});const n=r(25),i=r(102),a=r(2),o=r(256);class s extends a.Transform{constructor(e){super({objectMode:!0}),this.activeTagStack=[],this.nodeIds={},e&&(Object.assign(this,e),this.options=e),this.dataFactory||(this.dataFactory=r(1)),this.baseIRI||(this.baseIRI=""),this.defaultGraph||(this.defaultGraph=this.dataFactory.defaultGraph()),this.saxStream=i.createStream(this.strict,{xmlns:!1,position:this.trackPosition}),this.strict||(this.saxStream._parser.looseCase="toString"),this.attachSaxListeners()}static parseNamespace(e,t){const r={};let n=!1;for(const t in e.attributes)t.startsWith("xmlns")&&(5===t.length?(n=!0,r[""]=e.attributes[t]):":"===t.charAt(5)&&(n=!0,r[t.substr(6)]=e.attributes[t]));const i=t&&t.ns?t.ns:[s.DEFAULT_NS];return n?i.concat([r]):i}static expandPrefixedTerm(e,t,r){const n=e.indexOf(":");let i,a;n>=0?(i=e.substr(0,n),a=e.substr(n+1)):(i="",a=e);let s=null,u=null;for(let e=t.length-1;e>=0;e--){const r=t[e][i];if(r){s=r;break}u||(u=t[e][""])}if(!s){if(i&&"xmlns"!==i)throw new o.ParseError(r,`The prefix '${i}' in term '${e}' was not bound.`);s=u||""}return{prefix:i,local:a,uri:s}}static isValidIri(e){return s.IRI_REGEX.test(e)}import(e){const t=new a.PassThrough({objectMode:!0});e.on("error",e=>r.emit("error",e)),e.on("data",e=>t.write(e)),e.on("end",()=>t.emit("end"));const r=t.pipe(new s(this.options));return r}_transform(e,t,r){try{this.saxStream.write(e,t)}catch(e){return r(e)}r()}newParseError(e){return new o.ParseError(this,e)}valueToUri(e,t){return this.uriToNamedNode(n.resolve(e,t.baseIRI))}uriToNamedNode(e){if(!s.isValidIri(e))throw this.newParseError("Invalid URI: "+e);return this.dataFactory.namedNode(e)}validateNcname(e){if(!s.NCNAME_MATCHER.test(e))throw this.newParseError("Not a valid NCName: "+e)}attachSaxListeners(){this.saxStream.on("error",e=>this.emit("error",e)),this.saxStream.on("opentag",this.onTag.bind(this)),this.saxStream.on("text",this.onText.bind(this)),this.saxStream.on("closetag",this.onCloseTag.bind(this)),this.saxStream.on("doctype",this.onDoctype.bind(this))}onTag(e){const t=this.activeTagStack.length?this.activeTagStack[this.activeTagStack.length-1]:null;let r=u.RESOURCE;if(t&&(t.hadChildren=!0,r=t.childrenParseType),t&&t.childrenStringTags){const r=e.name;let n="";for(const t in e.attributes)n+=` ${t}="${e.attributes[t]}"`;const i=`<${`${r}${n}`}>`;t.childrenStringTags.push(i);const a={childrenStringTags:t.childrenStringTags};return a.childrenStringEmitClosingTag=``,void this.activeTagStack.push(a)}const n={};t?(n.language=t.language,n.baseIRI=t.baseIRI):n.baseIRI=this.baseIRI,this.activeTagStack.push(n),n.ns=s.parseNamespace(e,t),r===u.RESOURCE?this.onTagResource(e,n,t,!t):this.onTagProperty(e,n,t)}onTagResource(e,t,r,i){const a=s.expandPrefixedTerm(e.name,t.ns,this);t.childrenParseType=u.PROPERTY;let o=!0;if(a.uri===s.RDF){if(!i&&s.FORBIDDEN_NODE_ELEMENTS.indexOf(a.local)>=0)throw this.newParseError("Illegal node element name: "+a.local);switch(a.local){case"RDF":t.childrenParseType=u.RESOURCE;case"Description":o=!1}}const c=[],l=[];let h=null,p=!1,d=!1,f=null;for(const i in e.attributes){const a=e.attributes[i],o=s.expandPrefixedTerm(i,t.ns,this);if(r&&o.uri===s.RDF)switch(o.local){case"about":if(h)throw this.newParseError(`Only one of rdf:about, rdf:nodeID and rdf:ID can be present, while ${a} and ${h} where found.`);h=a;continue;case"ID":if(h)throw this.newParseError(`Only one of rdf:about, rdf:nodeID and rdf:ID can be present, while ${a} and ${h} where found.`);this.validateNcname(a),h="#"+a,p=!0;continue;case"nodeID":if(h)throw this.newParseError(`Only one of rdf:about, rdf:nodeID and rdf:ID can be present, while ${a} and ${h} where found.`);this.validateNcname(a),h=a,d=!0;continue;case"bagID":throw this.newParseError("rdf:bagID is not supported.");case"type":f=a;continue;case"aboutEach":throw this.newParseError("rdf:aboutEach is not supported.");case"aboutEachPrefix":throw this.newParseError("rdf:aboutEachPrefix is not supported.");case"li":throw this.newParseError("rdf:li on node elements are not supported.")}else if(o.uri===s.XML){if("lang"===o.local){t.language=""===a?null:a.toLowerCase();continue}if("base"===o.local){t.baseIRI=n.resolve(a,t.baseIRI);continue}}"xml"!==o.prefix&&o.uri&&(c.push(this.uriToNamedNode(o.uri+o.local)),l.push(a))}if(null!==h&&(t.subject=d?this.dataFactory.blankNode(h):this.valueToUri(h,t),p&&this.claimNodeId(t.subject)),t.subject||(t.subject=this.dataFactory.blankNode()),o){const e=this.uriToNamedNode(a.uri+a.local);this.emitTriple(t.subject,this.dataFactory.namedNode(s.RDF+"type"),e,r?r.reifiedStatementId:null)}if(r){if(r.predicate)if(r.childrenCollectionSubject){const e=this.dataFactory.blankNode();this.emitTriple(r.childrenCollectionSubject,r.childrenCollectionPredicate,e,r.reifiedStatementId),this.emitTriple(e,this.dataFactory.namedNode(s.RDF+"first"),t.subject,t.reifiedStatementId),r.childrenCollectionSubject=e,r.childrenCollectionPredicate=this.dataFactory.namedNode(s.RDF+"rest")}else{this.emitTriple(r.subject,r.predicate,t.subject,r.reifiedStatementId);for(let e=0;e=0)throw this.newParseError("Illegal property element name: "+n.local);t.predicateSubPredicates=[],t.predicateSubObjects=[];let i=!1,a=!1,o=null,c=!0;const l=[],h=[];for(const r in e.attributes){const n=e.attributes[r],p=s.expandPrefixedTerm(r,t.ns,this);if(p.uri===s.RDF)switch(p.local){case"resource":if(o)throw this.newParseError(`Found both rdf:resource (${n}) and rdf:nodeID (${o}).`);if(i)throw this.newParseError(`rdf:parseType is not allowed on property elements with rdf:resource (${n})`);t.hadChildren=!0,o=n,c=!1;continue;case"datatype":if(a)throw this.newParseError(`Found both non-rdf:* property attributes and rdf:datatype (${n}).`);if(i)throw this.newParseError(`rdf:parseType is not allowed on property elements with rdf:datatype (${n})`);t.datatype=this.valueToUri(n,t);continue;case"nodeID":if(a)throw this.newParseError(`Found both non-rdf:* property attributes and rdf:nodeID (${n}).`);if(t.hadChildren)throw this.newParseError(`Found both rdf:resource and rdf:nodeID (${n}).`);if(i)throw this.newParseError(`rdf:parseType is not allowed on property elements with rdf:nodeID (${n})`);this.validateNcname(n),t.hadChildren=!0,o=n,c=!0;continue;case"bagID":throw this.newParseError("rdf:bagID is not supported.");case"parseType":if(a)throw this.newParseError("rdf:parseType is not allowed when non-rdf:* property attributes are present");if(t.datatype)throw this.newParseError(`rdf:parseType is not allowed on property elements with rdf:datatype (${t.datatype.value})`);if(o)throw this.newParseError(`rdf:parseType is not allowed on property elements with rdf:nodeID or rdf:resource (${o})`);if("Resource"===n){i=!0,t.childrenParseType=u.PROPERTY;const e=this.dataFactory.blankNode();this.emitTriple(t.subject,t.predicate,e,t.reifiedStatementId),t.subject=e,t.predicate=null}else"Collection"===n?(i=!0,t.hadChildren=!0,t.childrenCollectionSubject=t.subject,t.childrenCollectionPredicate=t.predicate,c=!1):"Literal"===n&&(i=!0,t.childrenTagsToString=!0,t.childrenStringTags=[]);continue;case"ID":this.validateNcname(n),t.reifiedStatementId=this.valueToUri("#"+n,t),this.claimNodeId(t.reifiedStatementId);continue}else if(p.uri===s.XML&&"lang"===p.local){t.language=""===n?null:n.toLowerCase();continue}if("xml"!==p.prefix&&"xmlns"!==p.prefix&&p.uri){if(i||t.datatype)throw this.newParseError("Found illegal rdf:* properties on property element with attribute: "+n);t.hadChildren=!0,a=!0,l.push(this.uriToNamedNode(p.uri+p.local)),h.push(this.dataFactory.literal(n,t.datatype||t.language))}}if(null!==o){const e=t.subject;t.subject=c?this.dataFactory.blankNode(o):this.valueToUri(o,t),this.emitTriple(e,t.predicate,t.subject,t.reifiedStatementId);for(let e=0;e/g,(e,t,r)=>(this.saxStream._parser.ENTITIES[t]=r,""))}}var u;t.RdfXmlParser=s,s.IRI_REGEX=/^([A-Za-z][A-Za-z0-9+-.]*):[^ "<>{}|\\\[\]`]*$/,s.MIME_TYPE="application/rdf+xml",s.RDF="http://www.w3.org/1999/02/22-rdf-syntax-ns#",s.XML="http://www.w3.org/XML/1998/namespace",s.XMLNS="http://www.w3.org/2000/xmlns/",s.DEFAULT_NS={xml:s.XML},s.FORBIDDEN_NODE_ELEMENTS=["RDF","ID","about","bagID","parseType","resource","nodeID","li","aboutEach","aboutEachPrefix"],s.FORBIDDEN_PROPERTY_ELEMENTS=["Description","RDF","ID","about","bagID","parseType","resource","nodeID","aboutEach","aboutEachPrefix"],s.NCNAME_MATCHER=/^([A-Za-z\xC0-\xD6\xD8-\xF6\u{F8}-\u{2FF}\u{370}-\u{37D}\u{37F}-\u{1FFF}\u{200C}-\u{200D}\u{2070}-\u{218F}\u{2C00}-\u{2FEF}\u{3001}-\u{D7FF}\u{F900}-\u{FDCF}\u{FDF0}-\u{FFFD}\u{10000}-\u{EFFFF}_])([A-Za-z\xC0-\xD6\xD8-\xF6\u{F8}-\u{2FF}\u{370}-\u{37D}\u{37F}-\u{1FFF}\u{200C}-\u{200D}\u{2070}-\u{218F}\u{2C00}-\u{2FEF}\u{3001}-\u{D7FF}\u{F900}-\u{FDCF}\u{FDF0}-\u{FFFD}\u{10000}-\u{EFFFF}_\-.0-9#xB7\u{0300}-\u{036F}\u{203F}-\u{2040}])*$/u,function(e){e[e.RESOURCE=0]="RESOURCE",e[e.PROPERTY=1]="PROPERTY"}(u=t.ParseType||(t.ParseType={}))},function(e,t,r){"use strict";Object.defineProperty(t,"__esModule",{value:!0});class n extends Error{constructor(e,t){const r=e.saxStream._parser;super(e.trackPosition?`Line ${r.line+1} column ${r.column+1}: ${t}`:t)}}t.ParseError=n},function(e,t,r){"use strict";Object.defineProperty(t,"__esModule",{value:!0});const n=r(46),i=r(104);class a extends n.ActorRdfParseFixedMediaTypes{constructor(e){super(e)}async runHandle(e,t,r){const n=e.headers?e.headers.get("content-language"):null;e.input.on("error",e=>a.emit("error",e));const a=e.input.pipe(new i.RdfaParser({baseIRI:e.baseIRI,profile:"xml",language:n}));return{quads:a,triples:!0}}}t.ActorRdfParseXmlRdfa=a},function(e,t,r){"use strict";Object.defineProperty(t,"__esModule",{value:!0});const n=r(105),i=r(2),a=r(272),o=r(273),s=r(67),u=r(116);class c extends i.Transform{constructor(e){super({objectMode:!0}),this.activeTagStack=[],e=e||{},this.options=e,this.util=new u.Util(e.dataFactory,e.baseIRI),this.defaultGraph=e.defaultGraph||this.util.dataFactory.defaultGraph();const t=e.contentType?u.Util.contentTypeToProfile(e.contentType):e.profile||"";this.features=e.features||s.RDFA_FEATURES[t],this.htmlParseListener=e.htmlParseListener,this.rdfaPatterns=this.features.copyRdfaPatterns?{}:null,this.pendingRdfaPatternCopies=this.features.copyRdfaPatterns?{}:null,this.parser=this.initializeParser("xml"===t),this.activeTagStack.push({incompleteTriples:[],inlist:!1,language:e.language,listMapping:{},listMappingLocal:{},name:"",prefixesAll:Object.assign(Object.assign({},o["@context"]),this.features.xhtmlInitialContext?a["@context"]:{}),prefixesCustom:{},skipElement:!1,vocab:e.vocab})}import(e){const t=new i.PassThrough({objectMode:!0});e.on("error",e=>r.emit("error",e)),e.on("data",e=>t.write(e)),e.on("end",()=>t.emit("end"));const r=t.pipe(new c(this.options));return r}_transform(e,t,r){this.parser.write(e),r()}_flush(e){this.parser.end(),e()}onTagOpen(e,t){let r=this.activeTagStack.length-1;for(;r>0&&this.activeTagStack[r].skipElement;)r--;let n=this.activeTagStack[r];r!==this.activeTagStack.length-1&&(n=Object.assign(Object.assign({},n),{language:this.activeTagStack[this.activeTagStack.length-1].language,prefixesAll:this.activeTagStack[this.activeTagStack.length-1].prefixesAll,prefixesCustom:this.activeTagStack[this.activeTagStack.length-1].prefixesCustom,vocab:this.activeTagStack[this.activeTagStack.length-1].vocab}));const i={collectChildTags:n.collectChildTags,incompleteTriples:[],inlist:"inlist"in t,listMapping:[],listMappingLocal:n.listMapping,localBaseIRI:n.localBaseIRI,name:e,prefixesAll:null,prefixesCustom:null,skipElement:!1};if(this.activeTagStack.push(i),i.collectChildTags){for(const e of Object.keys(n.prefixesCustom).sort()){const r=n.prefixesCustom[e],i=""===e?"xmlns":"xmlns:"+e;i in t||(t[i]=r)}const r=Object.keys(t).map(e=>`${e}="${t[e]}"`).join(" ");if(i.text=[`<${e}${r?" "+r:""}>`],this.features.skipHandlingXmlLiteralChildren)return}let a,o,s,c=!0,l=!0;if(this.features.onlyAllowUriRelRevIfProperty&&("property"in t&&"rel"in t&&(c=!1,t.rel.indexOf(":")<0&&delete t.rel),"property"in t&&"rev"in t&&(l=!1,t.rev.indexOf(":")<0&&delete t.rev)),this.features.copyRdfaPatterns){if(n.collectedPatternTag){const r={attributes:t,children:[],name:e,referenced:!1,rootPattern:!1,text:[]};return n.collectedPatternTag.children.push(r),void(i.collectedPatternTag=r)}if("rdfa:Pattern"===t.typeof)return void(i.collectedPatternTag={attributes:t,children:[],name:e,parentTag:n,referenced:!1,rootPattern:!0,text:[]});if("rdfa:copy"===t.property){const e=t.resource||t.href||t.src;return void(this.rdfaPatterns[e]?this.emitPatternCopy(n,this.rdfaPatterns[e],e):(this.pendingRdfaPatternCopies[e]||(this.pendingRdfaPatternCopies[e]=[]),this.pendingRdfaPatternCopies[e].push(n)))}}if(this.features.baseTag&&"base"===e&&t.href&&(this.util.baseIRI=this.util.getBaseIRI(t.href)),this.features.xmlBase&&t["xml:base"]&&(i.localBaseIRI=this.util.getBaseIRI(t["xml:base"])),this.features.timeTag&&"time"===e&&!t.datatype&&(i.interpretObjectAsTime=!0),"vocab"in t?t.vocab?(i.vocab=t.vocab,this.emitTriple(this.util.getBaseIriTerm(i),this.util.dataFactory.namedNode(u.Util.RDFA+"usesVocabulary"),this.util.dataFactory.namedNode(i.vocab))):i.vocab=this.activeTagStack[0].vocab:i.vocab=n.vocab,i.prefixesCustom=u.Util.parsePrefixes(t,n.prefixesCustom,this.features.xmlnsPrefixMappings),i.prefixesAll=Object.keys(i.prefixesCustom).length>0?Object.assign(Object.assign({},n.prefixesAll),i.prefixesCustom):n.prefixesAll,this.features.roleAttribute&&t.role){const e=t.id?this.util.createIri("#"+t.id,i,!1,!1,!1):this.util.createBlankNode(),r=i.vocab;i.vocab="http://www.w3.org/1999/xhtml/vocab#";for(const r of this.util.createVocabIris(t.role,i,!0,!1))this.emitTriple(e,this.util.dataFactory.namedNode("http://www.w3.org/1999/xhtml/vocab#role"),r);i.vocab=r}"xml:lang"in t||this.features.langAttribute&&"lang"in t?i.language=t["xml:lang"]||t.lang:i.language=n.language;const h=2===this.activeTagStack.length;if("rel"in t||"rev"in t?("about"in t?(a=this.util.createIri(t.about,i,!1,!0,!0),i.explicitNewSubject=!!a,"typeof"in t&&(s=a)):h?a=!0:n.object&&(a=n.object),"resource"in t&&(o=this.util.createIri(t.resource,i,!1,!0,!0)),o||("href"in t||"src"in t?o=this.util.createIri(t.href||t.src,i,!1,!1,!0):!("typeof"in t)||"about"in t||this.isInheritSubjectInHeadBody(e)||(o=this.util.createBlankNode())),"typeof"in t&&!("about"in t)&&(s=this.isInheritSubjectInHeadBody(e)?a:o)):!("property"in t)||"content"in t||"datatype"in t?(("about"in t||"resource"in t)&&(a=this.util.createIri(t.about||t.resource,i,!1,!0,!0),i.explicitNewSubject=!!a),a||!("href"in t)&&!("src"in t)||(a=this.util.createIri(t.href||t.src,i,!1,!1,!0),i.explicitNewSubject=!!a),a||(h?a=!0:this.isInheritSubjectInHeadBody(e)?a=n.object:"typeof"in t?(a=this.util.createBlankNode(),i.explicitNewSubject=!0):n.object&&(a=n.object,"property"in t||(i.skipElement=!0))),"typeof"in t&&(s=a)):("about"in t?(a=this.util.createIri(t.about,i,!1,!0,!0),i.explicitNewSubject=!!a):h?a=!0:n.object&&(a=n.object),"typeof"in t&&("about"in t&&(s=this.util.createIri(t.about,i,!1,!0,!0)),!s&&h&&(s=!0),!s&&"resource"in t&&(s=this.util.createIri(t.resource,i,!1,!0,!0)),s||!("href"in t)&&!("src"in t)||(s=this.util.createIri(t.href||t.src,i,!1,!1,!0)),!s&&this.isInheritSubjectInHeadBody(e)&&(s=a),s||(s=this.util.createBlankNode()),o=s)),s)for(const e of this.util.createVocabIris(t.typeof,i,!0,!0))this.emitTriple(this.util.getResourceOrBaseIri(s,i),this.util.dataFactory.namedNode(u.Util.RDF+"type"),e);if(a&&(i.listMapping={}),o){if("rel"in t&&"inlist"in t)for(const e of this.util.createVocabIris(t.rel,i,c,!1))this.addListMapping(i,a,e,o);if(!("rel"in t)||!("inlist"in t)){if("rel"in t)for(const e of this.util.createVocabIris(t.rel,i,c,!1))this.emitTriple(this.util.getResourceOrBaseIri(a,i),e,this.util.getResourceOrBaseIri(o,i));if("rev"in t)for(const e of this.util.createVocabIris(t.rev,i,l,!1))this.emitTriple(this.util.getResourceOrBaseIri(o,i),e,this.util.getResourceOrBaseIri(a,i))}}if(!o){if("rel"in t)if("inlist"in t)for(const e of this.util.createVocabIris(t.rel,i,c,!1))this.addListMapping(i,a,e,null),i.incompleteTriples.push({predicate:e,reverse:!1,list:!0});else for(const e of this.util.createVocabIris(t.rel,i,c,!1))i.incompleteTriples.push({predicate:e,reverse:!1});if("rev"in t)for(const e of this.util.createVocabIris(t.rev,i,l,!1))i.incompleteTriples.push({predicate:e,reverse:!0});i.incompleteTriples.length>0&&(o=this.util.createBlankNode())}if("property"in t){let e;if(i.predicates=this.util.createVocabIris(t.property,i,!0,!1),"datatype"in t?(i.datatype=this.util.createIri(t.datatype,i,!0,!0,!1),i.datatype&&(i.datatype.value===u.Util.RDF+"XMLLiteral"||this.features.htmlDatatype&&i.datatype.value===u.Util.RDF+"HTML")&&(i.collectChildTags=!0)):("rev"in t||"rel"in t||"content"in t||("resource"in t&&(e=this.util.createIri(t.resource,i,!1,!0,!0)),!e&&"href"in t&&(e=this.util.createIri(t.href,i,!1,!1,!0)),!e&&"src"in t&&(e=this.util.createIri(t.src,i,!1,!1,!0))),"typeof"in t&&!("about"in t)&&(e=s)),"content"in t){const e=this.util.createLiteral(t.content,i);if("inlist"in t)for(const t of i.predicates)this.addListMapping(i,a,t,e);else{const t=this.util.getResourceOrBaseIri(a,i);for(const r of i.predicates)this.emitTriple(t,r,e)}i.predicates=null}else if(this.features.datetimeAttribute&&"datetime"in t){i.interpretObjectAsTime=!0;const e=this.util.createLiteral(t.datetime,i);if("inlist"in t)for(const t of i.predicates)this.addListMapping(i,a,t,e);else{const t=this.util.getResourceOrBaseIri(a,i);for(const r of i.predicates)this.emitTriple(t,r,e)}i.predicates=null}else if(e){const r=this.util.getResourceOrBaseIri(e,i);if("inlist"in t)for(const e of i.predicates)this.addListMapping(i,a,e,r);else{const e=this.util.getResourceOrBaseIri(a,i);for(const t of i.predicates)this.emitTriple(e,t,r)}i.predicates=null}}let p=!1;if(!i.skipElement&&a&&n.incompleteTriples.length>0){p=!0;const e=this.util.getResourceOrBaseIri(n.subject,i),t=this.util.getResourceOrBaseIri(a,i);for(const r of n.incompleteTriples)if(r.reverse)this.emitTriple(t,r.predicate,e);else if(r.list){let e=null;for(let t=this.activeTagStack.length-1;t>=0;t--)if(this.activeTagStack[t].inlist){e=this.activeTagStack[t];break}this.addListMapping(e,a,r.predicate,t)}else this.emitTriple(e,r.predicate,t)}!p&&n.incompleteTriples.length>0&&(i.incompleteTriples=i.incompleteTriples.concat(n.incompleteTriples)),i.subject=a||n.subject,i.object=o||a}onText(e){const t=this.activeTagStack[this.activeTagStack.length-1];this.features.copyRdfaPatterns&&t.collectedPatternTag?t.collectedPatternTag.text.push(e):(t.text||(t.text=[]),t.text.push(e))}onTagClose(){const e=this.activeTagStack[this.activeTagStack.length-1],t=this.activeTagStack[this.activeTagStack.length-2];if(!(e.collectChildTags&&t.collectChildTags&&this.features.skipHandlingXmlLiteralChildren)){if(this.features.copyRdfaPatterns&&e.collectedPatternTag&&e.collectedPatternTag.rootPattern){const t=e.collectedPatternTag.attributes.resource;if(delete e.collectedPatternTag.attributes.resource,delete e.collectedPatternTag.attributes.typeof,this.rdfaPatterns[t]=e.collectedPatternTag,this.pendingRdfaPatternCopies[t]){for(const r of this.pendingRdfaPatternCopies[t])this.emitPatternCopy(r,e.collectedPatternTag,t);delete this.pendingRdfaPatternCopies[t]}return void this.activeTagStack.pop()}if(e.predicates){const r=this.util.getResourceOrBaseIri(e.subject,e);let n=e.text||[];e.collectChildTags&&t.collectChildTags&&(n=n.slice(1));const i=this.util.createLiteral(n.join(""),e);if(e.inlist)for(const t of e.predicates)this.addListMapping(e,r,t,i);else for(const t of e.predicates)this.emitTriple(r,t,i);t.predicates||(e.text=null)}if(e.object&&Object.keys(e.listMapping).length>0){const t=this.util.getResourceOrBaseIri(e.object,e);for(const r in e.listMapping){const n=this.util.dataFactory.namedNode(r),i=e.listMapping[r];if(i.length>0){const r=i.map(()=>this.util.createBlankNode());for(let t=0;t`),e.text&&t&&(t.text?t.text=t.text.concat(e.text):t.text=e.text)}onEnd(){if(this.features.copyRdfaPatterns){this.features.copyRdfaPatterns=!1;for(const e in this.rdfaPatterns){const t=this.rdfaPatterns[e];t.referenced||(t.attributes.typeof="rdfa:Pattern",t.attributes.resource=e,this.emitPatternCopy(t.parentTag,t,e),t.referenced=!1,delete t.attributes.typeof,delete t.attributes.resource)}for(const e in this.pendingRdfaPatternCopies)for(const t of this.pendingRdfaPatternCopies[e])this.activeTagStack.push(t),this.onTagOpen("link",{property:"rdfa:copy",href:e}),this.onTagClose(),this.activeTagStack.pop();this.features.copyRdfaPatterns=!0}}isInheritSubjectInHeadBody(e){return this.features.inheritSubjectInHeadBody&&("head"===e||"body"===e)}addListMapping(e,t,r,n){if(e.explicitNewSubject){const i=this.util.createBlankNode();this.emitTriple(this.util.getResourceOrBaseIri(t,e),r,i),this.emitTriple(i,this.util.dataFactory.namedNode(u.Util.RDF+"first"),this.util.getResourceOrBaseIri(n,e)),this.emitTriple(i,this.util.dataFactory.namedNode(u.Util.RDF+"rest"),this.util.dataFactory.namedNode(u.Util.RDF+"nil"))}else{let t=e.listMappingLocal[r.value];t||(e.listMappingLocal[r.value]=t=[]),n&&t.push(n)}}emitTriple(e,t,r){"NamedNode"===e.termType&&e.value.indexOf(":")<0||"NamedNode"===t.termType&&t.value.indexOf(":")<0||"NamedNode"===r.termType&&r.value.indexOf(":")<0||this.push(this.util.dataFactory.quad(e,t,r,this.defaultGraph))}emitPatternCopy(e,t,r){if(this.activeTagStack.push(e),t.referenced=!0,t.constructedBlankNodes){let e=0;this.util.blankNodeFactory=()=>t.constructedBlankNodes[e++]}else t.constructedBlankNodes=[],this.util.blankNodeFactory=()=>{const e=this.util.dataFactory.blankNode();return t.constructedBlankNodes.push(e),e};this.emitPatternCopyAbsolute(t,!0,r),this.util.blankNodeFactory=null,this.activeTagStack.pop()}emitPatternCopyAbsolute(e,t,r){if(t||"rdfa:copy"!==e.attributes.property||e.attributes.href!==r){this.onTagOpen(e.name,e.attributes);for(const t of e.text)this.onText(t);for(const t of e.children)this.emitPatternCopyAbsolute(t,!1,r);this.onTagClose()}}initializeParser(e){return new n.Parser({onclosetag:()=>{try{this.onTagClose(),this.htmlParseListener&&this.htmlParseListener.onTagClose()}catch(e){this.emit("error",e)}},onend:()=>{try{this.onEnd(),this.htmlParseListener&&this.htmlParseListener.onEnd()}catch(e){this.emit("error",e)}},onopentag:(e,t)=>{try{this.onTagOpen(e,t),this.htmlParseListener&&this.htmlParseListener.onTagOpen(e,t)}catch(e){this.emit("error",e)}},ontext:e=>{try{this.onText(e),this.htmlParseListener&&this.htmlParseListener.onText(e)}catch(e){this.emit("error",e)}}},{decodeEntities:!0,recognizeSelfClosing:!0,xmlMode:e})}}t.RdfaParser=c},function(e){e.exports=JSON.parse('{"0":65533,"128":8364,"130":8218,"131":402,"132":8222,"133":8230,"134":8224,"135":8225,"136":710,"137":8240,"138":352,"139":8249,"140":338,"142":381,"145":8216,"146":8217,"147":8220,"148":8221,"149":8226,"150":8211,"151":8212,"152":732,"153":8482,"154":353,"155":8250,"156":339,"158":382,"159":376}')},function(e,t,r){"use strict";var n,i=this&&this.__extends||(n=function(e,t){return(n=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(e,t){e.__proto__=t}||function(e,t){for(var r in t)t.hasOwnProperty(r)&&(e[r]=t[r])})(e,t)},function(e,t){function r(){this.constructor=e}n(e,t),e.prototype=null===t?Object.create(t):(r.prototype=t.prototype,new r)});Object.defineProperty(t,"__esModule",{value:!0});var a=new Map([["tag",1],["script",1],["style",1],["directive",1],["text",3],["cdata",4],["comment",8]]),o=function(){function e(e){this.type=e,this.parent=null,this.prev=null,this.next=null,this.startIndex=null,this.endIndex=null}return Object.defineProperty(e.prototype,"nodeType",{get:function(){return a.get(this.type)||1},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,"parentNode",{get:function(){return this.parent||null},set:function(e){this.parent=e},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,"previousSibling",{get:function(){return this.prev||null},set:function(e){this.prev=e},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,"nextSibling",{get:function(){return this.next||null},set:function(e){this.next=e},enumerable:!0,configurable:!0}),e}();t.Node=o;var s=function(e){function t(t,r){var n=e.call(this,t)||this;return n.data=r,n}return i(t,e),Object.defineProperty(t.prototype,"nodeValue",{get:function(){return this.data},set:function(e){this.data=e},enumerable:!0,configurable:!0}),t}(o);t.DataNode=s;var u=function(e){function t(t,r){var n=e.call(this,"directive",r)||this;return n.name=t,n}return i(t,e),t}(s);t.ProcessingInstruction=u;var c=function(e){function t(t,r){var n=e.call(this,t)||this;return n.children=r,n}return i(t,e),Object.defineProperty(t.prototype,"firstChild",{get:function(){return this.children[0]||null},enumerable:!0,configurable:!0}),Object.defineProperty(t.prototype,"lastChild",{get:function(){return this.children[this.children.length-1]||null},enumerable:!0,configurable:!0}),Object.defineProperty(t.prototype,"childNodes",{get:function(){return this.children},set:function(e){this.children=e},enumerable:!0,configurable:!0}),t}(o);t.NodeWithChildren=c;var l=function(e){function t(t,r){var n=e.call(this,"script"===t?"script":"style"===t?"style":"tag",[])||this;return n.name=t,n.attribs=r,n.attribs=r,n}return i(t,e),Object.defineProperty(t.prototype,"tagName",{get:function(){return this.name},set:function(e){this.name=e},enumerable:!0,configurable:!0}),t}(c);t.Element=l},function(e,t,r){"use strict";var n=this&&this.__importDefault||function(e){return e&&e.__esModule?e:{default:e}};Object.defineProperty(t,"__esModule",{value:!0});var i=r(47),a=n(r(262));function o(e,t){return a.default(e,t)}t.getOuterHTML=o,t.getInnerHTML=function(e,t){return i.hasChildren(e)?e.children.map((function(e){return o(e,t)})).join(""):""},t.getText=function e(t){return Array.isArray(t)?t.map(e).join(""):i.isTag(t)?"br"===t.name?"\n":e(t.children):i.isCDATA(t)?e(t.children):i.isText(t)?t.data:""}},function(e,t,r){var n=r(66),i=r(263),a=r(264);a.elementNames.__proto__=null,a.attributeNames.__proto__=null;var o={__proto__:null,style:!0,script:!0,xmp:!0,iframe:!0,noembed:!0,noframes:!0,plaintext:!0,noscript:!0};var s={__proto__:null,area:!0,base:!0,basefont:!0,br:!0,col:!0,command:!0,embed:!0,frame:!0,hr:!0,img:!0,input:!0,isindex:!0,keygen:!0,link:!0,meta:!0,param:!0,source:!0,track:!0,wbr:!0},u=e.exports=function(e,t){Array.isArray(e)||e.cheerio||(e=[e]),t=t||{};for(var r="",i=0;i=0&&(t=Object.assign({},t,{xmlMode:!1}))),!t.xmlMode&&["svg","math"].indexOf(e.name)>=0&&(t=Object.assign({},t,{xmlMode:"foreign"}));var r="<"+e.name,n=function(e,t){if(e){var r,n="";for(var o in e)r=e[o],n&&(n+=" "),"foreign"===t.xmlMode&&(o=a.attributeNames[o]||o),n+=o,(null!==r&&""!==r||t.xmlMode)&&(n+='="'+(t.decodeEntities?i.encodeXML(r):r.replace(/\"/g,"""))+'"');return n}}(e.attribs,t);return n&&(r+=" "+n),!t.xmlMode||e.children&&0!==e.children.length?(r+=">",e.children&&(r+=u(e.children,t)),s[e.name]&&!t.xmlMode||(r+="")):r+="/>",r}function h(e){return"<"+e.data+">"}function p(e,t){var r=e.data||"";return!t.decodeEntities||e.parent&&e.parent.name in o||(r=i.encodeXML(r)),r}function d(e){return""}function f(e){return"\x3c!--"+e.data+"--\x3e"}},function(e,t,r){"use strict";Object.defineProperty(t,"__esModule",{value:!0});var n=r(113),i=r(114);t.decode=function(e,t){return(!t||t<=0?n.decodeXML:n.decodeHTML)(e)},t.decodeStrict=function(e,t){return(!t||t<=0?n.decodeXML:n.decodeHTMLStrict)(e)},t.encode=function(e,t){return(!t||t<=0?i.encodeXML:i.encodeHTML)(e)};var a=r(114);t.encodeXML=a.encodeXML,t.encodeHTML=a.encodeHTML,t.escape=a.escape,t.encodeHTML4=a.encodeHTML,t.encodeHTML5=a.encodeHTML;var o=r(113);t.decodeXML=o.decodeXML,t.decodeHTML=o.decodeHTML,t.decodeHTMLStrict=o.decodeHTMLStrict,t.decodeHTML4=o.decodeHTML,t.decodeHTML5=o.decodeHTML,t.decodeHTML4Strict=o.decodeHTMLStrict,t.decodeHTML5Strict=o.decodeHTMLStrict,t.decodeXMLStrict=o.decodeXML},function(e){e.exports=JSON.parse('{"elementNames":{"altglyph":"altGlyph","altglyphdef":"altGlyphDef","altglyphitem":"altGlyphItem","animatecolor":"animateColor","animatemotion":"animateMotion","animatetransform":"animateTransform","clippath":"clipPath","feblend":"feBlend","fecolormatrix":"feColorMatrix","fecomponenttransfer":"feComponentTransfer","fecomposite":"feComposite","feconvolvematrix":"feConvolveMatrix","fediffuselighting":"feDiffuseLighting","fedisplacementmap":"feDisplacementMap","fedistantlight":"feDistantLight","fedropshadow":"feDropShadow","feflood":"feFlood","fefunca":"feFuncA","fefuncb":"feFuncB","fefuncg":"feFuncG","fefuncr":"feFuncR","fegaussianblur":"feGaussianBlur","feimage":"feImage","femerge":"feMerge","femergenode":"feMergeNode","femorphology":"feMorphology","feoffset":"feOffset","fepointlight":"fePointLight","fespecularlighting":"feSpecularLighting","fespotlight":"feSpotLight","fetile":"feTile","feturbulence":"feTurbulence","foreignobject":"foreignObject","glyphref":"glyphRef","lineargradient":"linearGradient","radialgradient":"radialGradient","textpath":"textPath"},"attributeNames":{"definitionurl":"definitionURL","attributename":"attributeName","attributetype":"attributeType","basefrequency":"baseFrequency","baseprofile":"baseProfile","calcmode":"calcMode","clippathunits":"clipPathUnits","diffuseconstant":"diffuseConstant","edgemode":"edgeMode","filterunits":"filterUnits","glyphref":"glyphRef","gradienttransform":"gradientTransform","gradientunits":"gradientUnits","kernelmatrix":"kernelMatrix","kernelunitlength":"kernelUnitLength","keypoints":"keyPoints","keysplines":"keySplines","keytimes":"keyTimes","lengthadjust":"lengthAdjust","limitingconeangle":"limitingConeAngle","markerheight":"markerHeight","markerunits":"markerUnits","markerwidth":"markerWidth","maskcontentunits":"maskContentUnits","maskunits":"maskUnits","numoctaves":"numOctaves","pathlength":"pathLength","patterncontentunits":"patternContentUnits","patterntransform":"patternTransform","patternunits":"patternUnits","pointsatx":"pointsAtX","pointsaty":"pointsAtY","pointsatz":"pointsAtZ","preservealpha":"preserveAlpha","preserveaspectratio":"preserveAspectRatio","primitiveunits":"primitiveUnits","refx":"refX","refy":"refY","repeatcount":"repeatCount","repeatdur":"repeatDur","requiredextensions":"requiredExtensions","requiredfeatures":"requiredFeatures","specularconstant":"specularConstant","specularexponent":"specularExponent","spreadmethod":"spreadMethod","startoffset":"startOffset","stddeviation":"stdDeviation","stitchtiles":"stitchTiles","surfacescale":"surfaceScale","systemlanguage":"systemLanguage","tablevalues":"tableValues","targetx":"targetX","targety":"targetY","textlength":"textLength","viewbox":"viewBox","viewtarget":"viewTarget","xchannelselector":"xChannelSelector","ychannelselector":"yChannelSelector","zoomandpan":"zoomAndPan"}}')},function(e,t,r){"use strict";function n(e){return e.children||null}function i(e){return e.parent||null}Object.defineProperty(t,"__esModule",{value:!0}),t.getChildren=n,t.getParent=i,t.getSiblings=function(e){var t=i(e);return t?n(t):[e]},t.getAttributeValue=function(e,t){var r;return null===(r=e.attribs)||void 0===r?void 0:r[t]},t.hasAttrib=function(e,t){return!!e.attribs&&Object.prototype.hasOwnProperty.call(e.attribs,t)&&null!=e.attribs[t]},t.getName=function(e){return e.name}},function(e,t,r){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.removeElement=function(e){if(e.prev&&(e.prev.next=e.next),e.next&&(e.next.prev=e.prev),e.parent){var t=e.parent.children;t.splice(t.lastIndexOf(e),1)}},t.replaceElement=function(e,t){var r=t.prev=e.prev;r&&(r.next=t);var n=t.next=e.next;n&&(n.prev=t);var i=t.parent=e.parent;if(i){var a=i.children;a[a.lastIndexOf(e)]=t}},t.appendChild=function(e,t){if(t.parent=e,1!==e.children.push(t)){var r=e.children[e.children.length-2];r.next=t,t.prev=r,t.next=null}},t.append=function(e,t){var r=e.parent,n=e.next;if(t.next=n,t.prev=e,e.next=t,t.parent=r,n){if(n.prev=t,r){var i=r.children;i.splice(i.lastIndexOf(n),0,t)}}else r&&r.children.push(t)},t.prepend=function(e,t){var r=e.parent;if(r){var n=r.children;n.splice(n.lastIndexOf(e),0,t)}e.prev&&(e.prev.next=t),t.parent=r,t.prev=e.prev,t.next=e,e.prev=t}},function(e,t,r){"use strict";Object.defineProperty(t,"__esModule",{value:!0});var n=r(115),i=r(47);function a(e){return"text"===e.type}var o={tag_name:function(e){return"function"==typeof e?function(t){return i.isTag(t)&&e(t.name)}:"*"===e?i.isTag:function(t){return i.isTag(t)&&t.name===e}},tag_type:function(e){return"function"==typeof e?function(t){return e(t.type)}:function(t){return t.type===e}},tag_contains:function(e){return"function"==typeof e?function(t){return a(t)&&e(t.data)}:function(t){return a(t)&&t.data===e}}};function s(e,t){return"function"==typeof t?function(r){return i.isTag(r)&&t(r.attribs[e])}:function(r){return i.isTag(r)&&r.attribs[e]===t}}function u(e,t){return function(r){return e(r)||t(r)}}function c(e){var t=Object.keys(e).map((function(t){var r=e[t];return t in o?o[t](r):s(t,r)}));return 0===t.length?null:t.reduce(u)}t.testElement=function(e,t){var r=c(e);return!r||r(t)},t.getElements=function(e,t,r,i){void 0===i&&(i=1/0);var a=c(e);return a?n.filter(a,t,r,i):[]},t.getElementById=function(e,t,r){return void 0===r&&(r=!0),Array.isArray(t)||(t=[t]),n.findOne(s("id",e),t,r)},t.getElementsByTagName=function(e,t,r,i){return void 0===i&&(i=1/0),n.filter(o.tag_name(e),t,r,i)},t.getElementsByTagType=function(e,t,r,i){return void 0===r&&(r=!0),void 0===i&&(i=1/0),n.filter(o.tag_type(e),t,r,i)}},function(e,t,r){"use strict";Object.defineProperty(t,"__esModule",{value:!0});var n=r(47);function i(e,t){var r=[],i=[];if(e===t)return 0;for(var a=n.hasChildren(e)?e:e.parent;a;)r.unshift(a),a=a.parent;for(a=n.hasChildren(t)?t:t.parent;a;)i.unshift(a),a=a.parent;for(var o=0;r[o]===i[o];)o++;if(0===o)return 1;var s=r[o-1],u=s.children,c=r[o],l=i[o];return u.indexOf(c)>u.indexOf(l)?s===t?20:4:s===e?10:2}t.removeSubsets=function(e){for(var t=e.length;--t>=0;){var r=e[t];if(t>0&&e.lastIndexOf(r,t-1)>=0)e.splice(t,1);else for(var n=r.parent;n;n=n.parent)if(e.indexOf(n)>-1){e.splice(t,1);break}}return e},t.compareDocumentPosition=i,t.uniqueSort=function(e){return(e=e.filter((function(e,t,r){return!r.includes(e,t+1)}))).sort((function(e,t){var r=i(e,t);return 2&r?-1:4&r?1:0})),e}},function(e,t){},function(e,t,r){"use strict";var n,i=this&&this.__extends||(n=function(e,t){return(n=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(e,t){e.__proto__=t}||function(e,t){for(var r in t)t.hasOwnProperty(r)&&(e[r]=t[r])})(e,t)},function(e,t){function r(){this.constructor=e}n(e,t),e.prototype=null===t?Object.create(t):(r.prototype=t.prototype,new r)}),a=this&&this.__importDefault||function(e){return e&&e.__esModule?e:{default:e}};Object.defineProperty(t,"__esModule",{value:!0});var o=function(e){function t(t){void 0===t&&(t={});var r=e.call(this,(function(e){for(var t,n=[],i=1;ie.get(t)).join("")}async getOutput(e){const t=n.ActorRdfJoin.overlappingVariables(e);return{type:"bindings",bindingsStream:new i.SymmetricHashJoin(e.entries[0].bindingsStream,e.entries[1].bindingsStream,e=>a.hash(e,t),n.ActorRdfJoin.join),variables:n.ActorRdfJoin.joinVariables(e)}}async getIterations(e){return(await e.entries[0].metadata()).totalItems+(await e.entries[1].metadata()).totalItems}}t.ActorRdfJoinSymmetricHash=a},function(e,t,r){"use strict";Object.defineProperty(t,"__esModule",{value:!0});const n=r(0),i=r(4);class a extends n.Actor{constructor(e,t,r){super(e),this.limitEntries=t,this.limitEntriesMin=r}static overlappingVariables(e){return r(276).apply(this,e.entries.map(e=>e.variables))}static joinVariables(e){return r(118).apply(this,e.entries.map(e=>e.variables))}static join(...e){try{return e.reduce((e,t)=>e.mergeWith((e,t)=>{if(!e.equals(t))throw new Error;return e},t))}catch(e){return null}}static async iteratorsHaveMetadata(e,t){return Promise.all(e.entries.map(async e=>{if(!(await e.metadata()).hasOwnProperty(t))throw new Error})).then(()=>!0).catch(()=>!1)}async test(e){if(e.entries.length<=1)return{iterations:0};if(this.limitEntries&&(this.limitEntriesMin?e.entries.lengththis.limitEntries))throw new Error(this.name+" requires "+this.limitEntries+" sources at "+(this.limitEntriesMin?"least":"most")+". The input contained "+e.entries.length+".");for(const t of e.entries)if("bindings"!==t.type)throw new Error("Invalid type of a join entry: Expected 'bindings' but got '"+t.type+"'");return await a.iteratorsHaveMetadata(e,"totalItems")?{iterations:await this.getIterations(e)}:{iterations:1/0}}async run(e){if(0===e.entries.length)return{bindingsStream:new i.EmptyIterator,metadata:()=>Promise.resolve({totalItems:0}),type:"bindings",variables:[]};if(1===e.entries.length)return e.entries[0];const t=this.getOutput(e);if(await a.iteratorsHaveMetadata(e,"totalItems")){const r=()=>Promise.all(e.entries.map(e=>e.metadata())).then(e=>e.reduce((e,t)=>e*t.totalItems,1)),n=await t;if(n.metadata){const e=n.metadata;n.metadata=()=>e().then(async e=>(e.hasOwnProperty("totalItems")||(e.totalItems=await r()),e))}else n.metadata=()=>r().then(e=>({totalItems:e}));return n}return t}}t.ActorRdfJoin=a},function(e,t,r){(function(t){var r=/^\[object .+?Constructor\]$/,n="object"==typeof t&&t&&t.Object===Object&&t,i="object"==typeof self&&self&&self.Object===Object&&self,a=n||i||Function("return this")();function o(e,t,r){switch(r.length){case 0:return e.call(t);case 1:return e.call(t,r[0]);case 2:return e.call(t,r[0],r[1]);case 3:return e.call(t,r[0],r[1],r[2])}return e.apply(t,r)}function s(e,t){return!!(e?e.length:0)&&function(e,t,r){if(t!=t)return function(e,t,r,n){var i=e.length,a=r+(n?1:-1);for(;n?a--:++a-1}function u(e,t,r){for(var n=-1,i=e?e.length:0;++n-1&&e%1==0&&e<=9007199254740991}(e.length)&&!B(e)}(e)}(e)?e:[]}function k(e,t){var r,n,i=e.__data__;return("string"==(n=typeof(r=t))||"number"==n||"symbol"==n||"boolean"==n?"__proto__"!==r:null===r)?i["string"==typeof t?"string":"hash"]:i.map}function L(e,t){var r=function(e,t){return null==e?void 0:e[t]}(e,t);return j(r)?r:void 0}A.prototype.clear=function(){this.__data__=R?R(null):{}},A.prototype.delete=function(e){return this.has(e)&&delete this.__data__[e]},A.prototype.get=function(e){var t=this.__data__;if(R){var r=t[e];return"__lodash_hash_undefined__"===r?void 0:r}return v.call(t,e)?t[e]:void 0},A.prototype.has=function(e){var t=this.__data__;return R?void 0!==t[e]:v.call(t,e)},A.prototype.set=function(e,t){return this.__data__[e]=R&&void 0===t?"__lodash_hash_undefined__":t,this},I.prototype.clear=function(){this.__data__=[]},I.prototype.delete=function(e){var t=this.__data__,r=C(t,e);return!(r<0)&&(r==t.length-1?t.pop():S.call(t,r,1),!0)},I.prototype.get=function(e){var t=this.__data__,r=C(t,e);return r<0?void 0:t[r][1]},I.prototype.has=function(e){return C(this.__data__,e)>-1},I.prototype.set=function(e,t){var r=this.__data__,n=C(r,e);return n<0?r.push([e,t]):r[n][1]=t,this},P.prototype.clear=function(){this.__data__={hash:new A,map:new(O||I),string:new A}},P.prototype.delete=function(e){return k(this,e).delete(e)},P.prototype.get=function(e){return k(this,e).get(e)},P.prototype.has=function(e){return k(this,e).has(e)},P.prototype.set=function(e,t){return k(this,e).set(e,t),this},N.prototype.add=N.prototype.push=function(e){return this.__data__.set(e,"__lodash_hash_undefined__"),this},N.prototype.has=function(e){return this.__data__.has(e)};var M,F,q=(M=function(e){var t=c(e,D);return t.length&&t[0]===e[0]?function(e,t,r){for(var n=r?u:s,i=e[0].length,a=e.length,o=a,l=Array(a),d=1/0,f=[];o--;){var y=e[o];o&&t&&(y=c(y,h(t))),d=x(y.length,d),l[o]=!r&&(t||i>=120&&y.length>=120)?new N(o&&y):void 0}y=e[0];var m=-1,g=l[0];e:for(;++m{let n=this.funJoin(e,t);null!==n&&this._push(n),r()}})}}},function(e,t,r){let n=r(4);e.exports=class extends n{constructor(e,t,r,n){super(t),this.left=e,this.right=t,this.funHash=r,this.funJoin=n,this.leftMap=new Map,this.match=null,this.matches=[],this.matchIdx=0,this.readable=!1,this.left.on("end",function(){if(this.leftMap.size<=0)return this.close();this.readable=!0,this.right.on("readable",()=>this.readable=!0),this.right.on("end",()=>{this.hasResults()||this._end()})}.bind(this)),this.left.on("data",function(e){let t=this.funHash(e);this.leftMap.has(t)||this.leftMap.set(t,[]);this.leftMap.get(t).push(e)}.bind(this))}hasResults(){return!this.right.ended||this.matchIdxthis.right.close())}close(){super.close(),this.right.close()}_createTransformer(e){return new a(this.right.clone(),{transform:(t,r)=>{let n=this.funJoin(e,t);null!==n&&this._push(n),r()}})}}},function(e,t,r){let n=r(4);e.exports=class extends n{constructor(e,t,r,n){super(),this.left=e,this.right=t,this.funHash=r,this.funJoin=n,this.usedLeft=!1,this.leftMap=new Map,this.rightMap=new Map,this.on("end",()=>this._cleanup()),this.match=null,this.matches=[],this.matchIdx=0,this.left.on("readable",()=>this.readable=!0),this.right.on("readable",()=>this.readable=!0),this.left.on("end",()=>{this.hasResults()||this._end()}),this.right.on("end",()=>{this.hasResults()||this._end()})}hasResults(){return!this.left.ended||!this.right.ended||this.matchIdxthis.emit("readable")),t.on("end",()=>this._removeStream(t));0===this.streams.length&&this.close(),this.idx=this.streams.length-1}_removeStream(e){let t=this.streams.indexOf(e);t<0||(this.streams.splice(t,1),this.idx>=this.streams.length&&--this.idx,0===this.streams.length&&this._end())}close(){super.close();for(let e of this.streams)e.close()}read(){for(let e=0;e{n._read=null;let t=1;const a=e=>n.emit("error",e),o=()=>{0==--t&&n.push(null)},s={baseIRI:e.baseIRI,context:r,emit:e=>n.emit("data",e),end:o,error:a,headers:e.headers};Promise.all(this.busRdfParseHtml.publish(s)).then(async r=>{t+=r.length;const n=[];for(const e of r){const{htmlParseListener:t}=await e.actor.run(s);n.push(t)}const u=new i.Parser({onclosetag:()=>{try{for(const e of n)e.onTagClose()}catch(e){a(e)}},onend:()=>{try{for(const e of n)e.onEnd()}catch(e){a(e)}o()},onopentag:(e,t)=>{try{for(const r of n)r.onTagOpen(e,t)}catch(e){a(e)}},ontext:e=>{try{for(const t of n)t.onText(e)}catch(e){a(e)}}},{decodeEntities:!0,recognizeSelfClosing:!0,xmlMode:!1});e.input.on("error",a),e.input.pipe(u)})},{quads:n}}}t.ActorRdfParseHtml=o},function(e,t,r){"use strict";Object.defineProperty(t,"__esModule",{value:!0});const n=r(121),i=r(104);class a extends n.ActorRdfParseHtml{constructor(e){super(e)}async test(e){return!0}async run(e){const t=e.headers?e.headers.get("content-type"):null,r=e.headers?e.headers.get("content-language"):null,n=t&&t.indexOf("xml")>=0?"xhtml":"html",a=new i.RdfaParser({baseIRI:e.baseIRI,profile:n,language:r});a.on("error",e.error),a.on("data",e.emit);const o=a.onEnd;return a.onEnd=()=>{o.call(a),e.end()},{htmlParseListener:a}}}t.ActorRdfParseHtmlRdfa=a},function(e,t,r){"use strict";Object.defineProperty(t,"__esModule",{value:!0});const n=r(0);class i extends n.Actor{constructor(e){super(e)}}t.ActorRdfParseHtml=i},function(e,t,r){"use strict";Object.defineProperty(t,"__esModule",{value:!0});const n=r(20);class i extends n.ActorRdfResolveQuadPatternSource{constructor(e){super(e)}async test(e){if(!this.hasContextSingleSourceOfType("rdfjsSource",e.context))throw new Error(this.name+" requires a single source with an rdfjsSource to be present in the context.");const t=this.getContextSource(e.context);if("string"==typeof t||!t.value.match)throw new Error(this.name+" received an invalid rdfjsSource.");return!0}getMetadata(e,t,r,n){return()=>Promise.resolve({})}async getSource(e){return this.getContextSource(e).value}}t.ActorRdfResolveQuadPatternRdfJsSource=i},function(e,t,r){"use strict";Object.defineProperty(t,"__esModule",{value:!0});const n=r(4),i=r(123);class a extends i.ActorRdfResolveQuadPattern{constructor(e){super(e)}static variableToNull(e){return e&&"Variable"===e.termType?null:e}static cachifyMetadata(e){let t=null;return()=>t||(t=e())}async test(e){return!0}async run(e){const t=await this.getSource(e.context,e.pattern);return await this.getOutput(t,e.pattern,e.context)}getMetadata(e,t,r,n){return()=>new Promise((e,t)=>{n.on("error",t),n.on("end",()=>e({})),n.on("metadata",t=>{e(t)})})}async getOutput(e,t,r){let i;i=e.matchLazy?e.matchLazy(a.variableToNull(t.subject),a.variableToNull(t.predicate),a.variableToNull(t.object),a.variableToNull(t.graph)):n.AsyncIterator.wrap(e.match(a.variableToNull(t.subject),a.variableToNull(t.predicate),a.variableToNull(t.object),a.variableToNull(t.graph)));return{data:i,metadata:a.cachifyMetadata(this.getMetadata(e,t,r,i))}}}t.ActorRdfResolveQuadPatternSource=a},function(e,t,r){"use strict";Object.defineProperty(t,"__esModule",{value:!0});const n=r(125),i=r(2);class a extends n.ActorRdfMetadata{constructor(e){super(e)}async test(e){if(e.triples)throw new Error("This actor only supports non-triple quad streams.");return!0}async run(e){const t=new i.Readable({objectMode:!0}),r=new i.Readable({objectMode:!0}),n=()=>{t._read=r._read=()=>{},e.quads.on("error",e=>{t.emit("error",e),r.emit("error",e)});const n={};let i=null;const a={};e.quads.on("data",t=>{"http://rdfs.org/ns/void#subset"===t.predicate.value&&t.object.value===e.url?i=t.subject.value:"http://xmlns.com/foaf/0.1/primaryTopic"===t.predicate.value&&(a[t.object.value]=t.subject.value);let r=n[t.graph.value];r||(r=n[t.graph.value]=[]),r.push(t)}),e.quads.on("end",()=>{const e=i?a[i]:null;for(const i in n)if(i===e){for(const e of n[i])r.push(e);if(this.metadataToData)for(const e of n[i])t.push(e)}else{for(const e of n[i])t.push(e);if(!e&&this.dataToMetadataOnInvalidMetadataGraph)for(const e of n[i])r.push(e)}t.push(null),r.push(null)})};return t._read=r._read=()=>{n()},{data:t,metadata:r}}}t.ActorRdfMetadataPrimaryTopic=a},function(e,t,r){"use strict";Object.defineProperty(t,"__esModule",{value:!0});const n=r(2),i=r(126);class a extends i.ActorRdfMetadata{constructor(e){super(e)}async run(e){const t=new n.Readable({objectMode:!0}),r=new n.Readable({objectMode:!0}),i=()=>{t._read=r._read=()=>{},e.quads.on("error",e=>{t.emit("error",e),r.emit("error",e)});const n={};e.quads.on("data",i=>{this.isMetadata(i,e.url,n)?r.push(i):t.push(i)}),e.quads.on("end",()=>{t.push(null),r.push(null)})};return t._read=r._read=()=>{i()},{data:t,metadata:r}}}t.ActorRdfMetadataQuadPredicate=a},function(e,t,r){"use strict";Object.defineProperty(t,"__esModule",{value:!0});const n=r(125),i=r(2);class a extends n.ActorRdfMetadata{constructor(e){super(e)}async test(e){return!0}async run(e){const t=new i.Readable({objectMode:!0}),r=new i.Readable({objectMode:!0});return t._read=r._read=()=>{t._read=r._read=()=>{},e.quads.on("error",e=>{t.emit("error",e),r.emit("error",e)}),e.quads.on("data",e=>{t.push(e),r.push(e)}),e.quads.on("end",()=>{t.push(null),r.push(null)})},{data:t,metadata:r}}}t.ActorRdfMetadataAll=a},function(e,t,r){"use strict";Object.defineProperty(t,"__esModule",{value:!0});const n=r(69),i=r(305);class a extends n.ActorRdfMetadataExtract{constructor(e){super(e),this.parsedUriTemplateCache={}}async test(e){return!0}getLinks(e,t){return a.LINK_TYPES.reduce((r,n)=>{const i=t[n]||t[n+"Page"],a=i&&i[e];return r[n]=a&&a.length>0?a[0]:null,r},{})}parseUriTemplateCached(e){const t=this.parsedUriTemplateCache[e];return t||(this.parsedUriTemplateCache[e]=i.parse(e))}getSearchForms(e){const t=e.search,r=[];if(t)for(const n in t)for(const i of t[n]){const t=(e.template||{})[i]||[];if(1!==t.length)throw new Error("Expected 1 hydra:template for "+i);const a=t[0],o=this.parseUriTemplateCached(a),s=((e.mapping||{})[i]||[]).reduce((t,r)=>{const n=((e.variable||{})[r]||[])[0],i=((e.property||{})[r]||[])[0];if(!n)throw new Error("Expected a hydra:variable for "+r);if(!i)throw new Error("Expected a hydra:property for "+r);return t[i]=n,t},{}),u=e=>o.expand(Object.keys(e).reduce((t,r)=>(t[s[r]]=e[r],t),{}));r.push({dataset:n,template:a,mappings:s,getUri:u})}return{values:r}}getHydraProperties(e){return new Promise((t,r)=>{e.on("error",r);const n={};e.on("data",e=>{if(e.predicate.value.startsWith(a.HYDRA)){const t=e.predicate.value.substr(a.HYDRA.length),r=n[t]||(n[t]={});(r[e.subject.value]||(r[e.subject.value]=[])).push(e.object.value)}}),e.on("end",()=>t(n))})}async run(e){const t={},n=await this.getHydraProperties(e.metadata);return r(44)(t,this.getLinks(e.url,n)),t.searchForms=this.getSearchForms(n),{metadata:t}}}t.ActorRdfMetadataExtractHydraControls=a,a.HYDRA="http://www.w3.org/ns/hydra/core#",a.LINK_TYPES=["first","next","previous","last"]},function(e,t,r){"use strict";Object.defineProperty(t,"__esModule",{value:!0});const n=r(293),i=r(134),a=r(129),o=r(135);class s extends a.ActorRdfMetadataExtract{constructor(e,t,r){super(r),this.graphqlClient=new n.Client({context:e,queryEngine:new o.GraphQlQueryEngine(this.queryEngine)}),this.sparqlOperation=this.graphqlClient.graphQlToSparql({query:t})}async queryData(e,t){const r=await i.storeStream(e),{data:n}=await this.graphqlClient.query(Object.assign(Object.assign({},await this.sparqlOperation),{queryEngineOptions:{source:{type:"rdfjsSource",value:r},initialBindings:t}}));return n}}t.ActorRdfMetadataExtractQuery=s},function(e,t,r){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),function(e){for(var r in e)t.hasOwnProperty(r)||(t[r]=e[r])}(r(294))},function(e,t,r){"use strict";var n=this&&this.__awaiter||function(e,t,r,n){return new(r||(r=Promise))((function(i,a){function o(e){try{u(n.next(e))}catch(e){a(e)}}function s(e){try{u(n.throw(e))}catch(e){a(e)}}function u(e){var t;e.done?i(e.value):(t=e.value,t instanceof r?t:new r((function(e){e(t)}))).then(o,s)}u((n=n.apply(e,t||[])).next())}))};Object.defineProperty(t,"__esModule",{value:!0});const i=r(70),a=r(8),o=r(130);t.Client=class{constructor(e){this.context=(e.contextParser||new a.ContextParser).parse(e.context,{baseIRI:e.baseIRI}),this.queryEngine=e.queryEngine,this.graphqlToSparqlConverter=e.graphqlToSparqlConverter||new i.Converter({dataFactory:e.dataFactory,requireContext:!0}),this.sparqlJsonToTreeConverter=e.sparqlJsonToTreeConverter||new o.Converter({dataFactory:e.dataFactory,materializeRdfJsTerms:!0})}query(e){return n(this,void 0,void 0,(function*(){const{sparqlAlgebra:t,singularizeVariables:r}="query"in e?yield this.graphQlToSparql({query:e.query,variables:e.variables}):e,n=yield this.queryEngine.query(t,e.queryEngineOptions);return{data:this.sparqlJsonToTreeConverter.sparqlJsonResultsToTree(n,{singularizeVariables:r})}}))}graphQlToSparql({query:e,variables:t}){return n(this,void 0,void 0,(function*(){const t={},r={singularizeVariables:t,variablesDict:{}};return{sparqlAlgebra:yield this.graphqlToSparqlConverter.graphqlToSparqlAlgebra(e,(yield this.context).getContextRaw(),r),singularizeVariables:t}}))}}},function(e,t,r){"use strict";Object.defineProperty(t,"__esModule",{value:!0});const n=r(296),i=r(71);class a{constructor(e){(e=e||{delimiter:"_"}).prefixVariableQuestionMark=!1,this.delimiter=e.delimiter||"_",this.parser=new i.SparqlJsonParser(e),this.materializeRdfJsTerms=e.materializeRdfJsTerms}static addValueToTree(e,t,r,n,i,o){const s=t[0],u=n?n+o+s:s,c=i.singularizeVariables[u];if(1===t.length)c?e[s]||(e[s]=r):(e[s]||(e[s]=[]),e[s].push(r));else{let n;c?(e[s]||(e[s]={}),n=e[s]):(e[s]||(e[s]=[{}]),n=e[s][0]),a.addValueToTree(n,t.slice(1),r,u,i,o)}}static mergeTrees(e,t){if(typeof e!=typeof t)throw new Error(`Two incompatible tree nodes were found: ${typeof e} and ${typeof t}`);if(Array.isArray(e)!==Array.isArray(t))throw new Error(`Two incompatible tree nodes were found: Array?${Array.isArray(e)} and Array?${Array.isArray(t)}`);if("object"==typeof e&&"object"==typeof t){if(e.termType&&t.termType)return e.equals(t)?{valid:!0,result:e}:{valid:!1,result:e};if(Array.isArray(e)&&Array.isArray(t)){if(e.length>0){const r=[];let n=!1;for(let i=0;i0?"INF":"-INF",t)}}t.TypeHandlerNumberDouble=i,i.TYPES=["http://www.w3.org/2001/XMLSchema#double","http://www.w3.org/2001/XMLSchema#decimal","http://www.w3.org/2001/XMLSchema#float"]},function(e,t,r){"use strict";Object.defineProperty(t,"__esModule",{value:!0});const n=r(37);class i{fromRdf(e,t){const r=parseInt(e.value,10);return t&&(isNaN(r)||e.value.indexOf(".")>=0)&&n.Translator.incorrectRdfDataType(e),r}toRdf(e,{datatype:t,dataFactory:r}){return r.literal(String(e),t||(e<=i.MAX_INT&&e>=i.MIN_INT?r.namedNode(i.TYPES[0]):r.namedNode(i.TYPES[1])))}}t.TypeHandlerNumberInteger=i,i.TYPES=["http://www.w3.org/2001/XMLSchema#integer","http://www.w3.org/2001/XMLSchema#long","http://www.w3.org/2001/XMLSchema#int","http://www.w3.org/2001/XMLSchema#byte","http://www.w3.org/2001/XMLSchema#short","http://www.w3.org/2001/XMLSchema#negativeInteger","http://www.w3.org/2001/XMLSchema#nonNegativeInteger","http://www.w3.org/2001/XMLSchema#nonPositiveInteger","http://www.w3.org/2001/XMLSchema#positiveInteger","http://www.w3.org/2001/XMLSchema#unsignedByte","http://www.w3.org/2001/XMLSchema#unsignedInt","http://www.w3.org/2001/XMLSchema#unsignedLong","http://www.w3.org/2001/XMLSchema#unsignedShort"],i.MAX_INT=2147483647,i.MIN_INT=-2147483648},function(e,t,r){"use strict";Object.defineProperty(t,"__esModule",{value:!0});class n{fromRdf(e){return e.value}toRdf(e,{datatype:t,dataFactory:r}){return r.literal(e,t)}}t.TypeHandlerString=n,n.TYPES=["http://www.w3.org/2001/XMLSchema#string","http://www.w3.org/2001/XMLSchema#normalizedString","http://www.w3.org/2001/XMLSchema#anyURI","http://www.w3.org/2001/XMLSchema#base64Binary","http://www.w3.org/2001/XMLSchema#language","http://www.w3.org/2001/XMLSchema#Name","http://www.w3.org/2001/XMLSchema#NCName","http://www.w3.org/2001/XMLSchema#NMTOKEN","http://www.w3.org/2001/XMLSchema#token","http://www.w3.org/2001/XMLSchema#hexBinary","http://www.w3.org/1999/02/22-rdf-syntax-ns#langString","http://www.w3.org/2001/XMLSchema#time","http://www.w3.org/2001/XMLSchema#duration"]},function(e,t,r){"use strict";Object.defineProperty(t,"__esModule",{value:!0});const n=r(1),i=r(132);t.SparqlJsonParser=class{constructor(e){e=e||{},this.dataFactory=e.dataFactory||n,this.prefixVariableQuestionMark=!!e.prefixVariableQuestionMark}parseJsonResults(e){return e.results.bindings.map(e=>this.parseJsonBindings(e))}parseJsonResultsStream(e){e.on("error",e=>n.emit("error",e));const t=[];e.pipe(r(72).parse("head.vars.*")).on("data",e=>t.push(this.dataFactory.variable(e))).on("end",()=>n.emit("variables",t));const n=e.pipe(r(72).parse("results.bindings.*")).pipe(new i.SparqlJsonBindingsTransformer(this));return n}parseJsonBindings(e){const t={};for(const r in e){const n=e[r];let i=null;switch(n.type){case"bnode":i=this.dataFactory.blankNode(n.value);break;case"literal":i=n["xml:lang"]?this.dataFactory.literal(n.value,n["xml:lang"]):n.datatype?this.dataFactory.literal(n.value,this.dataFactory.namedNode(n.datatype)):this.dataFactory.literal(n.value);break;case"typed-literal":i=this.dataFactory.literal(n.value,this.dataFactory.namedNode(n.datatype));break;default:i=this.dataFactory.namedNode(n.value)}t[this.prefixVariableQuestionMark?"?"+r:r]=i}return t}parseJsonBoolean(e){if("boolean"in e)return e.boolean;throw new Error("No valid ASK response was found.")}parseJsonBooleanStream(e){return new Promise((t,n)=>{e.on("error",n),e.pipe(r(72).parse("boolean")).on("data",t).on("end",()=>n(new Error("No valid ASK response was found.")))})}}},function(e,t,r){(function(t){var n=r(2);function i(e,r,i){e=e||function(e){this.queue(e)},r=r||function(){this.queue(null)};var a=!1,o=!1,s=[],u=!1,c=new n;function l(){for(;s.length&&!c.paused;){var e=s.shift();if(null===e)return c.emit("end");c.emit("data",e)}}function h(){c.writable=!1,r.call(c),!c.readable&&c.autoDestroy&&c.destroy()}return c.readable=c.writable=!0,c.paused=!1,c.autoDestroy=!(i&&!1===i.autoDestroy),c.write=function(t){return e.call(this,t),!c.paused},c.queue=c.push=function(e){return u||(null===e&&(u=!0),s.push(e),l()),c},c.on("end",(function(){c.readable=!1,!c.writable&&c.autoDestroy&&t.nextTick((function(){c.destroy()}))})),c.end=function(e){if(!a)return a=!0,arguments.length&&c.write(e),h(),c},c.destroy=function(){if(!o)return o=!0,a=!0,s.length=0,c.writable=c.readable=!1,c.emit("close"),c},c.pause=function(){if(!c.paused)return c.paused=!0,c},c.resume=function(){return c.paused&&(c.paused=!1,c.emit("resume")),l(),c.paused||c.emit("drain"),c},c}e.exports=i,i.through=i}).call(this,r(12))},function(e,t,r){(function(t){!function(){var r;r="object"==typeof window&&window?window:t,e.exports?e.exports=r.Promise?r.Promise:o:r.Promise||(r.Promise=o);var n=r.setImmediate||function(e){setTimeout(e,1)};function i(e,t){return function(){e.apply(t,arguments)}}var a=Array.isArray||function(e){return"[object Array]"===Object.prototype.toString.call(e)};function o(e){if("object"!=typeof this)throw new TypeError("Promises must be constructed via new");if("function"!=typeof e)throw new TypeError("not a function");this._state=null,this._value=null,this._deferreds=[],p(e,i(u,this),i(c,this))}function s(e){var t=this;null!==this._state?n((function(){var r=t._state?e.onFulfilled:e.onRejected;if(null!==r){var n;try{n=r(t._value)}catch(t){return void e.reject(t)}e.resolve(n)}else(t._state?e.resolve:e.reject)(t._value)})):this._deferreds.push(e)}function u(e){try{if(e===this)throw new TypeError("A promise cannot be resolved with itself.");if(e&&("object"==typeof e||"function"==typeof e)){var t=e.then;if("function"==typeof t)return void p(i(t,e),i(u,this),i(c,this))}this._state=!0,this._value=e,l.call(this)}catch(e){c.call(this,e)}}function c(e){this._state=!1,this._value=e,l.call(this)}function l(){for(var e=0,t=this._deferreds.length;e="0"&&e<="9"}return{isAlpha:function(e){return e>="a"&&e<="z"||e>="A"&&e<="Z"},isDigit:e,isHexDigit:function(t){return e(t)||t>="a"&&t<="f"||t>="A"&&t<="F"}}}(),a=function(){var e=function(e){return unescape(encodeURIComponent(e))},t=function(e){return e<=127?1:194<=e&&e<=223?2:224<=e&&e<=239?3:240<=e&&e<=244?4:0},r=function(e){return 128<=e&&e<=191};function n(e,t){return"%"===e.charAt(t)&&i.isHexDigit(e.charAt(t+1))&&i.isHexDigit(e.charAt(t+2))}function a(e,t){return parseInt(e.substr(t,2),16)}return{encodeCharacter:function(t){var r,n,i="",a=e(t);for(n=0;n1?r+=n:r+=o.isReserved(n)||o.isUnreserved(n)?n:a.encodeCharacter(n);return r},encodeLiteralCharacter:function(e,t){var r=a.pctCharAt(e,t);return r.length>1||o.isReserved(r)||o.isUnreserved(r)?r:a.encodeCharacter(r)}}}(),u=function(){var e={};function t(t){e[t]={symbol:t,separator:"?"===t?"&":""===t||"+"===t||"#"===t?",":t,named:";"===t||"&"===t||"?"===t,ifEmpty:"&"===t||"?"===t?"=":"",first:"+"===t?"":t,encode:"+"===t||"#"===t?s.encodePassReserved:s.encode,toString:function(){return this.symbol}}}return t(""),t("+"),t("#"),t("."),t("/"),t(";"),t("?"),t("&"),{valueOf:function(t){return e[t]?e[t]:"=,!@|".indexOf(t)>=0?null:e[""]}}}();function c(e){var t;if(null==e)return!1;if(n.isArray(e))return e.length>0;if("string"==typeof e||"number"==typeof e||"boolean"==typeof e)return!0;for(t in e)if(e.hasOwnProperty(t)&&c(e[t]))return!0;return!1}var l=function(){function e(e){this.literal=s.encodeLiteral(e)}return e.prototype.expand=function(){return this.literal},e.prototype.toString=e.prototype.expand,e}(),h=function(){function e(e){var t,n,s=[],c=null,l=null,h=null,d="";function f(){var t=e.substring(l,n);if(0===t.length)throw new r({expressionText:e,message:"a varname must be specified",position:n});c={varname:t,exploded:!1,maxLength:null},l=null}function y(){if(h===n)throw new r({expressionText:e,message:"after a ':' you have to specify the length",position:n});c.maxLength=parseInt(e.substring(h,n),10),h=null}for(t=function(t){var i=u.valueOf(t);if(null===i)throw new r({expressionText:e,message:"illegal use of reserved operator",position:n,operator:t});return i}(e.charAt(0)),n=t.symbol.length,l=n;n=4)throw new r({expressionText:e,message:"A :prefix must have max 4 digits",position:n});continue}y()}if(":"!==d)if("*"!==d){if(","!==d)throw new r({expressionText:e,message:"illegal character",character:d,position:n});s.push(c),c=null,l=n+1}else{if(null===c)throw new r({expressionText:e,message:"exploded without varspec",position:n});if(c.exploded)throw new r({expressionText:e,message:"exploded twice",position:n});if(c.maxLength)throw new r({expressionText:e,message:"an explode (*) MUST NOT follow to a prefix",position:n});c.exploded=!0}else{if(null!==c.maxLength)throw new r({expressionText:e,message:"only one :maxLength is allowed per varspec",position:n});if(c.exploded)throw new r({expressionText:e,message:"an exploeded varspec MUST NOT be varspeced",position:n});h=n+1}}return null!==l&&f(),null!==h&&y(),s.push(c),new p(e,t,s)}return function(t){var n,i,a=[],o=null,s=0;for(n=0;n{e.metadata.on("error",r),e.metadata.on("data",e=>{this.predicates.indexOf(e.predicate.value)>=0&&t({metadata:{totalItems:parseInt(e.object.value,10)}})}),e.metadata.on("end",()=>{t({metadata:{totalItems:1/0}})})})}}t.ActorRdfMetadataExtractHydraCount=i},function(e,t,r){"use strict";Object.defineProperty(t,"__esModule",{value:!0});const n=r(69),i=r(25);class a extends n.ActorRdfMetadataExtract{constructor(e){super(e)}async test(e){return!0}async run(e){return new Promise((t,r)=>{e.metadata.on("error",r);const n={};e.metadata.on("data",t=>{"http://www.w3.org/ns/sparql-service-description#endpoint"!==t.predicate.value||"BlankNode"!==t.subject.termType&&t.subject.value!==e.url?"http://www.w3.org/ns/sparql-service-description#defaultGraph"===t.predicate.value&&(n.defaultGraph=t.object.value):n.sparqlService="Literal"===t.object.termType?i.resolve(t.object.value,e.url):t.object.value}),e.metadata.on("end",()=>{t({metadata:n})})})}}t.ActorRdfMetadataExtractSparqlService=a},function(e,t,r){"use strict";Object.defineProperty(t,"__esModule",{value:!0});const n=r(73),i=r(134),a=r(310);class o extends n.ActorRdfResolveHypermedia{constructor(e){super(e,"file")}async testMetadata(e){return{filterFactor:0}}async run(e){return this.logInfo(e.context,"Identified as file source: "+e.url),{source:new a.RdfSourceMetadata(await i.storeStream(e.quads))}}}t.ActorRdfResolveHypermediaNone=o},function(e,t,r){"use strict";Object.defineProperty(t,"__esModule",{value:!0});const n=r(0);class i extends n.Actor{constructor(e,t){super(e),this.sourceType=t}async test(e){if(e.forceSourceType&&this.sourceType!==e.forceSourceType)throw new Error(`Actor ${this.name} is not able to handle source type ${e.forceSourceType}.`);return this.testMetadata(e)}}t.ActorRdfResolveHypermedia=i},function(e,t,r){"use strict";Object.defineProperty(t,"__esModule",{value:!0});const n=r(2);t.RdfSourceMetadata=class{constructor(e){this.source=e}match(e,t,r,i){const a=new n.Readable({objectMode:!0});return a._read=()=>{a._read=()=>{};const n=this.source.match(e,t,r,i);let o=0;n.on("error",e=>{a.emit("error",e)}),n.on("data",e=>{o++,a.push(e)}),n.on("end",()=>{a.emit("metadata",{totalItems:o}),a.push(null)})},a}}},function(e,t,r){"use strict";Object.defineProperty(t,"__esModule",{value:!0});const n=r(312);class i extends n.ActorRdfResolveHypermediaLinks{constructor(e){super(e)}async test(e){if(!e.metadata.next)throw new Error(`Actor ${this.name} requires a 'next' metadata entry.`);return!0}async run(e){return{urls:[e.metadata.next]}}}t.ActorRdfResolveHypermediaLinksNext=i},function(e,t,r){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),function(e){for(var r in e)t.hasOwnProperty(r)||(t[r]=e[r])}(r(313))},function(e,t,r){"use strict";Object.defineProperty(t,"__esModule",{value:!0});const n=r(0);class i extends n.Actor{constructor(e){super(e)}}t.ActorRdfResolveHypermediaLinks=i},function(e,t,r){"use strict";Object.defineProperty(t,"__esModule",{value:!0});const n=r(142);class i extends n.ActorHttpInvalidate{constructor(e){super(e),this.invalidateListeners=[]}addInvalidateListener(e){this.invalidateListeners.push(e)}async test(e){return!0}async run(e){for(const t of this.invalidateListeners)t(e);return!0}}t.ActorHttpInvalidateListenable=i},function(e,t,r){"use strict";Object.defineProperty(t,"__esModule",{value:!0});const n=r(0);class i extends n.Mediator{constructor(e){super(e)}async mediate(e){const t=[];let r;try{r=this.publish(e)}catch(e){r=[]}for(const e of r)try{await e.reply,t.push(e.actor)}catch(e){}return await Promise.all(t.map(t=>t.runObservable(e))),null}async mediateWith(e,t){return null}}t.MediatorAll=i},function(e,t,r){"use strict";Object.defineProperty(t,"__esModule",{value:!0});const n=r(317),i=r(7);class a extends n.ActorOptimizeQueryOperation{constructor(e){super(e)}async test(e){return!0}async run(e){return{operation:i.Util.mapOperation(e.operation,{join:(e,t)=>"bgp"===e.left.type&&"bgp"===e.right.type?{recurse:!1,result:t.createBgp(e.left.patterns.concat(e.right.patterns))}:{recurse:!1,result:e}})}}}t.ActorOptimizeQueryOperationJoinBgp=a},function(e,t,r){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),function(e){for(var r in e)t.hasOwnProperty(r)||(t[r]=e[r])}(r(318))},function(e,t,r){"use strict";Object.defineProperty(t,"__esModule",{value:!0});const n=r(0);class i extends n.Actor{constructor(e){super(e)}}t.ActorOptimizeQueryOperation=i},function(e,t,r){"use strict";Object.defineProperty(t,"__esModule",{value:!0});const n=r(52),i=r(53),a=r(74),o=r(325),s=r(5),u=r(38).Parser,c=n.types;let l,h=new Set,p=0,d=!1;function f(e,t,r){if(h=new Set,p=0,d=t,"query"!==e.type)throw new Error("Translate only works on complete query objects.");let n={type:"group",patterns:e.where||[]},i=new Set(Object.keys(function e(t){let r={};if(y(t))r[s.termToString(t)]=!0,h.add(t);else if(n=t,null!==n&&"object"==typeof n)if("bind"===t.type)e(t.expression),Object.assign(r,e(t.variable));else if("SELECT"===t.queryType){let n=e(t.where);for(let i of t.variables)a.default.isWildcard(i)?Object.assign(r,n):i.variable?Object.assign(r,e(i.variable)):Object.assign(r,e(i));if(t.group)for(let n of t.group)Object.assign(r,e(n))}else for(let n of Object.keys(t))Object.assign(r,e(t[n]));var n;return r}(n)).map(l.createTerm.bind(l))),o=m(n);return o=function(e,t,r){let n=[],i={};if(e.variables=O(e.variables,i),e.having=O(e.having,i),e.order=O(e.order,i),e.group||Object.keys(i).length>0){let r=Object.keys(i).map(e=>function(e,t){if("aggregate"!==e.type||!e.aggregation)throw new Error("Unexpected input: "+JSON.stringify(e));let r=g(e);return r.variable=t,r}(i[e],l.createTerm(e))),n=[];if(e.group)for(let r of e.group)if(r.expression.type){const e=r.variable?r.variable:v();t=l.createExtend(t,e,g(r.expression)),n.push(e)}else n.push(r.expression);t=l.createGroup(t,n,r)}if(e.having)for(let r of e.having)t=l.createFilter(t,g(r));e.values&&(t=l.createJoin(t,x(e)));let o=new Set;if("SELECT"===e.queryType||"DESCRIBE"===e.queryType)if(e.variables.some(e=>e&&a.default.isWildcard(e)))o=r;else for(let t of e.variables)y(t)||!t.variable?o.add(t):t.variable&&(o.add(t.variable),n.push(t));for(let e of n)t=l.createExtend(t,e.variable,g(e.expression));e.order&&(t=l.createOrderBy(t,e.order.map(e=>{let t=g(e.expression);return e.descending&&(t=l.createOperatorExpression(c.DESC,[t])),t})));"SELECT"===e.queryType&&(t=l.createProject(t,Array.from(o)));e.distinct&&(t=l.createDistinct(t));e.reduced&&(t=l.createReduced(t));"CONSTRUCT"===e.queryType?t=l.createConstruct(t,e.template.map(w)):"ASK"===e.queryType?t=l.createAsk(t):"DESCRIBE"===e.queryType&&(t=l.createDescribe(t,Array.from(o)));(e.offset||e.limit)&&(t=l.createSlice(t,e.offset,e.limit));e.from&&(t=l.createFrom(t,e.from.default,e.from.named));return t}(e,o,i),r&&(o=function e(t,r){const n={},i=Array.from(r).reduce((e,t)=>(e[t.value]=!0,e),{});return a.default.mapOperation(t,{path:(e,t)=>({result:t.createPath(o(e.subject),e.predicate,o(e.object),o(e.graph)),recurse:!1}),pattern:(e,t)=>({result:t.createPattern(o(e.subject),o(e.predicate),o(e.object),o(e.graph)),recurse:!1}),construct:t=>({result:l.createConstruct(e(t.input,r),t.template),recurse:!1})});function o(e){if("BlankNode"===e.termType){let t=n[e.value];return t||(t=a.default.createUniqueVariable(e.value,i,l.dataFactory),i[t.value]=!0,n[e.value]=t),t}return e}}(o,i)),o}function y(e){return e&&"Variable"===e.termType}function m(e){let t,r=[],n=[];if(e.patterns)for(let t of e.patterns)("filter"===t.type?r:n).push(t);if("bgp"===e.type)return function(e){let t=[],r=[];for(let n of e.triples)if("path"===n.predicate.type){let e=_(n);for(let n of e)n.type===c.PATH?(t.length>0&&r.push(l.createBgp(t)),t=[],r.push(n)):t.push(n)}else t.push(w(n));t.length>0&&r.push(l.createBgp(t));return 1===r.length?r[0]:r.reduce((e,t)=>l.createJoin(e,t))}(e);if("union"===e.type)t=n.map(e=>("group"!==e.type&&(e={type:"group",patterns:[e]}),m(e))).reduce((e,t)=>l.createUnion(e,t));else{if("graph"===e.type)return function(e){e.type="group";let t=m(e);t=d?function e(t,r,n){if(t.type===c.BGP)t.patterns=t.patterns.map(e=>(n&&(e.subject.equals(r)&&(e.subject=n),e.predicate.equals(r)&&(e.predicate=n),e.object.equals(r)&&(e.object=n)),e.graph=r,e));else if(t.type===c.PATH){const e=t;n&&(e.subject.equals(r)&&(e.subject=n),e.object.equals(r)&&(e.object=n)),t.graph=r}else if(t.type!==c.PROJECT||n)if(t.type!==c.EXTEND||n)for(let i of Object.keys(t))Array.isArray(t[i])?t[i]=t[i].map(t=>e(t,r,n)):E.indexOf(t[i].type)>=0?t[i]=e(t[i],r,n):n&&y(t[i])&&t[i].equals(r)&&(t[i]=n);else{const i=t;i.variable.equals(r)&&(n=v()),i.input=e(i.input,r,n)}else{const i=t;i.variables.some(e=>e.equals(r))||(n=v()),i.input=e(i.input,r,n)}return t}(t,e.name):l.createGraph(t,e.name);return t}(e);if("group"===e.type)t=n.reduce(S,l.createBgp([]));else if("values"===e.type)t=x(e);else{if("query"!==e.type)throw new Error("Unexpected type: "+e.type);t=f(e,d,!1)}}if(r.length>0){let e=r.map(e=>g(e.expression));e.length>0&&(t=l.createFilter(t,e.reduce((e,t)=>l.createOperatorExpression("&&",[e,t]))))}return t}function g(e){if(a.default.isTerm(e))return l.createTermExpression(e);if(a.default.isWildcard(e))return l.createWildcardExpression();if(e.aggregation)return l.createAggregateExpression(e.aggregation,g(e.expression),e.distinct,e.separator);if(e.function)return l.createNamedExpression(e.function,e.args.map(g));if(e.operator)return"exists"===e.operator||"notexists"===e.operator?l.createExistenceExpression("notexists"===e.operator,m(e.args[0])):("in"!==e.operator&&"notin"!==e.operator||(e.args=[e.args[0]].concat(e.args[1])),l.createOperatorExpression(e.operator,e.args.map(g)));throw new Error("Unknown expression: "+JSON.stringify(e))}function _(e){return function e(t,r,n){if(r.type===c.LINK)return[l.createPattern(t,r.iri,n)];if(r.type===c.INV)return e(n,r.path,t);if(r.type===c.SEQ){let i=v(),a=e(t,r.left,i),o=e(i,r.right,n);return a.concat(o)}return[l.createPath(t,r,n)]}(e.subject,b(e.predicate),e.object)}function b(e){if(a.default.isTerm(e)&&"NamedNode"===e.termType)return l.createLink(e);if("^"===e.pathType)return l.createInv(b(e.items[0]));if("!"===e.pathType){let t,r=[],n=[];t="path"===e.items[0].type&&"|"===e.items[0].pathType?e.items[0].items:e.items;for(let e of t)if(a.default.isTerm(e))r.push(e);else{if("^"!==e.pathType)throw new Error("Unexpected item: "+JSON.stringify(e));n.push(e.items[0])}let i=l.createNps(r),o=l.createInv(l.createNps(n));return 0===n.length?i:0===r.length?o:l.createAlt(i,o)}if("/"===e.pathType)return e.items.map(b).reduce((e,t)=>l.createSeq(e,t));if("|"===e.pathType)return e.items.map(b).reduce((e,t)=>l.createAlt(e,t));if("*"===e.pathType)return l.createZeroOrMorePath(b(e.items[0]));if("+"===e.pathType)return l.createOneOrMorePath(b(e.items[0]));if("?"===e.pathType)return l.createZeroOrOnePath(b(e.items[0]));throw new Error("Unable to translate path expression "+JSON.stringify(e))}function v(){let e="?var"+p++;return h.has(e)?v():(h.add(e),l.createTerm(e))}function w(e){return l.createPattern(e.subject,e.predicate,e.object)}t.default=function(e,t){if(t=t||{},l=new i.default(t.dataFactory),"string"==typeof e){let r=new u(t);r._resetBlanks(),e=r.parse(e)}return f(e,t.quads,t.blankToVariable)};let E=Object.keys(c).map(e=>c[e]);function S(e,t){if("optional"===t.type){let r=m({type:"group",patterns:t.patterns});if(r.type===c.FILTER){let t=r;e=l.createLeftJoin(e,t.input,t.expression)}else e=l.createLeftJoin(e,r)}else if("minus"===t.type){let r=m({type:"group",patterns:t.patterns});e=l.createMinus(e,r)}else if("bind"===t.type)e=l.createExtend(e,t.variable,g(t.expression));else if("service"===t.type){t.type="group",e=T(e,l.createService(m(t),t.name,t.silent))}else{e=T(e,m(t))}return e}function T(e,t){return e.type===c.BGP&&t.type===c.BGP?e=l.createBgp([].concat(e.patterns,t.patterns)):e.type===c.BGP&&0===e.patterns.length?e=t:t.type===c.BGP&&0===t.patterns.length||(e=l.createJoin(e,t)),e}function x(e){let t=(0===e.values.length?[]:Object.keys(e.values[0])).map(l.createTerm.bind(l)),r=e.values.map(e=>{let t=Object.keys(e);t=t.filter(t=>void 0!==e[t]);let r={};for(let n of t)r[n]=e[n];return r});return l.createValues(t,r)}function O(e,t){if(!e)return e;if("aggregate"===e.type){let r,n=!1;for(let i of Object.keys(t))if(o(t[i],e)){r=l.createTerm(i),n=!0;break}return n||(r=v(),t[s.termToString(r)]=e),r}return e.expression?e.expression=O(e.expression,t):e.args?O(e.args,t):Array.isArray(e)&&e.forEach((r,n)=>e[n]=O(r,t)),e}},function(e,t,r){"use strict";Object.defineProperty(t,"__esModule",{value:!0});const n=r(1);function i(e){if(e)switch(e.termType){case"NamedNode":return e.value;case"BlankNode":return"_:"+e.value;case"Literal":const t=e;return'"'+t.value+'"'+(t.datatype&&"http://www.w3.org/2001/XMLSchema#string"!==t.datatype.value&&"http://www.w3.org/1999/02/22-rdf-syntax-ns#langString"!==t.datatype.value?"^^"+t.datatype.value:"")+(t.language?"@"+t.language:"");case"Variable":return"?"+e.value;case"DefaultGraph":return e.value}}function a(e){const t=/^"([^]*)"/.exec(e);if(!t)throw new Error(e+" is not a literal");return t[1]}function o(e){const t=/^"[^]*"(?:\^\^([^"]+)|(@)[^@"]+)?$/.exec(e);if(!t)throw new Error(e+" is not a literal");return t[1]||(t[2]?"http://www.w3.org/1999/02/22-rdf-syntax-ns#langString":"http://www.w3.org/2001/XMLSchema#string")}function s(e){const t=/^"[^]*"(?:@([^@"]+)|\^\^[^"]+)?$/.exec(e);if(!t)throw new Error(e+" is not a literal");return t[1]?t[1].toLowerCase():""}function u(e,t){if(t=t||n,!e||!e.length)return t.defaultGraph();switch(e[0]){case"_":return t.blankNode(e.substr(2));case"?":if(!t.variable)throw new Error("Missing 'variable()' method on the given DataFactory");return t.variable(e.substr(1));case'"':const r=s(e),n=t.namedNode(o(e));return t.literal(a(e),r||n);default:return t.namedNode(e)}}t.termToString=i,t.getLiteralValue=a,t.getLiteralType=o,t.getLiteralLanguage=s,t.stringToTerm=u,t.quadToStringQuad=function(e){return{subject:i(e.subject),predicate:i(e.predicate),object:i(e.object),graph:i(e.graph)}},t.stringQuadToQuad=function(e,t){return(t=t||n).quad(u(e.subject,t),u(e.predicate,t),u(e.object,t),u(e.graph,t))}},function(e,t,r){(function(e,n){var i=function(){var e=function(e,t,r,n){for(r=r||{},n=e.length;n--;r[e[n]]=t);return r},t=[6,12,15,28,40,49,54,105,115,118,120,121,130,131,136,301,302,303,304,305],n=[2,200],i=[105,115,118,120,121,130,131,136,301,302,303,304,305],a=[1,20],o=[1,29],s=[6,89],u=[44,45,57],c=[44,57],l=[1,58],h=[1,60],p=[1,56],d=[1,59],f=[1,65],y=[1,66],m=[26,34,35],g=[13,16,291],_=[117,139,299,306],b=[13,16,117,139,291],v=[1,88],w=[1,92],E=[1,94],S=[117,139,299,300,306],T=[13,16,117,139,291,300],x=[1,100],O=[2,242],R=[1,99],A=[13,16,34,35,86,92,221,224,225,278,279,280,281,282,283,284,285,286,287,288,289,290,291],I=[6,44,45,57,67,74,77,85,87,89],P=[6,13,16,34,44,45,57,67,74,77,85,87,89,291],N=[6,13,16,26,34,35,37,38,44,45,47,57,67,74,77,85,86,87,89,92,98,114,117,130,131,133,138,165,166,168,171,172,189,193,214,219,221,222,224,225,229,233,237,252,257,274,278,279,280,281,282,283,284,285,286,287,288,289,290,291,307,309,310,312,313,314,315,316,317,318,319],C=[34,35,44,45,57],j=[13,16,34,35,86,254,255,256,258,260,261,263,264,267,269,278,279,280,281,282,283,284,285,286,287,288,289,290,291,319,320,321,322,323,324],D=[2,415],k=[1,121],L=[1,122],M=[1,123],F=[6,13,16,34,35,45,47,86,89,92,117,165,166,168,171,172,221,224,225,278,279,280,281,282,283,284,285,286,287,288,289,290,291,307],q=[2,301],B=[1,140],U=[1,138],V=[6,189],H=[2,318],G=[2,306],z=[44,133],Q=[6,47,77,85,87,89],$=[2,246],X=[1,154],Y=[1,156],J=[6,47,74,77,85,87,89],W=[2,244],K=[1,162],Z=[1,170],ee=[1,176],te=[1,179],re=[1,175],ne=[1,177],ie=[1,173],ae=[1,174],oe=[1,180],se=[1,181],ue=[1,184],ce=[1,185],le=[1,186],he=[1,187],pe=[1,188],de=[1,189],fe=[1,190],ye=[1,191],me=[1,192],ge=[1,193],_e=[1,194],be=[6,67,74,77,85,87,89],ve=[37,38,189,229,257],we=[37,38,189,229,233,257],Ee=[37,38,189,229,233,237,252,257,274,285,286,287,288,289,290,313,314,315,316,317,318,319],Se=[26,37,38,189,229,233,237,252,257,274,285,286,287,288,289,290,310,313,314,315,316,317,318,319],Te=[1,219],xe=[1,220],Oe=[1,222],Re=[1,223],Ae=[1,224],Ie=[1,225],Pe=[1,227],Ne=[1,228],Ce=[2,422],je=[1,230],De=[1,231],ke=[1,232],Le=[1,238],Me=[1,233],Fe=[1,234],qe=[1,235],Be=[1,236],Ue=[1,237],Ve=[13,16,47,86,98,278,279,280,281,282,283,284,285,286,287,288,289,290,291],He=[47,92],Ge=[34,38],ze=[6,114,189],Qe=[47,117],$e=[6,47,85,87,89],Xe=[2,330],Ye=[2,322],Je=[1,283],We=[1,285],Ke=[47,117,307],Ze=[13,16,34,35,38,45,47,86,89,92,117,165,166,168,171,172,189,193,214,219,221,222,224,225,257,278,279,280,281,282,283,284,285,286,287,288,289,290,291,307],et=[13,16,26,34,35,37,38,45,47,86,89,92,98,117,165,166,168,171,172,189,193,214,219,221,222,224,225,229,233,237,252,257,274,278,279,280,281,282,283,284,285,286,287,288,289,290,291,307,310,313,314,315,316,317,318,319],tt=[13,16,26,34,35,37,38,45,47,86,89,92,98,117,165,166,168,171,172,189,193,214,219,221,222,224,225,229,233,237,252,257,274,276,277,278,279,280,281,282,283,284,285,286,287,288,289,290,291,307,310,313,314,315,316,317,318,319],rt=[13,16,34,35,86,214,252,254,255,256,258,260,261,263,264,267,269,278,279,280,281,282,283,284,285,286,287,288,289,290,291,313,319,320,321,322,323,324],nt=[1,312],it=[1,313],at=[1,315],ot=[1,314],st=[6,13,16,26,34,35,37,38,45,47,74,77,80,82,85,86,87,89,92,117,165,166,168,171,172,189,221,224,225,229,233,237,252,254,255,256,257,258,260,261,263,264,267,269,274,278,279,280,281,282,283,284,285,286,287,288,289,290,291,307,310,313,314,315,316,317,318,319,320,321,322,323,324],ut=[1,323],ct=[1,322],lt=[35,92],ht=[1,335],pt=[1,348],dt=[6,47,89],ft=[6,13,16,35,47,77,85,87,89,254,255,256,258,260,261,263,264,267,269,291,319,320,321,322,323,324],yt=[6,13,16,34,35,45,47,77,80,82,85,86,87,89,92,117,165,166,168,171,172,221,224,225,254,255,256,258,260,261,263,264,267,269,278,279,280,281,282,283,284,285,286,287,288,289,290,291,307,319,320,321,322,323,324],mt=[45,47,89,117,165,166,168,171,172],gt=[1,365],_t=[1,366],bt=[1,372],vt=[1,371],wt=[47,117,189,222,307],Et=[2,360],St=[13,16,34,35,38,86,92,221,224,225,278,279,280,281,282,283,284,285,286,287,288,289,290,291],Tt=[13,16,34,35,38,45,47,86,89,92,117,165,166,168,171,172,189,221,222,224,225,257,278,279,280,281,282,283,284,285,286,287,288,289,290,291,307],xt=[13,16,26,34,35,86,214,252,254,255,256,258,260,261,263,264,267,269,278,279,280,281,282,283,284,285,286,287,288,289,290,291,313,319,320,321,322,323,324],Ot=[13,16,38,47,86,98,278,279,280,281,282,283,284,285,286,287,288,289,290,291],Rt=[35,47],At=[2,321],It=[1,421],Pt=[1,418],Nt=[1,419],Ct=[6,13,16,26,34,35,37,38,45,47,67,74,77,80,82,85,86,87,89,92,117,165,166,168,171,172,189,221,224,225,229,233,237,252,254,255,256,257,258,260,261,263,264,267,269,274,278,279,280,281,282,283,284,285,286,287,288,289,290,291,307,308,310,313,314,315,316,317,318,319,320,321,322,323,324],jt=[13,16,35,193,214,219,291],Dt=[2,372],kt=[1,439],Lt=[45,47,89,117,165,166,168,171,172,307],Mt=[6,13,16,34,35,47,74,77,85,87,89,254,255,256,258,260,261,263,264,267,269,291,319,320,321,322,323,324],Ft=[13,16,34,35,38,45,47,86,89,92,117,165,166,168,171,172,189,193,221,222,224,225,257,278,279,280,281,282,283,284,285,286,287,288,289,290,291,307],qt=[6,13,16,34,35,47,80,82,85,87,89,254,255,256,258,260,261,263,264,267,269,291,319,320,321,322,323,324],Bt=[13,16,34,35,45,47,86,89,92,117,165,166,168,171,172,221,224,225,278,279,280,281,282,283,284,285,286,287,288,289,290,291],Ut=[13,16,34,291],Vt=[13,16,34,35,45,47,86,89,92,117,165,166,168,171,172,221,224,225,278,279,280,281,282,283,284,285,286,287,288,289,290,291,307],Ht=[2,333],Gt=[45,47,89,117,165,166,168,171,172,189,222,307],zt=[2,328],Qt=[13,16,35,193,214,291],$t=[13,16,38,86,98,278,279,280,281,282,283,284,285,286,287,288,289,290,291],Xt=[13,16,34,35,47,86,92,117,221,224,225,278,279,280,281,282,283,284,285,286,287,288,289,290,291],Yt=[13,16,34,35,38,86,92,221,224,225,278,279,280,281,282,283,284,285,286,287,288,289,290,291,309,310],Jt=[13,16,26,34,35,38,86,92,221,224,225,278,279,280,281,282,283,284,285,286,287,288,289,290,291,309,310,312,313],Wt=[1,573],Kt=[1,574],Zt=[2,316],er=[13,16,38,193,219,291],tr={trace:function(){},yy:{},symbols_:{error:2,QueryOrUpdate:3,Prologue:4,QueryOrUpdate_group0:5,EOF:6,Prologue_repetition0:7,Query:8,Query_group0:9,Query_option0:10,BaseDecl:11,BASE:12,IRIREF:13,PrefixDecl:14,PREFIX:15,PNAME_NS:16,SelectQuery:17,SelectClauseWildcard:18,SelectQuery_repetition0:19,WhereClause:20,SolutionModifierNoGroup:21,SelectClauseVars:22,SelectQuery_repetition1:23,SolutionModifier:24,SelectClauseBase:25,"*":26,SelectClauseVars_repetition_plus0:27,SELECT:28,SelectClauseBase_option0:29,SubSelect:30,SubSelect_option0:31,SubSelect_option1:32,SelectClauseItem:33,VAR:34,"(":35,Expression:36,AS:37,")":38,ConstructQuery:39,CONSTRUCT:40,ConstructTemplate:41,ConstructQuery_repetition0:42,ConstructQuery_repetition1:43,WHERE:44,"{":45,ConstructQuery_option0:46,"}":47,DescribeQuery:48,DESCRIBE:49,DescribeQuery_group0:50,DescribeQuery_repetition0:51,DescribeQuery_option0:52,AskQuery:53,ASK:54,AskQuery_repetition0:55,DatasetClause:56,FROM:57,DatasetClause_option0:58,iri:59,WhereClause_option0:60,GroupGraphPattern:61,SolutionModifier_option0:62,SolutionModifierNoGroup_option0:63,SolutionModifierNoGroup_option1:64,SolutionModifierNoGroup_option2:65,GroupClause:66,GROUP:67,BY:68,GroupClause_repetition_plus0:69,GroupCondition:70,BuiltInCall:71,FunctionCall:72,HavingClause:73,HAVING:74,HavingClause_repetition_plus0:75,OrderClause:76,ORDER:77,OrderClause_repetition_plus0:78,OrderCondition:79,ASC:80,BrackettedExpression:81,DESC:82,Constraint:83,LimitOffsetClauses:84,LIMIT:85,INTEGER:86,OFFSET:87,ValuesClause:88,VALUES:89,InlineData:90,InlineData_repetition0:91,NIL:92,InlineData_repetition1:93,InlineData_repetition_plus2:94,InlineData_repetition3:95,DataBlockValue:96,Literal:97,UNDEF:98,DataBlockValueList:99,DataBlockValueList_repetition_plus0:100,Update:101,Update_repetition0:102,Update1:103,Update_option0:104,LOAD:105,Update1_option0:106,Update1_option1:107,Update1_group0:108,Update1_option2:109,GraphRefAll:110,Update1_group1:111,Update1_option3:112,GraphOrDefault:113,TO:114,CREATE:115,Update1_option4:116,GRAPH:117,INSERTDATA:118,QuadPattern:119,DELETEDATA:120,DELETEWHERE:121,Update1_option5:122,InsertClause:123,Update1_option6:124,Update1_repetition0:125,Update1_option7:126,DeleteClause:127,Update1_option8:128,Update1_repetition1:129,DELETE:130,INSERT:131,UsingClause:132,USING:133,UsingClause_option0:134,WithClause:135,WITH:136,IntoGraphClause:137,INTO:138,DEFAULT:139,GraphOrDefault_option0:140,GraphRefAll_group0:141,QuadPattern_option0:142,QuadPattern_repetition0:143,QuadsNotTriples:144,QuadsNotTriples_group0:145,QuadsNotTriples_option0:146,QuadsNotTriples_option1:147,QuadsNotTriples_option2:148,TriplesTemplate:149,TriplesTemplate_repetition0:150,TriplesSameSubject:151,TriplesTemplate_option0:152,GroupGraphPatternSub:153,GroupGraphPatternSub_option0:154,GroupGraphPatternSub_repetition0:155,GroupGraphPatternSubTail:156,GraphPatternNotTriples:157,GroupGraphPatternSubTail_option0:158,GroupGraphPatternSubTail_option1:159,TriplesBlock:160,TriplesBlock_repetition0:161,TriplesSameSubjectPath:162,TriplesBlock_option0:163,GraphPatternNotTriples_repetition0:164,OPTIONAL:165,MINUS:166,GraphPatternNotTriples_group0:167,SERVICE:168,GraphPatternNotTriples_option0:169,GraphPatternNotTriples_group1:170,FILTER:171,BIND:172,FunctionCall_option0:173,FunctionCall_repetition0:174,ExpressionList:175,ExpressionList_repetition0:176,ConstructTemplate_option0:177,ConstructTriples:178,ConstructTriples_repetition0:179,ConstructTriples_option0:180,VarOrTerm:181,PropertyListNotEmpty:182,TriplesNode:183,PropertyList:184,PropertyList_option0:185,VerbObjectList:186,PropertyListNotEmpty_repetition0:187,SemiOptionalVerbObjectList:188,";":189,SemiOptionalVerbObjectList_option0:190,Verb:191,ObjectList:192,a:193,ObjectList_repetition0:194,GraphNode:195,PropertyListPathNotEmpty:196,TriplesNodePath:197,TriplesSameSubjectPath_option0:198,PropertyListPathNotEmpty_group0:199,PropertyListPathNotEmpty_repetition0:200,GraphNodePath:201,PropertyListPathNotEmpty_repetition1:202,PropertyListPathNotEmptyTail:203,PropertyListPathNotEmptyTail_group0:204,Path:205,Path_repetition0:206,PathSequence:207,PathSequence_repetition0:208,PathEltOrInverse:209,PathElt:210,PathPrimary:211,PathElt_option0:212,PathEltOrInverse_option0:213,"!":214,PathNegatedPropertySet:215,PathOneInPropertySet:216,PathNegatedPropertySet_repetition0:217,PathNegatedPropertySet_option0:218,"^":219,TriplesNode_repetition_plus0:220,"[":221,"]":222,TriplesNodePath_repetition_plus0:223,BLANK_NODE_LABEL:224,ANON:225,ConditionalAndExpression:226,Expression_repetition0:227,ExpressionTail:228,"||":229,RelationalExpression:230,ConditionalAndExpression_repetition0:231,ConditionalAndExpressionTail:232,"&&":233,AdditiveExpression:234,RelationalExpression_group0:235,RelationalExpression_option0:236,IN:237,MultiplicativeExpression:238,AdditiveExpression_repetition0:239,AdditiveExpressionTail:240,AdditiveExpressionTail_group0:241,NumericLiteralPositive:242,AdditiveExpressionTail_repetition0:243,NumericLiteralNegative:244,AdditiveExpressionTail_repetition1:245,UnaryExpression:246,MultiplicativeExpression_repetition0:247,MultiplicativeExpressionTail:248,MultiplicativeExpressionTail_group0:249,UnaryExpression_option0:250,PrimaryExpression:251,"-":252,Aggregate:253,FUNC_ARITY0:254,FUNC_ARITY1:255,FUNC_ARITY2:256,",":257,IF:258,BuiltInCall_group0:259,BOUND:260,BNODE:261,BuiltInCall_option0:262,EXISTS:263,COUNT:264,Aggregate_option0:265,Aggregate_group0:266,FUNC_AGGREGATE:267,Aggregate_option1:268,GROUP_CONCAT:269,Aggregate_option2:270,Aggregate_option3:271,GroupConcatSeparator:272,SEPARATOR:273,"=":274,String:275,LANGTAG:276,"^^":277,DECIMAL:278,DOUBLE:279,BOOLEAN:280,STRING_LITERAL1:281,STRING_LITERAL2:282,STRING_LITERAL_LONG1:283,STRING_LITERAL_LONG2:284,INTEGER_POSITIVE:285,DECIMAL_POSITIVE:286,DOUBLE_POSITIVE:287,INTEGER_NEGATIVE:288,DECIMAL_NEGATIVE:289,DOUBLE_NEGATIVE:290,PNAME_LN:291,QueryOrUpdate_group0_option0:292,Prologue_repetition0_group0:293,SelectClauseBase_option0_group0:294,DISTINCT:295,REDUCED:296,DescribeQuery_group0_repetition_plus0_group0:297,DescribeQuery_group0_repetition_plus0:298,NAMED:299,SILENT:300,CLEAR:301,DROP:302,ADD:303,MOVE:304,COPY:305,ALL:306,".":307,UNION:308,"|":309,"/":310,PathElt_option0_group0:311,"?":312,"+":313,"!=":314,"<":315,">":316,"<=":317,">=":318,NOT:319,CONCAT:320,COALESCE:321,SUBSTR:322,REGEX:323,REPLACE:324,$accept:0,$end:1},terminals_:{2:"error",6:"EOF",12:"BASE",13:"IRIREF",15:"PREFIX",16:"PNAME_NS",26:"*",28:"SELECT",34:"VAR",35:"(",37:"AS",38:")",40:"CONSTRUCT",44:"WHERE",45:"{",47:"}",49:"DESCRIBE",54:"ASK",57:"FROM",67:"GROUP",68:"BY",74:"HAVING",77:"ORDER",80:"ASC",82:"DESC",85:"LIMIT",86:"INTEGER",87:"OFFSET",89:"VALUES",92:"NIL",98:"UNDEF",105:"LOAD",114:"TO",115:"CREATE",117:"GRAPH",118:"INSERTDATA",120:"DELETEDATA",121:"DELETEWHERE",130:"DELETE",131:"INSERT",133:"USING",136:"WITH",138:"INTO",139:"DEFAULT",165:"OPTIONAL",166:"MINUS",168:"SERVICE",171:"FILTER",172:"BIND",189:";",193:"a",214:"!",219:"^",221:"[",222:"]",224:"BLANK_NODE_LABEL",225:"ANON",229:"||",233:"&&",237:"IN",252:"-",254:"FUNC_ARITY0",255:"FUNC_ARITY1",256:"FUNC_ARITY2",257:",",258:"IF",260:"BOUND",261:"BNODE",263:"EXISTS",264:"COUNT",267:"FUNC_AGGREGATE",269:"GROUP_CONCAT",273:"SEPARATOR",274:"=",276:"LANGTAG",277:"^^",278:"DECIMAL",279:"DOUBLE",280:"BOOLEAN",281:"STRING_LITERAL1",282:"STRING_LITERAL2",283:"STRING_LITERAL_LONG1",284:"STRING_LITERAL_LONG2",285:"INTEGER_POSITIVE",286:"DECIMAL_POSITIVE",287:"DOUBLE_POSITIVE",288:"INTEGER_NEGATIVE",289:"DECIMAL_NEGATIVE",290:"DOUBLE_NEGATIVE",291:"PNAME_LN",295:"DISTINCT",296:"REDUCED",299:"NAMED",300:"SILENT",301:"CLEAR",302:"DROP",303:"ADD",304:"MOVE",305:"COPY",306:"ALL",307:".",308:"UNION",309:"|",310:"/",312:"?",313:"+",314:"!=",315:"<",316:">",317:"<=",318:">=",319:"NOT",320:"CONCAT",321:"COALESCE",322:"SUBSTR",323:"REGEX",324:"REPLACE"},productions_:[0,[3,3],[4,1],[8,2],[11,2],[14,3],[17,4],[17,4],[18,2],[22,2],[25,2],[30,4],[30,4],[33,1],[33,5],[39,5],[39,7],[48,5],[53,4],[56,3],[20,2],[24,2],[21,3],[66,3],[70,1],[70,1],[70,3],[70,5],[70,1],[73,2],[76,3],[79,2],[79,2],[79,1],[79,1],[84,2],[84,2],[84,4],[84,4],[88,2],[90,4],[90,4],[90,6],[96,1],[96,1],[96,1],[99,3],[101,3],[103,4],[103,3],[103,5],[103,4],[103,2],[103,2],[103,2],[103,6],[103,6],[127,2],[123,2],[132,3],[135,2],[137,3],[113,1],[113,2],[110,2],[110,1],[119,4],[144,7],[149,3],[61,3],[61,3],[153,2],[156,3],[160,3],[157,2],[157,2],[157,2],[157,3],[157,4],[157,2],[157,6],[157,1],[83,1],[83,1],[83,1],[72,2],[72,6],[175,1],[175,4],[41,3],[178,3],[151,2],[151,2],[184,1],[182,2],[188,2],[186,2],[191,1],[191,1],[191,1],[192,2],[162,2],[162,2],[196,4],[203,1],[203,3],[205,2],[207,2],[210,2],[209,2],[211,1],[211,1],[211,2],[211,3],[215,1],[215,1],[215,4],[216,1],[216,1],[216,2],[216,2],[183,3],[183,3],[197,3],[197,3],[195,1],[195,1],[201,1],[201,1],[181,1],[181,1],[181,1],[181,1],[181,1],[181,1],[36,2],[228,2],[226,2],[232,2],[230,1],[230,3],[230,4],[234,2],[240,2],[240,2],[240,2],[238,2],[248,2],[246,2],[246,2],[246,2],[251,1],[251,1],[251,1],[251,1],[251,1],[251,1],[81,3],[71,1],[71,2],[71,4],[71,6],[71,8],[71,2],[71,4],[71,2],[71,4],[71,3],[253,5],[253,5],[253,6],[272,4],[97,1],[97,2],[97,3],[97,1],[97,1],[97,1],[97,1],[97,1],[97,1],[275,1],[275,1],[275,1],[275,1],[242,1],[242,1],[242,1],[244,1],[244,1],[244,1],[59,1],[59,1],[59,1],[292,0],[292,1],[5,1],[5,1],[293,1],[293,1],[7,0],[7,2],[9,1],[9,1],[9,1],[9,1],[10,0],[10,1],[19,0],[19,2],[23,0],[23,2],[27,1],[27,2],[294,1],[294,1],[29,0],[29,1],[31,0],[31,1],[32,0],[32,1],[42,0],[42,2],[43,0],[43,2],[46,0],[46,1],[297,1],[297,1],[298,1],[298,2],[50,1],[50,1],[51,0],[51,2],[52,0],[52,1],[55,0],[55,2],[58,0],[58,1],[60,0],[60,1],[62,0],[62,1],[63,0],[63,1],[64,0],[64,1],[65,0],[65,1],[69,1],[69,2],[75,1],[75,2],[78,1],[78,2],[91,0],[91,2],[93,0],[93,2],[94,1],[94,2],[95,0],[95,2],[100,1],[100,2],[102,0],[102,4],[104,0],[104,2],[106,0],[106,1],[107,0],[107,1],[108,1],[108,1],[109,0],[109,1],[111,1],[111,1],[111,1],[112,0],[112,1],[116,0],[116,1],[122,0],[122,1],[124,0],[124,1],[125,0],[125,2],[126,0],[126,1],[128,0],[128,1],[129,0],[129,2],[134,0],[134,1],[140,0],[140,1],[141,1],[141,1],[141,1],[142,0],[142,1],[143,0],[143,2],[145,1],[145,1],[146,0],[146,1],[147,0],[147,1],[148,0],[148,1],[150,0],[150,3],[152,0],[152,1],[154,0],[154,1],[155,0],[155,2],[158,0],[158,1],[159,0],[159,1],[161,0],[161,3],[163,0],[163,1],[164,0],[164,3],[167,1],[167,1],[169,0],[169,1],[170,1],[170,1],[173,0],[173,1],[174,0],[174,3],[176,0],[176,3],[177,0],[177,1],[179,0],[179,3],[180,0],[180,1],[185,0],[185,1],[187,0],[187,2],[190,0],[190,1],[194,0],[194,3],[198,0],[198,1],[199,1],[199,1],[200,0],[200,3],[202,0],[202,2],[204,1],[204,1],[206,0],[206,3],[208,0],[208,3],[311,1],[311,1],[311,1],[212,0],[212,1],[213,0],[213,1],[217,0],[217,3],[218,0],[218,1],[220,1],[220,2],[223,1],[223,2],[227,0],[227,2],[231,0],[231,2],[235,1],[235,1],[235,1],[235,1],[235,1],[235,1],[236,0],[236,1],[239,0],[239,2],[241,1],[241,1],[243,0],[243,2],[245,0],[245,2],[247,0],[247,2],[249,1],[249,1],[250,0],[250,1],[259,1],[259,1],[259,1],[259,1],[259,1],[262,0],[262,1],[265,0],[265,1],[266,1],[266,1],[268,0],[268,1],[270,0],[270,1],[271,0],[271,1]],performAction:function(e,t,r,n,i,a,o){var s,u,c,l,h=a.length-1;switch(i){case 1:return a[h-1]=a[h-1]||{},Fr.base&&(a[h-1].base=Fr.base),Fr.base=hr=pr=dr="",a[h-1].prefixes=Fr.prefixes,Fr.prefixes=null,a[h-1];case 3:this.$=gr(a[h-1],a[h],{type:"query"});break;case 4:Fr.base=br(a[h]),hr=pr=dr="";break;case 5:Fr.prefixes||(Fr.prefixes={}),a[h-1]=a[h-1].substr(0,a[h-1].length-1),a[h]=br(a[h]),Fr.prefixes[a[h-1]]=a[h];break;case 6:case 7:this.$=gr(a[h-3],xr(a[h-2]),a[h-1],a[h]);break;case 8:this.$=gr(a[h-1],{variables:[new rr]});break;case 9:this.$=gr(a[h-1],{variables:a[h]});break;case 10:this.$=gr({queryType:"SELECT"},a[h]&&(a[h-1]=fr(a[h]),a[h]={},a[h][a[h-1]]=!0,a[h]));break;case 11:case 12:this.$=gr(a[h-3],a[h-2],a[h-1],a[h],{type:"query"});break;case 13:case 97:case 129:case 156:this.$=vr(a[h]);break;case 14:case 27:this.$=Er(a[h-3],{variable:vr(a[h-1])});break;case 15:this.$=gr({queryType:"CONSTRUCT",template:a[h-3]},xr(a[h-2]),a[h-1],a[h]);break;case 16:this.$=gr({queryType:"CONSTRUCT",template:a[h-2]=a[h-2]?a[h-2].triples:[]},xr(a[h-5]),{where:[{type:"bgp",triples:mr([],a[h-2])}]},a[h]);break;case 17:this.$=gr({queryType:"DESCRIBE",variables:"*"===a[h-3]?[new rr]:a[h-3].map(vr)},xr(a[h-2]),a[h-1],a[h]);break;case 18:this.$=gr({queryType:"ASK"},xr(a[h-2]),a[h-1],a[h]);break;case 19:case 59:this.$={iri:a[h],named:!!a[h-1]};break;case 20:this.$={where:a[h].patterns};break;case 21:this.$=gr(a[h-1],a[h]);break;case 22:this.$=gr(a[h-2],a[h-1],a[h]);break;case 23:this.$={group:a[h]};break;case 24:case 25:case 31:case 33:this.$=Er(a[h]);break;case 26:this.$=Er(a[h-1]);break;case 28:case 34:this.$=Er(vr(a[h]));break;case 29:this.$={having:a[h]};break;case 30:this.$={order:a[h]};break;case 32:this.$=Er(a[h],{descending:!0});break;case 35:this.$={limit:Or(a[h])};break;case 36:this.$={offset:Or(a[h])};break;case 37:this.$={limit:Or(a[h-2]),offset:Or(a[h])};break;case 38:this.$={limit:Or(a[h]),offset:Or(a[h-2])};break;case 39:this.$={type:"values",values:a[h]};break;case 40:this.$=a[h-1].map((function(e){var t={};return t[a[h-3]]=e,t}));break;case 41:this.$=a[h-1].map((function(){return{}}));break;case 42:var p=a[h-4].length;a[h-4]=a[h-4].map(vr),this.$=a[h-1].map((function(e){if(e.length!==p)throw Error("Inconsistent VALUES length");for(var t={},r=0;rl&&O.push("'"+this.terminals_[S]+"'");I=d.showPosition?"Parse error on line "+(s+1)+":\n"+d.showPosition()+"\nExpecting "+O.join(", ")+", got '"+(this.terminals_[_]||_)+"'":"Parse error on line "+(s+1)+": Unexpected "+(_==h?"end of input":"'"+(this.terminals_[_]||_)+"'"),this.parseError(I,{text:d.match,token:this.terminals_[_]||_,line:d.yylineno,loc:m,expected:O})}if(w[0]instanceof Array&&w.length>1)throw new Error("Parse Error: multiple actions possible at state: "+v+", token: "+_);switch(w[0]){case 1:r.push(_),n.push(d.yytext),i.push(d.yylloc),r.push(w[1]),_=null,b?(_=b,b=null):(u=d.yyleng,o=d.yytext,s=d.yylineno,m=d.yylloc,c>0&&c--);break;case 2:if(T=this.productions_[w[1]][1],A.$=n[n.length-T],A._$={first_line:i[i.length-(T||1)].first_line,last_line:i[i.length-1].last_line,first_column:i[i.length-(T||1)].first_column,last_column:i[i.length-1].last_column},g&&(A._$.range=[i[i.length-(T||1)].range[0],i[i.length-1].range[1]]),void 0!==(E=this.performAction.apply(A,[o,u,s,f.yy,w[1],n,i].concat(p))))return E;T&&(r=r.slice(0,-1*T*2),n=n.slice(0,-1*T),i=i.slice(0,-1*T)),r.push(this.productions_[w[1]][0]),n.push(A.$),i.push(A._$),x=a[r[r.length-2]][r[r.length-1]],r.push(x);break;case 3:return!0}}return!0}},rr=r(145).Wildcard,nr="http://www.w3.org/1999/02/22-rdf-syntax-ns#",ir=nr+"type",ar=nr+"nil",or="http://www.w3.org/2001/XMLSchema#",sr=or+"integer",ur=or+"decimal",cr=or+"double",lr=or+"boolean",hr="",pr="",dr="";function fr(e){return e.toLowerCase()}function yr(e,t){return e.push(t),e}function mr(e,t){return e.push.apply(e,t),e}function gr(e){e||(e={});for(var t,r=1,n=arguments.length;r>10),56320+(1023&i))}var a=jr[n];if(!a)throw new Error;return a}))}catch(e){return""}return e}function Lr(e,t,r){var n=[],i=[];return t.forEach((function(t){n.push(Ir(null,e,t.entity)),mr(i,t.triples)})),_r(n,r||[],i)}var Mr={EOF:1,parseError:function(e,t){if(!this.yy.parser)throw new Error(e);this.yy.parser.parseError(e,t)},setInput:function(e,t){return this.yy=t||this.yy||{},this._input=e,this._more=this._backtrack=this.done=!1,this.yylineno=this.yyleng=0,this.yytext=this.matched=this.match="",this.conditionStack=["INITIAL"],this.yylloc={first_line:1,first_column:0,last_line:1,last_column:0},this.options.ranges&&(this.yylloc.range=[0,0]),this.offset=0,this},input:function(){var e=this._input[0];return this.yytext+=e,this.yyleng++,this.offset++,this.match+=e,this.matched+=e,e.match(/(?:\r\n?|\n).*/g)?(this.yylineno++,this.yylloc.last_line++):this.yylloc.last_column++,this.options.ranges&&this.yylloc.range[1]++,this._input=this._input.slice(1),e},unput:function(e){var t=e.length,r=e.split(/(?:\r\n?|\n)/g);this._input=e+this._input,this.yytext=this.yytext.substr(0,this.yytext.length-t),this.offset-=t;var n=this.match.split(/(?:\r\n?|\n)/g);this.match=this.match.substr(0,this.match.length-1),this.matched=this.matched.substr(0,this.matched.length-1),r.length-1&&(this.yylineno-=r.length-1);var i=this.yylloc.range;return this.yylloc={first_line:this.yylloc.first_line,last_line:this.yylineno+1,first_column:this.yylloc.first_column,last_column:r?(r.length===n.length?this.yylloc.first_column:0)+n[n.length-r.length].length-r[0].length:this.yylloc.first_column-t},this.options.ranges&&(this.yylloc.range=[i[0],i[0]+this.yyleng-t]),this.yyleng=this.yytext.length,this},more:function(){return this._more=!0,this},reject:function(){return this.options.backtrack_lexer?(this._backtrack=!0,this):this.parseError("Lexical error on line "+(this.yylineno+1)+". You can only invoke reject() in the lexer when the lexer is of the backtracking persuasion (options.backtrack_lexer = true).\n"+this.showPosition(),{text:"",token:null,line:this.yylineno})},less:function(e){this.unput(this.match.slice(e))},pastInput:function(){var e=this.matched.substr(0,this.matched.length-this.match.length);return(e.length>20?"...":"")+e.substr(-20).replace(/\n/g,"")},upcomingInput:function(){var e=this.match;return e.length<20&&(e+=this._input.substr(0,20-e.length)),(e.substr(0,20)+(e.length>20?"...":"")).replace(/\n/g,"")},showPosition:function(){var e=this.pastInput(),t=new Array(e.length+1).join("-");return e+this.upcomingInput()+"\n"+t+"^"},test_match:function(e,t){var r,n,i;if(this.options.backtrack_lexer&&(i={yylineno:this.yylineno,yylloc:{first_line:this.yylloc.first_line,last_line:this.last_line,first_column:this.yylloc.first_column,last_column:this.yylloc.last_column},yytext:this.yytext,match:this.match,matches:this.matches,matched:this.matched,yyleng:this.yyleng,offset:this.offset,_more:this._more,_input:this._input,yy:this.yy,conditionStack:this.conditionStack.slice(0),done:this.done},this.options.ranges&&(i.yylloc.range=this.yylloc.range.slice(0))),(n=e[0].match(/(?:\r\n?|\n).*/g))&&(this.yylineno+=n.length),this.yylloc={first_line:this.yylloc.last_line,last_line:this.yylineno+1,first_column:this.yylloc.last_column,last_column:n?n[n.length-1].length-n[n.length-1].match(/\r?\n?/)[0].length:this.yylloc.last_column+e[0].length},this.yytext+=e[0],this.match+=e[0],this.matches=e,this.yyleng=this.yytext.length,this.options.ranges&&(this.yylloc.range=[this.offset,this.offset+=this.yyleng]),this._more=!1,this._backtrack=!1,this._input=this._input.slice(e[0].length),this.matched+=e[0],r=this.performAction.call(this,this.yy,this,t,this.conditionStack[this.conditionStack.length-1]),this.done&&this._input&&(this.done=!1),r)return r;if(this._backtrack){for(var a in i)this[a]=i[a];return!1}return!1},next:function(){if(this.done)return this.EOF;var e,t,r,n;this._input||(this.done=!0),this._more||(this.yytext="",this.match="");for(var i=this._currentRules(),a=0;at[0].length)){if(t=r,n=a,this.options.backtrack_lexer){if(!1!==(e=this.test_match(r,i[a])))return e;if(this._backtrack){t=!1;continue}return!1}if(!this.options.flex)break}return t?!1!==(e=this.test_match(t,i[n]))&&e:""===this._input?this.EOF:this.parseError("Lexical error on line "+(this.yylineno+1)+". Unrecognized text.\n"+this.showPosition(),{text:"",token:null,line:this.yylineno})},lex:function(){var e=this.next();return e||this.lex()},begin:function(e){this.conditionStack.push(e)},popState:function(){return this.conditionStack.length-1>0?this.conditionStack.pop():this.conditionStack[0]},_currentRules:function(){return this.conditionStack.length&&this.conditionStack[this.conditionStack.length-1]?this.conditions[this.conditionStack[this.conditionStack.length-1]].rules:this.conditions.INITIAL.rules},topState:function(e){return(e=this.conditionStack.length-1-Math.abs(e||0))>=0?this.conditionStack[e]:"INITIAL"},pushState:function(e){this.begin(e)},stateStackSize:function(){return this.conditionStack.length},options:{flex:!0,"case-insensitive":!0},performAction:function(e,t,r,n){switch(r){case 0:break;case 1:return 12;case 2:return 15;case 3:return 28;case 4:return 295;case 5:return 296;case 6:return 35;case 7:return 37;case 8:return 38;case 9:return 26;case 10:return 40;case 11:return 44;case 12:return 45;case 13:return 47;case 14:return 49;case 15:return 54;case 16:return 57;case 17:return 299;case 18:return 67;case 19:return 68;case 20:return 74;case 21:return 77;case 22:return 80;case 23:return 82;case 24:return 85;case 25:return 87;case 26:return 89;case 27:return 189;case 28:return 105;case 29:return 300;case 30:return 138;case 31:return 301;case 32:return 302;case 33:return 115;case 34:return 303;case 35:return 114;case 36:return 304;case 37:return 305;case 38:return 118;case 39:return 120;case 40:return 121;case 41:return 136;case 42:return 130;case 43:return 131;case 44:return 133;case 45:return 139;case 46:return 117;case 47:return 306;case 48:return 307;case 49:return 165;case 50:return 168;case 51:return 172;case 52:return 98;case 53:return 166;case 54:return 308;case 55:return 171;case 56:return 257;case 57:return 193;case 58:return 309;case 59:return 310;case 60:return 219;case 61:return 312;case 62:return 313;case 63:return 214;case 64:return 221;case 65:return 222;case 66:return 229;case 67:return 233;case 68:return 274;case 69:return 314;case 70:return 315;case 71:return 316;case 72:return 317;case 73:return 318;case 74:return 237;case 75:return 319;case 76:return 252;case 77:return 260;case 78:return 261;case 79:return 254;case 80:return 255;case 81:return 256;case 82:return 320;case 83:return 321;case 84:return 258;case 85:return 323;case 86:return 322;case 87:return 324;case 88:return 263;case 89:return 264;case 90:return 267;case 91:return 269;case 92:return 273;case 93:return 277;case 94:return 280;case 95:return 13;case 96:return 16;case 97:return 291;case 98:return 224;case 99:return 34;case 100:return 276;case 101:return 86;case 102:return 278;case 103:return 279;case 104:return 285;case 105:return 286;case 106:return 287;case 107:return 288;case 108:return 289;case 109:return 290;case 110:return"EXPONENT";case 111:return 281;case 112:return 282;case 113:return 283;case 114:return 284;case 115:return 92;case 116:return 225;case 117:return 6;case 118:return"INVALID";case 119:console.log(t.yytext)}},rules:[/^(?:\s+|#[^\n\r]*)/i,/^(?:BASE)/i,/^(?:PREFIX)/i,/^(?:SELECT)/i,/^(?:DISTINCT)/i,/^(?:REDUCED)/i,/^(?:\()/i,/^(?:AS)/i,/^(?:\))/i,/^(?:\*)/i,/^(?:CONSTRUCT)/i,/^(?:WHERE)/i,/^(?:\{)/i,/^(?:\})/i,/^(?:DESCRIBE)/i,/^(?:ASK)/i,/^(?:FROM)/i,/^(?:NAMED)/i,/^(?:GROUP)/i,/^(?:BY)/i,/^(?:HAVING)/i,/^(?:ORDER)/i,/^(?:ASC)/i,/^(?:DESC)/i,/^(?:LIMIT)/i,/^(?:OFFSET)/i,/^(?:VALUES)/i,/^(?:;)/i,/^(?:LOAD)/i,/^(?:SILENT)/i,/^(?:INTO)/i,/^(?:CLEAR)/i,/^(?:DROP)/i,/^(?:CREATE)/i,/^(?:ADD)/i,/^(?:TO)/i,/^(?:MOVE)/i,/^(?:COPY)/i,/^(?:INSERT\s+DATA)/i,/^(?:DELETE\s+DATA)/i,/^(?:DELETE\s+WHERE)/i,/^(?:WITH)/i,/^(?:DELETE)/i,/^(?:INSERT)/i,/^(?:USING)/i,/^(?:DEFAULT)/i,/^(?:GRAPH)/i,/^(?:ALL)/i,/^(?:\.)/i,/^(?:OPTIONAL)/i,/^(?:SERVICE)/i,/^(?:BIND)/i,/^(?:UNDEF)/i,/^(?:MINUS)/i,/^(?:UNION)/i,/^(?:FILTER)/i,/^(?:,)/i,/^(?:a)/i,/^(?:\|)/i,/^(?:\/)/i,/^(?:\^)/i,/^(?:\?)/i,/^(?:\+)/i,/^(?:!)/i,/^(?:\[)/i,/^(?:\])/i,/^(?:\|\|)/i,/^(?:&&)/i,/^(?:=)/i,/^(?:!=)/i,/^(?:<)/i,/^(?:>)/i,/^(?:<=)/i,/^(?:>=)/i,/^(?:IN)/i,/^(?:NOT)/i,/^(?:-)/i,/^(?:BOUND)/i,/^(?:BNODE)/i,/^(?:(RAND|NOW|UUID|STRUUID))/i,/^(?:(LANG|DATATYPE|IRI|URI|ABS|CEIL|FLOOR|ROUND|STRLEN|STR|UCASE|LCASE|ENCODE_FOR_URI|YEAR|MONTH|DAY|HOURS|MINUTES|SECONDS|TIMEZONE|TZ|MD5|SHA1|SHA256|SHA384|SHA512|isIRI|isURI|isBLANK|isLITERAL|isNUMERIC))/i,/^(?:(LANGMATCHES|CONTAINS|STRSTARTS|STRENDS|STRBEFORE|STRAFTER|STRLANG|STRDT|sameTerm))/i,/^(?:CONCAT)/i,/^(?:COALESCE)/i,/^(?:IF)/i,/^(?:REGEX)/i,/^(?:SUBSTR)/i,/^(?:REPLACE)/i,/^(?:EXISTS)/i,/^(?:COUNT)/i,/^(?:SUM|MIN|MAX|AVG|SAMPLE)/i,/^(?:GROUP_CONCAT)/i,/^(?:SEPARATOR)/i,/^(?:\^\^)/i,/^(?:true|false)/i,/^(?:(<([^<>\"\{\}\|\^`\\\u0000-\u0020])*>))/i,/^(?:((([A-Z]|[a-z]|[\u00C0-\u00D6]|[\u00D8-\u00F6]|[\u00F8-\u02FF]|[\u0370-\u037D]|[\u037F-\u1FFF]|[\u200C-\u200D]|[\u2070-\u218F]|[\u2C00-\u2FEF]|[\u3001-\uD7FF]|[\uF900-\uFDCF]|[\uFDF0-\uFFFD]|[\uD800-\uDB7F][\uDC00-\uDFFF])(((((?:([A-Z]|[a-z]|[\u00C0-\u00D6]|[\u00D8-\u00F6]|[\u00F8-\u02FF]|[\u0370-\u037D]|[\u037F-\u1FFF]|[\u200C-\u200D]|[\u2070-\u218F]|[\u2C00-\u2FEF]|[\u3001-\uD7FF]|[\uF900-\uFDCF]|[\uFDF0-\uFFFD]|[\uD800-\uDB7F][\uDC00-\uDFFF])|_))|-|[0-9]|\u00B7|[\u0300-\u036F]|[\u203F-\u2040])|\.)*(((?:([A-Z]|[a-z]|[\u00C0-\u00D6]|[\u00D8-\u00F6]|[\u00F8-\u02FF]|[\u0370-\u037D]|[\u037F-\u1FFF]|[\u200C-\u200D]|[\u2070-\u218F]|[\u2C00-\u2FEF]|[\u3001-\uD7FF]|[\uF900-\uFDCF]|[\uFDF0-\uFFFD]|[\uD800-\uDB7F][\uDC00-\uDFFF])|_))|-|[0-9]|\u00B7|[\u0300-\u036F]|[\u203F-\u2040]))?)?:))/i,/^(?:(((([A-Z]|[a-z]|[\u00C0-\u00D6]|[\u00D8-\u00F6]|[\u00F8-\u02FF]|[\u0370-\u037D]|[\u037F-\u1FFF]|[\u200C-\u200D]|[\u2070-\u218F]|[\u2C00-\u2FEF]|[\u3001-\uD7FF]|[\uF900-\uFDCF]|[\uFDF0-\uFFFD]|[\uD800-\uDB7F][\uDC00-\uDFFF])(((((?:([A-Z]|[a-z]|[\u00C0-\u00D6]|[\u00D8-\u00F6]|[\u00F8-\u02FF]|[\u0370-\u037D]|[\u037F-\u1FFF]|[\u200C-\u200D]|[\u2070-\u218F]|[\u2C00-\u2FEF]|[\u3001-\uD7FF]|[\uF900-\uFDCF]|[\uFDF0-\uFFFD]|[\uD800-\uDB7F][\uDC00-\uDFFF])|_))|-|[0-9]|\u00B7|[\u0300-\u036F]|[\u203F-\u2040])|\.)*(((?:([A-Z]|[a-z]|[\u00C0-\u00D6]|[\u00D8-\u00F6]|[\u00F8-\u02FF]|[\u0370-\u037D]|[\u037F-\u1FFF]|[\u200C-\u200D]|[\u2070-\u218F]|[\u2C00-\u2FEF]|[\u3001-\uD7FF]|[\uF900-\uFDCF]|[\uFDF0-\uFFFD]|[\uD800-\uDB7F][\uDC00-\uDFFF])|_))|-|[0-9]|\u00B7|[\u0300-\u036F]|[\u203F-\u2040]))?)?:)((((?:([A-Z]|[a-z]|[\u00C0-\u00D6]|[\u00D8-\u00F6]|[\u00F8-\u02FF]|[\u0370-\u037D]|[\u037F-\u1FFF]|[\u200C-\u200D]|[\u2070-\u218F]|[\u2C00-\u2FEF]|[\u3001-\uD7FF]|[\uF900-\uFDCF]|[\uFDF0-\uFFFD]|[\uD800-\uDB7F][\uDC00-\uDFFF])|_))|:|[0-9]|((%([0-9]|[A-F]|[a-f])([0-9]|[A-F]|[a-f]))|(\\(_|~|\.|-|!|\$|&|'|\(|\)|\*|\+|,|;|=|\/|\?|#|@|%))))(((((?:([A-Z]|[a-z]|[\u00C0-\u00D6]|[\u00D8-\u00F6]|[\u00F8-\u02FF]|[\u0370-\u037D]|[\u037F-\u1FFF]|[\u200C-\u200D]|[\u2070-\u218F]|[\u2C00-\u2FEF]|[\u3001-\uD7FF]|[\uF900-\uFDCF]|[\uFDF0-\uFFFD]|[\uD800-\uDB7F][\uDC00-\uDFFF])|_))|-|[0-9]|\u00B7|[\u0300-\u036F]|[\u203F-\u2040])|\.|:|((%([0-9]|[A-F]|[a-f])([0-9]|[A-F]|[a-f]))|(\\(_|~|\.|-|!|\$|&|'|\(|\)|\*|\+|,|;|=|\/|\?|#|@|%))))*((((?:([A-Z]|[a-z]|[\u00C0-\u00D6]|[\u00D8-\u00F6]|[\u00F8-\u02FF]|[\u0370-\u037D]|[\u037F-\u1FFF]|[\u200C-\u200D]|[\u2070-\u218F]|[\u2C00-\u2FEF]|[\u3001-\uD7FF]|[\uF900-\uFDCF]|[\uFDF0-\uFFFD]|[\uD800-\uDB7F][\uDC00-\uDFFF])|_))|-|[0-9]|\u00B7|[\u0300-\u036F]|[\u203F-\u2040])|:|((%([0-9]|[A-F]|[a-f])([0-9]|[A-F]|[a-f]))|(\\(_|~|\.|-|!|\$|&|'|\(|\)|\*|\+|,|;|=|\/|\?|#|@|%)))))?)))/i,/^(?:(_:(((?:([A-Z]|[a-z]|[\u00C0-\u00D6]|[\u00D8-\u00F6]|[\u00F8-\u02FF]|[\u0370-\u037D]|[\u037F-\u1FFF]|[\u200C-\u200D]|[\u2070-\u218F]|[\u2C00-\u2FEF]|[\u3001-\uD7FF]|[\uF900-\uFDCF]|[\uFDF0-\uFFFD]|[\uD800-\uDB7F][\uDC00-\uDFFF])|_))|[0-9])(((((?:([A-Z]|[a-z]|[\u00C0-\u00D6]|[\u00D8-\u00F6]|[\u00F8-\u02FF]|[\u0370-\u037D]|[\u037F-\u1FFF]|[\u200C-\u200D]|[\u2070-\u218F]|[\u2C00-\u2FEF]|[\u3001-\uD7FF]|[\uF900-\uFDCF]|[\uFDF0-\uFFFD]|[\uD800-\uDB7F][\uDC00-\uDFFF])|_))|-|[0-9]|\u00B7|[\u0300-\u036F]|[\u203F-\u2040])|\.)*(((?:([A-Z]|[a-z]|[\u00C0-\u00D6]|[\u00D8-\u00F6]|[\u00F8-\u02FF]|[\u0370-\u037D]|[\u037F-\u1FFF]|[\u200C-\u200D]|[\u2070-\u218F]|[\u2C00-\u2FEF]|[\u3001-\uD7FF]|[\uF900-\uFDCF]|[\uFDF0-\uFFFD]|[\uD800-\uDB7F][\uDC00-\uDFFF])|_))|-|[0-9]|\u00B7|[\u0300-\u036F]|[\u203F-\u2040]))?))/i,/^(?:([\?\$]((((?:([A-Z]|[a-z]|[\u00C0-\u00D6]|[\u00D8-\u00F6]|[\u00F8-\u02FF]|[\u0370-\u037D]|[\u037F-\u1FFF]|[\u200C-\u200D]|[\u2070-\u218F]|[\u2C00-\u2FEF]|[\u3001-\uD7FF]|[\uF900-\uFDCF]|[\uFDF0-\uFFFD]|[\uD800-\uDB7F][\uDC00-\uDFFF])|_))|[0-9])(((?:([A-Z]|[a-z]|[\u00C0-\u00D6]|[\u00D8-\u00F6]|[\u00F8-\u02FF]|[\u0370-\u037D]|[\u037F-\u1FFF]|[\u200C-\u200D]|[\u2070-\u218F]|[\u2C00-\u2FEF]|[\u3001-\uD7FF]|[\uF900-\uFDCF]|[\uFDF0-\uFFFD]|[\uD800-\uDB7F][\uDC00-\uDFFF])|_))|[0-9]|\u00B7|[\u0300-\u036F]|[\u203F-\u2040])*)))/i,/^(?:(@[a-zA-Z]+(-[a-zA-Z0-9]+)*))/i,/^(?:([0-9]+))/i,/^(?:([0-9]*\.[0-9]+))/i,/^(?:([0-9]+\.[0-9]*([eE][+-]?[0-9]+)|\.([0-9])+([eE][+-]?[0-9]+)|([0-9])+([eE][+-]?[0-9]+)))/i,/^(?:(\+([0-9]+)))/i,/^(?:(\+([0-9]*\.[0-9]+)))/i,/^(?:(\+([0-9]+\.[0-9]*([eE][+-]?[0-9]+)|\.([0-9])+([eE][+-]?[0-9]+)|([0-9])+([eE][+-]?[0-9]+))))/i,/^(?:(-([0-9]+)))/i,/^(?:(-([0-9]*\.[0-9]+)))/i,/^(?:(-([0-9]+\.[0-9]*([eE][+-]?[0-9]+)|\.([0-9])+([eE][+-]?[0-9]+)|([0-9])+([eE][+-]?[0-9]+))))/i,/^(?:([eE][+-]?[0-9]+))/i,/^(?:('(([^\u0027\u005C\u000A\u000D])|(\\[tbnrf\\\"']|\\u([0-9]|[A-F]|[a-f])([0-9]|[A-F]|[a-f])([0-9]|[A-F]|[a-f])([0-9]|[A-F]|[a-f])|\\U([0-9]|[A-F]|[a-f])([0-9]|[A-F]|[a-f])([0-9]|[A-F]|[a-f])([0-9]|[A-F]|[a-f])([0-9]|[A-F]|[a-f])([0-9]|[A-F]|[a-f])([0-9]|[A-F]|[a-f])([0-9]|[A-F]|[a-f])))*'))/i,/^(?:("(([^\u0022\u005C\u000A\u000D])|(\\[tbnrf\\\"']|\\u([0-9]|[A-F]|[a-f])([0-9]|[A-F]|[a-f])([0-9]|[A-F]|[a-f])([0-9]|[A-F]|[a-f])|\\U([0-9]|[A-F]|[a-f])([0-9]|[A-F]|[a-f])([0-9]|[A-F]|[a-f])([0-9]|[A-F]|[a-f])([0-9]|[A-F]|[a-f])([0-9]|[A-F]|[a-f])([0-9]|[A-F]|[a-f])([0-9]|[A-F]|[a-f])))*"))/i,/^(?:('''(('|'')?([^'\\]|(\\[tbnrf\\\"']|\\u([0-9]|[A-F]|[a-f])([0-9]|[A-F]|[a-f])([0-9]|[A-F]|[a-f])([0-9]|[A-F]|[a-f])|\\U([0-9]|[A-F]|[a-f])([0-9]|[A-F]|[a-f])([0-9]|[A-F]|[a-f])([0-9]|[A-F]|[a-f])([0-9]|[A-F]|[a-f])([0-9]|[A-F]|[a-f])([0-9]|[A-F]|[a-f])([0-9]|[A-F]|[a-f]))))*'''))/i,/^(?:("""(("|"")?([^\"\\]|(\\[tbnrf\\\"']|\\u([0-9]|[A-F]|[a-f])([0-9]|[A-F]|[a-f])([0-9]|[A-F]|[a-f])([0-9]|[A-F]|[a-f])|\\U([0-9]|[A-F]|[a-f])([0-9]|[A-F]|[a-f])([0-9]|[A-F]|[a-f])([0-9]|[A-F]|[a-f])([0-9]|[A-F]|[a-f])([0-9]|[A-F]|[a-f])([0-9]|[A-F]|[a-f])([0-9]|[A-F]|[a-f]))))*"""))/i,/^(?:(\((\u0020|\u0009|\u000D|\u000A)*\)))/i,/^(?:(\[(\u0020|\u0009|\u000D|\u000A)*\]))/i,/^(?:$)/i,/^(?:.)/i,/^(?:.)/i],conditions:{INITIAL:{rules:[0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31,32,33,34,35,36,37,38,39,40,41,42,43,44,45,46,47,48,49,50,51,52,53,54,55,56,57,58,59,60,61,62,63,64,65,66,67,68,69,70,71,72,73,74,75,76,77,78,79,80,81,82,83,84,85,86,87,88,89,90,91,92,93,94,95,96,97,98,99,100,101,102,103,104,105,106,107,108,109,110,111,112,113,114,115,116,117,118,119],inclusive:!0}}};function Fr(){this.yy={}}return tr.lexer=Mr,Fr.prototype=tr,tr.Parser=Fr,new Fr}();t.parser=i,t.Parser=i.Parser,t.parse=function(){return i.parse.apply(i,arguments)},t.main=function(n){n[1]||(console.log("Usage: "+n[0]+" FILE"),e.exit(1));var i=r(322).readFileSync(r(323).normalize(n[1]),"utf8");return t.parser.parse(i)},r.c[r.s]===n&&t.main(e.argv.slice(1))}).call(this,r(12),r(51)(e))},function(e,t){},function(e,t){},function(e,t){function r(e){this._options=e=e||{};var t=e.prefixes||{};this._prefixByIri={};var r=[];for(var n in t){var i=t[n];s(i)&&(this._prefixByIri[i]=n,r.push(i))}var a=r.join("|").replace(/[\]\/\(\)\*\+\?\.\\\$]/g,"\\$&");this._prefixRegex=new RegExp("^("+a+")([a-zA-Z][\\-_a-zA-Z0-9]*)$"),this._usedPrefixes={},this._indent=s(e.indent)?e.indent:" ",this._newline=s(e.newline)?e.newline:"\n"}r.prototype.toQuery=function(e){var t="";return e.queryType&&(t+=e.queryType.toUpperCase()+" "),e.reduced&&(t+="REDUCED "),e.distinct&&(t+="DISTINCT "),e.variables?t+=c(e.variables,void 0,(function(e){return u(e)?this.toEntity(e):"("+this.toExpression(e.expression)+" AS "+o(e.variable)+")"}),this)+" ":e.template&&(t+=this.group(e.template,!0)+this._newline),e.from&&(t+=this.graphs("FROM ",e.from.default)+this.graphs("FROM NAMED ",e.from.named)),e.where&&(t+="WHERE "+this.group(e.where,!0)+this._newline),e.updates&&(t+=c(e.updates,";"+this._newline,this.toUpdate,this)),e.group&&(t+="GROUP BY "+c(e.group,void 0,(function(e){var t=s(e.expression)?e.expression:"("+this.toExpression(e.expression)+")";return e.variable?"("+t+" AS "+o(e.variable)+")":t}),this)+this._newline),e.having&&(t+="HAVING ("+c(e.having,void 0,this.toExpression,this)+")"+this._newline),e.order&&(t+="ORDER BY "+c(e.order,void 0,(function(e){var t="("+this.toExpression(e.expression)+")";return e.descending?"DESC "+t:t}),this)+this._newline),e.offset&&(t+="OFFSET "+e.offset+this._newline),e.limit&&(t+="LIMIT "+e.limit+this._newline),e.values&&(t+=this.values(e)),(t=this.baseAndPrefixes(e)+t).trim()},r.prototype.baseAndPrefixes=function(e){var t=e.base?"BASE <"+e.base+">"+this._newline:"",r="";for(var n in e.prefixes)(this._options.allPrefixes||this._usedPrefixes[n])&&(r+="PREFIX "+n+": <"+e.prefixes[n]+">"+this._newline);return t+r},r.prototype.toPattern=function(e){var t=e.type||e instanceof Array&&"array"||(e.subject&&e.predicate&&e.object?"triple":"");if(!(t in this))throw new Error("Unknown entry type: "+t);return this[t](e)},r.prototype.triple=function(e){return this.toEntity(e.subject)+" "+this.toEntity(e.predicate)+" "+this.toEntity(e.object)+"."},r.prototype.array=function(e){return c(e,this._newline,this.toPattern,this)},r.prototype.bgp=function(e){return this.encodeTriples(e.triples)},r.prototype.encodeTriples=function(e){if(!e.length)return"";for(var t=[],r="",n="",i=0;i":case">=":case"<=":case"&&":case"||":case"=":case"!=":case"+":case"-":case"*":case"/":return(u(r[0])?this.toEntity(r[0]):"("+this.toExpression(r[0])+")")+" "+t+" "+(u(r[1])?this.toEntity(r[1]):"("+this.toExpression(r[1])+")");case"!":return"!("+this.toExpression(r[0])+")";case"notin":t="NOT IN";case"in":return this.toExpression(r[0])+" "+t+"("+(s(r[1])?r[1]:c(r[1],", ",this.toExpression,this))+")";case"notexists":t="NOT EXISTS";case"exists":return t+" "+this.group(r[0],!0);default:return t+"("+c(r,", ",this.toExpression,this)+")"}default:throw new Error("Unknown expression type: "+e.type)}},r.prototype.toEntity=function(e){if(u(e))switch(e.termType){case"Wildcard":return"*";case"Variable":return o(e);case"BlankNode":return"_:"+e.value;case"Literal":var t=e.value||"",r=e.language||"",a=e.datatype;if(e='"'+t.replace(n,i)+'"',r)e+="@"+r;else if(a){if("http://www.w3.org/2001/XMLSchema#integer"===a.value&&/^\d+$/.test(t))return t+" ";e+="^^"+this.encodeIRI(a.value)}return e;default:return this.encodeIRI(e.value)}else{var s=e.items.map(this.toEntity,this),c=e.pathType;switch(c){case"^":case"!":return c+s[0];case"*":case"+":case"?":return"("+s[0]+c+")";default:return"("+s.join(c)+")"}}};var n=/["\\\t\n\r\b\f]/g,i=function(e){return a[e]},a={"\\":"\\\\",'"':'\\"',"\t":"\\t","\n":"\\n","\r":"\\r","\b":"\\b","\f":"\\f"};function o(e){return"?"+e.value}function s(e){return"string"==typeof e}function u(e){return!!e.termType}function c(e,t,r,n){return e.map(r,n).join(s(t)?t:" ")}r.prototype.encodeIRI=function(e){var t=this._prefixRegex.exec(e);if(t){var r=this._prefixByIri[t[1]];return this._usedPrefixes[r]=!0,r+":"+t[2]}return"<"+e+">"},r.prototype.toUpdate=function(e){switch(e.type||e.updateType){case"load":return"LOAD"+(e.source?" "+this.toEntity(e.source):"")+(e.destination?" INTO GRAPH "+this.toEntity(e.destination):"");case"insert":return"INSERT DATA "+this.group(e.insert,!0);case"delete":return"DELETE DATA "+this.group(e.delete,!0);case"deletewhere":return"DELETE WHERE "+this.group(e.delete,!0);case"insertdelete":return(e.graph?"WITH "+this.toEntity(e.graph)+this._newline:"")+(e.delete.length?"DELETE "+this.group(e.delete,!0)+this._newline:"")+(e.insert.length?"INSERT "+this.group(e.insert,!0)+this._newline:"")+(e.using?this.graphs("USING ",e.using.default):"")+(e.using?this.graphs("USING NAMED ",e.using.named):"")+"WHERE "+this.group(e.where,!0);case"add":case"copy":case"move":return e.type.toUpperCase()+(e.source.default?" DEFAULT ":" ")+"TO "+this.toEntity(e.destination.name);case"create":case"clear":case"drop":return e.type.toUpperCase()+(e.silent?" SILENT ":" ")+(e.graph.default?"DEFAULT":e.graph.named?"NAMED":e.graph.all?"ALL":"GRAPH "+this.toEntity(e.graph.name));default:throw new Error("Unknown update query type: "+e.type)}},r.prototype.indent=function(e){return e.replace(/^/gm,this._indent)},e.exports=function(e={}){return{stringify:function(t){Object.create(e);return e.prefixes=t.prefixes,new r(e).toQuery(t)}}}},function(e,t,r){"use strict";e.exports=function e(t,r){if(t===r)return!0;if(t&&r&&"object"==typeof t&&"object"==typeof r){if(t.constructor!==r.constructor)return!1;var n,i,a;if(Array.isArray(t)){if((n=t.length)!=r.length)return!1;for(i=n;0!=i--;)if(!e(t[i],r[i]))return!1;return!0}if(t.constructor===RegExp)return t.source===r.source&&t.flags===r.flags;if(t.valueOf!==Object.prototype.valueOf)return t.valueOf()===r.valueOf();if(t.toString!==Object.prototype.toString)return t.toString()===r.toString();if((n=(a=Object.keys(t)).length)!==Object.keys(r).length)return!1;for(i=n;0!=i--;)if(!Object.prototype.hasOwnProperty.call(r,a[i]))return!1;for(i=n;0!=i--;){var o=a[i];if(!e(t[o],r[o]))return!1}return!0}return t!=t&&r!=r}},function(e,t,r){"use strict";Object.defineProperty(t,"__esModule",{value:!0});const n=r(52),i=r(53),a=r(74),o=r(5),s=r(38).Generator,u=r(38).Wildcard,c=n.types,l=n.expressionTypes;let h;const p=new i.default;function d(e){y();let t=m(e=function(e){return function e(t,r){if(Array.isArray(t))return t.map(t=>e(t,r));if(!t.type)return t;if((t.type===c.PATTERN||t.type===c.PATH)&&t.graph)return r[t.graph.value]||(r[t.graph.value]={graph:t.graph,values:[]}),r[t.graph.value].values.push(t),t;const n={},i={},a={};for(let r of Object.keys(t)){const o={};n[r]=e(t[r],o);const s=Object.keys(o);if(s.length>1){let e=T(o[s[0]].values);for(let t=1;tdelete o[e]),e}if(1===s.length){const e=o[s[0]].graph;i[r]=e,a[e.value]=e}}const o=Object.keys(a);if(o.length>0)if(1===o.length&&t.type!==c.PROJECT)r[o[0]]={graph:a[o[0]],values:[n]};else for(let e of Object.keys(i))i[e].value.length>0&&(n[e]=p.createGraph(n[e],i[e]));return n}(e,{})}(e));return"group"===t.type?t.patterns[0]:t}function f(e){return Array.prototype.concat(...e).filter(e=>e)}function y(){h={project:!1,extend:[],group:[],aggregates:[],order:[]}}function m(e){switch(e.type!==c.EXTEND&&e.type!==c.ORDER_BY&&e.type!==c.GRAPH&&(h.project=!1),e.type){case c.EXPRESSION:return g(e);case c.ASK:return S(e,c.ASK);case c.BGP:return function(e){let t=e.patterns.map(w);return 0===t.length?null:{type:"bgp",triples:t}}(e);case c.CONSTRUCT:return function(e){return{type:"query",prefixes:{},queryType:"CONSTRUCT",template:e.template.map(w),where:f([m(e.input)])}}(e);case c.DESCRIBE:return S(e,c.DESCRIBE);case c.DISTINCT:return function(e){let t=m(e.input);return t.patterns[0].distinct=!0,t}(e);case c.EXTEND:return function(e){if(h.project)return h.extend.push(e),m(e.input);return f([m(e.input),{type:"bind",variable:e.variable,expression:g(e.expression)}])}(e);case c.FROM:return function(e){let t=m(e.input);return t.patterns[0].from={default:e.default,named:e.named},t}(e);case c.FILTER:return function(e){return{type:"group",patterns:f([m(e.input),{type:"filter",expression:g(e.expression)}])}}(e);case c.GRAPH:return function(e){return{type:"graph",patterns:f([m(e.input)]),name:e.name}}(e);case c.GROUP:return function(e){let t=m(e.input),r=e.aggregates.map(v);return h.aggregates.push(...r),h.group.push(...e.variables),t}(e);case c.JOIN:return function(e){return f([m(e.left),m(e.right)])}(e);case c.LEFT_JOIN:return function(e){let t={type:"optional",patterns:[m(e.right)]};e.expression&&t.patterns.push({type:"filter",expression:g(e.expression)});return t.patterns=f(t.patterns),f([m(e.left),t])}(e);case c.MINUS:return function(e){let t=m(e.right);"group"===t.type&&(t=t.patterns);return f([m(e.left),{type:"minus",patterns:t}])}(e);case c.ORDER_BY:return function(e){return h.order.push(...e.expressions),m(e.input)}(e);case c.PATH:return function(e){return{type:"bgp",triples:[{subject:e.subject,predicate:_(e.predicate),object:e.object}]}}(e);case c.PATTERN:return w(e);case c.PROJECT:return S(e,c.PROJECT);case c.REDUCED:return function(e){let t=m(e.input);return t.patterns[0].reduced=!0,t}(e);case c.SERVICE:return function(e){let t=m(e.input);"group"===t.type&&(t=t.patterns);Array.isArray(t)||(t=[t]);return{type:"service",name:e.name,silent:e.silent,patterns:t}}(e);case c.SLICE:return function(e){let t=m(e.input),r=t;t.type&&"group"===t.type&&(r=t.patterns[0]);0!==e.start&&(r.offset=e.start);void 0!==e.length&&(r.limit=e.length);return t}(e);case c.UNION:return function(e){return{type:"union",patterns:f([m(e.left),m(e.right)])}}(e);case c.VALUES:return function(e){return{type:"values",values:e.bindings.map(t=>{let r={};for(let n of e.variables){let e="?"+n.value;t[e]?r[e]=t[e]:r[e]=void 0}return r})}}(e)}throw new Error("Unknown Operation type "+e.type)}function g(e){switch(e.expressionType){case l.AGGREGATE:return function(e){let t={expression:g(e.expression),type:"aggregate",aggregation:e.aggregator,distinct:e.distinct};e.separator&&(t.separator=e.separator);return t}(e);case l.EXISTENCE:return function(e){return{type:"operation",operator:e.not?"notexists":"exists",args:f([m(e.input)])}}(e);case l.NAMED:return function(e){return{type:"functionCall",function:e.name,args:e.args.map(g)}}(e);case l.OPERATOR:return function(e){if("desc"===e.operator){let t={expression:g(e.args[0]),descending:!0};return t}let t={type:"operation",operator:e.operator,args:e.args.map(g)};"in"!==t.operator&&"notin"!==t.operator||(t.args=[t.args[0]].concat([t.args.slice(1)]));return t}(e);case l.TERM:return function(e){return e.term}(e);case l.WILDCARD:return function(e){return e.wildcard}(e)}throw new Error("Unknown Expression Operation type "+e.expressionType)}function _(e){switch(e.type){case c.ALT:return function(e){let t=_(e.left),r=_(e.right);if("!"===t.pathType&&"!"===r.pathType)return{type:"path",pathType:"!",items:[{type:"path",pathType:"|",items:[].concat(t.items,r.items)}]};return{type:"path",pathType:"|",items:[t,r]}}(e);case c.INV:return function(e){if(e.path.type===c.NPS){let t=e.path.iris.map(e=>({type:"path",pathType:"^",items:[e]}));return t.length<=1?{type:"path",pathType:"!",items:t}:{type:"path",pathType:"!",items:[{type:"path",pathType:"|",items:t}]}}return{type:"path",pathType:"^",items:[_(e.path)]}}(e);case c.LINK:return function(e){return e.iri}(e);case c.NPS:return function(e){return e.iris.length<=1?{type:"path",pathType:"!",items:e.iris}:{type:"path",pathType:"!",items:[{type:"path",pathType:"|",items:e.iris}]}}(e);case c.ONE_OR_MORE_PATH:return function(e){return{type:"path",pathType:"+",items:[_(e.path)]}}(e);case c.SEQ:return function(e){return{type:"path",pathType:"/",items:[_(e.left),_(e.right)]}}(e);case c.ZERO_OR_MORE_PATH:return function(e){return{type:"path",pathType:"*",items:[_(e.path)]}}(e);case c.ZERO_OR_ONE_PATH:return function(e){return{type:"path",pathType:"?",items:[_(e.path)]}}(e)}throw new Error("Unknown Path type "+e.type)}function b(e){return o.termToString(e)}function v(e){return e}function w(e){return{subject:e.subject,predicate:e.predicate,object:e.object}}function E(e,t){let r=a.default.isTerm(e)?b(e):e;if("string"==typeof r){if(t[r])return t[r]}else if(Array.isArray(e))e=e.map(e=>E(e,t));else for(let r of Object.keys(e))e[r]=E(e[r],t);return e}function S(e,t){let r={type:"query",prefixes:{}};t===c.PROJECT?(r.queryType="SELECT",r.variables=e.variables):t===c.ASK?r.queryType="ASK":t===c.DESCRIBE&&(r.queryType="DESCRIBE",r.variables=e.terms);let n=h.extend,i=h.group,o=h.aggregates,s=h.order;y(),h.project=!0;let l=f([m(e.input)]);1===l.length&&"group"===l[0].type&&(l=l[0].patterns),r.where=l;let p={};for(let e of h.aggregates)p[b(e.variable)]=g(e);let d={};for(let e=h.extend.length-1;e>=0;--e){let t=h.extend[e];d[b(t.variable)]=E(g(t.expression),p)}if(h.group.length>0&&(r.group=h.group.map(e=>{let t=b(e);if(d[t]){let r=d[t];return delete d[t],{variable:e,expression:r}}return{expression:e}})),h.order.length>0&&(r.order=h.order.map(m).map(e=>e.descending?e:{expression:e})),r.variables&&(r.variables=r.variables.map(e=>{let t=b(e);return d[t]?{variable:e,expression:d[t]}:e}),0===r.variables.length&&(r.variables=[new u])),r.where.length>0&&"filter"===r.where[r.where.length-1].type){let e=r.where[r.where.length-1];(function e(t,r){return a.default.isTerm(t)?r.indexOf(b(t))>=0:Array.isArray(t)?t.some(t=>e(t,r)):t===Object(t)?Object.keys(t).some(n=>e(t[n],r)):r.indexOf(t)>=0})(e,Object.keys(p))&&(r.having=f([E(e.expression,p)]),r.where.splice(-1))}return h.extend=n,h.group=i,h.aggregates=o,h.order=s,r={type:"group",patterns:[r]},r}function T(e){const t=p.createBgp(e),r=e[0].graph;return 0===r.value.length?t:p.createGraph(t,r)}t.toSparql=function(e){return(new s).stringify(d(e))},t.toSparqlJs=d},function(e,t,r){"use strict";Object.defineProperty(t,"__esModule",{value:!0});const n=r(0);class i extends n.Mediator{constructor(e){super(e)}async mediate(e){let t;try{t=this.publish(e)}catch(t){return e}await Promise.all(t.map(({reply:e})=>e));let r=e;for(const e of t.map(e=>e.actor))r=await e.runObservable(r);return r}mediateWith(e,t){throw new Error("Method not supported.")}}t.MediatorCombinePipeline=i},function(e,t,r){"use strict";Object.defineProperty(t,"__esModule",{value:!0});const n=r(147),i=r(7),a=r(38);class o extends n.ActorSparqlParse{constructor(e){super(e),this.prefixes=Object.freeze(this.prefixes)}async test(e){if(e.queryFormat&&"sparql"!==e.queryFormat)throw new Error("This actor can only parse SPARQL queries");return!0}async run(e){const t=new a.Parser({prefixes:this.prefixes,baseIRI:e.baseIRI});t._resetBlanks();const r=t.parse(e.query);return{baseIRI:"query"===r.type?r.base:null,operation:i.translate(r,{quads:!0,prefixes:this.prefixes,blankToVariable:!0,baseIRI:e.baseIRI})}}}t.ActorSparqlParseAlgebra=o},function(e,t,r){"use strict";Object.defineProperty(t,"__esModule",{value:!0});const n=r(0);class i extends n.Actor{constructor(e){super(e)}}t.ActorSparqlParse=i},function(e,t,r){"use strict";Object.defineProperty(t,"__esModule",{value:!0});const n=r(3),i=r(4);class a extends n.ActorQueryOperationTyped{constructor(e){super(e,"bgp")}async testOperation(e,t){if(0!==e.patterns.length)throw new Error("Actor "+this.name+" can only operate on empty BGPs.");return!0}async runOperation(e,t){return{bindingsStream:new i.SingletonIterator(n.Bindings({})),metadata:()=>Promise.resolve({totalItems:1}),type:"bindings",variables:[]}}}t.ActorQueryOperationBgpEmpty=a},function(e,t,r){"use strict";Object.defineProperty(t,"__esModule",{value:!0});const n=r(151);class i extends n.ActorQueryOperationTyped{constructor(e,t){super(e,t)}}t.ActorQueryOperationTypedMediated=i},function(e,t,r){"use strict";Object.defineProperty(t,"__esModule",{value:!0});const n=r(3),i=r(4),a=r(5);class o extends n.ActorQueryOperationTyped{constructor(e){super(e,"values")}async testOperation(e,t){return!0}async runOperation(e,t){return{type:"bindings",bindingsStream:new i.ArrayIterator(e.bindings.map(n.Bindings)),metadata:()=>Promise.resolve({totalItems:e.bindings.length}),variables:e.variables.map(a.termToString)}}}t.ActorQueryOperationValues=o},function(e,t,r){"use strict";Object.defineProperty(t,"__esModule",{value:!0});const n=r(46),i=r(334),a=r(352);class o extends n.ActorRdfParseFixedMediaTypes{constructor(e){super(e)}async testHandle(e,t,r){if(!(t in this.mediaTypes)&&!t.endsWith("+json"))throw new Error("Unrecognized media type: "+t);return await this.testHandleChecked(e)}async runHandle(e,t,r){return{quads:i.JsonLdParser.fromHttpResponse(e.baseIRI,t,e.headers,{documentLoader:new a.DocumentLoaderMediated(this.mediatorHttp,r)}).import(e.input)}}}t.ActorRdfParseJsonLd=o},function(e,t,r){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),function(e){for(var r in e)t.hasOwnProperty(r)||(t[r]=e[r])}(r(154))},function(e,t,r){"use strict";Object.defineProperty(t,"__esModule",{value:!0});const n=r(27);t.EntryHandlerArrayValue=class{isPropertyHandler(){return!1}isStackProcessor(){return!0}async validate(e,t,r,n,i){return this.test(e,t,null,r,n)}async test(e,t,r,n,i){return"number"==typeof n[i]}async handle(e,t,r,i,a,o){let s=await t.unaliasKeywordParent(i,o);if("@list"===s){let r=null,n=0;for(let e=o-2;e>0;e--){const t=i[e];if("string"==typeof t||"number"==typeof t){n=e,r=t;break}}if(null!==r){const s=await t.valueToTerm(await e.getContext(i),r,a,o,i);for(const r of s)await this.handleListElement(e,t,r,o,i.slice(0,n),n);0===s.length&&await this.handleListElement(e,t,null,o,i.slice(0,n),n)}}else if("@set"===s)await e.newOnValueJob(i.slice(0,-2),a,o-2,!1);else if(void 0!==s&&"@type"!==s){for(let e=o-1;e>0;e--)if("number"!=typeof i[e]){s=await t.unaliasKeyword(i[e],i,e);break}const r=await e.getContext(i.slice(0,-1));if("@list"in n.Util.getContextValueContainer(r,s)){const r=await t.valueToTerm(await e.getContext(i),s,a,o,i);for(const n of r)await this.handleListElement(e,t,n,o,i.slice(0,-1),o-1);0===r.length&&await this.handleListElement(e,t,null,o,i.slice(0,-1),o-1)}else e.shiftStack(o,1),await e.newOnValueJob(i.slice(0,-1),a,o-1,!1),e.contextTree.removeContext(i.slice(0,-1))}}async handleListElement(e,t,r,n,i,a){let o=e.listPointerStack[n];if(r){if(o&&o.value){const r=t.dataFactory.blankNode();e.emitQuad(n,t.dataFactory.quad(o.value,t.rdfRest,r,t.getDefaultGraph())),o.value=r}else{const e=t.dataFactory.blankNode();o={value:e,listRootDepth:a,listId:e}}e.emitQuad(n,t.dataFactory.quad(o.value,t.rdfFirst,r,t.getDefaultGraph()))}else o||(o={listRootDepth:a,listId:t.rdfNil});e.listPointerStack[n]=o}}},function(e,t,r){"use strict";Object.defineProperty(t,"__esModule",{value:!0});t.ContainerHandlerIdentifier=class{canCombineWithGraph(){return!0}async handle(e,t,r,n,i,a){let o;if(t.emittedStack[a+1]&&t.idStack[a+1])o=t.idStack[a+1][0];else{const e=null!==await r.getContainerKey(n[a],n,a)?await r.resourceToTerm(await t.getContext(n),n[a]):r.dataFactory.blankNode();if(!e)return void(t.emittedStack[a]=!1);o=e,t.idStack[a+1]=[o]}let s=t.idStack[a];s||(s=t.idStack[a]=[]),s.some(e=>e.equals(o))||s.push(o),await t.handlePendingContainerFlushBuffers()||(t.emittedStack[a]=!1)}}},function(e,t,r){"use strict";Object.defineProperty(t,"__esModule",{value:!0});const n=r(8),i=r(55),a=r(27);t.ContainerHandlerIndex=class{canCombineWithGraph(){return!0}async handle(e,t,r,o,s,u){if(!Array.isArray(s)){const c="@graph"in e,l=await t.getContext(o),h=o[u-1],p=a.Util.getContextValueIndex(l,h);if(p){if(n.Util.isPotentialKeyword(p))throw new n.ErrorCoded("Keywords can not be used as @index value, got: "+p,n.ERROR_CODES.INVALID_TERM_DEFINITION);if("string"!=typeof p)throw new n.ErrorCoded("@index values must be strings, got: "+p,n.ERROR_CODES.INVALID_TERM_DEFINITION);if("object"!=typeof s){if("@id"!==a.Util.getContextValueType(l,h))throw new n.ErrorCoded("Property-based index containers require nodes as values or strings with @type: @id, but got: "+s,n.ERROR_CODES.INVALID_VALUE_OBJECT);const e=r.resourceToTerm(l,s);e&&(t.idStack[u+1]=[e])}const e=r.createVocabOrBaseTerm(l,p);if(e){const n=await r.valueToTerm(l,p,await r.getContainerKey(o[u],o,u),u,o);if(c){const i=await r.getGraphContainerValue(o,u+1);for(const a of n)t.emitQuad(u,r.dataFactory.quad(i,e,a,r.getDefaultGraph()))}else for(const a of n)await i.EntryHandlerPredicate.handlePredicateObject(t,r,o,u+1,e,a,!1)}}const d=c?2:1;await t.newOnValueJob(o.slice(0,o.length-d),s,u-d,!0),await t.handlePendingContainerFlushBuffers()}t.emittedStack[u]=!1}}},function(e,t,r){"use strict";Object.defineProperty(t,"__esModule",{value:!0});const n=r(8);t.ContainerHandlerLanguage=class{canCombineWithGraph(){return!1}async handle(e,t,r,i,a,o){const s=await r.getContainerKey(i[o],i,o);if(Array.isArray(a))a=a.map(e=>({"@value":e,"@language":s}));else{if("string"!=typeof a)throw new n.ErrorCoded(`Got invalid language map value, got '${JSON.stringify(a)}', but expected string`,n.ERROR_CODES.INVALID_LANGUAGE_MAP_VALUE);a={"@value":a,"@language":s}}await t.newOnValueJob(i.slice(0,i.length-1),a,o-1,!0),t.emittedStack[o]=!1}}},function(e,t,r){"use strict";Object.defineProperty(t,"__esModule",{value:!0});const n=r(55),i=r(27);t.ContainerHandlerType=class{canCombineWithGraph(){return!1}async handle(e,t,r,a,o,s){if(!Array.isArray(o)){if("string"==typeof o){const e=await t.getContext(a),n="@vocab"===i.Util.getContextValueType(e,a[s-1])?await r.createVocabOrBaseTerm(e,o):await r.resourceToTerm(e,o);if(n){const e={"@id":"NamedNode"===n.termType?n.value:o};await t.newOnValueJob(a.slice(0,a.length-1),e,s-1,!0),t.idStack[s+1]=[n]}}else{const e=!!t.idStack[s+1];e||delete t.idStack[s],await t.newOnValueJob(a.slice(0,a.length-1),o,s-1,!0),e||(t.idStack[s+1]=t.idStack[s])}const e=await r.getContainerKey(a[s],a,s),u=null!==e?r.createVocabOrBaseTerm(await t.getContext(a),e):null;u&&await n.EntryHandlerPredicate.handlePredicateObject(t,r,a,s+1,r.rdfType,u,!1),await t.handlePendingContainerFlushBuffers()}t.emittedStack[s]=!1}}},function(e,t,r){"use strict";Object.defineProperty(t,"__esModule",{value:!0});t.EntryHandlerInvalidFallback=class{isPropertyHandler(){return!1}isStackProcessor(){return!0}async validate(e,t,r,n,i){return!1}async test(e,t,r,n,i){return!0}async handle(e,t,r,n,i,a){e.emittedStack[a]=!1}}},function(e,t,r){"use strict";Object.defineProperty(t,"__esModule",{value:!0});const n=r(8),i=r(28);class a extends i.EntryHandlerKeyword{constructor(){super("@context")}isStackProcessor(){return!1}async handle(e,t,r,i,a,o){e.streamingProfile&&(e.processingStack[o]||e.processingType[o]||void 0!==e.idStack[o])&&e.emitError(new n.ErrorCoded("Found an out-of-order context, while streaming is enabled.(disable `streamingProfile`)",n.ERROR_CODES.INVALID_STREAMING_KEY_ORDER));const s=e.getContext(i),u=e.parseContext(a,(await s).getContextRaw());e.contextTree.setContext(i.slice(0,-1),u),e.emitContext(a),await e.validateContext(await u)}}t.EntryHandlerKeywordContext=a},function(e,t,r){"use strict";Object.defineProperty(t,"__esModule",{value:!0});const n=r(28);class i extends n.EntryHandlerKeyword{constructor(){super("@graph")}async handle(e,t,r,n,i,a){e.graphStack[a+1]=!0}}t.EntryHandlerKeywordGraph=i},function(e,t,r){"use strict";Object.defineProperty(t,"__esModule",{value:!0});const n=r(8),i=r(28);class a extends i.EntryHandlerKeyword{constructor(){super("@id")}isStackProcessor(){return!1}async handle(e,t,r,i,a,o){"string"!=typeof a&&e.emitError(new n.ErrorCoded(`Found illegal @id '${a}'`,n.ERROR_CODES.INVALID_ID_VALUE));const s=await t.getPropertiesDepth(i,o);void 0!==e.idStack[s]&&(e.idStack[s][0].listHead?e.emitError(new n.ErrorCoded(`Found illegal neighbouring entries next to @list for key: '${i[o-1]}'`,n.ERROR_CODES.INVALID_SET_OR_LIST_OBJECT)):e.emitError(new n.ErrorCoded(`Found duplicate @ids '${e.idStack[s][0].value}' and '${a}'`,n.ERROR_CODES.COLLIDING_KEYWORDS))),e.idStack[s]=t.nullableTermToArray(await t.resourceToTerm(await e.getContext(i),a))}}t.EntryHandlerKeywordId=a},function(e,t,r){"use strict";Object.defineProperty(t,"__esModule",{value:!0});const n=r(8),i=r(28);class a extends i.EntryHandlerKeyword{constructor(){super("@included")}async handle(e,t,r,i,a,o){"object"!=typeof a&&e.emitError(new n.ErrorCoded(`Found illegal @included '${a}'`,n.ERROR_CODES.INVALID_INCLUDED_VALUE));const s=await t.unaliasKeywords(a,i,o,await e.getContext(i));"@value"in s&&e.emitError(new n.ErrorCoded(`Found an illegal @included @value node '${JSON.stringify(a)}'`,n.ERROR_CODES.INVALID_INCLUDED_VALUE)),"@list"in s&&e.emitError(new n.ErrorCoded(`Found an illegal @included @list node '${JSON.stringify(a)}'`,n.ERROR_CODES.INVALID_INCLUDED_VALUE)),e.emittedStack[o]=!1}}t.EntryHandlerKeywordIncluded=a},function(e,t,r){"use strict";Object.defineProperty(t,"__esModule",{value:!0});const n=r(8),i=r(28);class a extends i.EntryHandlerKeyword{constructor(){super("@nest")}async handle(e,t,r,i,a,o){"object"!=typeof a&&e.emitError(new n.ErrorCoded(`Found invalid @nest entry for '${r}': '${a}'`,n.ERROR_CODES.INVALID_NEST_VALUE)),"@value"in await t.unaliasKeywords(a,i,o,await e.getContext(i))&&e.emitError(new n.ErrorCoded(`Found an invalid @value node for '${r}'`,n.ERROR_CODES.INVALID_NEST_VALUE)),e.emittedStack[o]=!1}}t.EntryHandlerKeywordNest=a},function(e,t,r){"use strict";Object.defineProperty(t,"__esModule",{value:!0});const n=r(8),i=r(27),a=r(55),o=r(28);class s extends o.EntryHandlerKeyword{constructor(){super("@type")}isStackProcessor(){return!1}async handle(e,t,r,o,s,u){const c=o[u],l=await e.getContext(o),h=t.rdfType,p=i.Util.isPropertyReverse(l,c,await t.unaliasKeywordParent(o,u)),d=Array.isArray(s)?s:[s];for(const r of d){"string"!=typeof r&&e.emitError(new n.ErrorCoded(`Found illegal @type '${r}'`,n.ERROR_CODES.INVALID_TYPE_VALUE));const i=t.createVocabOrBaseTerm(l,r);i&&await a.EntryHandlerPredicate.handlePredicateObject(e,t,o,u,h,i,p)}let f=Promise.resolve(l),y=!1;for(const t of d.sort()){const r=i.Util.getContextValue(l,"@context",t,null);r&&(y=!0,f=f.then(t=>e.parseContext(r,t.getContextRaw())))}!e.streamingProfile||!y&&e.streamingProfileAllowOutOfOrderPlainType||!e.processingStack[u]&&!e.idStack[u]||e.emitError(new n.ErrorCoded("Found an out-of-order type-scoped context, while streaming is enabled.(disable `streamingProfile`)",n.ERROR_CODES.INVALID_STREAMING_KEY_ORDER)),y&&(f=f.then(e=>("@propagate"in e.getContextRaw()||(e.getContextRaw()["@propagate"]=!1),!1===e.getContextRaw()["@propagate"]&&(e.getContextRaw()["@__propagateFallback"]=l.getContextRaw()),e)),e.contextTree.setContext(o.slice(0,o.length-1),f)),e.processingType[u]=!0}}t.EntryHandlerKeywordType=s},function(e,t,r){"use strict";Object.defineProperty(t,"__esModule",{value:!0});const n=r(8);class i{isPropertyHandler(){return!1}isStackProcessor(){return!0}async validate(e,t,r,i,a){const o=await t.unaliasKeyword(r[i],r,i);return!!n.Util.isPotentialKeyword(o)&&!(!a&&"@list"===o)}async test(e,t,r,i,a){return n.Util.isPotentialKeyword(r)}async handle(e,t,r,a,o,s){const u=i.VALID_KEYWORDS_TYPES[r];void 0!==u?u&&typeof o!==u.type&&e.emitError(new n.ErrorCoded(`Invalid value type for '${r}' with value '${o}'`,u.errorCode)):e.strictValues&&e.emitError(new Error(`Unknown keyword '${r}' with value '${o}'`)),e.emittedStack[s]=!1}}i.VALID_KEYWORDS_TYPES={"@index":{type:"string",errorCode:n.ERROR_CODES.INVALID_INDEX_VALUE},"@list":null,"@reverse":{type:"object",errorCode:n.ERROR_CODES.INVALID_REVERSE_VALUE},"@set":null,"@value":null},t.EntryHandlerKeywordUnknownFallback=i},function(e,t,r){"use strict";Object.defineProperty(t,"__esModule",{value:!0});const n=r(28);class i extends n.EntryHandlerKeyword{constructor(){super("@value")}async test(e,t,r,n,i){return"@value"===await t.unaliasKeyword(n[i],n.slice(0,n.length-1),i-1,!0)}async handle(e,t,r,n,i,a){e.literalStack[a]=!0,delete e.unidentifiedValuesBuffer[a],delete e.unidentifiedGraphsBuffer[a],e.emittedStack[a]=!1}}t.EntryHandlerKeywordValue=i},function(e,t,r){"use strict";Object.defineProperty(t,"__esModule",{value:!0});const n=r(8),i=r(49),a=r(350),o=r(154);class s{constructor(e){this.contextParser=new n.ContextParser({documentLoader:e.documentLoader}),this.streamingProfile=!!e.streamingProfile,this.baseIRI=e.baseIRI,this.produceGeneralizedRdf=!!e.produceGeneralizedRdf,this.allowSubjectList=!!e.allowSubjectList,this.processingMode=e.processingMode||o.JsonLdParser.DEFAULT_PROCESSING_MODE,this.strictValues=!!e.strictValues,this.validateValueIndexes=!!e.validateValueIndexes,this.defaultGraph=e.defaultGraph,this.rdfDirection=e.rdfDirection,this.normalizeLanguageTags=e.normalizeLanguageTags,this.streamingProfileAllowOutOfOrderPlainType=e.streamingProfileAllowOutOfOrderPlainType,this.topLevelProperties=!1,this.activeProcessingMode=parseFloat(this.processingMode),this.processingStack=[],this.processingType=[],this.emittedStack=[],this.idStack=[],this.graphStack=[],this.graphContainerTermStack=[],this.listPointerStack=[],this.contextTree=new a.ContextTree,this.literalStack=[],this.validationStack=[],this.unaliasedKeywordCacheStack=[],this.jsonLiteralStack=[],this.unidentifiedValuesBuffer=[],this.unidentifiedGraphsBuffer=[],this.pendingContainerFlushBuffers=[],this.parser=e.parser,e.context?(this.rootContext=this.parseContext(e.context),this.rootContext.then(e=>this.validateContext(e))):this.rootContext=Promise.resolve(new n.JsonLdContextNormalized(this.baseIRI?{"@base":this.baseIRI,"@__baseDocument":!0}:{}))}async parseContext(e,t,r){return this.contextParser.parse(e,{baseIRI:this.baseIRI,ignoreProtection:r,normalizeLanguageTags:this.normalizeLanguageTags,parentContext:t,processingMode:this.activeProcessingMode})}validateContext(e){const t=e.getContextRaw()["@version"];if(t){if(this.activeProcessingMode&&t>this.activeProcessingMode)throw new i.ErrorCoded(`Unsupported JSON-LD version '${t}' under active processing mode ${this.activeProcessingMode}.`,i.ERROR_CODES.PROCESSING_MODE_CONFLICT);if(this.activeProcessingMode&&t0&&!1===i.context.getContextRaw()["@propagate"]&&i.depth!==t&&!r);return 0===i.depth&&!1===i.context.getContextRaw()["@propagate"]&&i.depth!==t&&(i.context=new n.JsonLdContextNormalized({})),i}async newOnValueJob(e,t,r,n){await this.parser.newOnValueJob(e,t,r,n)}async handlePendingContainerFlushBuffers(){if(this.pendingContainerFlushBuffers.length>0){for(const e of this.pendingContainerFlushBuffers)await this.parser.flushBuffer(e.depth,e.keys),this.parser.flushStacks(e.depth);return this.pendingContainerFlushBuffers.splice(0,this.pendingContainerFlushBuffers.length),!0}return!1}emitQuad(e,t){1===e&&(this.topLevelProperties=!0),this.parser.push(t)}emitError(e){this.parser.emit("error",e)}emitContext(e){this.parser.emit("context",e)}getUnidentifiedValueBufferSafe(e){let t=this.unidentifiedValuesBuffer[e];return t||(t=[],this.unidentifiedValuesBuffer[e]=t),t}getUnidentifiedGraphBufferSafe(e){let t=this.unidentifiedGraphsBuffer[e];return t||(t=[],this.unidentifiedGraphsBuffer[e]=t),t}getExpandOptions(){return s.EXPAND_OPTIONS[this.activeProcessingMode]}shiftStack(e,t){const r=this.idStack[e+t];if(r&&(this.idStack[e]=r,this.emittedStack[e]=!0,delete this.idStack[e+t]),this.pendingContainerFlushBuffers.length)for(const r of this.pendingContainerFlushBuffers)r.depth>=e+t&&(r.depth-=t,r.keys.splice(e,t));this.unidentifiedValuesBuffer[e+t]&&(this.unidentifiedValuesBuffer[e]=this.unidentifiedValuesBuffer[e+t],delete this.unidentifiedValuesBuffer[e+t])}}s.EXPAND_OPTIONS={1:{allowPrefixForcing:!1,allowPrefixNonGenDelims:!1,allowVocabRelativeToBase:!1},1.1:{allowPrefixForcing:!0,allowPrefixNonGenDelims:!1,allowVocabRelativeToBase:!0}},t.ParsingContext=s},function(e,t,r){"use strict";Object.defineProperty(t,"__esModule",{value:!0});class n{constructor(){this.subTrees={}}getContext(e){if(e.length>0){const[t,...r]=e,n=this.subTrees[t];if(n){const e=n.getContext(r);if(e)return e.then(({context:e,depth:t})=>({context:e,depth:t+1}))}}return this.context?this.context.then(e=>({context:e,depth:0})):null}setContext(e,t){if(0===e.length)this.context=t;else{const[r,...i]=e;let a=this.subTrees[r];a||(a=this.subTrees[r]=new n),a.setContext(i,t)}}removeContext(e){this.setContext(e,null)}}t.ContextTree=n},function(e,t,r){"use strict";(function(t){var r=/^utf-?8|ascii|utf-?16-?le|ucs-?2|base-?64|latin-?1$/i,n=/^[\s\uFEFF\xA0]+|[\s\uFEFF\xA0]+$/g,i=/\s|\uFEFF|\xA0/,a=/\r?\n[\x20\x09]+/g,o=/[;,"]/,s=/[;,"]|\s/,u=1,c=2,l=4;function h(e){return e.replace(n,"")}function p(e){return i.test(e)}function d(e,t){for(;p(e[t]);)t++;return t}function f(e){return s.test(e)}class y{constructor(e){this.refs=[],e&&this.parse(e)}rel(e){for(var t=[],r=0;r",t)))throw new Error("Expected end of URI delimiter at offset "+t);i={uri:e.slice(t+1,m)},this.refs.push(i),t=m,r=c,t++}else if(r===c){if(p(e[t])){t++;continue}if(";"===e[t])r=l,t++;else{if(","!==e[t])throw new Error('Unexpected character "'+e[t]+'" at offset '+t);r=u,t++}}else{if(r!==l)throw new Error('Unknown parser state "'+r+'"');if(";"===e[t]||p(e[t])){t++;continue}if(-1===(m=e.indexOf("=",t)))throw new Error("Expected attribute delimiter at offset "+t);var s=h(e.slice(t,m)).toLowerCase(),f="";if('"'===e[t=d(e,t=m+1)])for(t++;t"),e.push(t);return e.join(", ")}}y.isCompatibleEncoding=function(e){return r.test(e)},y.parse=function(e,t){return(new y).parse(e,t)},y.isSingleOccurenceAttr=function(e){return"rel"===e||"type"===e||"media"===e||"title"===e||"title*"===e},y.isTokenAttr=function(e){return"rel"===e||"type"===e||"anchor"===e},y.escapeQuotes=function(e){return e.replace(/"/g,'\\"')},y.parseExtendedValue=function(e){var t=/([^']+)?(?:'([^']+)')?(.+)/.exec(e);return{language:t[2].toLowerCase(),encoding:y.isCompatibleEncoding(t[1])?null:t[1].toLowerCase(),value:y.isCompatibleEncoding(t[1])?decodeURIComponent(t[3]):t[3]}},y.formatExtendedAttribute=function(e,r){var n=(r.encoding||"utf-8").toUpperCase();return e+"="+n+"'"+(r.language||"en")+"'"+(t.isBuffer(r.value)&&y.isCompatibleEncoding(n)?r.value.toString(n):t.isBuffer(r.value)?r.value.toString("hex").replace(/[0-9a-f]{2}/gi,"%$1"):encodeURIComponent(r.value))},y.formatAttribute=function(e,t){return Array.isArray(t)?t.map(t=>y.formatAttribute(e,t)).join("; "):"*"===e[e.length-1]||"string"!=typeof t?y.formatExtendedAttribute(e,t):(y.isTokenAttr(e)?t=f(t)?'"'+y.escapeQuotes(t)+'"':y.escapeQuotes(t):f(t)&&(t='"'+(t=(t=encodeURIComponent(t)).replace(/%20/g," ").replace(/%2C/g,",").replace(/%3B/g,";"))+'"'),e+"="+t)},e.exports=y}).call(this,r(15).Buffer)},function(e,t,r){"use strict";Object.defineProperty(t,"__esModule",{value:!0});const n=r(26),i=r(136);t.DocumentLoaderMediated=class{constructor(e,t){this.mediatorHttp=e,this.context=t}async load(e){const t=await this.mediatorHttp.mediate({input:e,init:{headers:new Headers({accept:"application/ld+json"})},context:this.context});if(t.ok)return JSON.parse(await i(n.ActorHttp.toNodeReadable(t.body)));throw new Error(`No valid context was found at ${e}: ${t.statusText}`)}}},function(e,t,r){"use strict";Object.defineProperty(t,"__esModule",{value:!0});const n=r(73),i=r(354);class a extends n.ActorRdfResolveHypermedia{constructor(e){super(e,"sparql")}async testMetadata(e){if(!(e.forceSourceType||e.metadata.sparqlService||this.checkUrlSuffix&&e.url.endsWith("/sparql")))throw new Error(`Actor ${this.name} could not detect a SPARQL service description or URL ending on /sparql.`);return{filterFactor:1}}async run(e){this.logInfo(e.context,"Identified as sparql source: "+e.url);return{source:new i.RdfSourceSparql(e.metadata.sparqlService||e.url,e.context,this.mediatorHttp)}}}t.ActorRdfResolveHypermediaSparql=a},function(e,t,r){"use strict";(function(e){Object.defineProperty(t,"__esModule",{value:!0});const n=r(26),i=r(3),a=r(1),o=r(4),s=r(21),u=r(22),c=r(7),l=r(71);class h{constructor(e,t,r){this.url=e,this.context=t,this.mediatorHttp=r}static replaceBlankNodes(e){const t=u.getVariables(u.getTerms(e)).map(e=>e.value),r={};let n=!1;const i=u.mapTerms(e,e=>{if("BlankNode"===e.termType){let i=e.value;if(r[i])i=r[i];else{if(t.indexOf(i)>=0){let e=0;for(;t.indexOf(i+e)>=0;)++e;i+=e}r[e.value]=i,t.push(i)}return n=!0,a.variable(i)}return e});return n?i:e}static patternToBgp(e){return h.FACTORY.createBgp([h.FACTORY.createPattern(e.subject,e.predicate,e.object,e.graph)])}static patternToSelectQuery(e){const t=u.getVariables(u.getTerms(e));return c.toSparql(h.FACTORY.createProject(h.patternToBgp(e),t))}static patternToCountQuery(e){return c.toSparql(h.FACTORY.createProject(h.FACTORY.createExtend(h.FACTORY.createGroup(h.patternToBgp(e),[],[h.FACTORY.createBoundAggregate(a.variable("var0"),"count",h.FACTORY.createWildcardExpression(),!1)]),a.variable("count"),h.FACTORY.createTermExpression(a.variable("var0"))),[a.variable("count")]))}static materializeOptionalTerm(e,t){return e||a.variable(t)}async fetchBindingsStream(t,r,i){const a=t+"?query="+encodeURIComponent(r),o=new Headers;o.append("Accept","application/sparql-results+json");const s={context:i,input:a,init:{headers:o}},u=await this.mediatorHttp.mediate(s),c=n.ActorHttp.toNodeReadable(u.body);return u.ok||e(()=>c.emit("error",new Error(`Invalid SPARQL endpoint (${t}) response: ${u.statusText} (${u.status})`))),c}async queryBindings(e,t,r){const n=new o.BufferedIterator({autoStart:!1,maxBufferSize:1/0});let a=!1;const s=n._read;return n._read=(o,u)=>{a?s(o,u):(a=!0,this.fetchBindingsStream(e,t,r).then(e=>{const t=new l.SparqlJsonParser({prefixVariableQuestionMark:!0}).parseJsonResultsStream(e);e.on("error",e=>t.emit("error",e)),t.on("error",e=>n.emit("error",e)),t.on("data",e=>n._push(i.Bindings(e))),t.on("end",()=>{n.close()}),s(o,u)}))},n}match(e,t,r,n){if(e instanceof RegExp||t instanceof RegExp||r instanceof RegExp||n instanceof RegExp)throw new Error("RdfSourceSparql does not support matching by regular expressions.");const i=h.replaceBlankNodes(h.FACTORY.createPattern(h.materializeOptionalTerm(e,"s"),h.materializeOptionalTerm(t,"p"),h.materializeOptionalTerm(r,"o"),h.materializeOptionalTerm(n,"g"))),a=h.patternToCountQuery(i),o=h.patternToSelectQuery(i);this.queryBindings(this.url,a,this.context).then(e=>new Promise(t=>{e.on("data",e=>{const r=e.get("?count");if(r){const e=parseInt(r.value,10);return isNaN(e)?t({totalItems:1/0}):t({totalItems:e})}return t({totalItems:1/0})}),e.on("error",()=>t({totalItems:1/0})),e.on("end",()=>t({totalItems:1/0}))})).then(e=>c.emit("metadata",e));const c=new s.PromiseProxyIterator(async()=>(await this.queryBindings(this.url,o,this.context)).map(e=>u.mapTerms(i,t=>{if("Variable"===t.termType){const r=e.get("?"+t.value);return r||c.emit("error",new Error(`The endpoint ${this.url} failed to provide a binding for ${t.value}.`)),r}return t})));return c}}t.RdfSourceSparql=h,h.FACTORY=new c.Factory}).call(this,r(14).setImmediate)},function(e,t,r){"use strict";Object.defineProperty(t,"__esModule",{value:!0});const n=r(4);class i extends n.TransformIterator{constructor(e,t){super(t||{autoStart:!1}),this.sourceGetter=e}async loadSource(){return this.source||(this.source=await this.sourceGetter()),this.source}_read(e,t){this.source?super._read(e,t):this.loadSource().then(r=>{super._read(e,t)}).catch(e=>this.emit("error",e))}}t.PromiseProxyIterator=i},function(e,t,r){"use strict";Object.defineProperty(t,"__esModule",{value:!0});const n=r(1);function i(e,t,r,n,i){return(!t||"Variable"===t.termType||e.subject.equals(t))&&(!r||"Variable"===r.termType||e.predicate.equals(r))&&(!n||"Variable"===n.termType||e.object.equals(n))&&(!i||"Variable"===i.termType||e.graph.equals(i))}t.QUAD_TERM_NAMES=["subject","predicate","object","graph"],t.TRIPLE_TERM_NAMES=["subject","predicate","object"],t.getTerms=function(e,t){return t&&"DefaultGraph"===e.graph.termType?[e.subject,e.predicate,e.object]:[e.subject,e.predicate,e.object,e.graph]},t.getNamedTerms=function(e){return[{key:"subject",value:e.subject},{key:"predicate",value:e.predicate},{key:"object",value:e.object},{key:"graph",value:e.graph}]},t.collectNamedTerms=function(e,t,r){const i={};return e.forEach(e=>i[e.key]=e.value),t&&(i.subject=i.subject||t("subject"),i.predicate=i.predicate||t("predicate"),i.object=i.object||t("object"),i.graph=i.graph||t("graph")),(r||n).quad(i.subject,i.predicate,i.object,i.graph)},t.forEachTerms=function(e,t){t(e.subject,"subject"),t(e.predicate,"predicate"),t(e.object,"object"),t(e.graph,"graph")},t.filterTerms=function(e,t){const r=[];return t(e.subject,"subject")&&r.push(e.subject),t(e.predicate,"predicate")&&r.push(e.predicate),t(e.object,"object")&&r.push(e.object),t(e.graph,"graph")&&r.push(e.graph),r},t.filterQuadTermNames=function(e,t){const r=[];return t(e.subject,"subject")&&r.push("subject"),t(e.predicate,"predicate")&&r.push("predicate"),t(e.object,"object")&&r.push("object"),t(e.graph,"graph")&&r.push("graph"),r},t.mapTerms=function(e,t,r){return(r||n).quad(t(e.subject,"subject"),t(e.predicate,"predicate"),t(e.object,"object"),t(e.graph,"graph"))},t.reduceTerms=function(e,t,r){let n=r;return n=t(n,e.subject,"subject"),n=t(n,e.predicate,"predicate"),n=t(n,e.object,"object"),t(n,e.graph,"graph")},t.everyTerms=function(e,t){return t(e.subject,"subject")&&t(e.predicate,"predicate")&&t(e.object,"object")&&t(e.graph,"graph")},t.someTerms=function(e,t){return t(e.subject,"subject")||t(e.predicate,"predicate")||t(e.object,"object")||t(e.graph,"graph")},t.matchPattern=i,t.matchPatternComplete=function(e,t){return i(e,t.subject,t.predicate,t.object,t.graph)}},function(e,t,r){"use strict";function n(e,t){return e.filter(e=>e.termType===t)}Object.defineProperty(t,"__esModule",{value:!0}),t.TERM_TYPES=["NamedNode","BlankNode","Literal","Variable","DefaultGraph"],t.uniqTerms=function(e){return r(358)(e,(e,t)=>e.equals(t))},t.getTermsOfType=n,t.getNamedNodes=function(e){return n(e,"NamedNode")},t.getBlankNodes=function(e){return n(e,"BlankNode")},t.getLiterals=function(e){return n(e,"Literal")},t.getVariables=function(e){return n(e,"Variable")},t.getDefaultGraphs=function(e){return n(e,"DefaultGraph")}},function(e,t,r){(function(t){var r=/^\[object .+?Constructor\]$/,n="object"==typeof t&&t&&t.Object===Object&&t,i="object"==typeof self&&self&&self.Object===Object&&self,a=n||i||Function("return this")();function o(e,t){return!!(e?e.length:0)&&function(e,t,r){if(t!=t)return function(e,t,r,n){var i=e.length,a=r+(n?1:-1);for(;n?a--:++a-1}function s(e,t,r){for(var n=-1,i=e?e.length:0;++n-1},O.prototype.set=function(e,t){var r=this.__data__,n=I(r,e);return n<0?r.push([e,t]):r[n][1]=t,this},R.prototype.clear=function(){this.__data__={hash:new x,map:new(E||O),string:new x}},R.prototype.delete=function(e){return C(this,e).delete(e)},R.prototype.get=function(e){return C(this,e).get(e)},R.prototype.has=function(e){return C(this,e).has(e)},R.prototype.set=function(e,t){return C(this,e).set(e,t),this},A.prototype.add=A.prototype.push=function(e){return this.__data__.set(e,"__lodash_hash_undefined__"),this},A.prototype.has=function(e){return this.__data__.has(e)};var N=S&&1/l(new S([,-0]))[1]==1/0?function(e){return new S(e)}:function(){};function C(e,t){var r,n,i=e.__data__;return("string"==(n=typeof(r=t))||"number"==n||"symbol"==n||"boolean"==n?"__proto__"!==r:null===r)?i["string"==typeof t?"string":"hash"]:i.map}function j(e,t){var r=function(e,t){return null==e?void 0:e[t]}(e,t);return P(r)?r:void 0}function D(e){var t=typeof e;return!!e&&("object"==t||"function"==t)}e.exports=function(e,t){return e&&e.length?function(e,t,r){var n=-1,i=o,a=e.length,u=!0,h=[],p=h;if(r)u=!1,i=s;else if(a>=200){var d=t?null:N(e);if(d)return l(d);u=!1,i=c,p=new A}else p=t?[]:h;e:for(;++nthis.mediatorHttp.mediate({input:e,init:t,context:this.lastContext}),prefixVariableQuestionMark:!0})}async test(e){if(!e.operation)throw new Error("Missing field 'operation' in a query operation action.");const t=await a.DataSourceUtils.getSingleSource(e.context);if(t&&"sparql"===i.getDataSourceType(t))return{httpRequests:1};throw new Error(this.name+" requires a single source with a 'sparql' endpoint to be present in the context.")}async run(e){const t=i.getDataSourceValue(await a.DataSourceUtils.getSingleSource(e.context));let r,n,o;this.lastContext=e.context;try{r=c.toSparql(e.operation),n=this.endpointFetcher.getQueryType(r)}catch(e){}switch(n&&"UNKNOWN"!==n||(o=c.Util.inScopeVariables(e.operation),r=c.toSparql(l.FACTORY.createProject(e.operation,o)),n="SELECT"),n){case"SELECT":return o||(o=c.Util.inScopeVariables(e.operation)),this.executeQuery(t,r,!1,o);case"CONSTRUCT":return this.executeQuery(t,r,!0);case"ASK":return{type:"boolean",booleanResult:this.endpointFetcher.fetchAsk(t,r)}}}executeQuery(e,t,r,i){const a=new o.BufferedIterator({autoStart:!1,maxBufferSize:1/0});(r?this.endpointFetcher.fetchTriples(e,t):this.endpointFetcher.fetchBindings(e,t)).then(e=>{let t=0;e.on("error",e=>a.emit("error",e)),e.on("data",e=>{t++,a._push(r?e:n.Bindings(e))}),e.on("end",()=>{a.emit("metadata",{totalItems:t}),a.close()})}).catch(e=>a.emit("error",e));const s=l.cachifyMetadata(()=>new Promise((e,t)=>{a._fillBuffer(),a.on("error",t),a.on("end",()=>t(new Error("No metadata was found"))),a.on("metadata",e)}));return r?{type:"quads",quadStream:a,metadata:s}:{type:"bindings",bindingsStream:a,metadata:s,variables:i.map(u.termToString)}}}t.ActorQueryOperationSparqlEndpoint=l,l.FACTORY=new c.Factory},function(e,t,r){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),function(e){for(var r in e)t.hasOwnProperty(r)||(t[r]=e[r])}(r(361))},function(e,t,r){"use strict";Object.defineProperty(t,"__esModule",{value:!0});const n=r(20);t.DataSourceUtils=class{static async getSingleSource(e){if(e&&e.has(n.KEY_CONTEXT_SOURCE))return e.get(n.KEY_CONTEXT_SOURCE);if(e&&e.has(n.KEY_CONTEXT_SOURCES)){const t=e.get(n.KEY_CONTEXT_SOURCES);if(t.isEnded()){const e=await r(362)(t.iterator());if(1===e.length)return e[0]}}return null}static async getSingleSourceType(e){const t=await this.getSingleSource(e);return t?n.getDataSourceType(t):null}static async singleSourceHasType(e,t){const r=await this.getSingleSourceType(e);return!!r&&r===t}}},function(e,t){e.exports=function(e){return new Promise((function(t,r){var n=[];e.on("data",(function(e){n.push(e)})),e.on("error",r),e.on("end",(function(){t(n)}))}))}},function(e,t,r){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),function(e){for(var r in e)t.hasOwnProperty(r)||(t[r]=e[r])}(r(364))},function(e,t,r){"use strict";(function(e){Object.defineProperty(t,"__esModule",{value:!0}),r(43);const n=r(38),i=r(71),a=r(365),o=r(41),s=r(376),u=r(91).toNodeReadable;class c{constructor(e){e=e||{},this.fetchCb=e.fetch||fetch,this.sparqlJsonParser=new i.SparqlJsonParser(e),this.sparqlXmlParser=new a.SparqlXmlParser(e),this.sparqlParsers={[c.CONTENTTYPE_SPARQL_JSON]:{parseBooleanStream:e=>this.sparqlJsonParser.parseJsonBooleanStream(e),parseResultsStream:e=>this.sparqlJsonParser.parseJsonResultsStream(e)},[c.CONTENTTYPE_SPARQL_XML]:{parseBooleanStream:e=>this.sparqlXmlParser.parseXmlBooleanStream(e),parseResultsStream:e=>this.sparqlXmlParser.parseXmlResultsStream(e)}}}getQueryType(e){const t=(new n.Parser).parse(e);return"query"===t.type?"DESCRIBE"===t.queryType?"CONSTRUCT":t.queryType:"UNKNOWN"}async fetchBindings(e,t){const[r,n]=await this.fetchRawStream(e,t,c.CONTENTTYPE_SPARQL),i=this.sparqlParsers[r];if(!i)throw new Error("Unknown SPARQL results content type: "+r);return i.parseResultsStream(n)}async fetchAsk(e,t){const[r,n]=await this.fetchRawStream(e,t,c.CONTENTTYPE_SPARQL),i=this.sparqlParsers[r];if(!i)throw new Error("Unknown SPARQL results content type: "+r);return i.parseBooleanStream(n)}async fetchTriples(e,t){return(await this.fetchRawStream(e,t,c.CONTENTTYPE_TURTLE))[1].pipe(new o.StreamParser({format:c.CONTENTTYPE_TURTLE}))}async fetchRawStream(t,r,n){const i=t+"?query="+encodeURIComponent(r),a=new Headers;a.append("Accept",n);const o=await this.fetchCb(i,{headers:a}),c=s(o.body)?o.body:u(o.body);let l=o.headers.get("Content-Type")||"";return l.indexOf(";")>0&&(l=l.substr(0,l.indexOf(";"))),o.ok||e(()=>c.emit("error",new Error("Invalid SPARQL endpoint ("+t+") response: "+o.statusText))),[l,c]}}c.CONTENTTYPE_SPARQL_JSON="application/sparql-results+json",c.CONTENTTYPE_SPARQL_XML="application/sparql-results+xml",c.CONTENTTYPE_SPARQL=`${c.CONTENTTYPE_SPARQL_JSON};q=1.0,${c.CONTENTTYPE_SPARQL_XML};q=0.7`,c.CONTENTTYPE_TURTLE="text/turtle",t.SparqlEndpointFetcher=c}).call(this,r(14).setImmediate)},function(e,t,r){"use strict";function n(e){for(var r in e)t.hasOwnProperty(r)||(t[r]=e[r])}Object.defineProperty(t,"__esModule",{value:!0}),n(r(366)),n(r(158))},function(e,t,r){"use strict";Object.defineProperty(t,"__esModule",{value:!0});const n=r(1),i=r(158),a=r(367);t.SparqlXmlParser=class{constructor(e){e=e||{},this.dataFactory=e.dataFactory||n,this.prefixVariableQuestionMark=!!e.prefixVariableQuestionMark}parseXmlResultsStream(e){const t=[];e.pipe(a({strict:!0,tag:"variable"})).on("data",e=>t.push(this.dataFactory.variable(e.attribs.name))).on("error",()=>{}).on("finish",()=>r.emit("variables",t));const r=e.pipe(a({strict:!0,tag:"result"})).on("error",e=>r.emit("error",e)).pipe(new i.SparqlXmlBindingsTransformer(this));return e.on("error",e=>r.emit("error",e)),r}parseXmlBindings(e){const t={};if(e.children){const r=Array.isArray(e.children.binding)?e.children.binding:[e.children.binding];for(const e of r)if(e.attribs&&e.children){const r=e.attribs.name;let n=null;if(e.children.bnode)n=this.dataFactory.blankNode(e.children.bnode.value);else if(e.children.literal){const t=e.children.literal.value||"",r=e.children.literal.attribs;n=r&&r["xml:lang"]?this.dataFactory.literal(t,r["xml:lang"]):r&&r.datatype?this.dataFactory.literal(t,this.dataFactory.namedNode(r.datatype)):this.dataFactory.literal(t)}else n=this.dataFactory.namedNode(e.children.uri.value);t[this.prefixVariableQuestionMark?"?"+r:r]=n}}return t}parseXmlBooleanStream(e){return new Promise((t,r)=>{e.on("error",r),e.pipe(a({strict:!0,tag:"boolean"})).on("error",r).on("data",e=>t("true"===e.value)).on("end",()=>r(new Error("No valid ASK response was found.")))})}}},function(e,t,r){e.exports=r(368)},function(e,t,r){var n=r(2).Transform,i=r(369),a=r(102),o=r(372),s=r(373)("sax-stream");function u(e){if(!(this instanceof u))return new u(e);n.call(this,{highWaterMark:e.highWaterMark||350,objectMode:!0}),this.records=[],this.error=null,this.parser=this.createSaxParser(e)}e.exports=u,i.inherits(u,n),u.prototype.createSaxParser=function(e){var t,r=this,n=a.parser(e.strict||!1,function(e){return["trim","normalize","lowercase","xmlns","position","strictEntities","noscript"].reduce((function(t,r){return r in e&&(t[r]=e[r]),t}),{position:!1})}(e)),i=function(t){return t===e.tag},u=function(e,t){r.records.push(t)};return Array.isArray(e.tag)&&(i=function(t){return-1!==e.tag.indexOf(t)},u=function(e,t){r.records.push({tag:e,record:t})}),n.onopentag=function(e){s('Open "%s"',e.name),t?t=o.addChild(t,e.name):i(e.name)&&(t={}),t&&Object.keys(e.attributes).length&&(t.attribs=e.attributes)},n.onclosetag=function(e){s('Closed "%s"',e),i(e)&&!t.parent?(s("Emitting record",t),u(e,t),t=void 0):t&&(t=t.parent)},n.ontext=function(e){t&&o.addText(t,e)},n.oncdata=function(e){t&&o.concatText(t,e)},n.onerror=function(e){r.error=e},n.onend=function(){s("onend - flushing remaining items"),r.pushAll(r.callback),r.callback=null},n},u.prototype.pushAll=function(e){if(this.error)return e(this.error),void(this.error=null);s("pushing %d",this.records.length),this.records.forEach(this.push.bind(this)),this.records.length=0,e()},u.prototype._transform=function(e,t,r){this.parser.write(e.toString()),this.pushAll(r)},u.prototype._flush=function(e){this.callback=e,this.parser.close()}},function(e,t,r){(function(e){var n=Object.getOwnPropertyDescriptors||function(e){for(var t=Object.keys(e),r={},n=0;n=a)return e;switch(e){case"%s":return String(n[r++]);case"%d":return Number(n[r++]);case"%j":try{return JSON.stringify(n[r++])}catch(e){return"[Circular]"}default:return e}})),u=n[r];r=3&&(n.depth=arguments[2]),arguments.length>=4&&(n.colors=arguments[3]),f(r)?n.showHidden=r:r&&t._extend(n,r),_(n.showHidden)&&(n.showHidden=!1),_(n.depth)&&(n.depth=2),_(n.colors)&&(n.colors=!1),_(n.customInspect)&&(n.customInspect=!0),n.colors&&(n.stylize=u),l(n,e,n.depth)}function u(e,t){var r=s.styles[t];return r?"["+s.colors[r][0]+"m"+e+"["+s.colors[r][1]+"m":e}function c(e,t){return e}function l(e,r,n){if(e.customInspect&&r&&S(r.inspect)&&r.inspect!==t.inspect&&(!r.constructor||r.constructor.prototype!==r)){var i=r.inspect(n,e);return g(i)||(i=l(e,i,n)),i}var a=function(e,t){if(_(t))return e.stylize("undefined","undefined");if(g(t)){var r="'"+JSON.stringify(t).replace(/^"|"$/g,"").replace(/'/g,"\\'").replace(/\\"/g,'"')+"'";return e.stylize(r,"string")}if(m(t))return e.stylize(""+t,"number");if(f(t))return e.stylize(""+t,"boolean");if(y(t))return e.stylize("null","null")}(e,r);if(a)return a;var o=Object.keys(r),s=function(e){var t={};return e.forEach((function(e,r){t[e]=!0})),t}(o);if(e.showHidden&&(o=Object.getOwnPropertyNames(r)),E(r)&&(o.indexOf("message")>=0||o.indexOf("description")>=0))return h(r);if(0===o.length){if(S(r)){var u=r.name?": "+r.name:"";return e.stylize("[Function"+u+"]","special")}if(b(r))return e.stylize(RegExp.prototype.toString.call(r),"regexp");if(w(r))return e.stylize(Date.prototype.toString.call(r),"date");if(E(r))return h(r)}var c,v="",T=!1,x=["{","}"];(d(r)&&(T=!0,x=["[","]"]),S(r))&&(v=" [Function"+(r.name?": "+r.name:"")+"]");return b(r)&&(v=" "+RegExp.prototype.toString.call(r)),w(r)&&(v=" "+Date.prototype.toUTCString.call(r)),E(r)&&(v=" "+h(r)),0!==o.length||T&&0!=r.length?n<0?b(r)?e.stylize(RegExp.prototype.toString.call(r),"regexp"):e.stylize("[Object]","special"):(e.seen.push(r),c=T?function(e,t,r,n,i){for(var a=[],o=0,s=t.length;o=0&&0,e+t.replace(/\u001b\[\d\d?m/g,"").length+1}),0)>60)return r[0]+(""===t?"":t+"\n ")+" "+e.join(",\n ")+" "+r[1];return r[0]+t+" "+e.join(", ")+" "+r[1]}(c,v,x)):x[0]+v+x[1]}function h(e){return"["+Error.prototype.toString.call(e)+"]"}function p(e,t,r,n,i,a){var o,s,u;if((u=Object.getOwnPropertyDescriptor(t,i)||{value:t[i]}).get?s=u.set?e.stylize("[Getter/Setter]","special"):e.stylize("[Getter]","special"):u.set&&(s=e.stylize("[Setter]","special")),A(n,i)||(o="["+i+"]"),s||(e.seen.indexOf(u.value)<0?(s=y(r)?l(e,u.value,null):l(e,u.value,r-1)).indexOf("\n")>-1&&(s=a?s.split("\n").map((function(e){return" "+e})).join("\n").substr(2):"\n"+s.split("\n").map((function(e){return" "+e})).join("\n")):s=e.stylize("[Circular]","special")),_(o)){if(a&&i.match(/^\d+$/))return s;(o=JSON.stringify(""+i)).match(/^"([a-zA-Z_][a-zA-Z_0-9]*)"$/)?(o=o.substr(1,o.length-2),o=e.stylize(o,"name")):(o=o.replace(/'/g,"\\'").replace(/\\"/g,'"').replace(/(^"|"$)/g,"'"),o=e.stylize(o,"string"))}return o+": "+s}function d(e){return Array.isArray(e)}function f(e){return"boolean"==typeof e}function y(e){return null===e}function m(e){return"number"==typeof e}function g(e){return"string"==typeof e}function _(e){return void 0===e}function b(e){return v(e)&&"[object RegExp]"===T(e)}function v(e){return"object"==typeof e&&null!==e}function w(e){return v(e)&&"[object Date]"===T(e)}function E(e){return v(e)&&("[object Error]"===T(e)||e instanceof Error)}function S(e){return"function"==typeof e}function T(e){return Object.prototype.toString.call(e)}function x(e){return e<10?"0"+e.toString(10):e.toString(10)}t.debuglog=function(r){if(_(a)&&(a=e.env.NODE_DEBUG||""),r=r.toUpperCase(),!o[r])if(new RegExp("\\b"+r+"\\b","i").test(a)){var n=e.pid;o[r]=function(){var e=t.format.apply(t,arguments);console.error("%s %d: %s",r,n,e)}}else o[r]=function(){};return o[r]},t.inspect=s,s.colors={bold:[1,22],italic:[3,23],underline:[4,24],inverse:[7,27],white:[37,39],grey:[90,39],black:[30,39],blue:[34,39],cyan:[36,39],green:[32,39],magenta:[35,39],red:[31,39],yellow:[33,39]},s.styles={special:"cyan",number:"yellow",boolean:"yellow",undefined:"grey",null:"bold",string:"green",date:"magenta",regexp:"red"},t.isArray=d,t.isBoolean=f,t.isNull=y,t.isNullOrUndefined=function(e){return null==e},t.isNumber=m,t.isString=g,t.isSymbol=function(e){return"symbol"==typeof e},t.isUndefined=_,t.isRegExp=b,t.isObject=v,t.isDate=w,t.isError=E,t.isFunction=S,t.isPrimitive=function(e){return null===e||"boolean"==typeof e||"number"==typeof e||"string"==typeof e||"symbol"==typeof e||void 0===e},t.isBuffer=r(370);var O=["Jan","Feb","Mar","Apr","May","Jun","Jul","Aug","Sep","Oct","Nov","Dec"];function R(){var e=new Date,t=[x(e.getHours()),x(e.getMinutes()),x(e.getSeconds())].join(":");return[e.getDate(),O[e.getMonth()],t].join(" ")}function A(e,t){return Object.prototype.hasOwnProperty.call(e,t)}t.log=function(){console.log("%s - %s",R(),t.format.apply(t,arguments))},t.inherits=r(371),t._extend=function(e,t){if(!t||!v(t))return e;for(var r=Object.keys(t),n=r.length;n--;)e[r[n]]=t[r[n]];return e};var I="undefined"!=typeof Symbol?Symbol("util.promisify.custom"):void 0;function P(e,t){if(!e){var r=new Error("Promise was rejected with a falsy value");r.reason=e,e=r}return t(e)}t.promisify=function(e){if("function"!=typeof e)throw new TypeError('The "original" argument must be of type Function');if(I&&e[I]){var t;if("function"!=typeof(t=e[I]))throw new TypeError('The "util.promisify.custom" argument must be of type Function');return Object.defineProperty(t,I,{value:t,enumerable:!1,writable:!1,configurable:!0}),t}function t(){for(var t,r,n=new Promise((function(e,n){t=e,r=n})),i=[],a=0;a=31||"undefined"!=typeof navigator&&navigator.userAgent&&navigator.userAgent.toLowerCase().match(/applewebkit\/(\d+)/)},t.storage="undefined"!=typeof chrome&&void 0!==chrome.storage?chrome.storage.local:function(){try{return window.localStorage}catch(e){}}(),t.colors=["lightseagreen","forestgreen","goldenrod","dodgerblue","darkorchid","crimson"],t.formatters.j=function(e){try{return JSON.stringify(e)}catch(e){return"[UnexpectedJSONParseError]: "+e.message}},t.enable(i())}).call(this,r(12))},function(e,t,r){var n;function i(e){function r(){if(r.enabled){var e=r,i=+new Date,a=i-(n||i);e.diff=a,e.prev=n,e.curr=i,n=i;for(var o=new Array(arguments.length),s=0;s0)return function(e){if((e=String(e)).length>100)return;var t=/^((?:\d+)?\.?\d+) *(milliseconds?|msecs?|ms|seconds?|secs?|s|minutes?|mins?|m|hours?|hrs?|h|days?|d|years?|yrs?|y)?$/i.exec(e);if(!t)return;var o=parseFloat(t[1]);switch((t[2]||"ms").toLowerCase()){case"years":case"year":case"yrs":case"yr":case"y":return 315576e5*o;case"days":case"day":case"d":return o*a;case"hours":case"hour":case"hrs":case"hr":case"h":return o*i;case"minutes":case"minute":case"mins":case"min":case"m":return o*n;case"seconds":case"second":case"secs":case"sec":case"s":return o*r;case"milliseconds":case"millisecond":case"msecs":case"msec":case"ms":return o;default:return}}(e);if("number"===u&&!1===isNaN(e))return t.long?o(s=e,a,"day")||o(s,i,"hour")||o(s,n,"minute")||o(s,r,"second")||s+" ms":function(e){if(e>=a)return Math.round(e/a)+"d";if(e>=i)return Math.round(e/i)+"h";if(e>=n)return Math.round(e/n)+"m";if(e>=r)return Math.round(e/r)+"s";return e+"ms"}(e);throw new Error("val is not a non-empty string or a valid number. val="+JSON.stringify(e))}},function(e,t,r){"use strict";const n=e=>null!==e&&"object"==typeof e&&"function"==typeof e.pipe;n.writable=e=>n(e)&&!1!==e.writable&&"function"==typeof e._write&&"object"==typeof e._writableState,n.readable=e=>n(e)&&!1!==e.readable&&"function"==typeof e._read&&"object"==typeof e._readableState,n.duplex=e=>n.writable(e)&&n.readable(e),n.transform=e=>n.duplex(e)&&"function"==typeof e._transform&&"object"==typeof e._transformState,e.exports=n},function(e,t,r){"use strict";function n(e){for(var r in e)t.hasOwnProperty(r)||(t[r]=e[r])}Object.defineProperty(t,"__esModule",{value:!0}),n(r(161)),n(r(378))},function(e,t,r){"use strict";Object.defineProperty(t,"__esModule",{value:!0});const n=r(161);class i extends n.ActorRdfDereference{constructor(e){super(e)}getMediaTypeFromExtension(e){const t=e.lastIndexOf(".");if(t>=0){const r=e.substr(t);return this.mediaMappings[r.substring(1)]||""}return""}}t.ActorRdfDereferenceMediaMappings=i},function(e,t,r){"use strict";Object.defineProperty(t,"__esModule",{value:!0});const n=r(160);class i extends n.ActorRdfDereferenceHttpParseBase{constructor(e){super(e)}getMaxAcceptHeaderLength(){return this.maxAcceptHeaderLengthBrowser}}t.ActorRdfDereferenceHttpParse=i},function(e,t,r){"use strict";Object.defineProperty(t,"__esModule",{value:!0});const n=r(121),i=r(381);class a extends n.ActorRdfParseHtml{constructor(e){super(e)}async test(e){return!0}async run(e){const t=(await this.mediatorRdfParseMediatypes.mediate({context:e.context,mediaTypes:!0})).mediaTypes;return{htmlParseListener:new i.HtmlScriptListener(this.mediatorRdfParseHandle,e.emit,e.error,e.end,t,e.context,e.baseIRI,e.headers)}}}t.ActorRdfParseHtmlScript=a},function(e,t,r){"use strict";Object.defineProperty(t,"__esModule",{value:!0});const n=r(2),i=r(25);class a{constructor(e,t,r,n,i,a,o,s){this.handleMediaType=null,this.textChunks=null,this.textChunksJsonLd=[],this.endBarrier=1,this.passedScripts=0,this.isFinalJsonLdProcessing=!1,this.mediatorRdfParseHandle=e,this.cbQuad=t,this.cbError=r,this.cbEnd=n,this.supportedTypes=i,this.context=a,this.baseIRI=o,this.headers=s,this.onlyFirstScript=a&&!1===a.get("extractAllScripts");const u=this.baseIRI.indexOf("#");this.targetScriptId=u>0?this.baseIRI.substr(u+1,this.baseIRI.length):null}static newErrorCoded(e,t){const r=new Error(e);return r.code=t,r}onEnd(){0==--this.endBarrier&&(this.textChunksJsonLd.length>0?(this.handleMediaType="application/ld+json",this.textChunks=this.textChunksJsonLd,this.textChunks.push("]"),this.textChunksJsonLd=[],this.isFinalJsonLdProcessing=!0,this.endBarrier++,this.onTagClose()):(0===this.passedScripts&&this.targetScriptId&&this.cbError(a.newErrorCoded(`Failed to find targeted script id "${this.targetScriptId}"`,"loading document failed")),this.cbEnd()),this.isFinalJsonLdProcessing=!1)}onTagClose(){if(this.handleMediaType)if(this.requiresCustomJsonLdHandling(this.handleMediaType)&&!this.isFinalJsonLdProcessing)this.handleMediaType=null,this.textChunks=null,this.onEnd();else{const e=new n.Readable({objectMode:!0});e._read=()=>{};const t=this.textChunks,r={context:this.context,handle:{baseIRI:this.baseIRI,input:e,headers:this.headers},handleMediaType:this.handleMediaType};this.mediatorRdfParseHandle.mediate(r).then(({handle:r})=>{r.quads.on("error",e=>this.cbError(a.newErrorCoded(e.message,"invalid script element"))).on("data",this.cbQuad).on("end",()=>this.onEnd());for(const r of t)e.push(r);e.push(null)}).catch(this.cbError),this.handleMediaType=null,this.textChunks=null}}onTagOpen(e,t){"base"===e&&t.href&&(this.baseIRI=i.resolve(t.href,this.baseIRI)),"script"!==e||this.targetScriptId&&t.id!==this.targetScriptId?this.handleMediaType=null:this.supportedTypes[t.type]?this.onlyFirstScript&&this.passedScripts>0?this.handleMediaType=null:(this.passedScripts++,this.handleMediaType=t.type,this.endBarrier++,this.requiresCustomJsonLdHandling(this.handleMediaType)?(this.textChunks=this.textChunksJsonLd,this.textChunks.push(0===this.textChunks.length?"[":",")):this.textChunks=[]):this.targetScriptId&&this.cbError(a.newErrorCoded(`Targeted script "${this.targetScriptId}" does not have a supported type`,"loading document failed"))}onText(e){this.handleMediaType&&this.textChunks.push(e)}requiresCustomJsonLdHandling(e){return!this.onlyFirstScript&&!this.targetScriptId&&"application/ld+json"===e}}t.HtmlScriptListener=a},function(e,t,r){"use strict";Object.defineProperty(t,"__esModule",{value:!0});const n=r(68);class i extends n.ActorRdfJoin{constructor(e){super(e,3,!0)}static getSmallestPatternId(e){let t=-1,r=1/0;for(let n=0;ne.metadata()))).map(e=>"totalItems"in e?e.totalItems:1/0),n=i.getSmallestPatternId(r),a=t.splice(n,1)[0],o=(r.splice(n,1),i.getSmallestPatternId(r)),s=t.splice(o,1)[0],u=(r.splice(o,1),await this.mediatorJoin.mediate({entries:[a,s]}));return t.push(u),await this.mediatorJoin.mediate({entries:t})}async getIterations(e){return(await Promise.all(e.entries.map(e=>e.metadata()))).reduce((e,t)=>e*t.totalItems,1)}}t.ActorRdfJoinMultiSmallest=i},function(e,t,r){"use strict";Object.defineProperty(t,"__esModule",{value:!0});const n=r(20),i=r(165);class a extends n.ActorRdfResolveQuadPatternSource{constructor(e){super(e),this.emptyPatterns=new Map}async test(e){if(!this.getContextSources(e.context))throw new Error("Actor "+this.name+" can only resolve quad pattern queries against a sources array.");return!0}async getSource(e){return new i.FederatedQuadSource(this.mediatorResolveQuadPattern,e,this.emptyPatterns,this.skipEmptyPatterns)}}t.ActorRdfResolveQuadPatternFederated=a},function(e,t,r){"use strict";Object.defineProperty(t,"__esModule",{value:!0});t.BlankNodeScoped=class{constructor(e,t){this.termType="BlankNode",this.value=e,this.skolemized=t}equals(e){return!!e&&"BlankNode"===e.termType&&e.value===this.value}}},function(e,t,r){"use strict";Object.defineProperty(t,"__esModule",{value:!0});const n=r(4);class i extends n.BufferedIterator{constructor(e,t){super(t||{autoStart:!1}),this.sourcedEnded=!1,this.currentSource=0,this.listenersAttached=!1,this.sources=[],this.sourceIterator=Array.isArray(e)?new n.ArrayIterator(e):e,this.sourceIterator.on("error",e=>this.emit("error",e)),this.sourceIterator.on("end",()=>{this.sourcedEnded=!0,this._checkClose()})}_read(e,t){if(!this.sourcedEnded){let e;for(this.listenersAttached||(this.listenersAttached=!0,this.sourceIterator.on("readable",()=>this._fillBuffer()));e=this.sourceIterator.read();)e.on("error",e=>this.emit("error",e)),e.on("readable",()=>this._fillBuffer()),e.on("end",()=>this._fillBuffer()),this.sources.push(e)}let r=null,n=this.sources.length;for(;this.sources.length&&null===r&&n--;){const e=this.sources[this.currentSource];r=e.read(),e.ended?this.sources.splice(this.currentSource,1):this.currentSource++,this.currentSource=this.sources.length?this.currentSource%this.sources.length:0}null!==r&&this._push(r),this._checkClose(),t()}_checkClose(){!this.sources.length&&this.sourcedEnded&&this.close()}}t.RoundRobinUnionIterator=i},function(e,t,r){"use strict";Object.defineProperty(t,"__esModule",{value:!0});const n=r(3),i=r(21),a=r(5),o=r(22);class s extends n.ActorQueryOperationTyped{constructor(e){super(e,"pattern")}static isTermVariable(e){return"Variable"===e.termType}static getVariables(e){return o.uniqTerms(o.getTerms(e).filter(s.isTermVariable)).map(a.termToString)}static getDuplicateElementLinks(e){const t={};let r=!1;for(const n of o.QUAD_TERM_NAMES)if("Variable"===e[n].termType){const i=a.termToString(e[n]),o=(t[i]||(t[i]=[])).push(n);r=r||o>1}if(!r)return null;const n={};for(const e in t){const r=t[e],i=r.slice(1);i.length&&(n[r[0]]=i)}return n}async testOperation(e,t){return!0}async runOperation(e,t){e.context&&(t=t?t.merge(e.context):e.context);const r=await this.mediatorResolveQuadPattern.mediate({pattern:e,context:t}),u=s.getVariables(e),c=o.reduceTerms(e,(e,t,r)=>(s.isTermVariable(t)&&(e[r]=a.termToString(t)),e),{}),l=(e,t,r)=>{const n=c[r];return n&&(e[n]=t),e};return{type:"bindings",bindingsStream:new i.PromiseProxyIterator(async()=>{let t=r.data;const i=s.getDuplicateElementLinks(e);return i&&(t=t.filter(e=>{for(const t of o.TRIPLE_TERM_NAMES)for(const r of i[t]||[])if(!e[t].equals(e[r]))return!1;return!0})),t.map(e=>n.Bindings(o.reduceTerms(e,l,{})),{autoStart:!0,maxBufferSize:128})}),variables:u,metadata:r.metadata}}}t.ActorQueryOperationQuadpattern=s},function(e,t,r){"use strict";Object.defineProperty(t,"__esModule",{value:!0});const n=r(73),i=r(388);class a extends n.ActorRdfResolveHypermedia{constructor(e){super(e,"qpf")}async testMetadata(e){const t=this.createSource(e.metadata,e.context,null).searchForm;if(!t)throw new Error(`Actor ${this.name} could not detect a TPF/QPF search form.`);if(e.handledDatasets&&e.handledDatasets[t.dataset])throw new Error(`Actor ${this.name} can only be applied for the first page of a QPF dataset.`);return{filterFactor:1}}async run(e){this.logInfo(e.context,"Identified as qpf source: "+e.url);const t=this.createSource(e.metadata,e.context,e.quads);return{source:t,dataset:t.searchForm.dataset}}createSource(e,t,r){return new i.RdfSourceQpf(this.mediatorMetadata,this.mediatorMetadataExtract,this.mediatorRdfDereference,this.subjectUri,this.predicateUri,this.objectUri,this.graphUri,e,t,r)}}t.ActorRdfResolveHypermediaQpf=a},function(e,t,r){"use strict";Object.defineProperty(t,"__esModule",{value:!0});const n=r(4),i=r(21),a=r(5),o=r(22),s=r(1);t.RdfSourceQpf=class{constructor(e,t,r,i,a,o,u,c,l,h){if(this.mediatorMetadata=e,this.mediatorMetadataExtract=t,this.mediatorRdfDereference=r,this.subjectUri=i,this.predicateUri=a,this.objectUri=o,this.graphUri=u,this.context=l,this.cachedQuads={},this.searchForm=this.getSearchForm(c),this.defaultGraph=c.defaultGraph?s.namedNode(c.defaultGraph):null,h){let e=n.AsyncIterator.wrap(h);this.defaultGraph&&(e=this.reverseMapQuadsToDefaultGraph(e)),e.setProperty("metadata",c),this.cacheQuads(e)}}getSearchForm(e){if(!e.searchForms||!e.searchForms.values)return null;const t=e.searchForms;for(const e of t.values){if(this.graphUri&&this.subjectUri in e.mappings&&this.predicateUri in e.mappings&&this.objectUri in e.mappings&&this.graphUri in e.mappings&&4===Object.keys(e.mappings).length)return e;if(this.subjectUri in e.mappings&&this.predicateUri in e.mappings&&this.objectUri in e.mappings&&3===Object.keys(e.mappings).length)return e}return null}createFragmentUri(e,t,r,n,i){const o={},s=[{uri:this.subjectUri,term:t},{uri:this.predicateUri,term:r},{uri:this.objectUri,term:n},{uri:this.graphUri,term:i}];for(const e of s)e.uri&&e.term&&(o[e.uri]=a.termToString(e.term));return e.getUri(o)}match(e,t,r,a){if(e instanceof RegExp||t instanceof RegExp||r instanceof RegExp||a instanceof RegExp)throw new Error("RdfSourceQpf does not support matching by regular expressions.");let u=!1;this.defaultGraph&&a&&"DefaultGraph"===a.termType&&(u=!0,a=this.defaultGraph);const c=this.getCachedQuads(e,t,r,a);if(c)return c;const l=new i.PromiseProxyIterator(async()=>{let i=await this.createFragmentUri(this.searchForm,e,t,r,a);const c=await this.mediatorRdfDereference.mediate({context:this.context,url:i});i=c.url;const h=await this.mediatorMetadata.mediate({context:this.context,url:i,quads:c.quads,triples:c.triples});this.mediatorMetadataExtract.mediate({context:this.context,url:i,metadata:h.metadata}).then(({metadata:e})=>{l.setProperty("metadata",e),l.emit("metadata",e)});const p=s.defaultGraph();let d=n.AsyncIterator.wrap(h.data).filter(n=>!!o.matchPattern(n,e,t,r,a)||u&&o.matchPattern(n,e,t,r,p));return!u&&a||(d=this.reverseMapQuadsToDefaultGraph(d)),d});return this.cacheQuads(l,e,t,r,a),this.getCachedQuads(e,t,r,a)}reverseMapQuadsToDefaultGraph(e){const t=s.defaultGraph();return e.map(e=>o.mapTerms(e,(e,r)=>"graph"===r&&e.equals(this.defaultGraph)?t:e))}getPatternId(e,t,r,n){return JSON.stringify({s:a.termToString(e),p:a.termToString(t),o:a.termToString(r),g:a.termToString(n)})}cacheQuads(e,t,r,n,i){const a=this.getPatternId(t,r,n,i);this.cachedQuads[a]=e.clone()}getCachedQuads(e,t,r,n){const a=this.getPatternId(e,t,r,n);let o=this.cachedQuads[a];if(o){const e=o;return o=new i.PromiseProxyIterator(async()=>e.clone()),e.getProperty("metadata",e=>o.emit("metadata",e)),o}return null}}},function(e,t,r){"use strict";Object.defineProperty(t,"__esModule",{value:!0});const n=r(20),i=r(75),a=r(170);class o extends n.ActorRdfResolveQuadPatternSource{constructor(e){super(e),this.cache=this.cacheSize?new i({max:this.cacheSize}):null,this.cache&&this.httpInvalidator.addInvalidateListener(({url:e})=>e?this.cache.del(e):this.cache.reset())}async test(e){if(!this.hasContextSingleSource(e.context))throw new Error("Actor "+this.name+" can only resolve quad pattern queries against a single source.");return!0}getSource(e,t){const r=this.getContextSource(e),i=this.getContextSourceUrl(r);let o;return this.cacheSize&&this.cache.has(i)?o=this.cache.get(i):(o=new a.MediatedQuadSource(this.cacheSize,e,i,n.getDataSourceType(r),{mediatorMetadata:this.mediatorMetadata,mediatorMetadataExtract:this.mediatorMetadataExtract,mediatorRdfDereference:this.mediatorRdfDereference,mediatorRdfResolveHypermedia:this.mediatorRdfResolveHypermedia,mediatorRdfResolveHypermediaLinks:this.mediatorRdfResolveHypermediaLinks}),this.cacheSize&&this.cache.set(i,o)),Promise.resolve(o)}}t.ActorRdfResolveQuadPatternHypermedia=o},function(e,t,r){"use strict";function n(e){var t=this;if(t instanceof n||(t=new n),t.tail=null,t.head=null,t.length=0,e&&"function"==typeof e.forEach)e.forEach((function(e){t.push(e)}));else if(arguments.length>0)for(var r=0,i=arguments.length;r1)r=t;else{if(!this.head)throw new TypeError("Reduce of empty list with no initial value");n=this.head.next,r=this.head.value}for(var i=0;null!==n;i++)r=e(r,n.value,i),n=n.next;return r},n.prototype.reduceReverse=function(e,t){var r,n=this.tail;if(arguments.length>1)r=t;else{if(!this.tail)throw new TypeError("Reduce of empty list with no initial value");n=this.tail.prev,r=this.tail.value}for(var i=this.length-1;null!==n;i--)r=e(r,n.value,i),n=n.prev;return r},n.prototype.toArray=function(){for(var e=new Array(this.length),t=0,r=this.head;null!==r;t++)e[t]=r.value,r=r.next;return e},n.prototype.toArrayReverse=function(){for(var e=new Array(this.length),t=0,r=this.tail;null!==r;t++)e[t]=r.value,r=r.prev;return e},n.prototype.slice=function(e,t){(t=t||this.length)<0&&(t+=this.length),(e=e||0)<0&&(e+=this.length);var r=new n;if(tthis.length&&(t=this.length);for(var i=0,a=this.head;null!==a&&ithis.length&&(t=this.length);for(var i=this.length,a=this.tail;null!==a&&i>t;i--)a=a.prev;for(;null!==a&&i>e;i--,a=a.prev)r.push(a.value);return r},n.prototype.splice=function(e,t){e>this.length&&(e=this.length-1),e<0&&(e=this.length+e);for(var r=0,n=this.head;null!==n&&r!this.handledUrls[e]&&(this.handledUrls[e]=!0,!0))}catch(e){return[]}}async getNextSource(e,t){const r=this.context,n=await this.mediatorRdfDereference.mediate({context:r,url:e});e=n.url;const i=await this.mediatorMetadata.mediate({context:r,url:e,quads:n.quads,triples:n.triples}),{metadata:a}=await this.mediatorMetadataExtract.mediate({context:r,url:e,metadata:i.metadata}),{source:o,dataset:s}=await this.mediatorRdfResolveHypermedia.mediate({context:r,forceSourceType:this.forceSourceType,handledDatasets:t,metadata:a,quads:i.data,url:e});return s&&(t[s]=!0),{source:o,metadata:a,handledDatasets:t}}}t.MediatedLinkedRdfSourcesAsyncRdfIterator=i},function(e,t,r){"use strict";Object.defineProperty(t,"__esModule",{value:!0});const n=r(4),i=r(75);class a extends n.BufferedIterator{constructor(e,t,r,n,i,a,o){super(o),this.cacheSize=e,this.subject=t,this.predicate=r,this.object=n,this.graph=i,this.nextUrls=[],this.firstUrl=a,this.started=!1,this.iterating=!1}setSourcesState(e){e?this.sourcesState=e:(this.sourcesState={sources:new i({max:this.cacheSize})},this.getNextSourceCached(this.firstUrl,{}))}_read(e,t){if(this.started)if(!this.iterating&&this.nextSource){const e=this.nextSource;this.nextSource=null,this.getNextUrls(e.metadata).then(e=>Promise.all(e)).then(async r=>{if(0===r.length&&0===this.nextUrls.length)this.close();else{for(const e of r)this.nextUrls.push(e);const t=await this.getNextSourceCached(this.nextUrls[0],e.handledDatasets);this.startIterator(t,!1),this.nextUrls.splice(0,1)}t()}).catch(e=>this.emit("error",e))}else t();else this.started=!0,this.sourcesState||this.setSourcesState(),this.sourcesState.sources.get(this.firstUrl).then(e=>{this.startIterator(e,!0),t()}).catch(e=>this.emit("error",e))}getNextSourceCached(e,t){let r=this.sourcesState.sources.get(e);return r||(r=this.getNextSource(e,t),this.sourcesState.sources.set(e,r),r)}startIterator(e,t){this.iterating=!0;const r=e.source.match(this.subject,this.predicate,this.object,this.graph);let n=e.metadata,i=!1;r.on("metadata",e=>{i&&this.destroy(new Error("Received metadata AFTER the source iterator was ended.")),n=Object.assign(Object.assign({},n),e)}),r.on("data",e=>{this._push(e),this.readable=!0}),r.on("error",e=>this.destroy(e)),r.on("end",()=>{i=!0,t&&this.emit("metadata",n),this.nextSource={handledDatasets:Object.assign({},e.handledDatasets),metadata:n,source:null},this.iterating=!1,this.readable=!0})}}t.LinkedRdfSourcesAsyncRdfIterator=a},function(e,t,r){"use strict";Object.defineProperty(t,"__esModule",{value:!0});const n=r(395),i=r(3),a=r(20),o=r(0),s=r(172),u=r(7);class c extends n.ActorInit{constructor(e){super(e)}async test(e){return!0}async query(e,r){r=r||{};for(const e in r)if(this.contextKeyShortcuts[e]){const t=r[e];r[this.contextKeyShortcuts[e]]=t,delete r[e]}r[o.KEY_CONTEXT_LOG]||(r[o.KEY_CONTEXT_LOG]=this.logger),r[i.KEY_CONTEXT_QUERY_TIMESTAMP]||(r[i.KEY_CONTEXT_QUERY_TIMESTAMP]=new Date),Array.isArray(r[a.KEY_CONTEXT_SOURCES])&&(r[a.KEY_CONTEXT_SOURCES].map(e=>{"string"==typeof e||"auto"!==e.type&&"hypermedia"!==e.type||delete e.type}),r[a.KEY_CONTEXT_SOURCES]=s.AsyncReiterableArray.fromFixedData(r[a.KEY_CONTEXT_SOURCES]));let n,u,c="sparql";if((r=o.ActionContext(r))&&r.has(t.KEY_CONTEXT_QUERYFORMAT)&&(c=r.get(t.KEY_CONTEXT_QUERYFORMAT),r=r.delete(t.KEY_CONTEXT_QUERYFORMAT),"graphql"!==c||r.has(t.KEY_CONTEXT_GRAPHQL_SINGULARIZEVARIABLES)||(r=r.set(t.KEY_CONTEXT_GRAPHQL_SINGULARIZEVARIABLES,{}))),r&&r.has(i.KEY_CONTEXT_BASEIRI)&&(n=r.get(i.KEY_CONTEXT_BASEIRI)),r=(await this.mediatorContextPreprocess.mediate({context:r})).context,"string"==typeof e){const t=await this.mediatorSparqlParse.mediate({context:r,query:e,queryFormat:c,baseIRI:n});u=t.operation,t.baseIRI&&(r=r.set(i.KEY_CONTEXT_BASEIRI,t.baseIRI))}else u=e;if(r.has(t.KEY_CONTEXT_INITIALBINDINGS)){const e=r.get(t.KEY_CONTEXT_INITIALBINDINGS);u=i.materializeOperation(u,i.ensureBindings(e))}u=(await this.mediatorOptimizeQueryOperation.mediate({context:r,operation:u})).operation;const l={context:r,operation:u},h=await this.mediatorQueryOperation.mediate(l);return h.context=r,h}async getResultMediaTypes(e){return(await this.mediatorSparqlSerializeMediaTypeCombiner.mediate({context:e,mediaTypes:!0})).mediaTypes}async getResultMediaTypeFormats(e){return(await this.mediatorSparqlSerializeMediaTypeFormatCombiner.mediate({context:e,mediaTypeFormats:!0})).mediaTypeFormats}async resultToString(e,t,r){if(r=o.ActionContext(r),!t)switch(e.type){case"bindings":t="application/json";break;case"quads":t="application/trig";break;default:t="simple"}const n=e;return n.context=r,(await this.mediatorSparqlSerialize.mediate({context:r,handle:n,handleMediaType:t})).handle}invalidateHttpCache(e){return this.mediatorHttpInvalidate.mediate({url:e})}async run(e){throw new Error("ActorInitSparql#run is not supported in the browser.")}}t.ActorInitSparql=c,c.ALGEBRA_TYPES=Object.keys(u.Algebra.types).reduce((e,t)=>(e[u.Algebra.types[t]]=!0,e),{}),t.KEY_CONTEXT_INITIALBINDINGS="@comunica/actor-init-sparql:initialBindings",t.KEY_CONTEXT_QUERYFORMAT="@comunica/actor-init-sparql:queryFormat",t.KEY_CONTEXT_GRAPHQL_SINGULARIZEVARIABLES="@comunica/actor-init-sparql:singularizeVariables",t.KEY_CONTEXT_LENIENT="@comunica/actor-init-sparql:lenient"},function(e,t,r){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),function(e){for(var r in e)t.hasOwnProperty(r)||(t[r]=e[r])}(r(396))},function(e,t,r){"use strict";Object.defineProperty(t,"__esModule",{value:!0});const n=r(0);class i extends n.Actor{constructor(e){super(e)}}t.ActorInit=i},function(e,t,r){"use strict";Object.defineProperty(t,"__esModule",{value:!0});const n=r(4);class i{constructor(e,t){this.array=e.slice(),this.iterators=[],t&&this.array.push(null)}static fromFixedData(e){return new i(e,!0)}static fromInitialData(e){return new i(e,!1)}static fromInitialEmpty(){return i.fromInitialData([])}static pushToIterator(e,t){null===t?e.close():e._push(t)}iterator(){if(this.isEnded())return new n.ArrayIterator(this.array.slice(0,this.array.length-1));const e=new n.BufferedIterator;for(const t of this.array)i.pushToIterator(e,t);return this.iterators.push(e),e}push(e){if(this.isEnded())throw new Error("Can not push data anymore into an AsyncReiterableArray after it has been terminated.");this.array.push(e);for(const t of this.iterators)i.pushToIterator(t,e)}isEnded(){return this.array.length>0&&null===this.array[this.array.length-1]}}t.AsyncReiterableArray=i},function(e,t,r){"use strict";Object.defineProperty(t,"__esModule",{value:!0});const n=r(36);class i extends n.ActorAbstractMediaTyped{constructor(e){super(e)}}t.ActorSparqlSerialize=i},function(e,t,r){"use strict";Object.defineProperty(t,"__esModule",{value:!0});const n=r(36);class i extends n.ActorAbstractMediaTypedFixed{constructor(e){super(e)}async testHandleChecked(e,t){return!0}}t.ActorSparqlSerializeFixedMediaTypes=i},function(e,t,r){const n=new(r(88).LoggerVoid)({}),i=new(r(0).Bus)({name:"https://linkedsoftwaredependencies.org/bundles/npm/@comunica/bus-init/Bus/Init"}),a=new(r(0).Bus)({name:"https://linkedsoftwaredependencies.org/bundles/npm/@comunica/bus-http/Bus/Http"}),o=new(r(0).Bus)({name:"https://linkedsoftwaredependencies.org/bundles/npm/@comunica/bus-rdf-join/Bus/RdfJoin"}),s=new(r(0).Bus)({name:"https://linkedsoftwaredependencies.org/bundles/npm/@comunica/bus-rdf-parse/Bus/RdfParse"}),u=new(r(0).Bus)({name:"https://linkedsoftwaredependencies.org/bundles/npm/@comunica/bus-rdf-dereference/Bus/RdfDereference"}),c=new(r(0).Bus)({name:"https://linkedsoftwaredependencies.org/bundles/npm/@comunica/bus-rdf-parse-html/Bus/RdfParseHtml"}),l=new(r(0).Bus)({name:"https://linkedsoftwaredependencies.org/bundles/npm/@comunica/bus-rdf-serialize/Bus/RdfSerialize"}),h=new(r(0).Bus)({name:"https://linkedsoftwaredependencies.org/bundles/npm/@comunica/bus-rdf-resolve-quad-pattern/Bus/RdfResolveQuadPattern"}),p=new(r(0).Bus)({name:"https://linkedsoftwaredependencies.org/bundles/npm/@comunica/bus-rdf-metadata/Bus/RdfMetadata"}),d=new(r(0).Bus)({name:"https://linkedsoftwaredependencies.org/bundles/npm/@comunica/bus-rdf-metadata-extract/Bus/RdfMetadataExtract"}),f=new(r(0).Bus)({name:"https://linkedsoftwaredependencies.org/bundles/npm/@comunica/bus-rdf-resolve-hypermedia/Bus/RdfResolveHypermedia"}),y=new(r(0).Bus)({name:"https://linkedsoftwaredependencies.org/bundles/npm/@comunica/bus-rdf-resolve-hypermedia-links/Bus/RdfResolveHypermediaLinks"}),m=new(r(0).Bus)({name:"https://linkedsoftwaredependencies.org/bundles/npm/@comunica/bus-http-invalidate/Bus/HttpInvalidate"}),g=new(r(0).Bus)({name:"https://linkedsoftwaredependencies.org/bundles/npm/@comunica/bus-optimize-query-operation/Bus/OptimizeQueryOperation"}),_=new(r(0).Bus)({name:"https://linkedsoftwaredependencies.org/bundles/npm/@comunica/bus-sparql-parse/Bus/SparqlParse"}),b=new(r(0).Bus)({name:"https://linkedsoftwaredependencies.org/bundles/npm/@comunica/bus-sparql-serialize/Bus/SparqlSerialize"}),v=new(r(0).Bus)({name:"https://linkedsoftwaredependencies.org/bundles/npm/@comunica/bus-context-preprocess/Bus/ContextPreprocess"}),w=new(r(0).BusIndexed)({actorIdentifierFields:["operationName"],actionIdentifierFields:["operation","type"],name:"https://linkedsoftwaredependencies.org/bundles/npm/@comunica/bus-query-operation/Bus/QueryOperation"}),E=new(r(35).MediatorNumber)({field:"time",type:"https://linkedsoftwaredependencies.org/bundles/npm/@comunica/mediator-number/Mediator/Number/type/TypeMin",ignoreErrors:!0,name:"https://linkedsoftwaredependencies.org/bundles/npm/@comunica/actor-init-sparql/^1.0.0/config/sets/http.json#mediatorHttp",bus:a}),S=new(r(401).ActorHttpNative)({agentOptions:'{ "keepAlive": true, "maxSockets": 5 }',name:"https://linkedsoftwaredependencies.org/bundles/npm/@comunica/actor-init-sparql/^1.0.0/config/sets/http.json#myHttpFetcher",bus:a}),T=new(r(177).ActionObserverHttp)({name:"https://linkedsoftwaredependencies.org/bundles/npm/@comunica/actor-sparql-serialize-stats/Actor/SparqlSerialize/Stats/httpObserver/default",bus:a}),x=new(r(9).MediatorRace)({name:"https://linkedsoftwaredependencies.org/bundles/npm/@comunica/actor-init-sparql/^1.0.0/config/sets/sparql-queryoperators.json#mediatorRdfJoin",bus:o}),O=new(r(117).ActorRdfJoinSymmetricHash)({name:"https://linkedsoftwaredependencies.org/bundles/npm/@comunica/actor-init-sparql/^1.0.0/config/sets/join.json#myRdfJoinActor",bus:o}),R=new(r(13).MediatorCombineUnion)({field:"mediaTypes",name:"https://linkedsoftwaredependencies.org/bundles/npm/@comunica/actor-init-sparql/^1.0.0/config/sets/rdf-dereference.json#mediatorRdfParseMediatypes",bus:s}),A=new(r(9).MediatorRace)({name:"https://linkedsoftwaredependencies.org/bundles/npm/@comunica/actor-init-sparql/^1.0.0/config/sets/rdf-dereference.json#mediatorRdfParseHandle",bus:s}),I=new(r(99).ActorRdfParseN3)({mediaTypes:{"application/n-quads":"1.0","application/trig":"0.95","application/n-triples":"0.8","text/turtle":"0.5","text/n3":"0.35"},mediaTypeFormats:{"application/n-quads":"http://www.w3.org/ns/formats/N-Quads","application/trig":"http://www.w3.org/ns/formats/TriG","application/n-triples":"http://www.w3.org/ns/formats/N-Triples","text/turtle":"http://www.w3.org/ns/formats/Turtle","text/n3":"http://www.w3.org/ns/formats/N3"},priorityScale:"1",name:"https://linkedsoftwaredependencies.org/bundles/npm/@comunica/actor-init-sparql/^1.0.0/config/sets/rdf-parsers.json#myRdfParserN3",bus:s}),P=new(r(101).ActorRdfParseRdfXml)({mediaTypes:{"application/rdf+xml":"1.0"},mediaTypeFormats:{"application/rdf+xml":"http://www.w3.org/ns/formats/RDF_XML"},priorityScale:"5.0E-1",name:"https://linkedsoftwaredependencies.org/bundles/npm/@comunica/actor-init-sparql/^1.0.0/config/sets/rdf-parsers.json#myRdfParserRdfXml",bus:s}),N=new(r(103).ActorRdfParseXmlRdfa)({mediaTypes:{"application/xml":"1.0","text/xml":"1.0","image/svg+xml":"1.0"},mediaTypeFormats:{"application/xml":"http://www.w3.org/ns/formats/RDFa","text/xml":"http://www.w3.org/ns/formats/RDFa","image/svg+xml":"http://www.w3.org/ns/formats/RDFa"},priorityScale:"3.0E-1",name:"https://linkedsoftwaredependencies.org/bundles/npm/@comunica/actor-init-sparql/^1.0.0/config/sets/rdf-parsers.json#myRdfParserXmlRdfa",bus:s}),C=new(r(13).MediatorCombineUnion)({field:"mediaTypes",name:"https://linkedsoftwaredependencies.org/bundles/npm/@comunica/actor-init-sparql/^1.0.0/config/sets/rdf-parsers.json#mediatorRdfParseMediatypes",bus:s}),j=new(r(9).MediatorRace)({name:"https://linkedsoftwaredependencies.org/bundles/npm/@comunica/actor-init-sparql/^1.0.0/config/sets/rdf-parsers.json#mediatorRdfParseHandle",bus:s}),D=new(r(9).MediatorRace)({name:"https://linkedsoftwaredependencies.org/bundles/npm/@comunica/actor-init-sparql/^1.0.0/config/sets/resolve-hypermedia.json#mediatorRdfDereference",bus:u}),k=new(r(119).ActorRdfParseHtml)({busRdfParseHtml:c,mediaTypes:{"text/html":"1.0","application/xhtml+xml":"0.9"},mediaTypeFormats:{"text/html":"http://www.w3.org/ns/formats/HTML","application/xhtml+xml":"http://www.w3.org/ns/formats/HTML"},priorityScale:"2.0E-1",name:"https://linkedsoftwaredependencies.org/bundles/npm/@comunica/actor-init-sparql/^1.0.0/config/sets/rdf-parsers.json#myRdfParserHtml",bus:s}),L=new(r(120).ActorRdfParseHtmlRdfa)({name:"https://linkedsoftwaredependencies.org/bundles/npm/@comunica/actor-init-sparql/^1.0.0/config/sets/rdf-parsers.json#myRdfParserHtmlRdfa",bus:c}),M=new(r(412).ActorRdfSerializeN3)({mediaTypes:{"application/trig":"1.0","application/n-quads":"0.7","text/turtle":"0.6","application/n-triples":"0.3","text/n3":"0.2"},mediaTypeFormats:{"application/trig":"http://www.w3.org/ns/formats/TriG","application/n-quads":"http://www.w3.org/ns/formats/N-Quads","text/turtle":"http://www.w3.org/ns/formats/Turtle","application/n-triples":"http://www.w3.org/ns/formats/N-Triples","text/n3":"http://www.w3.org/ns/formats/N3"},name:"https://linkedsoftwaredependencies.org/bundles/npm/@comunica/actor-init-sparql/^1.0.0/config/sets/rdf-serializers.json#myRdfSerializerN3",bus:l}),F=new(r(70).ActorRdfSerializeJsonLd)({jsonStringifyIndentSpaces:2,mediaTypes:{"application/ld+json":"1.0"},mediaTypeFormats:{"application/ld+json":"http://www.w3.org/ns/formats/JSON-LD"},priorityScale:"9.0E-1",name:"https://linkedsoftwaredependencies.org/bundles/npm/@comunica/actor-init-sparql/^1.0.0/config/sets/rdf-serializers.json#myRdfSerializeJsonLd",bus:l}),q=new(r(9).MediatorRace)({name:"https://linkedsoftwaredependencies.org/bundles/npm/@comunica/actor-init-sparql/^1.0.0/config/sets/sparql-serializers.json#mediatorRdfSerialize",bus:l}),B=new(r(13).MediatorCombineUnion)({field:"mediaTypes",name:"_:b0bnode318",bus:l}),U=new(r(13).MediatorCombineUnion)({field:"mediaTypeFormats",name:"_:b1bnode318",bus:l}),V=new(r(9).MediatorRace)({name:"https://linkedsoftwaredependencies.org/bundles/npm/@comunica/actor-init-sparql/^1.0.0/config/sets/sparql-queryoperators.json#mediatorResolveQuadPattern",bus:h}),H=new(r(122).ActorRdfResolveQuadPatternRdfJsSource)({name:"config-sets:resolve-file.json#myRdfRdfJsSourceQuadPatternResolver",bus:h}),G=new(r(9).MediatorRace)({name:"https://linkedsoftwaredependencies.org/bundles/npm/@comunica/actor-init-sparql/^1.0.0/config/sets/resolve-hypermedia.json#mediatorMetadata",bus:p}),z=new(r(124).ActorRdfMetadataPrimaryTopic)({metadataToData:!1,dataToMetadataOnInvalidMetadataGraph:!0,name:"https://linkedsoftwaredependencies.org/bundles/npm/@comunica/actor-init-sparql/^1.0.0/config/sets/resolve-hypermedia.json#myRdfMetadataPrimaryTopic",bus:p}),Q=new(r(127).ActorRdfMetadataAll)({name:"https://linkedsoftwaredependencies.org/bundles/npm/@comunica/actor-init-sparql/^1.0.0/config/sets/resolve-hypermedia.json#myRdfMetadataAll",bus:p}),$=new(r(13).MediatorCombineUnion)({field:"metadata",name:"https://linkedsoftwaredependencies.org/bundles/npm/@comunica/actor-init-sparql/^1.0.0/config/sets/resolve-hypermedia.json#mediatorMetadataExtract",bus:d}),X=new(r(128).ActorRdfMetadataExtractHydraControls)({name:"https://linkedsoftwaredependencies.org/bundles/npm/@comunica/actor-init-sparql/^1.0.0/config/sets/resolve-hypermedia.json#myRdfMetadataExtractHydraControls",bus:d}),Y=new(r(137).ActorRdfMetadataExtractHydraCount)({predicates:["http://www.w3.org/ns/hydra/core#totalItems","http://rdfs.org/ns/void#triples"],name:"https://linkedsoftwaredependencies.org/bundles/npm/@comunica/actor-init-sparql/^1.0.0/config/sets/resolve-hypermedia.json#myRdfMetadataExtractHydraCount",bus:d}),J=new(r(138).ActorRdfMetadataExtractSparqlService)({name:"https://linkedsoftwaredependencies.org/bundles/npm/@comunica/actor-init-sparql/^1.0.0/config/sets/resolve-sparql.json#myRdfMetadataExtractSparqlService",bus:d}),W=new(r(139).ActorRdfResolveHypermediaNone)({name:"https://linkedsoftwaredependencies.org/bundles/npm/@comunica/actor-init-sparql/^1.0.0/config/sets/resolve-hypermedia.json#myHypermediaNoneResolver",bus:f}),K=new(r(35).MediatorNumber)({field:"filterFactor",type:"https://linkedsoftwaredependencies.org/bundles/npm/@comunica/mediator-number/Mediator/Number/type/TypeMax",ignoreErrors:!0,name:"https://linkedsoftwaredependencies.org/bundles/npm/@comunica/actor-init-sparql/^1.0.0/config/sets/resolve-hypermedia.json#mediatorRdfResolveHypermedia",bus:f}),Z=new(r(9).MediatorRace)({name:"https://linkedsoftwaredependencies.org/bundles/npm/@comunica/actor-init-sparql/^1.0.0/config/sets/resolve-hypermedia.json#mediatorRdfResolveHypermediaLinks",bus:y}),ee=new(r(140).ActorRdfResolveHypermediaLinksNext)({name:"https://linkedsoftwaredependencies.org/bundles/npm/@comunica/actor-init-sparql/^1.0.0/config/sets/resolve-hypermedia.json#myHypermediaLinksNext",bus:y}),te=new(r(141).ActorHttpInvalidateListenable)({name:"https://linkedsoftwaredependencies.org/bundles/npm/@comunica/actor-rdf-resolve-quad-pattern-hypermedia/Actor/RdfResolveQuadPattern/Hypermedia/httpInvalidator#default",bus:m}),re=new(r(143).MediatorAll)({name:"https://linkedsoftwaredependencies.org/bundles/npm/@comunica/actor-init-sparql/^1.0.0/config/sets/sparql-init.json#mediatorHttpInvalidate",bus:m}),ne=new(r(54).MediatorCombinePipeline)({name:"https://linkedsoftwaredependencies.org/bundles/npm/@comunica/actor-init-sparql/^1.0.0/config/sets/sparql-init.json#mediatorOptimizeQueryOperation",bus:g}),ie=new(r(144).ActorOptimizeQueryOperationJoinBgp)({name:"https://linkedsoftwaredependencies.org/bundles/npm/@comunica/actor-init-sparql/^1.0.0/config/sets/sparql-optimize.json#myJoinBgpOptimizer",bus:g}),ae=new(r(9).MediatorRace)({name:"https://linkedsoftwaredependencies.org/bundles/npm/@comunica/actor-init-sparql/^1.0.0/config/sets/sparql-init.json#mediatorSparqlParse",bus:_}),oe=new(r(417).ActorSparqlParseGraphql)({name:"https://linkedsoftwaredependencies.org/bundles/npm/@comunica/actor-init-sparql/^1.0.0/config/sets/graphql-parsers.json#myGraphqlParser",bus:_}),se=new(r(146).ActorSparqlParseAlgebra)({prefixes:{rdf:"http://www.w3.org/1999/02/22-rdf-syntax-ns#",rdfs:"http://www.w3.org/2000/01/rdf-schema#",owl:"http://www.w3.org/2002/07/owl#",xsd:"http://www.w3.org/2001/XMLSchema#",dc:"http://purl.org/dc/terms/",dcterms:"http://purl.org/dc/terms/",dc11:"http://purl.org/dc/elements/1.1/",foaf:"http://xmlns.com/foaf/0.1/",geo:"http://www.w3.org/2003/01/geo/wgs84_pos#",dbpedia:"http://dbpedia.org/resource/","dbpedia-owl":"http://dbpedia.org/ontology/",dbpprop:"http://dbpedia.org/property/",schema:"http://schema.org/",skos:"http://www.w3.org/2008/05/skos#"},name:"https://linkedsoftwaredependencies.org/bundles/npm/@comunica/actor-init-sparql/^1.0.0/config/sets/sparql-parsers.json#mySparqlParser",bus:_}),ue=new(r(9).MediatorRace)({name:"https://linkedsoftwaredependencies.org/bundles/npm/@comunica/actor-init-sparql/^1.0.0/config/sets/sparql-init.json#mediatorSparqlSerialize",bus:b}),ce=new(r(13).MediatorCombineUnion)({field:"mediaTypes",name:"_:b0bnode312",bus:b}),le=new(r(13).MediatorCombineUnion)({field:"mediaTypeFormats",name:"_:b1bnode312",bus:b}),he=new(r(419).ActorSparqlSerializeJson)({mediaTypes:{"application/json":"1.0"},mediaTypeFormats:{"application/json":"https://comunica.linkeddatafragments.org/#results_JSON"},name:"https://linkedsoftwaredependencies.org/bundles/npm/@comunica/actor-init-sparql/^1.0.0/config/sets/sparql-serializers.json#myJsonSparqlSerializer",bus:b}),pe=new(r(421).ActorSparqlSerializeSimple)({mediaTypes:{simple:"1.0"},mediaTypeFormats:{simple:"https://comunica.linkeddatafragments.org/#results_simple"},name:"https://linkedsoftwaredependencies.org/bundles/npm/@comunica/actor-init-sparql/^1.0.0/config/sets/sparql-serializers.json#mySimpleSparqlSerializer",bus:b}),de=new(r(423).ActorSparqlSerializeSparqlJson)({mediaTypes:{"application/sparql-results+json":"1.0"},mediaTypeFormats:{"application/sparql-results+json":"http://www.w3.org/ns/formats/SPARQL_Results_JSON"},name:"https://linkedsoftwaredependencies.org/bundles/npm/@comunica/actor-init-sparql/^1.0.0/config/sets/sparql-serializers.json#mySparqlJsonSparqlSerializer",bus:b}),fe=new(r(425).ActorSparqlSerializeSparqlXml)({mediaTypes:{"application/sparql-results+xml":"1.0"},mediaTypeFormats:{"application/sparql-results+xml":"http://www.w3.org/ns/formats/SPARQL_Results_XML"},name:"https://linkedsoftwaredependencies.org/bundles/npm/@comunica/actor-init-sparql/^1.0.0/config/sets/sparql-serializers.json#mySparqlXmlSparqlSerializer",bus:b}),ye=new(r(429).ActorSparqlSerializeTable)({columnWidth:50,mediaTypes:{table:"1.0"},mediaTypeFormats:{table:"https://comunica.linkeddatafragments.org/#results_table"},name:"https://linkedsoftwaredependencies.org/bundles/npm/@comunica/actor-init-sparql/^1.0.0/config/sets/sparql-serializers.json#myTableSparqlSerializer",bus:b}),me=new(r(173).ActorSparqlSerializeTree)({mediaTypes:{tree:"0.9"},mediaTypeFormats:{tree:"https://comunica.linkeddatafragments.org/#results_tree"},name:"https://linkedsoftwaredependencies.org/bundles/npm/@comunica/actor-init-sparql/^1.0.0/config/sets/sparql-serializers.json#myTreeSparqlSerializer",bus:b}),ge=new(r(54).MediatorCombinePipeline)({name:"https://linkedsoftwaredependencies.org/bundles/npm/@comunica/actor-init-sparql/^1.0.0/config/sets/sparql-init.json#mediatorContextPreprocess",bus:v}),_e=new(r(35).MediatorNumber)({field:"httpRequests",type:"https://linkedsoftwaredependencies.org/bundles/npm/@comunica/mediator-number/Mediator/Number/type/TypeMin",ignoreErrors:!0,name:"https://linkedsoftwaredependencies.org/bundles/npm/@comunica/actor-init-sparql/^1.0.0/config/sets/sparql-queryoperators.json#mediatorQueryOperation",bus:w}),be=new(r(148).ActorQueryOperationBgpEmpty)({name:"https://linkedsoftwaredependencies.org/bundles/npm/@comunica/actor-init-sparql/^1.0.0/config/sets/sparql-queryoperators.json#myEmptyBgpQueryOperator",bus:w}),ve=new(r(152).ActorQueryOperationValues)({name:"https://linkedsoftwaredependencies.org/bundles/npm/@comunica/actor-init-sparql/^1.0.0/config/sets/sparql-queryoperators.json#myValuesQueryOperator",bus:w}),we=new(r(431).ActorHttpMemento)({mediatorHttp:E,name:"https://linkedsoftwaredependencies.org/bundles/npm/@comunica/actor-init-sparql/^1.0.0/config/sets/http-memento.json#myHttpFetcher",bus:a}),Ee=new(r(153).ActorRdfParseJsonLd)({mediatorHttp:E,mediaTypes:{"application/ld+json":"1.0","application/json":"0.5"},mediaTypeFormats:{"application/ld+json":"http://www.w3.org/ns/formats/JSON-LD","application/json":"http://www.w3.org/ns/formats/JSON-LD"},priorityScale:"9.0E-1",name:"https://linkedsoftwaredependencies.org/bundles/npm/@comunica/actor-init-sparql/^1.0.0/config/sets/rdf-parsers.json#myRdfParserJsonLd",bus:s}),Se=new(r(156).ActorRdfResolveHypermediaSparql)({mediatorHttp:E,checkUrlSuffix:!0,name:"https://linkedsoftwaredependencies.org/bundles/npm/@comunica/actor-init-sparql/^1.0.0/config/sets/resolve-sparql.json#mySparqlQuadPatternResolver",bus:f}),Te=new(r(157).ActorQueryOperationSparqlEndpoint)({mediatorHttp:E,name:"https://linkedsoftwaredependencies.org/bundles/npm/@comunica/actor-init-sparql/^1.0.0/config/sets/resolve-sparql.json#mySparqlEndpointResolver",bus:w}),xe=new(r(177).ActorSparqlSerializeStats)({httpObserver:T,mediaTypes:{stats:"1.0"},mediaTypeFormats:{stats:"https://comunica.linkeddatafragments.org/#results_stats"},name:"https://linkedsoftwaredependencies.org/bundles/npm/@comunica/actor-init-sparql/^1.0.0/config/sets/sparql-serializers.json#myStatsSparqlSerializer",bus:b}),Oe=new(r(163).ActorRdfJoinMultiSmallest)({mediatorJoin:x,name:"https://linkedsoftwaredependencies.org/bundles/npm/@comunica/actor-init-sparql/^1.0.0/config/sets/join.json#myRdfJoinMultiActor",bus:o}),Re=new(r(159).ActorRdfDereferenceHttpParse)({mediatorHttp:E,mediatorRdfParseMediatypes:R,mediatorRdfParseHandle:A,maxAcceptHeaderLength:1024,maxAcceptHeaderLengthBrowser:128,mediaMappings:{ttl:"text/turtle",turtle:"text/turtle",nt:"application/n-triples",ntriples:"application/n-triples",nq:"application/n-quads",nquads:"application/n-quads",rdf:"application/rdf+xml",rdfxml:"application/rdf+xml",owl:"application/rdf+xml",n3:"text/n3",trig:"application/trig",jsonld:"application/ld+json",json:"application/json",html:"text/html",htm:"text/html",xhtml:"application/xhtml+xml",xht:"application/xhtml+xml",xml:"application/xml",svg:"image/svg+xml",svgz:"image/svg+xml"},name:"https://linkedsoftwaredependencies.org/bundles/npm/@comunica/actor-init-sparql/^1.0.0/config/sets/rdf-dereference.json#myRdfDereferencer",bus:u}),Ae=new(r(162).ActorRdfParseHtmlScript)({mediatorRdfParseMediatypes:C,mediatorRdfParseHandle:j,name:"https://linkedsoftwaredependencies.org/bundles/npm/@comunica/actor-init-sparql/^1.0.0/config/sets/rdf-parsers.json#myRdfParserHtmlScript",bus:c}),Ie=new(r(433).ActorSparqlSerializeRdf)({mediatorRdfSerialize:q,mediatorMediaTypeCombiner:B,mediatorMediaTypeFormatCombiner:U,name:"https://linkedsoftwaredependencies.org/bundles/npm/@comunica/actor-init-sparql/^1.0.0/config/sets/sparql-serializers.json#myRdfSparqlSerializer",bus:b}),Pe=new(r(164).ActorRdfResolveQuadPatternFederated)({mediatorResolveQuadPattern:V,skipEmptyPatterns:!1,name:"https://linkedsoftwaredependencies.org/bundles/npm/@comunica/actor-init-sparql/^1.0.0/config/sets/resolve-federated.json#myFederatedQuadPatternResolver",bus:h}),Ne=new(r(167).ActorQueryOperationQuadpattern)({mediatorResolveQuadPattern:V,name:"https://linkedsoftwaredependencies.org/bundles/npm/@comunica/actor-init-sparql/^1.0.0/config/sets/sparql-queryoperators.json#myQuadPatternQueryOperator",bus:w}),Ce=new(r(168).ActorRdfResolveHypermediaQpf)({mediatorMetadata:G,mediatorMetadataExtract:$,mediatorRdfDereference:D,subjectUri:"http://www.w3.org/1999/02/22-rdf-syntax-ns#subject",predicateUri:"http://www.w3.org/1999/02/22-rdf-syntax-ns#predicate",objectUri:"http://www.w3.org/1999/02/22-rdf-syntax-ns#object",graphUri:"http://www.w3.org/ns/sparql-service-description#graph",name:"https://linkedsoftwaredependencies.org/bundles/npm/@comunica/actor-init-sparql/^1.0.0/config/sets/resolve-hypermedia.json#myHypermediaQpfResolver",bus:f}),je=new(r(169).ActorRdfResolveQuadPatternHypermedia)({mediatorRdfDereference:D,mediatorMetadata:G,mediatorMetadataExtract:$,mediatorRdfResolveHypermedia:K,mediatorRdfResolveHypermediaLinks:Z,cacheSize:100,httpInvalidator:te,name:"https://linkedsoftwaredependencies.org/bundles/npm/@comunica/actor-init-sparql/^1.0.0/config/sets/resolve-hypermedia.json#myQuadPatternHypermediaResolver",bus:h}),De=new(r(435).ActorHttpProxy)({mediatorHttp:E,name:"https://linkedsoftwaredependencies.org/bundles/npm/@comunica/actor-init-sparql/^1.0.0/config/sets/http.json#myHttpProxy",bus:a,beforeActors:[S]}),ke=new(r(171).ActorInitSparql)({mediatorOptimizeQueryOperation:ne,mediatorQueryOperation:_e,mediatorSparqlParse:ae,mediatorSparqlSerialize:ue,mediatorSparqlSerializeMediaTypeCombiner:ce,mediatorSparqlSerializeMediaTypeFormatCombiner:le,mediatorContextPreprocess:ge,mediatorHttpInvalidate:re,logger:n,contextKeyShortcuts:{source:"@comunica/bus-rdf-resolve-quad-pattern:source",sources:"@comunica/bus-rdf-resolve-quad-pattern:sources",initialBindings:"@comunica/actor-init-sparql:initialBindings",queryFormat:"@comunica/actor-init-sparql:queryFormat",baseIRI:"@comunica/actor-init-sparql:baseIRI",log:"@comunica/core:log",datetime:"@comunica/actor-http-memento:datetime",queryTimestamp:"@comunica/actor-init-sparql:queryTimestamp",httpProxyHandler:"@comunica/actor-http-proxy:httpProxyHandler",lenient:"@comunica/actor-init-sparql:lenient"},name:"urn:comunica:sparqlinit",bus:i});new(r(178).ActorQueryOperationAsk)({mediatorQueryOperation:_e,name:"https://linkedsoftwaredependencies.org/bundles/npm/@comunica/actor-init-sparql/^1.0.0/config/sets/sparql-queryoperators.json#myAskQueryOperator",bus:w}),new(r(179).ActorQueryOperationService)({forceSparqlEndpoint:!1,mediatorQueryOperation:_e,name:"https://linkedsoftwaredependencies.org/bundles/npm/@comunica/actor-init-sparql/^1.0.0/config/sets/sparql-queryoperators.json#myServiceQueryOperator",bus:w}),new(r(180).ActorQueryOperationSlice)({mediatorQueryOperation:_e,name:"https://linkedsoftwaredependencies.org/bundles/npm/@comunica/actor-init-sparql/^1.0.0/config/sets/sparql-queryoperators.json#mySliceQueryOperator",bus:w}),new(r(181).ActorQueryOperationBgpSingle)({mediatorQueryOperation:_e,name:"https://linkedsoftwaredependencies.org/bundles/npm/@comunica/actor-init-sparql/^1.0.0/config/sets/sparql-queryoperators.json#mySingleBgpQueryOperator",bus:w}),new(r(182).ActorQueryOperationBgpLeftDeepSmallest)({mediatorQueryOperation:_e,name:"https://linkedsoftwaredependencies.org/bundles/npm/@comunica/actor-init-sparql/^1.0.0/config/sets/sparql-queryoperators.json#myLeftDeepSmallestBgpQueryOperator",bus:w}),new(r(184).ActorQueryOperationConstruct)({mediatorQueryOperation:_e,name:"https://linkedsoftwaredependencies.org/bundles/npm/@comunica/actor-init-sparql/^1.0.0/config/sets/sparql-queryoperators.json#myConstructQueryOperator",bus:w}),new(r(185).ActorQueryOperationDescribeSubject)({mediatorQueryOperation:_e,name:"https://linkedsoftwaredependencies.org/bundles/npm/@comunica/actor-init-sparql/^1.0.0/config/sets/sparql-queryoperators.json#myDescribeQueryOperator",bus:w}),new(r(186).ActorQueryOperationDistinctHash)({hashAlgorithm:"sha1",digestAlgorithm:"base64",mediatorQueryOperation:_e,name:"https://linkedsoftwaredependencies.org/bundles/npm/@comunica/actor-init-sparql/^1.0.0/config/sets/sparql-queryoperators.json#myDistinctQueryOperator",bus:w}),new(r(188).ActorQueryOperationExtend)({mediatorQueryOperation:_e,name:"https://linkedsoftwaredependencies.org/bundles/npm/@comunica/actor-init-sparql/^1.0.0/config/sets/sparql-queryoperators.json#myExtendQueryOperator",bus:w}),new(r(194).ActorQueryOperationReducedHash)({hashAlgorithm:"sha1",digestAlgorithm:"base64",cacheSize:100,mediatorQueryOperation:_e,name:"https://linkedsoftwaredependencies.org/bundles/npm/@comunica/actor-init-sparql/^1.0.0/config/sets/sparql-queryoperators.json#myReducedQueryOperator",bus:w}),new(r(195).ActorQueryOperationFilterSparqlee)({mediatorQueryOperation:_e,name:"https://linkedsoftwaredependencies.org/bundles/npm/@comunica/actor-init-sparql/^1.0.0/config/sets/sparql-queryoperators.json#myFilterQueryOperator",bus:w}),new(r(196).ActorQueryOperationFromQuad)({mediatorQueryOperation:_e,name:"https://linkedsoftwaredependencies.org/bundles/npm/@comunica/actor-init-sparql/^1.0.0/config/sets/sparql-queryoperators.json#myFromQueryOperator",bus:w}),new(r(197).ActorQueryOperationGroup)({mediatorQueryOperation:_e,name:"https://linkedsoftwaredependencies.org/bundles/npm/@comunica/actor-init-sparql/^1.0.0/config/sets/sparql-queryoperators.json#myGroupQueryOperator",bus:w}),new(r(198).ActorQueryOperationJoin)({mediatorJoin:x,mediatorQueryOperation:_e,name:"https://linkedsoftwaredependencies.org/bundles/npm/@comunica/actor-init-sparql/^1.0.0/config/sets/sparql-queryoperators.json#myJoinQueryOperator",bus:w}),new(r(199).ActorQueryOperationLeftJoinLeftDeep)({mediatorQueryOperation:_e,name:"https://linkedsoftwaredependencies.org/bundles/npm/@comunica/actor-init-sparql/^1.0.0/config/sets/sparql-queryoperators.json#myLeftJoinQueryOperator",bus:w}),new(r(200).ActorQueryOperationOrderBySparqlee)({mediatorQueryOperation:_e,name:"https://linkedsoftwaredependencies.org/bundles/npm/@comunica/actor-init-sparql/^1.0.0/config/sets/sparql-queryoperators.json#myOrderByQueryOperator",bus:w}),new(r(201).ActorQueryOperationProject)({mediatorQueryOperation:_e,name:"https://linkedsoftwaredependencies.org/bundles/npm/@comunica/actor-init-sparql/^1.0.0/config/sets/sparql-queryoperators.json#myProjectQueryOperator",bus:w}),new(r(76).ActorQueryOperationUnion)({mediatorQueryOperation:_e,name:"https://linkedsoftwaredependencies.org/bundles/npm/@comunica/actor-init-sparql/^1.0.0/config/sets/sparql-queryoperators.json#myUnionQueryOperator",bus:w}),new(r(202).ActorQueryOperationMinus)({mediatorQueryOperation:_e,name:"https://linkedsoftwaredependencies.org/bundles/npm/@comunica/actor-init-sparql/^1.0.0/config/sets/sparql-queryoperators.json#myMinusQueryOperator",bus:w}),new(r(203).ActorQueryOperationPathAlt)({mediatorQueryOperation:_e,name:"https://linkedsoftwaredependencies.org/bundles/npm/@comunica/actor-init-sparql/^1.0.0/config/sets/sparql-queryoperator-path.json#myAltPathOperator",bus:w}),new(r(205).ActorQueryOperationPathInv)({mediatorQueryOperation:_e,name:"https://linkedsoftwaredependencies.org/bundles/npm/@comunica/actor-init-sparql/^1.0.0/config/sets/sparql-queryoperator-path.json#myInvPathOperator",bus:w}),new(r(206).ActorQueryOperationPathLink)({mediatorQueryOperation:_e,name:"https://linkedsoftwaredependencies.org/bundles/npm/@comunica/actor-init-sparql/^1.0.0/config/sets/sparql-queryoperator-path.json#myLinkPathOperator",bus:w}),new(r(207).ActorQueryOperationPathNps)({mediatorQueryOperation:_e,name:"https://linkedsoftwaredependencies.org/bundles/npm/@comunica/actor-init-sparql/^1.0.0/config/sets/sparql-queryoperator-path.json#myNpsPathOperator",bus:w}),new(r(208).ActorQueryOperationPathOneOrMore)({mediatorQueryOperation:_e,name:"https://linkedsoftwaredependencies.org/bundles/npm/@comunica/actor-init-sparql/^1.0.0/config/sets/sparql-queryoperator-path.json#myOneOrMorePathOperator",bus:w}),new(r(209).ActorQueryOperationPathSeq)({mediatorJoin:x,mediatorQueryOperation:_e,name:"https://linkedsoftwaredependencies.org/bundles/npm/@comunica/actor-init-sparql/^1.0.0/config/sets/sparql-queryoperator-path.json#mySeqPathOperator",bus:w}),new(r(210).ActorQueryOperationPathZeroOrMore)({mediatorQueryOperation:_e,name:"https://linkedsoftwaredependencies.org/bundles/npm/@comunica/actor-init-sparql/^1.0.0/config/sets/sparql-queryoperator-path.json#myZeroOrMorePathOperator",bus:w}),new(r(211).ActorQueryOperationPathZeroOrOne)({mediatorQueryOperation:_e,name:"https://linkedsoftwaredependencies.org/bundles/npm/@comunica/actor-init-sparql/^1.0.0/config/sets/sparql-queryoperator-path.json#myZeroOrOnePathOperator",bus:w});e.exports=ke},function(e,t,r){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),function(e){for(var r in e)t.hasOwnProperty(r)||(t[r]=e[r])}(r(402))},function(e,t,r){"use strict";(function(e,n){Object.defineProperty(t,"__esModule",{value:!0});const i=r(26);r(43);const a=r(403);class o extends i.ActorHttp{constructor(e){super(e),this.userAgent=o.createUserAgent(),this.requester=new a.default(e.agentOptions?JSON.parse(e.agentOptions):void 0)}static createUserAgent(){return`Comunica/actor-http-native (${"undefined"==typeof window?"Node.js "+e.version+"; "+e.platform:"Browser-"+window.navigator.userAgent})`}async test(e){return{time:1/0}}async run(e){const t={};if(e.input.url?(t.url=e.input.url,Object.assign(t,e.input)):t.url=e.input,e.init&&Object.assign(t,e.init),t.headers){const e={};t.headers.forEach((t,r)=>{e[r]=t}),t.headers=e}else t.headers={};return t.headers["user-agent"]||(t.headers["user-agent"]=this.userAgent),t.method=t.method||"GET",this.logInfo(e.context,"Requesting "+t.url),new Promise((e,r)=>{const i=this.requester.createRequest(t);i.on("error",r),i.on("response",i=>{i.on("error",e=>{i=null,r(e)}),"HEAD"===t.method&&i.destroy(),n(()=>{if(i){i.cancel=()=>Promise.resolve(i.destroy());const r=new Headers(i.headers),n={body:i,headers:r,ok:i.statusCode<300,redirected:t.url!==i.responseUrl,status:i.statusCode,url:r.has("content-location")?r.get("content-location"):i.responseUrl};e(n)}})})})}}t.ActorHttpNative=o}).call(this,r(12),r(14).setImmediate)},function(e,t,r){"use strict"; -/*! @license MIT ©2013-2016 Ruben Verborgh, Ghent University - imec */Object.defineProperty(t,"__esModule",{value:!0});const n=r(45),i=r(175),a=r(2),o={"accept-encoding":!0,"user-agent":!0,referer:!0};t.default=class{constructor(){this.negotiatedResources={}}createRequest(e){this.negotiatedResources[this.removeQuery(e.url)]&&delete e.headers["accept-datetime"];const t=new XMLHttpRequest,r=e.headers;t.open(e.method,e.url,!0),t.timeout=e.timeout;for(const e in r)!(e in o)&&r[e]&&t.setRequestHeader(e,r[e]);const s=new n.EventEmitter;return s.abort=()=>{t.abort()},t.onload=()=>{const n=new a.Readable;n.push(t.responseText||""),n.push(null),n.statusCode=t.status,n.responseUrl=t.responseURL,n.headers={};const o=n.headers,u=t.getAllResponseHeaders()||"",c=/^([^:\n\r]+):[ \t]*([^\r\n]*)$/gm;let l=c.exec(u);for(;l;)o[l[1].toLowerCase()]=l[2],l=c.exec(u);if(s.emit("response",n),r["accept-datetime"]&&o["memento-datetime"]){const t=this.removeQuery(o["content-location"]||e.url);if(!this.negotiatedResources[t]){const e=o.link&&i(o.link);t!==this.removeQuery(e&&e.timegate&&e.timegate.url)&&(this.negotiatedResources[t]=!0)}}},t.onerror=()=>{s.emit("error",new Error("Error requesting "+e.url))},t.ontimeout=()=>{s.emit("error",new Error("Timeout requesting "+e.url))},t.send(),s}removeQuery(e){return e?e.replace(/\?.*$/,""):""}}},function(e,t,r){"use strict";function n(e,t){return Object.prototype.hasOwnProperty.call(e,t)}e.exports=function(e,t,r,a){t=t||"&",r=r||"=";var o={};if("string"!=typeof e||0===e.length)return o;var s=/\+/g;e=e.split(t);var u=1e3;a&&"number"==typeof a.maxKeys&&(u=a.maxKeys);var c=e.length;u>0&&c>u&&(c=u);for(var l=0;l=0?(h=y.substr(0,m),p=y.substr(m+1)):(h=y,p=""),d=decodeURIComponent(h),f=decodeURIComponent(p),n(o,d)?i(o[d])?o[d].push(f):o[d]=[o[d],f]:o[d]=f}return o};var i=Array.isArray||function(e){return"[object Array]"===Object.prototype.toString.call(e)}},function(e,t,r){"use strict";var n=function(e){switch(typeof e){case"string":return e;case"boolean":return e?"true":"false";case"number":return isFinite(e)?e:"";default:return""}};e.exports=function(e,t,r,s){return t=t||"&",r=r||"=",null===e&&(e=void 0),"object"==typeof e?a(o(e),(function(o){var s=encodeURIComponent(n(o))+r;return i(e[o])?a(e[o],(function(e){return s+encodeURIComponent(n(e))})).join(t):s+encodeURIComponent(n(e[o]))})).join(t):s?encodeURIComponent(n(s))+r+encodeURIComponent(n(e)):""};var i=Array.isArray||function(e){return"[object Array]"===Object.prototype.toString.call(e)};function a(e,t){if(e.map)return e.map(t);for(var r=[],n=0;n",'"',"`"," ","\r","\n","\t"]),l=["'"].concat(c),h=["%","/","?",";","#"].concat(l),p=["/","?","#"],d=/^[+a-z0-9A-Z_-]{0,63}$/,f=/^([+a-z0-9A-Z_-]{0,63})(.*)$/,y={javascript:!0,"javascript:":!0},m={javascript:!0,"javascript:":!0},g={http:!0,https:!0,ftp:!0,gopher:!0,file:!0,"http:":!0,"https:":!0,"ftp:":!0,"gopher:":!0,"file:":!0},_=r(176);function b(e,t,r){if(e&&i.isObject(e)&&e instanceof a)return e;var n=new a;return n.parse(e,t,r),n}a.prototype.parse=function(e,t,r){if(!i.isString(e))throw new TypeError("Parameter 'url' must be a string, not "+typeof e);var a=e.indexOf("?"),s=-1!==a&&a127?j+="x":j+=C[D];if(!j.match(d)){var L=P.slice(0,R),M=P.slice(R+1),F=C.match(f);F&&(L.push(F[1]),M.unshift(F[2])),M.length&&(b="/"+M.join(".")+b),this.hostname=L.join(".");break}}}this.hostname.length>255?this.hostname="":this.hostname=this.hostname.toLowerCase(),I||(this.hostname=n.toASCII(this.hostname));var q=this.port?":"+this.port:"",B=this.hostname||"";this.host=B+q,this.href+=this.host,I&&(this.hostname=this.hostname.substr(1,this.hostname.length-2),"/"!==b[0]&&(b="/"+b))}if(!y[E])for(R=0,N=l.length;R0)&&r.host.split("@"))&&(r.auth=I.shift(),r.host=r.hostname=I.shift());return r.search=e.search,r.query=e.query,i.isNull(r.pathname)&&i.isNull(r.search)||(r.path=(r.pathname?r.pathname:"")+(r.search?r.search:"")),r.href=r.format(),r}if(!S.length)return r.pathname=null,r.search?r.path="/"+r.search:r.path=null,r.href=r.format(),r;for(var x=S.slice(-1)[0],O=(r.host||e.host||S.length>1)&&("."===x||".."===x)||""===x,R=0,A=S.length;A>=0;A--)"."===(x=S[A])?S.splice(A,1):".."===x?(S.splice(A,1),R++):R&&(S.splice(A,1),R--);if(!w&&!E)for(;R--;R)S.unshift("..");!w||""===S[0]||S[0]&&"/"===S[0].charAt(0)||S.unshift(""),O&&"/"!==S.join("/").substr(-1)&&S.push("");var I,P=""===S[0]||S[0]&&"/"===S[0].charAt(0);T&&(r.hostname=r.host=P?"":S.length?S.shift():"",(I=!!(r.host&&r.host.indexOf("@")>0)&&r.host.split("@"))&&(r.auth=I.shift(),r.host=r.hostname=I.shift()));return(w=w||r.host&&S.length)&&!P&&S.unshift(""),S.length?r.pathname=S.join("/"):(r.pathname=null,r.path=null),i.isNull(r.pathname)&&i.isNull(r.search)||(r.path=(r.pathname?r.pathname:"")+(r.search?r.search:"")),r.auth=e.auth||r.auth,r.slashes=r.slashes||e.slashes,r.href=r.format(),r},a.prototype.parseHost=function(){var e=this.host,t=s.exec(e);t&&(":"!==(t=t[0])&&(this.port=t.substr(1)),e=e.substr(0,e.length-t.length)),e&&(this.hostname=e)}},function(e,t,r){(function(e,n){var i;/*! https://mths.be/punycode v1.4.1 by @mathias */!function(a){t&&t.nodeType,e&&e.nodeType;var o="object"==typeof n&&n;o.global!==o&&o.window!==o&&o.self;var s,u=2147483647,c=/^xn--/,l=/[^\x20-\x7E]/,h=/[\x2E\u3002\uFF0E\uFF61]/g,p={overflow:"Overflow: input needs wider integers to process","not-basic":"Illegal input >= 0x80 (not a basic code point)","invalid-input":"Invalid input"},d=Math.floor,f=String.fromCharCode;function y(e){throw new RangeError(p[e])}function m(e,t){for(var r=e.length,n=[];r--;)n[r]=t(e[r]);return n}function g(e,t){var r=e.split("@"),n="";return r.length>1&&(n=r[0]+"@",e=r[1]),n+m((e=e.replace(h,".")).split("."),t).join(".")}function _(e){for(var t,r,n=[],i=0,a=e.length;i=55296&&t<=56319&&i65535&&(t+=f((e-=65536)>>>10&1023|55296),e=56320|1023&e),t+=f(e)})).join("")}function v(e,t){return e+22+75*(e<26)-((0!=t)<<5)}function w(e,t,r){var n=0;for(e=r?d(e/700):e>>1,e+=d(e/t);e>455;n+=36)e=d(e/35);return d(n+36*e/(e+38))}function E(e){var t,r,n,i,a,o,s,c,l,h,p,f=[],m=e.length,g=0,_=128,v=72;for((r=e.lastIndexOf("-"))<0&&(r=0),n=0;n=128&&y("not-basic"),f.push(e.charCodeAt(n));for(i=r>0?r+1:0;i=m&&y("invalid-input"),((c=(p=e.charCodeAt(i++))-48<10?p-22:p-65<26?p-65:p-97<26?p-97:36)>=36||c>d((u-g)/o))&&y("overflow"),g+=c*o,!(c<(l=s<=v?1:s>=v+26?26:s-v));s+=36)o>d(u/(h=36-l))&&y("overflow"),o*=h;v=w(g-a,t=f.length+1,0==a),d(g/t)>u-_&&y("overflow"),_+=d(g/t),g%=t,f.splice(g++,0,_)}return b(f)}function S(e){var t,r,n,i,a,o,s,c,l,h,p,m,g,b,E,S=[];for(m=(e=_(e)).length,t=128,r=0,a=72,o=0;o=t&&pd((u-r)/(g=n+1))&&y("overflow"),r+=(s-t)*g,t=s,o=0;ou&&y("overflow"),p==t){for(c=r,l=36;!(c<(h=l<=a?1:l>=a+26?26:l-a));l+=36)E=c-h,b=36-h,S.push(f(v(h+E%b,0))),c=d(E/b);S.push(f(v(c,0))),a=w(r,g,n==i),r=0,++n}++r,++t}return S.join("")}s={version:"1.4.1",ucs2:{decode:_,encode:b},decode:E,encode:S,toASCII:function(e){return g(e,(function(e){return l.test(e)?"xn--"+S(e):e}))},toUnicode:function(e){return g(e,(function(e){return c.test(e)?E(e.slice(4).toLowerCase()):e}))}},void 0===(i=function(){return s}.call(t,r,t,e))||(e.exports=i)}()}).call(this,r(51)(e),r(11))},function(e,t,r){"use strict";e.exports={isString:function(e){return"string"==typeof e},isObject:function(e){return"object"==typeof e&&null!==e},isNull:function(e){return null===e},isNullOrUndefined:function(e){return null==e}}},function(e,t){e.exports=function(){for(var e={},t=0;t{};const o="bindings"===t.type?t.bindingsStream:t.quadStream,s=e.hrtime();let u=1;return this.pushHeader(a),o.on("error",e=>a.emit("error",e)),o.on("data",()=>this.pushStat(a,s,u++)),o.on("end",()=>this.pushFooter(a,s)),{data:a}}delay(t){const r=e.hrtime(t);return 1e3*r[0]+r[1]/1e6}}t.ActorSparqlSerializeStats=a}).call(this,r(12))},function(e,t,r){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),function(e){for(var r in e)t.hasOwnProperty(r)||(t[r]=e[r])}(r(413))},function(e,t,r){"use strict";Object.defineProperty(t,"__esModule",{value:!0});const n=r(414),i=r(41),a=r(2);class o extends n.ActorRdfSerializeFixedMediaTypes{constructor(e){super(e)}async runHandle(e,t,r){const n=new a.Readable({objectMode:!0});n._read=()=>{},e.quads.on("error",e=>o.emit("error",e)),e.quads.on("data",e=>n.push(e)),e.quads.on("end",()=>n.emit("end"));const o=n.pipe(new i.StreamWriter({format:t}));return{data:o,triples:"text/turtle"===t||"application/n-triples"===t||"text/n3"===t}}}t.ActorRdfSerializeN3=o},function(e,t,r){"use strict";function n(e){for(var r in e)t.hasOwnProperty(r)||(t[r]=e[r])}Object.defineProperty(t,"__esModule",{value:!0}),n(r(415)),n(r(416))},function(e,t,r){"use strict";Object.defineProperty(t,"__esModule",{value:!0});const n=r(36);class i extends n.ActorAbstractMediaTyped{constructor(e){super(e)}}t.ActorRdfSerialize=i},function(e,t,r){"use strict";Object.defineProperty(t,"__esModule",{value:!0});const n=r(36);class i extends n.ActorAbstractMediaTypedFixed{constructor(e){super(e)}async testHandleChecked(e){return!0}}t.ActorRdfSerializeFixedMediaTypes=i},function(e,t,r){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),function(e){for(var r in e)t.hasOwnProperty(r)||(t[r]=e[r])}(r(418))},function(e,t,r){"use strict";Object.defineProperty(t,"__esModule",{value:!0});const n=r(147),i=r(70);class a extends n.ActorSparqlParse{constructor(e){super(e),this.graphqlToSparql=new i.Converter({requireContext:!0})}async test(e){if("graphql"!==e.queryFormat)throw new Error("This actor can only parse GraphQL queries");return!0}async run(e){const t=e.context&&e.context.has("@context")?e.context.get("@context"):{},r={singularizeVariables:e.context.get("@comunica/actor-init-sparql:singularizeVariables")};return{operation:await this.graphqlToSparql.graphqlToSparqlAlgebra(e.query,t,r)}}}t.ActorSparqlParseGraphql=a},function(e,t,r){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),function(e){for(var r in e)t.hasOwnProperty(r)||(t[r]=e[r])}(r(420))},function(e,t,r){"use strict";(function(e){Object.defineProperty(t,"__esModule",{value:!0});const n=r(23),i=r(5),a=r(2);class o extends n.ActorSparqlSerializeFixedMediaTypes{constructor(e){super(e)}async testHandleChecked(e,t){if(["bindings","quads","boolean"].indexOf(e.type)<0)throw new Error("This actor can only handle bindings or quad streams.");return!0}async runHandle(t,r,n){const o=new a.Readable;o._read=()=>{};let s=!0;if("bindings"===t.type){const e=t.bindingsStream;o.push("["),e.on("error",e=>o.emit("error",e)),e.on("data",e=>{o.push(s?"\n":",\n"),o.push(JSON.stringify(e.map(i.termToString))),s=!1}),e.on("end",()=>{o.push(s?"]\n":"\n]\n"),o.push(null)})}else if("quads"===t.type){const e=t.quadStream;o.push("["),e.on("error",e=>o.emit("error",e)),e.on("data",e=>{o.push(s?"\n":",\n"),o.push(JSON.stringify(i.quadToStringQuad(e))),s=!1}),e.on("end",()=>{o.push(s?"]\n":"\n]\n"),o.push(null)})}else try{o.push(JSON.stringify(await t.booleanResult)+"\n"),o.push(null)}catch(t){e(()=>o.emit("error",t))}return{data:o}}}t.ActorSparqlSerializeJson=o}).call(this,r(14).setImmediate)},function(e,t,r){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),function(e){for(var r in e)t.hasOwnProperty(r)||(t[r]=e[r])}(r(422))},function(e,t,r){"use strict";(function(e){Object.defineProperty(t,"__esModule",{value:!0});const n=r(23),i=r(2);class a extends n.ActorSparqlSerializeFixedMediaTypes{constructor(e){super(e)}async testHandleChecked(e,t){if(["bindings","quads","boolean"].indexOf(e.type)<0)throw new Error("This actor can only handle bindings streams, quad streams or booleans.");return!0}async runHandle(t,r,n){const a=new i.Readable;let o;if(a._read=()=>{},"bindings"===t.type)o=t.bindingsStream,o.on("error",e=>a.emit("error",e)),o.on("data",e=>a.push(e.map((e,t)=>t+": "+e.value).join("\n")+"\n\n")),o.on("end",()=>a.push(null));else if("quads"===t.type)o=t.quadStream,o.on("error",e=>a.emit("error",e)),o.on("data",e=>a.push("subject: "+e.subject.value+"\npredicate: "+e.predicate.value+"\nobject: "+e.object.value+"\ngraph: "+e.graph.value+"\n\n")),o.on("end",()=>a.push(null));else try{a.push(JSON.stringify(await t.booleanResult)+"\n"),a.push(null)}catch(t){e(()=>a.emit("error",t))}return{data:a}}}t.ActorSparqlSerializeSimple=a}).call(this,r(14).setImmediate)},function(e,t,r){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),function(e){for(var r in e)t.hasOwnProperty(r)||(t[r]=e[r])}(r(424))},function(e,t,r){"use strict";(function(e){Object.defineProperty(t,"__esModule",{value:!0});const n=r(23),i=r(2);class a extends n.ActorSparqlSerializeFixedMediaTypes{constructor(e){super(e)}static bindingToJsonBindings(e){if("Literal"===e.termType){const t=e,r={value:t.value,type:"literal"},n=t.language,i=t.datatype;return n?r["xml:lang"]=n:i&&"http://www.w3.org/2001/XMLSchema#string"!==i.value&&(r.datatype=i.value),r}return"BlankNode"===e.termType?{value:e.value,type:"bnode"}:{value:e.value,type:"uri"}}async testHandleChecked(e,t){if(["bindings","boolean"].indexOf(e.type)<0)throw new Error("This actor can only handle bindings streams or booleans.");return!0}async runHandle(t,r,n){const o=new i.Readable;o._read=()=>{};const s={};"bindings"===t.type&&t.variables.length&&(s.vars=t.variables.map(e=>e.substr(1))),o.push('{"head": '+JSON.stringify(s)+",\n");let u=!0;if("bindings"===t.type){const e=t.bindingsStream;e.on("error",e=>{o.emit("error",e)}),e.on("data",e=>{u?o.push('"results": { "bindings": [\n'):o.push(",\n");const t=e.filter((e,t)=>!!e&&t.startsWith("?"));o.push(JSON.stringify(t.mapEntries(([e,t])=>[e.substr(1),a.bindingToJsonBindings(t)]).toJSON())),u=!1}),e.on("end",()=>{u?o.push('"results": { "bindings": [] }}\n'):o.push("\n]}}\n"),o.push(null)})}else try{o.push('"boolean":'+await t.booleanResult+"\n}\n"),o.push(null)}catch(t){e(()=>o.emit("error",t))}return{data:o}}}t.ActorSparqlSerializeSparqlJson=a}).call(this,r(14).setImmediate)},function(e,t,r){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),function(e){for(var r in e)t.hasOwnProperty(r)||(t[r]=e[r])}(r(426))},function(e,t,r){"use strict";(function(e){Object.defineProperty(t,"__esModule",{value:!0});const n=r(23),i=r(2),a=r(427);class o extends n.ActorSparqlSerializeFixedMediaTypes{constructor(e){super(e)}static bindingToXmlBindings(e,t){let r;if("Literal"===e.termType){const t=e;r={literal:t.value};const n=t.language,i=t.datatype;n?r.literal=[{_attr:{"xml:lang":n}},r.literal]:i&&"http://www.w3.org/2001/XMLSchema#string"!==i.value&&(r.literal=[{_attr:{datatype:i.value}},r.literal])}else r="BlankNode"===e.termType?{bnode:e.value}:{uri:e.value};return{binding:[{_attr:{name:t.substring(1)}},r]}}async testHandleChecked(e,t){if(["bindings","boolean"].indexOf(e.type)<0)throw new Error("This actor can only handle bindings streams or booleans.");return!0}async runHandle(t,r,n){const s=new i.Readable;s._read=()=>{};const u=a.element({_attr:{xlmns:"http://www.w3.org/2005/sparql-results#"}});if(a({sparql:u},{stream:!0,indent:" ",declaration:!0}).on("data",e=>s.push(e+"\n")),"bindings"===t.type&&t.variables.length&&u.push({head:t.variables.map(e=>({variable:{_attr:{name:e.substr(1)}}}))}),"bindings"===t.type){const e=a.element({});u.push({results:e});const r=t.bindingsStream;r.on("error",e=>{s.emit("error",e)}),r.on("data",t=>{const r=t.filter((e,t)=>!!e&&t.startsWith("?"));e.push({result:r.map(o.bindingToXmlBindings)})}),r.on("end",()=>{e.close(),u.close(),s.push(null)})}else try{u.push({boolean:await t.booleanResult}),u.close(),e(()=>s.push(null))}catch(t){e(()=>s.emit("error",t))}return{data:s}}}t.ActorSparqlSerializeSparqlXml=o}).call(this,r(14).setImmediate)},function(e,t,r){(function(t){var n=r(428),i=r(2).Stream;function a(e,t,r){r=r||0;var i,o,s=(i=t,new Array(r||0).join(i||"")),u=e;if("object"==typeof e&&((u=e[o=Object.keys(e)[0]])&&u._elem))return u._elem.name=o,u._elem.icount=r,u._elem.indent=t,u._elem.indents=s,u._elem.interrupt=u,u._elem;var c,l=[],h=[];function p(e){Object.keys(e).forEach((function(t){l.push(function(e,t){return e+'="'+n(t)+'"'}(t,e[t]))}))}switch(typeof u){case"object":if(null===u)break;u._attr&&p(u._attr),u._cdata&&h.push(("/g,"]]]]>")+"]]>"),u.forEach&&(c=!1,h.push(""),u.forEach((function(e){"object"==typeof e?"_attr"==Object.keys(e)[0]?p(e._attr):h.push(a(e,t,r+1)):(h.pop(),c=!0,h.push(n(e)))})),c||h.push(""));break;default:h.push(n(u))}return{name:o,interrupt:!1,attributes:l,content:h,icount:r,indents:s,indent:t}}function o(e,t,r){if("object"!=typeof t)return e(!1,t);var n=t.interrupt?1:t.content.length;function i(){for(;t.content.length;){var i=t.content.shift();if(void 0!==i){if(a(i))return;o(e,i)}}e(!1,(n>1?t.indents:"")+(t.name?"":"")+(t.indent&&!r?"\n":"")),r&&r()}function a(t){return!!t.interrupt&&(t.interrupt.append=e,t.interrupt.end=i,t.interrupt=!1,e(!0),!0)}if(e(!1,t.indents+(t.name?"<"+t.name:"")+(t.attributes.length?" "+t.attributes.join(" "):"")+(n?t.name?">":"":t.name?"/>":"")+(t.indent&&n>1?"\n":"")),!n)return e(!1,t.indent?"\n":"");a(t)||i()}e.exports=function(e,r){"object"!=typeof r&&(r={indent:r});var n,s,u=r.stream?new i:null,c="",l=!1,h=r.indent?!0===r.indent?" ":r.indent:"",p=!0;function d(e){p?t.nextTick(e):e()}function f(e,t){if(void 0!==t&&(c+=t),e&&!l&&(u=u||new i,l=!0),e&&l){var r=c;d((function(){u.emit("data",r)})),c=""}}function y(e,t){o(f,a(e,h,h?1:0),t)}function m(){if(u){var e=c;d((function(){u.emit("data",e),u.emit("end"),u.readable=!1,u.emit("close")}))}}return d((function(){p=!1})),r.declaration&&(n=r.declaration,s={version:"1.0",encoding:n.encoding||"UTF-8"},n.standalone&&(s.standalone=n.standalone),y({"?xml":{_attr:s}}),c=c.replace("/>","?>")),e&&e.forEach?e.forEach((function(t,r){var n;r+1===e.length&&(n=m),y(t,n)})):y(e,m),u?(u.readable=!0,u):c},e.exports.element=e.exports.Element=function(){var e=Array.prototype.slice.call(arguments),t={_elem:a(e),push:function(e){if(!this.append)throw new Error("not assigned to a parent!");var t=this,r=this._elem.indent;o(this.append,a(e,r,this._elem.icount+(r?1:0)),(function(){t.append(!0)}))},close:function(e){void 0!==e&&this.push(e),this.end&&this.end()}};return t}}).call(this,r(12))},function(e,t){var r={"&":"&",'"':""","'":"'","<":"<",">":">"};e.exports=function(e){return e&&e.replace?e.replace(/([&"<>'])/g,(function(e,t){return r[t]})):e}},function(e,t,r){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),function(e){for(var r in e)t.hasOwnProperty(r)||(t[r]=e[r])}(r(430))},function(e,t,r){"use strict";Object.defineProperty(t,"__esModule",{value:!0});const n=r(23),i=r(22),a=r(2);class o extends n.ActorSparqlSerializeFixedMediaTypes{constructor(e){super(e),this.padding=o.repeat(" ",this.columnWidth)}static repeat(e,t){return new Array(t+1).join(e)}async testHandleChecked(e,t){if(["bindings","quads"].indexOf(e.type)<0)throw new Error("This actor can only handle bindings or quad streams.");return!0}pad(e){return e.length<=this.columnWidth?e+this.padding.slice(e.length):e.slice(0,this.columnWidth-1)+"…"}pushHeader(e,t){const r=t.map(this.pad,this).join(" ");e.push(r+"\n"+o.repeat("-",r.length)+"\n")}async runHandle(e,t,r){const n=new a.Readable;let o;return n._read=()=>{},"bindings"===e.type?(o=e.bindingsStream,this.pushHeader(n,e.variables),o.on("error",e=>n.emit("error",e)),o.on("data",e=>n.push(e.map((e,t)=>this.pad(e?e.value:"")).join(" ")+"\n"))):(o=e.quadStream,this.pushHeader(n,i.QUAD_TERM_NAMES),o.on("error",e=>n.emit("error",e)),o.on("data",e=>n.push(i.getTerms(e).map(e=>this.pad(e.value)).join(" ")+"\n"))),o.on("end",()=>n.push(null)),{data:n}}}t.ActorSparqlSerializeTable=o},function(e,t,r){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),function(e){for(var r in e)t.hasOwnProperty(r)||(t[r]=e[r])}(r(432))},function(e,t,r){"use strict";Object.defineProperty(t,"__esModule",{value:!0});const n=r(26);r(43);const i=r(175);class a extends n.ActorHttp{constructor(e){super(e)}async test(e){if(!(e.context&&e.context.has(t.KEY_CONTEXT_DATETIME)&&e.context.get(t.KEY_CONTEXT_DATETIME)instanceof Date))throw new Error("This actor only handles request with a set valid datetime.");if(e.init&&new Headers(e.init.headers||{}).has("accept-datetime"))throw new Error("The request already has a set datetime.");return!0}async run(e){const r=e.init?Object.assign({},e.init):{},n=r.headers=new Headers(r.headers||{});e.context&&e.context.has(t.KEY_CONTEXT_DATETIME)&&n.append("accept-datetime",e.context.get(t.KEY_CONTEXT_DATETIME).toUTCString());const a={context:e.context,input:e.input,init:r},o=await this.mediatorHttp.mediate(a);if(n.has("accept-datetime")&&o.headers&&!o.headers.has("memento-datetime")){const t=o.headers.has("link")&&i(o.headers.get("link"));if(t&&t.timegate){o.body.cancel();const n={context:e.context,input:t.timegate.url,init:r};return this.mediatorHttp.mediate(n)}}return o}}t.ActorHttpMemento=a,t.KEY_CONTEXT_DATETIME="@comunica/actor-http-memento:datetime"},function(e,t,r){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),function(e){for(var r in e)t.hasOwnProperty(r)||(t[r]=e[r])}(r(434))},function(e,t,r){"use strict";Object.defineProperty(t,"__esModule",{value:!0});const n=r(23);class i extends n.ActorSparqlSerialize{constructor(e){super(e)}async testHandle(e,t,r){if("quads"!==e.type)throw new Error("Actor "+this.name+" can only handle quad streams");const n=(await this.mediatorMediaTypeCombiner.mediate({context:r,mediaTypes:!0})).mediaTypes;if(!(t in n))throw new Error("Actor "+this.name+" can not handle media type "+t+". All available types: "+Object.keys(n));return!0}async runHandle(e,t,r){return(await this.mediatorRdfSerialize.mediate({context:r,handle:{quads:e.quadStream},handleMediaType:t})).handle}async testMediaType(e){return!0}async getMediaTypes(e){return(await this.mediatorMediaTypeCombiner.mediate({context:e,mediaTypes:!0})).mediaTypes}async testMediaTypeFormats(e){return!0}async getMediaTypeFormats(e){return(await this.mediatorMediaTypeFormatCombiner.mediate({context:e,mediaTypeFormats:!0})).mediaTypeFormats}}t.ActorSparqlSerializeRdf=i},function(e,t,r){"use strict";function n(e){for(var r in e)t.hasOwnProperty(r)||(t[r]=e[r])}Object.defineProperty(t,"__esModule",{value:!0}),n(r(436)),n(r(437))},function(e,t,r){"use strict";Object.defineProperty(t,"__esModule",{value:!0});const n=r(26);class i extends n.ActorHttp{constructor(e){super(e)}async test(e){const r=e.context.get(t.KEY_CONTEXT_HTTPPROXYHANDLER);if(!r)throw new Error(`Actor ${this.name} could not find a proxy handler in the context.`);if(!await r.getProxy(e))throw new Error(`Actor ${this.name} could not determine a proxy for the given request.`);return{time:1/0}}async run(e){const r="string"==typeof e.input?e.input:e.input.url,n=e.context.get(t.KEY_CONTEXT_HTTPPROXYHANDLER),i=await this.mediatorHttp.mediate(Object.assign(Object.assign({},await n.getProxy(e)),{context:e.context.delete(t.KEY_CONTEXT_HTTPPROXYHANDLER)}));return i.url=i.headers.get("x-final-url")||r,i}}t.ActorHttpProxy=i,t.KEY_CONTEXT_HTTPPROXYHANDLER="@comunica/actor-http-proxy:httpProxyHandler"},function(e,t,r){"use strict";Object.defineProperty(t,"__esModule",{value:!0});t.ProxyHandlerStatic=class{constructor(e){this.prefixUrl=e}async getProxy(e){return{init:e.init,input:this.modifyInput(e.input)}}modifyInput(e){return"string"==typeof e?this.prefixUrl+e:new Request(this.prefixUrl+e.url,e)}}},function(e,t,r){"use strict";Object.defineProperty(t,"__esModule",{value:!0});const n=r(3);class i extends n.ActorQueryOperationTypedMediated{constructor(e){super(e,"ask")}async testOperation(e,t){return!0}async runOperation(e,t){const r=await this.mediatorQueryOperation.mediate({operation:e.input,context:t}),i=n.ActorQueryOperation.getSafeBindings(r);return{type:"boolean",booleanResult:new Promise((e,t)=>{i.bindingsStream.once("data",()=>{e(!0),i.bindingsStream.close()}),i.bindingsStream.on("end",()=>e(!1)),i.bindingsStream.on("error",t)})}}}t.ActorQueryOperationAsk=i},function(e,t,r){"use strict";Object.defineProperty(t,"__esModule",{value:!0});const n=r(3),i=r(20),a=r(0),o=r(4),s=r(172);class u extends n.ActorQueryOperationTypedMediated{constructor(e){super(e,"service")}async testOperation(e,t){if("NamedNode"!==e.name.termType)throw new Error(`${this.name} can only query services by IRI, while a ${e.name.termType} was given.`);return!0}async runOperation(e,t){const r=e.name.value;let u=(t=t||a.ActionContext({})).delete(i.KEY_CONTEXT_SOURCE).delete(i.KEY_CONTEXT_SOURCES);const c=this.forceSparqlEndpoint?"sparql":"auto";let l;u=u.set(i.KEY_CONTEXT_SOURCES,s.AsyncReiterableArray.fromFixedData([{type:c,value:r}]));try{l=n.ActorQueryOperation.getSafeBindings(await this.mediatorQueryOperation.mediate({operation:e.input,context:u}))}catch(t){if(!e.silent)throw t;l={bindingsStream:new o.SingletonIterator(n.Bindings({})),type:"bindings",variables:[]}}return l}}t.ActorQueryOperationService=u},function(e,t,r){"use strict";Object.defineProperty(t,"__esModule",{value:!0});const n=r(3);class i extends n.ActorQueryOperationTypedMediated{constructor(e){super(e,"slice")}async testOperation(e,t){return!0}async runOperation(e,t){const r=await this.mediatorQueryOperation.mediate({operation:e.input,context:t}),n=this.sliceMetadata(r,e);if("bindings"===r.type){const t=r;return{type:"bindings",bindingsStream:this.sliceStream(t.bindingsStream,e),metadata:n,variables:t.variables}}if("quads"===r.type){const t=r;return{type:"quads",quadStream:this.sliceStream(t.quadStream,e),metadata:n}}throw new Error(`Invalid query output type: Expected 'bindings' or 'quads' but got '${r.type}'`)}sliceStream(e,t){const r=!!t.length||0===t.length;return e.range(t.start,r?t.start+t.length-1:1/0)}sliceMetadata(e,t){const r=!!t.length||0===t.length;return e.metadata?()=>e.metadata().then(e=>{let n=e.totalItems;return isFinite(n)&&(n=Math.max(0,n-t.start),r&&(n=Math.min(n,t.length))),Object.assign({},e,{totalItems:n})}):null}}t.ActorQueryOperationSlice=i},function(e,t,r){"use strict";Object.defineProperty(t,"__esModule",{value:!0});const n=r(3);class i extends n.ActorQueryOperationTypedMediated{constructor(e){super(e,"bgp")}async testOperation(e,t){if(1!==e.patterns.length)throw new Error("Actor "+this.name+" can only operate on BGPs with a single pattern.");return!0}runOperation(e,t){if(t&&t.has(n.KEY_CONTEXT_BGP_PARENTMETADATA)){const e=t.get(n.KEY_CONTEXT_BGP_PARENTMETADATA);t=(t=t.delete(n.KEY_CONTEXT_BGP_PARENTMETADATA)).set(n.KEY_CONTEXT_PATTERN_PARENTMETADATA,e[0])}return this.mediatorQueryOperation.mediate({operation:e.patterns[0],context:t})}}t.ActorQueryOperationBgpSingle=i},function(e,t,r){"use strict";Object.defineProperty(t,"__esModule",{value:!0});const n=r(3),i=r(4),a=r(21),o=r(5),s=r(22);class u extends n.ActorQueryOperationTypedMediated{constructor(e){super(e,"bgp")}static createLeftDeepStream(e,t,r){const n=new i.MultiTransformIterator(e);return n._createTransformer=e=>{const n=t=>t.merge(e);return new a.PromiseProxyIterator(async()=>(await r(u.materializePatterns(t,e))).map(n),{autoStart:!0,maxBufferSize:128})},n}static getCombinedVariables(e){return r(183)([].concat.apply([],e.map(e=>e.variables)))}static getSmallestPatternId(e){let t=-1,r=1/0;for(let n=0;nr*u.getTotalItems(e)).reduce((e,t)=>e+t,0)}static getTotalItems(e){const t=(e||{}).totalItems;return t||0===t?t:1/0}static materializePatterns(e,t){return e.map(e=>u.materializePattern(e,t))}static materializePattern(e,t){const r={};return{pattern:Object.assign(s.mapTerms(e,(e,n)=>{const i=u.materializeTerm(e,t);return e!==i&&(r[n]=e),i}),{type:"pattern",context:e.context}),bindings:r}}static materializeTerm(e,t){if("Variable"===e.termType){const r=t.get(o.termToString(e));if(r)return r}return e}static async hasOneEmptyPatternOutput(e){for(const t of e)if(t.metadata){const e=await t.metadata();if(!u.getTotalItems(e))return!0}return!1}async testOperation(e,t){if(e.patterns.length<2)throw new Error("Actor "+this.name+" can only operate on BGPs with at least two patterns.");return!0}async runOperation(e,t){const r=(await Promise.all(e.patterns.map(e=>this.mediatorQueryOperation.mediate({operation:e,context:t})))).map(n.ActorQueryOperation.getSafeBindings);if(await u.hasOneEmptyPatternOutput(r))return{bindingsStream:new i.EmptyIterator,metadata:()=>Promise.resolve({totalItems:0}),type:"bindings",variables:[]};const a=await Promise.all(r.map(async e=>e.metadata?await e.metadata():{})),o=u.getSmallestPatternId(a);this.logDebug(t,"Smallest pattern: ",{pattern:e.patterns[o],metadata:a[o]});for(let e=0;e{const t={type:"bgp",patterns:e.map(e=>e.pattern)},r=e.map(e=>e.bindings);return n.ActorQueryOperation.getSafeBindings(await this.mediatorQueryOperation.mediate({operation:t,context:h.set(n.KEY_CONTEXT_BGP_PATTERNBINDINGS,r)})).bindingsStream}),variables:u.getCombinedVariables(r),metadata:()=>Promise.resolve({totalItems:u.estimateCombinedTotalItems(a[o],a.slice(o))})}}}t.ActorQueryOperationBgpLeftDeepSmallest=u},function(e,t,r){"use strict";Object.defineProperty(t,"__esModule",{value:!0});const n=r(3),i=r(22),a=r(444);class o extends n.ActorQueryOperationTypedMediated{constructor(e){super(e,"construct")}static getVariables(e){return i.uniqTerms([].concat.apply([],e.map(e=>i.getVariables(i.getTerms(e)))))}async testOperation(e,t){return!0}async runOperation(e,t){const r=o.getVariables(e.template),i={type:"project",input:e.input,variables:r},s=n.ActorQueryOperation.getSafeBindings(await this.mediatorQueryOperation.mediate({operation:i,context:t})),u=new a.BindingsToQuadsIterator(e.template,s.bindingsStream);let c=null;return s.metadata&&(c=()=>s.metadata().then(t=>t?t.totalItems?Object.assign({},t,{totalItems:t.totalItems*e.template.length}):t:null)),{metadata:c,quadStream:u,type:"quads"}}}t.ActorQueryOperationConstruct=o},function(e,t,r){"use strict";Object.defineProperty(t,"__esModule",{value:!0});const n=r(1),i=r(4),a=r(22);class o extends i.MultiTransformIterator{constructor(e,t){super(t),this.template=e,this.blankNodeCounter=0}static bindTerm(e,t){return"Variable"===t.termType?e.get("?"+t.value):t}static bindQuad(e,t){try{return a.mapTerms(t,t=>{const r=o.bindTerm(e,t);if(!r)throw new Error("Unbound term");return r})}catch(e){return null}}static localizeBlankNode(e,t){return"BlankNode"===t.termType?n.blankNode(t.value+e):t}static localizeQuad(e,t){return a.mapTerms(t,t=>o.localizeBlankNode(e,t))}static bindTemplate(e,t,r){return t.map(o.bindQuad.bind(null,e)).filter(e=>!!e).map(o.localizeQuad.bind(null,r))}_createTransformer(e){return new i.ArrayIterator(o.bindTemplate(e,this.template,this.blankNodeCounter++))}}t.BindingsToQuadsIterator=o},function(e,t,r){"use strict";Object.defineProperty(t,"__esModule",{value:!0});const n=r(76),i=r(3),a=r(1),o=r(56);class s extends i.ActorQueryOperationTypedMediated{constructor(e){super(e,"describe")}async testOperation(e,t){return!0}async runOperation(e,t){const r=e.terms.filter(e=>"Variable"!==e.termType).map(e=>{const t=[a.triple(e,a.variable("__predicate"),a.variable("__object"))];t.forEach(e=>e.type="pattern");return{input:{type:"bgp",patterns:t},template:t,type:"construct"}});if(r.length!==e.terms.length){let t=[];e.terms.filter(e=>"Variable"===e.termType).forEach((e,r)=>{const n=[a.triple(e,a.variable("__predicate"+r),a.variable("__object"+r))];n.forEach(e=>e.type="pattern"),t=t.concat(n)}),r.push({input:{type:"join",left:e.input,right:{type:"bgp",patterns:t}},template:t,type:"construct"})}const s=(await Promise.all(r.map(e=>this.mediatorQueryOperation.mediate({operation:e,context:t})))).map(i.ActorQueryOperation.getSafeQuads);return{type:"quads",quadStream:new o.RoundRobinUnionIterator(s.map(e=>e.quadStream)),metadata:()=>Promise.all(s.map(e=>e.metadata).filter(e=>!!e).map(e=>e())).then(n.ActorQueryOperationUnion.unionMetadata)}}}t.ActorQueryOperationDescribeSubject=s},function(e,t,r){"use strict";Object.defineProperty(t,"__esModule",{value:!0});const n=r(3),i=r(56);class a extends n.ActorQueryOperationTypedMediated{constructor(e){super(e,"union")}static unionVariables(e){return r(118).apply({},e)}static unionMetadata(e){let t=0;for(const r of e){if(!r.totalItems||!isFinite(r.totalItems)){t=1/0;break}t+=r.totalItems}return{totalItems:t}}async testOperation(e,t){return!0}async runOperation(e,t){const r=(await Promise.all([this.mediatorQueryOperation.mediate({operation:e.left,context:t}),this.mediatorQueryOperation.mediate({operation:e.right,context:t})])).map(n.ActorQueryOperation.getSafeBindings);return{type:"bindings",bindingsStream:new i.RoundRobinUnionIterator(r.map(e=>e.bindingsStream)),metadata:r[0].metadata&&r[1].metadata?()=>Promise.all([r[0].metadata(),r[1].metadata()]).then(a.unionMetadata):null,variables:a.unionVariables(r.map(e=>e.variables))}}}t.ActorQueryOperationUnion=a},function(e,t,r){"use strict";Object.defineProperty(t,"__esModule",{value:!0});const n=r(77);class i extends n.AbstractBindingsHash{constructor(e){super(e,"distinct")}newHashFilter(e,t){const r={};return i=>{const a=n.AbstractFilterHash.hash(e,t,i);return!(a in r)&&(r[a]=!0)}}}t.ActorQueryOperationDistinctHash=i},function(e,t,r){"use strict";Object.defineProperty(t,"__esModule",{value:!0});const n=r(3),i=r(187);class a extends n.ActorQueryOperationTypedMediated{constructor(e,t){if(super(e,t),!i.AbstractFilterHash.doesHashAlgorithmExist(this.hashAlgorithm))throw new Error("The given hash algorithm is not present in this version of Node: "+this.hashAlgorithm);if(!i.AbstractFilterHash.doesDigestAlgorithmExist(this.digestAlgorithm))throw new Error("The given digest algorithm is not present in this version of Node: "+this.digestAlgorithm)}async testOperation(e,t){return!0}async runOperation(e,t){const r=n.ActorQueryOperation.getSafeBindings(await this.mediatorQueryOperation.mediate({operation:e.input,context:t}));return{type:"bindings",bindingsStream:r.bindingsStream.filter(this.newHashFilter(this.hashAlgorithm,this.digestAlgorithm)),metadata:r.metadata,variables:r.variables}}}t.AbstractBindingsHash=a},function(e,t){ +var n=r(14),i=n.Buffer;function a(e,t){for(var r in e)t[r]=e[r]}function s(e,t,r){return i(e,t,r)}i.from&&i.alloc&&i.allocUnsafe&&i.allocUnsafeSlow?e.exports=n:(a(n,t),t.Buffer=s),s.prototype=Object.create(i.prototype),a(i,s),s.from=function(e,t,r){if("number"==typeof e)throw new TypeError("Argument must not be a number");return i(e,t,r)},s.alloc=function(e,t,r){if("number"!=typeof e)throw new TypeError("Argument must be a number");var n=i(e);return void 0!==t?"string"==typeof r?n.fill(t,r):n.fill(t):n.fill(0),n},s.allocUnsafe=function(e){if("number"!=typeof e)throw new TypeError("Argument must be a number");return i(e)},s.allocUnsafeSlow=function(e){if("number"!=typeof e)throw new TypeError("Argument must be a number");return n.SlowBuffer(e)}},function(e,t,r){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.NamedOperators=t.SetFunctions=t.SetFunction=t.Operators=t.SpecialOperators=t.RegularOperators=t.SpecialOperator=t.RegularOperator=t.decategorize=t.type=t.PrimitiveNumericTypes=t.commonTerms=t.DerivedIntegerTypeURLs=t.NumericTypeURLs=t.DerivedIntegerTypeURL=t.NumericTypeURL=t.make=t.TypeURL=t.EVB_ERR_STR=t.FALSE_STR=t.TRUE_STR=void 0;const n=r(6),i=r(23),a=new n.DataFactory;var s,o,c;t.TRUE_STR='"true"^^xsd:boolean',t.FALSE_STR='"false"^^xsd:boolean',t.EVB_ERR_STR='"not an dateTime"^^xsd:dateTime',function(e){e.XSD_ANY_URI="http://www.w3.org/2001/XMLSchema#anyURI",e.XSD_STRING="http://www.w3.org/2001/XMLSchema#string",e.RDF_LANG_STRING="http://www.w3.org/1999/02/22-rdf-syntax-ns#langString",e.XSD_BOOLEAN="http://www.w3.org/2001/XMLSchema#boolean",e.XSD_DATE_TIME="http://www.w3.org/2001/XMLSchema#dateTime",e.XSD_DATE="http://www.w3.org/2001/XMLSchema#date",e.XSD_INTEGER="http://www.w3.org/2001/XMLSchema#integer",e.XSD_DECIMAL="http://www.w3.org/2001/XMLSchema#decimal",e.XSD_FLOAT="http://www.w3.org/2001/XMLSchema#float",e.XSD_DOUBLE="http://www.w3.org/2001/XMLSchema#double",e.XSD_NON_POSITIVE_INTEGER="http://www.w3.org/2001/XMLSchema#nonPositiveInteger",e.XSD_NEGATIVE_INTEGER="http://www.w3.org/2001/XMLSchema#negativeInteger",e.XSD_LONG="http://www.w3.org/2001/XMLSchema#long",e.XSD_INT="http://www.w3.org/2001/XMLSchema#int",e.XSD_SHORT="http://www.w3.org/2001/XMLSchema#short",e.XSD_BYTE="http://www.w3.org/2001/XMLSchema#byte",e.XSD_NON_NEGATIVE_INTEGER="http://www.w3.org/2001/XMLSchema#nonNegativeInteger",e.XSD_UNSIGNED_LONG="http://www.w3.org/2001/XMLSchema#unsignedLong",e.XSD_UNSIGNED_INT="http://www.w3.org/2001/XMLSchema#unsignedInt",e.XSD_UNSIGNED_SHORT="http://www.w3.org/2001/XMLSchema#unsignedShort",e.XSD_UNSIGNED_BYTE="http://www.w3.org/2001/XMLSchema#unsignedByte",e.XSD_POSITIVE_INTEGER="http://www.w3.org/2001/XMLSchema#positiveInteger",e.XSD_DAYTIME_DURATION="http://www.w3.org/2001/XMLSchema#dayTimeDuration"}(s=t.TypeURL||(t.TypeURL={})),t.make=function(e){return a.namedNode(e)},function(e){e.XSD_INTEGER="http://www.w3.org/2001/XMLSchema#integer",e.XSD_DECIMAL="http://www.w3.org/2001/XMLSchema#decimal",e.XSD_FLOAT="http://www.w3.org/2001/XMLSchema#float",e.XSD_DOUBLE="http://www.w3.org/2001/XMLSchema#double",e.XSD_NON_POSITIVE_INTEGER="http://www.w3.org/2001/XMLSchema#nonPositiveInteger",e.XSD_NEGATIVE_INTEGER="http://www.w3.org/2001/XMLSchema#negativeInteger",e.XSD_LONG="http://www.w3.org/2001/XMLSchema#long",e.XSD_INT="http://www.w3.org/2001/XMLSchema#int",e.XSD_SHORT="http://www.w3.org/2001/XMLSchema#short",e.XSD_BYTE="http://www.w3.org/2001/XMLSchema#byte",e.XSD_NON_NEGATIVE_INTEGER="http://www.w3.org/2001/XMLSchema#nonNegativeInteger",e.XSD_UNSIGNED_LONG="http://www.w3.org/2001/XMLSchema#unsignedLong",e.XSD_UNSIGNED_INT="http://www.w3.org/2001/XMLSchema#unsignedInt",e.XSD_UNSIGNED_SHORT="http://www.w3.org/2001/XMLSchema#unsignedShort",e.XSD_UNSIGNED_BYTE="http://www.w3.org/2001/XMLSchema#unsignedByte",e.XSD_POSITIVE_INTEGER="http://www.w3.org/2001/XMLSchema#positiveInteger"}(o=t.NumericTypeURL||(t.NumericTypeURL={})),function(e){e.XSD_NON_POSITIVE_INTEGER="http://www.w3.org/2001/XMLSchema#nonPositiveInteger",e.XSD_NEGATIVE_INTEGER="http://www.w3.org/2001/XMLSchema#negativeInteger",e.XSD_LONG="http://www.w3.org/2001/XMLSchema#long",e.XSD_INT="http://www.w3.org/2001/XMLSchema#int",e.XSD_SHORT="http://www.w3.org/2001/XMLSchema#short",e.XSD_BYTE="http://www.w3.org/2001/XMLSchema#byte",e.XSD_NON_NEGATIVE_INTEGER="http://www.w3.org/2001/XMLSchema#nonNegativeInteger",e.XSD_UNSIGNED_LONG="http://www.w3.org/2001/XMLSchema#unsignedLong",e.XSD_UNSIGNED_INT="http://www.w3.org/2001/XMLSchema#unsignedInt",e.XSD_UNSIGNED_SHORT="http://www.w3.org/2001/XMLSchema#unsignedShort",e.XSD_UNSIGNED_BYTE="http://www.w3.org/2001/XMLSchema#unsignedByte",e.XSD_POSITIVE_INTEGER="http://www.w3.org/2001/XMLSchema#positiveInteger"}(c=t.DerivedIntegerTypeURL||(t.DerivedIntegerTypeURL={})),t.NumericTypeURLs=i.Set(Object.values(o)),t.DerivedIntegerTypeURLs=i.Set(Object.values(c)),t.commonTerms={true:a.literal("true",a.namedNode(s.XSD_BOOLEAN)),false:a.literal("false",a.namedNode(s.XSD_BOOLEAN))},t.PrimitiveNumericTypes=i.Set(["integer","decimal","float","double"]),t.type=function(e){switch(e){case null:case void 0:case"":case s.XSD_ANY_URI:case s.XSD_STRING:return"string";case s.RDF_LANG_STRING:return"langString";case s.XSD_DATE_TIME:return"date";case s.XSD_BOOLEAN:return"boolean";case s.XSD_DECIMAL:return"decimal";case s.XSD_FLOAT:return"float";case s.XSD_DOUBLE:return"double";case s.XSD_INTEGER:case s.XSD_NON_POSITIVE_INTEGER:case s.XSD_NEGATIVE_INTEGER:case s.XSD_LONG:case s.XSD_INT:case s.XSD_SHORT:case s.XSD_BYTE:case s.XSD_NON_NEGATIVE_INTEGER:case s.XSD_UNSIGNED_LONG:case s.XSD_UNSIGNED_INT:case s.XSD_UNSIGNED_SHORT:case s.XSD_UNSIGNED_BYTE:case s.XSD_POSITIVE_INTEGER:return"integer";default:return"other"}};const u=i.Map([["integer",s.XSD_INTEGER],["float",s.XSD_FLOAT],["double",s.XSD_DOUBLE],["decimal",s.XSD_DECIMAL]]);var l,d,p;t.decategorize=function(e){return u.get(e)},function(e){e.NOT="!",e.UMINUS="UMINUS",e.UPLUS="UPLUS",e.EQUAL="=",e.NOT_EQUAL="!=",e.LT="<",e.GT=">",e.LTE="<=",e.GTE=">=",e.MULTIPLICATION="*",e.DIVISION="/",e.ADDITION="+",e.SUBTRACTION="-",e.IS_IRI="isiri",e.IS_BLANK="isblank",e.IS_LITERAL="isliteral",e.IS_NUMERIC="isnumeric",e.STR="str",e.LANG="lang",e.DATATYPE="datatype",e.STRDT="strdt",e.STRLANG="strlang",e.UUID="uuid",e.STRUUID="struuid",e.STRLEN="strlen",e.SUBSTR="substr",e.UCASE="ucase",e.LCASE="lcase",e.STRSTARTS="strstarts",e.STRENDS="strends",e.CONTAINS="contains",e.STRBEFORE="strbefore",e.STRAFTER="strafter",e.ENCODE_FOR_URI="encode_for_uri",e.LANG_MATCHES="langmatches",e.REGEX="regex",e.REPLACE="replace",e.ABS="abs",e.ROUND="round",e.CEIL="ceil",e.FLOOR="floor",e.RAND="rand",e.YEAR="year",e.MONTH="month",e.DAY="day",e.HOURS="hours",e.MINUTES="minutes",e.SECONDS="seconds",e.TIMEZONE="timezone",e.TZ="tz",e.MD5="md5",e.SHA1="sha1",e.SHA256="sha256",e.SHA384="sha384",e.SHA512="sha512"}(l=t.RegularOperator||(t.RegularOperator={})),function(e){e.BOUND="bound",e.IF="if",e.COALESCE="coalesce",e.LOGICAL_OR="||",e.LOGICAL_AND="&&",e.SAME_TERM="sameterm",e.IN="in",e.NOT_IN="notin",e.CONCAT="concat",e.NOW="now",e.IRI="iri",e.URI="uri",e.BNODE="BNODE"}(d=t.SpecialOperator||(t.SpecialOperator={})),t.RegularOperators=i.Set(Object.values(l)),t.SpecialOperators=i.Set(Object.values(d)),t.Operators=t.RegularOperators.union(t.SpecialOperators),function(e){e.COUNT="count",e.SUM="sum",e.MIN="min",e.MAX="max",e.AVG="avg",e.GROUP_CONCAT="group_concat",e.SAMPLE="sample"}(p=t.SetFunction||(t.SetFunction={})),t.SetFunctions=i.Set(Object.values(p)),t.NamedOperators=i.Set([s.XSD_STRING,s.XSD_FLOAT,s.XSD_DOUBLE,s.XSD_DECIMAL,s.XSD_INTEGER,s.XSD_DATE_TIME,s.XSD_DATE,s.XSD_BOOLEAN])},function(e,t){var r;r=function(){return this}();try{r=r||new Function("return this")()}catch(e){"object"==typeof window&&(r=window)}e.exports=r},function(e,t,r){"use strict";Object.defineProperty(t,"__esModule",{value:!0});const n=r(339);t.collectNamedTerms=n.collectNamedTerms,t.everyTerms=n.everyTerms,t.filterQuadTermNames=n.filterQuadTermNames,t.filterTerms=n.filterTerms,t.forEachTerms=n.forEachTerms,t.getNamedTerms=n.getNamedTerms,t.getTerms=n.getTerms,t.getTermsNested=n.getTermsNested,t.mapTerms=n.mapTerms,t.matchPattern=n.matchPattern,t.matchPatternComplete=n.matchPatternComplete,t.QUAD_TERM_NAMES=n.QUAD_TERM_NAMES,t.reduceTerms=n.reduceTerms,t.someTerms=n.someTerms,t.TRIPLE_TERM_NAMES=n.TRIPLE_TERM_NAMES;const i=r(340);t.getBlankNodes=i.getBlankNodes,t.getDefaultGraphs=i.getDefaultGraphs,t.getLiterals=i.getLiterals,t.getNamedNodes=i.getNamedNodes,t.getTermsOfType=i.getTermsOfType,t.getVariables=i.getVariables,t.TERM_TYPES=i.TERM_TYPES,t.uniqTerms=i.uniqTerms},function(e,t,r){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.NoExistenceHook=t.NoAggregator=t.UnknownNamedOperator=t.UnknownOperator=t.InvalidTermType=t.InvalidExpressionType=t.InvalidExpression=t.InvalidArity=t.UnimplementedError=t.UnexpectedError=t.EmptyAggregateError=t.IncompatibleLanguageOperation=t.InvalidTimezoneCall=t.CastError=t.InvalidArgumentTypes=t.InError=t.CoalesceError=t.RDFEqualTypeError=t.EBVCoercionError=t.UnboundVariableError=t.InvalidLexicalForm=t.isExpressionError=t.ExpressionError=void 0;class n extends Error{}t.ExpressionError=n,t.isExpressionError=function(e){return e instanceof n};t.InvalidLexicalForm=class extends n{constructor(e){super(`Invalid lexical form '${f(e)}'`),this.arg=e}};t.UnboundVariableError=class extends n{constructor(e,t){super(`Unbound variable '${f(e)}'`),this.variable=e,this.bindings=t}};t.EBVCoercionError=class extends n{constructor(e){super(`Cannot coerce term to EBV '${f(e)}'`),this.arg=e}};t.RDFEqualTypeError=class extends n{constructor(e){super("Equality test for literals with unsupported datatypes"),this.args=e}};t.CoalesceError=class extends n{constructor(e){super("All COALESCE arguments threw errors"),this.errors=e}};t.InError=class extends n{constructor(e){super("Some argument to IN errorred and none where equal. "+e.map(e=>`(${e.toString()}) `).join("and ")),this.errors=e}};t.InvalidArgumentTypes=class extends n{constructor(e,t){super(`Argument types not valid for operator: '${f(t)}' with '${f(e)}`),this.args=e,this.op=t}};t.CastError=class extends n{constructor(e,t){super(`Invalid cast: '${f(e)}' to '${f(t)}'`),this.arg=e}};t.InvalidTimezoneCall=class extends n{constructor(e){super(`TIMEZONE call on ${e} which has no timezone`),this.dateString=e}};t.IncompatibleLanguageOperation=class extends n{constructor(e,t){super(`Operation on incompatible language literals '${f(e)}' and '${f(t)}'`),this.arg1=e,this.arg2=t}};t.EmptyAggregateError=class extends n{constructor(){super("Empty aggregate expression")}};class i extends Error{constructor(e,t){super(`Programmer Error '${e}'`),this.payload=t}}t.UnexpectedError=i;class a extends Error{constructor(e){super(`Unimplemented feature '${e}!'`)}}t.UnimplementedError=a;class s extends Error{constructor(e,t){super(`The number of args does not match the arity of the operator '${f(t)}'.`),this.args=e,this.op=t}}t.InvalidArity=s;class o extends Error{constructor(e){super(`Invalid SPARQL Expression '${f(e)}'`)}}t.InvalidExpression=o;class c extends Error{constructor(e){super(`Invalid expression type for SPARQL Expression '${f(e)}'`),this.expr=e}}t.InvalidExpressionType=c;class u extends Error{constructor(e){super(`Invalid term type for term '${f(e)}'`),this.term=e}}t.InvalidTermType=u;class l extends Error{constructor(e){super("Unknown operator: '"+f(e))}}t.UnknownOperator=l;class d extends Error{constructor(e){super(`Unknown named operator: '${f(e)}'`)}}t.UnknownNamedOperator=d;class p extends Error{constructor(e){super(`Aggregate expression ${f(e)} found, but no aggregate hook provided.`)}}t.NoAggregator=p;class h extends Error{constructor(){super("EXISTS found, but no existence hook provided.")}}function f(e){return JSON.stringify(e)}t.NoExistenceHook=h},function(e,t,r){"use strict";var n=this&&this.__createBinding||(Object.create?function(e,t,r,n){void 0===n&&(n=r),Object.defineProperty(e,n,{enumerable:!0,get:function(){return t[r]}})}:function(e,t,r,n){void 0===n&&(n=r),e[n]=t[r]}),i=this&&this.__exportStar||function(e,t){for(var r in e)"default"===r||Object.prototype.hasOwnProperty.call(t,r)||n(t,e,r)};Object.defineProperty(t,"__esModule",{value:!0}),i(r(452),t),i(r(453),t)},function(e,t,r){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),function(e){for(var r in e)t.hasOwnProperty(r)||(t[r]=e[r])}(r(217))},function(e,t,r){"use strict";var n=this&&this.__createBinding||(Object.create?function(e,t,r,n){void 0===n&&(n=r),Object.defineProperty(e,n,{enumerable:!0,get:function(){return t[r]}})}:function(e,t,r,n){void 0===n&&(n=r),e[n]=t[r]}),i=this&&this.__exportStar||function(e,t){for(var r in e)"default"===r||Object.prototype.hasOwnProperty.call(t,r)||n(t,e,r)};Object.defineProperty(t,"__esModule",{value:!0}),i(r(129),t),i(r(302),t)},function(e,t,r){e.exports=function(){"use strict";var e=Array.prototype.slice;function t(e,t){t&&(e.prototype=Object.create(t.prototype)),e.prototype.constructor=e}function r(e){return s(e)?e:V(e)}function n(e){return o(e)?e:Q(e)}function i(e){return c(e)?e:H(e)}function a(e){return s(e)&&!u(e)?e:G(e)}function s(e){return!(!e||!e[d])}function o(e){return!(!e||!e[p])}function c(e){return!(!e||!e[h])}function u(e){return o(e)||c(e)}function l(e){return!(!e||!e[f])}t(n,r),t(i,r),t(a,r),r.isIterable=s,r.isKeyed=o,r.isIndexed=c,r.isAssociative=u,r.isOrdered=l,r.Keyed=n,r.Indexed=i,r.Set=a;var d="@@__IMMUTABLE_ITERABLE__@@",p="@@__IMMUTABLE_KEYED__@@",h="@@__IMMUTABLE_INDEXED__@@",f="@@__IMMUTABLE_ORDERED__@@",m={},g={value:!1},y={value:!1};function b(e){return e.value=!1,e}function _(e){e&&(e.value=!0)}function v(){}function w(e,t){t=t||0;for(var r=Math.max(0,e.length-t),n=new Array(r),i=0;i>>0;if(""+r!==t||4294967295===r)return NaN;t=r}return t<0?S(e)+t:t}function T(){return!0}function O(e,t,r){return(0===e||void 0!==r&&e<=-r)&&(void 0===t||void 0!==r&&t>=r)}function x(e,t){return R(e,t,0)}function A(e,t){return R(e,t,t)}function R(e,t,r){return void 0===e?r:e<0?Math.max(0,t+e):void 0===t?e:Math.min(t,e)}var I,P,N,C="function"==typeof Symbol&&Symbol.iterator,j=C||"@@iterator";function D(e){this.next=e}function k(e,t,r,n){var i=0===e?t:1===e?r:[t,r];return n?n.value=i:n={value:i,done:!1},n}function L(){return{value:void 0,done:!0}}function M(e){return!!B(e)}function F(e){return e&&"function"==typeof e.next}function q(e){var t=B(e);return t&&t.call(e)}function B(e){var t=e&&(C&&e[C]||e["@@iterator"]);if("function"==typeof t)return t}function U(e){return e&&"number"==typeof e.length}function V(e){return null==e?W():s(e)?e.toSeq():function(e){var t=ee(e)||"object"==typeof e&&new X(e);if(!t)throw new TypeError("Expected Array or iterable object of values, or keyed object: "+e);return t}(e)}function Q(e){return null==e?W().toKeyedSeq():s(e)?o(e)?e.toSeq():e.fromEntrySeq():K(e)}function H(e){return null==e?W():s(e)?o(e)?e.entrySeq():e.toIndexedSeq():Z(e)}function G(e){return(null==e?W():s(e)?o(e)?e.entrySeq():e:Z(e)).toSetSeq()}function z(e){this._array=e,this.size=e.length}function X(e){var t=Object.keys(e);this._object=e,this._keys=t,this.size=t.length}function $(e){this._iterable=e,this.size=e.length||e.size}function Y(e){this._iterator=e,this._iteratorCache=[]}function J(e){return!(!e||!e["@@__IMMUTABLE_SEQ__@@"])}function W(){return I||(I=new z([]))}function K(e){var t=Array.isArray(e)?new z(e).fromEntrySeq():F(e)?new Y(e).fromEntrySeq():M(e)?new $(e).fromEntrySeq():"object"==typeof e?new X(e):void 0;if(!t)throw new TypeError("Expected Array or iterable object of [k, v] entries, or keyed object: "+e);return t}function Z(e){var t=ee(e);if(!t)throw new TypeError("Expected Array or iterable object of values: "+e);return t}function ee(e){return U(e)?new z(e):F(e)?new Y(e):M(e)?new $(e):void 0}function te(e,t,r,n){var i=e._cache;if(i){for(var a=i.length-1,s=0;s<=a;s++){var o=i[r?a-s:s];if(!1===t(o[1],n?o[0]:s,e))return s+1}return s}return e.__iterateUncached(t,r)}function re(e,t,r,n){var i=e._cache;if(i){var a=i.length-1,s=0;return new D((function(){var e=i[r?a-s:s];return s++>a?{value:void 0,done:!0}:k(t,n?e[0]:s-1,e[1])}))}return e.__iteratorUncached(t,r)}function ne(e,t){return t?function e(t,r,n,i){return Array.isArray(r)?t.call(i,n,H(r).map((function(n,i){return e(t,n,i,r)}))):ae(r)?t.call(i,n,Q(r).map((function(n,i){return e(t,n,i,r)}))):r}(t,e,"",{"":e}):ie(e)}function ie(e){return Array.isArray(e)?H(e).map(ie).toList():ae(e)?Q(e).map(ie).toMap():e}function ae(e){return e&&(e.constructor===Object||void 0===e.constructor)}function se(e,t){if(e===t||e!=e&&t!=t)return!0;if(!e||!t)return!1;if("function"==typeof e.valueOf&&"function"==typeof t.valueOf){if((e=e.valueOf())===(t=t.valueOf())||e!=e&&t!=t)return!0;if(!e||!t)return!1}return!("function"!=typeof e.equals||"function"!=typeof t.equals||!e.equals(t))}function oe(e,t){if(e===t)return!0;if(!s(t)||void 0!==e.size&&void 0!==t.size&&e.size!==t.size||void 0!==e.__hash&&void 0!==t.__hash&&e.__hash!==t.__hash||o(e)!==o(t)||c(e)!==c(t)||l(e)!==l(t))return!1;if(0===e.size&&0===t.size)return!0;var r=!u(e);if(l(e)){var n=e.entries();return t.every((function(e,t){var i=n.next().value;return i&&se(i[1],e)&&(r||se(i[0],t))}))&&n.next().done}var i=!1;if(void 0===e.size)if(void 0===t.size)"function"==typeof e.cacheResult&&e.cacheResult();else{i=!0;var a=e;e=t,t=a}var d=!0,p=t.__iterate((function(t,n){if(r?!e.has(t):i?!se(t,e.get(n,m)):!se(e.get(n,m),t))return d=!1,!1}));return d&&e.size===p}function ce(e,t){if(!(this instanceof ce))return new ce(e,t);if(this._value=e,this.size=void 0===t?1/0:Math.max(0,t),0===this.size){if(P)return P;P=this}}function ue(e,t){if(!e)throw new Error(t)}function le(e,t,r){if(!(this instanceof le))return new le(e,t,r);if(ue(0!==r,"Cannot step a Range by 0"),e=e||0,void 0===t&&(t=1/0),r=void 0===r?1:Math.abs(r),tn?{value:void 0,done:!0}:k(e,i,r[t?n-i++:i++])}))},t(X,Q),X.prototype.get=function(e,t){return void 0===t||this.has(e)?this._object[e]:t},X.prototype.has=function(e){return this._object.hasOwnProperty(e)},X.prototype.__iterate=function(e,t){for(var r=this._object,n=this._keys,i=n.length-1,a=0;a<=i;a++){var s=n[t?i-a:a];if(!1===e(r[s],s,this))return a+1}return a},X.prototype.__iterator=function(e,t){var r=this._object,n=this._keys,i=n.length-1,a=0;return new D((function(){var s=n[t?i-a:a];return a++>i?{value:void 0,done:!0}:k(e,s,r[s])}))},X.prototype[f]=!0,t($,H),$.prototype.__iterateUncached=function(e,t){if(t)return this.cacheResult().__iterate(e,t);var r=q(this._iterable),n=0;if(F(r))for(var i;!(i=r.next()).done&&!1!==e(i.value,n++,this););return n},$.prototype.__iteratorUncached=function(e,t){if(t)return this.cacheResult().__iterator(e,t);var r=q(this._iterable);if(!F(r))return new D(L);var n=0;return new D((function(){var t=r.next();return t.done?t:k(e,n++,t.value)}))},t(Y,H),Y.prototype.__iterateUncached=function(e,t){if(t)return this.cacheResult().__iterate(e,t);for(var r,n=this._iterator,i=this._iteratorCache,a=0;a=n.length){var t=r.next();if(t.done)return t;n[i]=t.value}return k(e,i,n[i++])}))},t(ce,H),ce.prototype.toString=function(){return 0===this.size?"Repeat []":"Repeat [ "+this._value+" "+this.size+" times ]"},ce.prototype.get=function(e,t){return this.has(e)?this._value:t},ce.prototype.includes=function(e){return se(this._value,e)},ce.prototype.slice=function(e,t){var r=this.size;return O(e,t,r)?this:new ce(this._value,A(t,r)-x(e,r))},ce.prototype.reverse=function(){return this},ce.prototype.indexOf=function(e){return se(this._value,e)?0:-1},ce.prototype.lastIndexOf=function(e){return se(this._value,e)?this.size:-1},ce.prototype.__iterate=function(e,t){for(var r=0;r=0&&t=0&&rr?{value:void 0,done:!0}:k(e,a++,s)}))},le.prototype.equals=function(e){return e instanceof le?this._start===e._start&&this._end===e._end&&this._step===e._step:oe(this,e)},t(de,r),t(pe,de),t(he,de),t(fe,de),de.Keyed=pe,de.Indexed=he,de.Set=fe;var me="function"==typeof Math.imul&&-2===Math.imul(4294967295,2)?Math.imul:function(e,t){var r=65535&(e|=0),n=65535&(t|=0);return r*n+((e>>>16)*n+r*(t>>>16)<<16>>>0)|0};function ge(e){return e>>>1&1073741824|3221225471&e}function ye(e){if(!1===e||null==e)return 0;if("function"==typeof e.valueOf&&(!1===(e=e.valueOf())||null==e))return 0;if(!0===e)return 1;var t=typeof e;if("number"===t){if(e!=e||e===1/0)return 0;var r=0|e;for(r!==e&&(r^=4294967295*e);e>4294967295;)r^=e/=4294967295;return ge(r)}if("string"===t)return e.length>Oe?function(e){var t=Re[e];return void 0===t&&(t=be(e),Ae===xe&&(Ae=0,Re={}),Ae++,Re[e]=t),t}(e):be(e);if("function"==typeof e.hashCode)return e.hashCode();if("object"===t)return function(e){var t;if(Se&&void 0!==(t=_e.get(e)))return t;if(void 0!==(t=e[Te]))return t;if(!we){if(void 0!==(t=e.propertyIsEnumerable&&e.propertyIsEnumerable[Te]))return t;if(void 0!==(t=function(e){if(e&&e.nodeType>0)switch(e.nodeType){case 1:return e.uniqueID;case 9:return e.documentElement&&e.documentElement.uniqueID}}(e)))return t}if(t=++Ee,1073741824&Ee&&(Ee=0),Se)_e.set(e,t);else{if(void 0!==ve&&!1===ve(e))throw new Error("Non-extensible objects are not allowed as keys.");if(we)Object.defineProperty(e,Te,{enumerable:!1,configurable:!1,writable:!1,value:t});else if(void 0!==e.propertyIsEnumerable&&e.propertyIsEnumerable===e.constructor.prototype.propertyIsEnumerable)e.propertyIsEnumerable=function(){return this.constructor.prototype.propertyIsEnumerable.apply(this,arguments)},e.propertyIsEnumerable[Te]=t;else{if(void 0===e.nodeType)throw new Error("Unable to set a non-enumerable property on object.");e[Te]=t}}return t}(e);if("function"==typeof e.toString)return be(e.toString());throw new Error("Value type "+t+" cannot be hashed.")}function be(e){for(var t=0,r=0;r=t.length)throw new Error("Missing value for key: "+t[r]);e.set(t[r],t[r+1])}}))},Pe.prototype.toString=function(){return this.__toString("Map {","}")},Pe.prototype.get=function(e,t){return this._root?this._root.get(0,void 0,e,t):t},Pe.prototype.set=function(e,t){return Ge(this,e,t)},Pe.prototype.setIn=function(e,t){return this.updateIn(e,m,(function(){return t}))},Pe.prototype.remove=function(e){return Ge(this,e,m)},Pe.prototype.deleteIn=function(e){return this.updateIn(e,(function(){return m}))},Pe.prototype.update=function(e,t,r){return 1===arguments.length?e(this):this.updateIn([e],t,r)},Pe.prototype.updateIn=function(e,t,r){r||(r=t,t=void 0);var n=function e(t,r,n,i){var a=t===m,s=r.next();if(s.done){var o=a?n:t,c=i(o);return c===o?t:c}ue(a||t&&t.set,"invalid keyPath");var u=s.value,l=a?m:t.get(u,m),d=e(l,r,n,i);return d===l?t:d===m?t.remove(u):(a?He():t).set(u,d)}(this,Yt(e),t,r);return n===m?void 0:n},Pe.prototype.clear=function(){return 0===this.size?this:this.__ownerID?(this.size=0,this._root=null,this.__hash=void 0,this.__altered=!0,this):He()},Pe.prototype.merge=function(){return Ye(this,void 0,arguments)},Pe.prototype.mergeWith=function(t){var r=e.call(arguments,1);return Ye(this,t,r)},Pe.prototype.mergeIn=function(t){var r=e.call(arguments,1);return this.updateIn(t,He(),(function(e){return"function"==typeof e.merge?e.merge.apply(e,r):r[r.length-1]}))},Pe.prototype.mergeDeep=function(){return Ye(this,Je,arguments)},Pe.prototype.mergeDeepWith=function(t){var r=e.call(arguments,1);return Ye(this,We(t),r)},Pe.prototype.mergeDeepIn=function(t){var r=e.call(arguments,1);return this.updateIn(t,He(),(function(e){return"function"==typeof e.mergeDeep?e.mergeDeep.apply(e,r):r[r.length-1]}))},Pe.prototype.sort=function(e){return wt(Ft(this,e))},Pe.prototype.sortBy=function(e,t){return wt(Ft(this,t,e))},Pe.prototype.withMutations=function(e){var t=this.asMutable();return e(t),t.wasAltered()?t.__ensureOwner(this.__ownerID):this},Pe.prototype.asMutable=function(){return this.__ownerID?this:this.__ensureOwner(new v)},Pe.prototype.asImmutable=function(){return this.__ensureOwner()},Pe.prototype.wasAltered=function(){return this.__altered},Pe.prototype.__iterator=function(e,t){return new Be(this,e,t)},Pe.prototype.__iterate=function(e,t){var r=this,n=0;return this._root&&this._root.iterate((function(t){return n++,e(t[1],t[0],r)}),t),n},Pe.prototype.__ensureOwner=function(e){return e===this.__ownerID?this:e?Qe(this.size,this._root,e,this.__hash):(this.__ownerID=e,this.__altered=!1,this)},Pe.isMap=Ne;var Ce,je="@@__IMMUTABLE_MAP__@@",De=Pe.prototype;function ke(e,t){this.ownerID=e,this.entries=t}function Le(e,t,r){this.ownerID=e,this.bitmap=t,this.nodes=r}function Me(e,t,r){this.ownerID=e,this.count=t,this.nodes=r}function Fe(e,t,r){this.ownerID=e,this.keyHash=t,this.entries=r}function qe(e,t,r){this.ownerID=e,this.keyHash=t,this.entry=r}function Be(e,t,r){this._type=t,this._reverse=r,this._stack=e._root&&Ve(e._root)}function Ue(e,t){return k(e,t[0],t[1])}function Ve(e,t){return{node:e,index:0,__prev:t}}function Qe(e,t,r,n){var i=Object.create(De);return i.size=e,i._root=t,i.__ownerID=r,i.__hash=n,i.__altered=!1,i}function He(){return Ce||(Ce=Qe(0))}function Ge(e,t,r){var n,i;if(e._root){var a=b(g),s=b(y);if(n=ze(e._root,e.__ownerID,0,void 0,t,r,a,s),!s.value)return e;i=e.size+(a.value?r===m?-1:1:0)}else{if(r===m)return e;i=1,n=new ke(e.__ownerID,[[t,r]])}return e.__ownerID?(e.size=i,e._root=n,e.__hash=void 0,e.__altered=!0,e):n?Qe(i,n):He()}function ze(e,t,r,n,i,a,s,o){return e?e.update(t,r,n,i,a,s,o):a===m?e:(_(o),_(s),new qe(t,n,[i,a]))}function Xe(e){return e.constructor===qe||e.constructor===Fe}function $e(e,t,r,n,i){if(e.keyHash===n)return new Fe(t,n,[e.entry,i]);var a,s=31&(0===r?e.keyHash:e.keyHash>>>r),o=31&(0===r?n:n>>>r);return new Le(t,1<>1&1431655765))+(e>>2&858993459))+(e>>4)&252645135,e+=e>>8,127&(e+=e>>16)}function et(e,t,r,n){var i=n?e:w(e);return i[t]=r,i}De[je]=!0,De.delete=De.remove,De.removeIn=De.deleteIn,ke.prototype.get=function(e,t,r,n){for(var i=this.entries,a=0,s=i.length;a=tt)return function(e,t,r,n){e||(e=new v);for(var i=new qe(e,ye(r),[r,n]),a=0;a>>e)),a=this.bitmap;return 0==(a&i)?n:this.nodes[Ze(a&i-1)].get(e+5,t,r,n)},Le.prototype.update=function(e,t,r,n,i,a,s){void 0===r&&(r=ye(n));var o=31&(0===t?r:r>>>t),c=1<=rt)return function(e,t,r,n,i){for(var a=0,s=new Array(32),o=0;0!==r;o++,r>>>=1)s[o]=1&r?t[a++]:void 0;return s[n]=i,new Me(e,a+1,s)}(e,p,u,o,f);if(l&&!f&&2===p.length&&Xe(p[1^d]))return p[1^d];if(l&&f&&1===p.length&&Xe(f))return f;var g=e&&e===this.ownerID,y=l?f?u:u^c:u|c,b=l?f?et(p,d,f,g):function(e,t,r){var n=e.length-1;if(r&&t===n)return e.pop(),e;for(var i=new Array(n),a=0,s=0;s>>e),a=this.nodes[i];return a?a.get(e+5,t,r,n):n},Me.prototype.update=function(e,t,r,n,i,a,s){void 0===r&&(r=ye(n));var o=31&(0===t?r:r>>>t),c=i===m,u=this.nodes,l=u[o];if(c&&!l)return this;var d=ze(l,e,t+5,r,n,i,a,s);if(d===l)return this;var p=this.count;if(l){if(!d&&--p0&&n<32?ht(0,n,5,null,new ct(r.toArray())):t.withMutations((function(e){e.setSize(n),r.forEach((function(t,r){return e.set(r,t)}))})))}function at(e){return!(!e||!e[st])}t(it,he),it.of=function(){return this(arguments)},it.prototype.toString=function(){return this.__toString("List [","]")},it.prototype.get=function(e,t){if((e=E(this,e))>=0&&e=e.size||t<0)return e.withMutations((function(e){t<0?bt(e,t).set(0,r):bt(e,0,t+1).set(t,r)}));t+=e._origin;var n=e._tail,i=e._root,a=b(y);return t>=vt(e._capacity)?n=mt(n,e.__ownerID,0,t,r,a):i=mt(i,e.__ownerID,e._level,t,r,a),a.value?e.__ownerID?(e._root=i,e._tail=n,e.__hash=void 0,e.__altered=!0,e):ht(e._origin,e._capacity,e._level,i,n):e}(this,e,t)},it.prototype.remove=function(e){return this.has(e)?0===e?this.shift():e===this.size-1?this.pop():this.splice(e,1):this},it.prototype.insert=function(e,t){return this.splice(e,0,t)},it.prototype.clear=function(){return 0===this.size?this:this.__ownerID?(this.size=this._origin=this._capacity=0,this._level=5,this._root=this._tail=null,this.__hash=void 0,this.__altered=!0,this):ft()},it.prototype.push=function(){var e=arguments,t=this.size;return this.withMutations((function(r){bt(r,0,t+e.length);for(var n=0;n>>t&31;if(n>=this.array.length)return new ct([],e);var i,a=0===n;if(t>0){var s=this.array[n];if((i=s&&s.removeBefore(e,t-5,r))===s&&a)return this}if(a&&!i)return this;var o=gt(this,e);if(!a)for(var c=0;c>>t&31;if(i>=this.array.length)return this;if(t>0){var a=this.array[i];if((n=a&&a.removeAfter(e,t-5,r))===a&&i===this.array.length-1)return this}var s=gt(this,e);return s.array.splice(i+1),n&&(s.array[i]=n),s};var ut,lt,dt={};function pt(e,t){var r=e._origin,n=e._capacity,i=vt(n),a=e._tail;return s(e._root,e._level,0);function s(e,o,c){return 0===o?function(e,s){var o=s===i?a&&a.array:e&&e.array,c=s>r?0:r-s,u=n-s;return u>32&&(u=32),function(){if(c===u)return dt;var e=t?--u:c++;return o&&o[e]}}(e,c):function(e,i,a){var o,c=e&&e.array,u=a>r?0:r-a>>i,l=1+(n-a>>i);return l>32&&(l=32),function(){for(;;){if(o){var e=o();if(e!==dt)return e;o=null}if(u===l)return dt;var r=t?--l:u++;o=s(c&&c[r],i-5,a+(r<>>r&31,c=e&&o0){var u=e&&e.array[o],l=mt(u,t,r-5,n,i,a);return l===u?e:((s=gt(e,t)).array[o]=l,s)}return c&&e.array[o]===i?e:(_(a),s=gt(e,t),void 0===i&&o===s.array.length-1?s.array.pop():s.array[o]=i,s)}function gt(e,t){return t&&e&&t===e.ownerID?e:new ct(e?e.array.slice():[],t)}function yt(e,t){if(t>=vt(e._capacity))return e._tail;if(t<1<0;)r=r.array[t>>>n&31],n-=5;return r}}function bt(e,t,r){void 0!==t&&(t|=0),void 0!==r&&(r|=0);var n=e.__ownerID||new v,i=e._origin,a=e._capacity,s=i+t,o=void 0===r?a:r<0?a+r:i+r;if(s===i&&o===a)return e;if(s>=o)return e.clear();for(var c=e._level,u=e._root,l=0;s+l<0;)u=new ct(u&&u.array.length?[void 0,u]:[],n),l+=1<<(c+=5);l&&(s+=l,i+=l,o+=l,a+=l);for(var d=vt(a),p=vt(o);p>=1<d?new ct([],n):h;if(h&&p>d&&s5;g-=5){var y=d>>>g&31;m=m.array[y]=gt(m.array[y],n)}m.array[d>>>5&31]=h}if(o=p)s-=p,o-=p,c=5,u=null,f=f&&f.removeBefore(n,0,s);else if(s>i||p>>c&31;if(b!==p>>>c&31)break;b&&(l+=(1<i&&(u=u.removeBefore(n,c,s-l)),u&&pa&&(a=u.size),s(c)||(u=u.map((function(e){return ne(e)}))),n.push(u)}return a>e.size&&(e=e.setSize(a)),Ke(e,t,n)}function vt(e){return e<32?0:e-1>>>5<<5}function wt(e){return null==e?Tt():St(e)?e:Tt().withMutations((function(t){var r=n(e);Ie(r.size),r.forEach((function(e,r){return t.set(r,e)}))}))}function St(e){return Ne(e)&&l(e)}function Et(e,t,r,n){var i=Object.create(wt.prototype);return i.size=e?e.size:0,i._map=e,i._list=t,i.__ownerID=r,i.__hash=n,i}function Tt(){return lt||(lt=Et(He(),ft()))}function Ot(e,t,r){var n,i,a=e._map,s=e._list,o=a.get(t),c=void 0!==o;if(r===m){if(!c)return e;s.size>=32&&s.size>=2*a.size?(n=(i=s.filter((function(e,t){return void 0!==e&&o!==t}))).toKeyedSeq().map((function(e){return e[0]})).flip().toMap(),e.__ownerID&&(n.__ownerID=i.__ownerID=e.__ownerID)):(n=a.remove(t),i=o===s.size-1?s.pop():s.set(o,void 0))}else if(c){if(r===s.get(o)[1])return e;n=a,i=s.set(o,[t,r])}else n=a.set(t,s.size),i=s.set(s.size,[t,r]);return e.__ownerID?(e.size=n.size,e._map=n,e._list=i,e.__hash=void 0,e):Et(n,i)}function xt(e,t){this._iter=e,this._useKeys=t,this.size=e.size}function At(e){this._iter=e,this.size=e.size}function Rt(e){this._iter=e,this.size=e.size}function It(e){this._iter=e,this.size=e.size}function Pt(e){var t=zt(e);return t._iter=e,t.size=e.size,t.flip=function(){return e},t.reverse=function(){var t=e.reverse.apply(this);return t.flip=function(){return e.reverse()},t},t.has=function(t){return e.includes(t)},t.includes=function(t){return e.has(t)},t.cacheResult=Xt,t.__iterateUncached=function(t,r){var n=this;return e.__iterate((function(e,r){return!1!==t(r,e,n)}),r)},t.__iteratorUncached=function(t,r){if(2===t){var n=e.__iterator(t,r);return new D((function(){var e=n.next();if(!e.done){var t=e.value[0];e.value[0]=e.value[1],e.value[1]=t}return e}))}return e.__iterator(1===t?0:1,r)},t}function Nt(e,t,r){var n=zt(e);return n.size=e.size,n.has=function(t){return e.has(t)},n.get=function(n,i){var a=e.get(n,m);return a===m?i:t.call(r,a,n,e)},n.__iterateUncached=function(n,i){var a=this;return e.__iterate((function(e,i,s){return!1!==n(t.call(r,e,i,s),i,a)}),i)},n.__iteratorUncached=function(n,i){var a=e.__iterator(2,i);return new D((function(){var i=a.next();if(i.done)return i;var s=i.value,o=s[0];return k(n,o,t.call(r,s[1],o,e),i)}))},n}function Ct(e,t){var r=zt(e);return r._iter=e,r.size=e.size,r.reverse=function(){return e},e.flip&&(r.flip=function(){var t=Pt(e);return t.reverse=function(){return e.flip()},t}),r.get=function(r,n){return e.get(t?r:-1-r,n)},r.has=function(r){return e.has(t?r:-1-r)},r.includes=function(t){return e.includes(t)},r.cacheResult=Xt,r.__iterate=function(t,r){var n=this;return e.__iterate((function(e,r){return t(e,r,n)}),!r)},r.__iterator=function(t,r){return e.__iterator(t,!r)},r}function jt(e,t,r,n){var i=zt(e);return n&&(i.has=function(n){var i=e.get(n,m);return i!==m&&!!t.call(r,i,n,e)},i.get=function(n,i){var a=e.get(n,m);return a!==m&&t.call(r,a,n,e)?a:i}),i.__iterateUncached=function(i,a){var s=this,o=0;return e.__iterate((function(e,a,c){if(t.call(r,e,a,c))return o++,i(e,n?a:o-1,s)}),a),o},i.__iteratorUncached=function(i,a){var s=e.__iterator(2,a),o=0;return new D((function(){for(;;){var a=s.next();if(a.done)return a;var c=a.value,u=c[0],l=c[1];if(t.call(r,l,u,e))return k(i,n?u:o++,l,a)}}))},i}function Dt(e,t,r,n){var i=e.size;if(void 0!==t&&(t|=0),void 0!==r&&(r===1/0?r=i:r|=0),O(t,r,i))return e;var a=x(t,i),s=A(r,i);if(a!=a||s!=s)return Dt(e.toSeq().cacheResult(),t,r,n);var o,c=s-a;c==c&&(o=c<0?0:c);var u=zt(e);return u.size=0===o?o:e.size&&o||void 0,!n&&J(e)&&o>=0&&(u.get=function(t,r){return(t=E(this,t))>=0&&to)return{value:void 0,done:!0};var e=i.next();return n||1===t?e:k(t,c-1,0===t?void 0:e.value[1],e)}))},u}function kt(e,t,r,n){var i=zt(e);return i.__iterateUncached=function(i,a){var s=this;if(a)return this.cacheResult().__iterate(i,a);var o=!0,c=0;return e.__iterate((function(e,a,u){if(!o||!(o=t.call(r,e,a,u)))return c++,i(e,n?a:c-1,s)})),c},i.__iteratorUncached=function(i,a){var s=this;if(a)return this.cacheResult().__iterator(i,a);var o=e.__iterator(2,a),c=!0,u=0;return new D((function(){var e,a,l;do{if((e=o.next()).done)return n||1===i?e:k(i,u++,0===i?void 0:e.value[1],e);var d=e.value;a=d[0],l=d[1],c&&(c=t.call(r,l,a,s))}while(c);return 2===i?e:k(i,a,l,e)}))},i}function Lt(e,t){var r=o(e),i=[e].concat(t).map((function(e){return s(e)?r&&(e=n(e)):e=r?K(e):Z(Array.isArray(e)?e:[e]),e})).filter((function(e){return 0!==e.size}));if(0===i.length)return e;if(1===i.length){var a=i[0];if(a===e||r&&o(a)||c(e)&&c(a))return a}var u=new z(i);return r?u=u.toKeyedSeq():c(e)||(u=u.toSetSeq()),(u=u.flatten(!0)).size=i.reduce((function(e,t){if(void 0!==e){var r=t.size;if(void 0!==r)return e+r}}),0),u}function Mt(e,t,r){var n=zt(e);return n.__iterateUncached=function(n,i){var a=0,o=!1;return function e(c,u){var l=this;c.__iterate((function(i,c){return(!t||u0}function Ut(e,t,n){var i=zt(e);return i.size=new z(n).map((function(e){return e.size})).min(),i.__iterate=function(e,t){for(var r,n=this.__iterator(1,t),i=0;!(r=n.next()).done&&!1!==e(r.value,i++,this););return i},i.__iteratorUncached=function(e,i){var a=n.map((function(e){return e=r(e),q(i?e.reverse():e)})),s=0,o=!1;return new D((function(){var r;return o||(r=a.map((function(e){return e.next()})),o=r.some((function(e){return e.done}))),o?{value:void 0,done:!0}:k(e,s++,t.apply(null,r.map((function(e){return e.value}))))}))},i}function Vt(e,t){return J(e)?t:e.constructor(t)}function Qt(e){if(e!==Object(e))throw new TypeError("Expected [K, V] tuple: "+e)}function Ht(e){return Ie(e.size),S(e)}function Gt(e){return o(e)?n:c(e)?i:a}function zt(e){return Object.create((o(e)?Q:c(e)?H:G).prototype)}function Xt(){return this._iter.cacheResult?(this._iter.cacheResult(),this.size=this._iter.size,this):V.prototype.cacheResult.call(this)}function $t(e,t){return e>t?1:e=0;r--)t={value:arguments[r],next:t};return this.__ownerID?(this.size=e,this._head=t,this.__hash=void 0,this.__altered=!0,this):vr(e,t)},mr.prototype.pushAll=function(e){if(0===(e=i(e)).size)return this;Ie(e.size);var t=this.size,r=this._head;return e.reverse().forEach((function(e){t++,r={value:e,next:r}})),this.__ownerID?(this.size=t,this._head=r,this.__hash=void 0,this.__altered=!0,this):vr(t,r)},mr.prototype.pop=function(){return this.slice(1)},mr.prototype.unshift=function(){return this.push.apply(this,arguments)},mr.prototype.unshiftAll=function(e){return this.pushAll(e)},mr.prototype.shift=function(){return this.pop.apply(this,arguments)},mr.prototype.clear=function(){return 0===this.size?this:this.__ownerID?(this.size=0,this._head=void 0,this.__hash=void 0,this.__altered=!0,this):wr()},mr.prototype.slice=function(e,t){if(O(e,t,this.size))return this;var r=x(e,this.size);if(A(t,this.size)!==this.size)return he.prototype.slice.call(this,e,t);for(var n=this.size-r,i=this._head;r--;)i=i.next;return this.__ownerID?(this.size=n,this._head=i,this.__hash=void 0,this.__altered=!0,this):vr(n,i)},mr.prototype.__ensureOwner=function(e){return e===this.__ownerID?this:e?vr(this.size,this._head,e,this.__hash):(this.__ownerID=e,this.__altered=!1,this)},mr.prototype.__iterate=function(e,t){if(t)return this.reverse().__iterate(e);for(var r=0,n=this._head;n&&!1!==e(n.value,r++,this);)n=n.next;return r},mr.prototype.__iterator=function(e,t){if(t)return this.reverse().__iterator(e);var r=0,n=this._head;return new D((function(){if(n){var t=n.value;return n=n.next,k(e,r++,t)}return{value:void 0,done:!0}}))},mr.isStack=gr;var yr,br="@@__IMMUTABLE_STACK__@@",_r=mr.prototype;function vr(e,t,r,n){var i=Object.create(_r);return i.size=e,i._head=t,i.__ownerID=r,i.__hash=n,i.__altered=!1,i}function wr(){return yr||(yr=vr(0))}function Sr(e,t){var r=function(r){e.prototype[r]=t[r]};return Object.keys(t).forEach(r),Object.getOwnPropertySymbols&&Object.getOwnPropertySymbols(t).forEach(r),e}_r[br]=!0,_r.withMutations=De.withMutations,_r.asMutable=De.asMutable,_r.asImmutable=De.asImmutable,_r.wasAltered=De.wasAltered,r.Iterator=D,Sr(r,{toArray:function(){Ie(this.size);var e=new Array(this.size||0);return this.valueSeq().__iterate((function(t,r){e[r]=t})),e},toIndexedSeq:function(){return new At(this)},toJS:function(){return this.toSeq().map((function(e){return e&&"function"==typeof e.toJS?e.toJS():e})).__toJS()},toJSON:function(){return this.toSeq().map((function(e){return e&&"function"==typeof e.toJSON?e.toJSON():e})).__toJS()},toKeyedSeq:function(){return new xt(this,!0)},toMap:function(){return Pe(this.toKeyedSeq())},toObject:function(){Ie(this.size);var e={};return this.__iterate((function(t,r){e[r]=t})),e},toOrderedMap:function(){return wt(this.toKeyedSeq())},toOrderedSet:function(){return ur(o(this)?this.valueSeq():this)},toSet:function(){return tr(o(this)?this.valueSeq():this)},toSetSeq:function(){return new Rt(this)},toSeq:function(){return c(this)?this.toIndexedSeq():o(this)?this.toKeyedSeq():this.toSetSeq()},toStack:function(){return mr(o(this)?this.valueSeq():this)},toList:function(){return it(o(this)?this.valueSeq():this)},toString:function(){return"[Iterable]"},__toString:function(e,t){return 0===this.size?e+t:e+" "+this.toSeq().map(this.__toStringMapper).join(", ")+" "+t},concat:function(){var t=e.call(arguments,0);return Vt(this,Lt(this,t))},includes:function(e){return this.some((function(t){return se(t,e)}))},entries:function(){return this.__iterator(2)},every:function(e,t){Ie(this.size);var r=!0;return this.__iterate((function(n,i,a){if(!e.call(t,n,i,a))return r=!1,!1})),r},filter:function(e,t){return Vt(this,jt(this,e,t,!0))},find:function(e,t,r){var n=this.findEntry(e,t);return n?n[1]:r},forEach:function(e,t){return Ie(this.size),this.__iterate(t?e.bind(t):e)},join:function(e){Ie(this.size),e=void 0!==e?""+e:",";var t="",r=!0;return this.__iterate((function(n){r?r=!1:t+=e,t+=null!=n?n.toString():""})),t},keys:function(){return this.__iterator(0)},map:function(e,t){return Vt(this,Nt(this,e,t))},reduce:function(e,t,r){var n,i;return Ie(this.size),arguments.length<2?i=!0:n=t,this.__iterate((function(t,a,s){i?(i=!1,n=t):n=e.call(r,n,t,a,s)})),n},reduceRight:function(e,t,r){var n=this.toKeyedSeq().reverse();return n.reduce.apply(n,arguments)},reverse:function(){return Vt(this,Ct(this,!0))},slice:function(e,t){return Vt(this,Dt(this,e,t,!0))},some:function(e,t){return!this.every(Ar(e),t)},sort:function(e){return Vt(this,Ft(this,e))},values:function(){return this.__iterator(1)},butLast:function(){return this.slice(0,-1)},isEmpty:function(){return void 0!==this.size?0===this.size:!this.some((function(){return!0}))},count:function(e,t){return S(e?this.toSeq().filter(e,t):this)},countBy:function(e,t){return function(e,t,r){var n=Pe().asMutable();return e.__iterate((function(i,a){n.update(t.call(r,i,a,e),0,(function(e){return e+1}))})),n.asImmutable()}(this,e,t)},equals:function(e){return oe(this,e)},entrySeq:function(){var e=this;if(e._cache)return new z(e._cache);var t=e.toSeq().map(xr).toIndexedSeq();return t.fromEntrySeq=function(){return e.toSeq()},t},filterNot:function(e,t){return this.filter(Ar(e),t)},findEntry:function(e,t,r){var n=r;return this.__iterate((function(r,i,a){if(e.call(t,r,i,a))return n=[i,r],!1})),n},findKey:function(e,t){var r=this.findEntry(e,t);return r&&r[0]},findLast:function(e,t,r){return this.toKeyedSeq().reverse().find(e,t,r)},findLastEntry:function(e,t,r){return this.toKeyedSeq().reverse().findEntry(e,t,r)},findLastKey:function(e,t){return this.toKeyedSeq().reverse().findKey(e,t)},first:function(){return this.find(T)},flatMap:function(e,t){return Vt(this,function(e,t,r){var n=Gt(e);return e.toSeq().map((function(i,a){return n(t.call(r,i,a,e))})).flatten(!0)}(this,e,t))},flatten:function(e){return Vt(this,Mt(this,e,!0))},fromEntrySeq:function(){return new It(this)},get:function(e,t){return this.find((function(t,r){return se(r,e)}),void 0,t)},getIn:function(e,t){for(var r,n=this,i=Yt(e);!(r=i.next()).done;){var a=r.value;if((n=n&&n.get?n.get(a,m):m)===m)return t}return n},groupBy:function(e,t){return function(e,t,r){var n=o(e),i=(l(e)?wt():Pe()).asMutable();e.__iterate((function(a,s){i.update(t.call(r,a,s,e),(function(e){return(e=e||[]).push(n?[s,a]:a),e}))}));var a=Gt(e);return i.map((function(t){return Vt(e,a(t))}))}(this,e,t)},has:function(e){return this.get(e,m)!==m},hasIn:function(e){return this.getIn(e,m)!==m},isSubset:function(e){return e="function"==typeof e.includes?e:r(e),this.every((function(t){return e.includes(t)}))},isSuperset:function(e){return(e="function"==typeof e.isSubset?e:r(e)).isSubset(this)},keyOf:function(e){return this.findKey((function(t){return se(t,e)}))},keySeq:function(){return this.toSeq().map(Or).toIndexedSeq()},last:function(){return this.toSeq().reverse().first()},lastKeyOf:function(e){return this.toKeyedSeq().reverse().keyOf(e)},max:function(e){return qt(this,e)},maxBy:function(e,t){return qt(this,t,e)},min:function(e){return qt(this,e?Rr(e):Nr)},minBy:function(e,t){return qt(this,t?Rr(t):Nr,e)},rest:function(){return this.slice(1)},skip:function(e){return this.slice(Math.max(0,e))},skipLast:function(e){return Vt(this,this.toSeq().reverse().skip(e).reverse())},skipWhile:function(e,t){return Vt(this,kt(this,e,t,!0))},skipUntil:function(e,t){return this.skipWhile(Ar(e),t)},sortBy:function(e,t){return Vt(this,Ft(this,t,e))},take:function(e){return this.slice(0,Math.max(0,e))},takeLast:function(e){return Vt(this,this.toSeq().reverse().take(e).reverse())},takeWhile:function(e,t){return Vt(this,function(e,t,r){var n=zt(e);return n.__iterateUncached=function(n,i){var a=this;if(i)return this.cacheResult().__iterate(n,i);var s=0;return e.__iterate((function(e,i,o){return t.call(r,e,i,o)&&++s&&n(e,i,a)})),s},n.__iteratorUncached=function(n,i){var a=this;if(i)return this.cacheResult().__iterator(n,i);var s=e.__iterator(2,i),o=!0;return new D((function(){if(!o)return{value:void 0,done:!0};var e=s.next();if(e.done)return e;var i=e.value,c=i[0],u=i[1];return t.call(r,u,c,a)?2===n?e:k(n,c,u,e):(o=!1,{value:void 0,done:!0})}))},n}(this,e,t))},takeUntil:function(e,t){return this.takeWhile(Ar(e),t)},valueSeq:function(){return this.toIndexedSeq()},hashCode:function(){return this.__hash||(this.__hash=function(e){if(e.size===1/0)return 0;var t=l(e),r=o(e),n=t?1:0;return function(e,t){return t=me(t,3432918353),t=me(t<<15|t>>>-15,461845907),t=me(t<<13|t>>>-13,5),t=me((t=(t+3864292196|0)^e)^t>>>16,2246822507),t=ge((t=me(t^t>>>13,3266489909))^t>>>16)}(e.__iterate(r?t?function(e,t){n=31*n+Cr(ye(e),ye(t))|0}:function(e,t){n=n+Cr(ye(e),ye(t))|0}:t?function(e){n=31*n+ye(e)|0}:function(e){n=n+ye(e)|0}),n)}(this))}});var Er=r.prototype;Er[d]=!0,Er[j]=Er.values,Er.__toJS=Er.toArray,Er.__toStringMapper=Ir,Er.inspect=Er.toSource=function(){return this.toString()},Er.chain=Er.flatMap,Er.contains=Er.includes,Sr(n,{flip:function(){return Vt(this,Pt(this))},mapEntries:function(e,t){var r=this,n=0;return Vt(this,this.toSeq().map((function(i,a){return e.call(t,[a,i],n++,r)})).fromEntrySeq())},mapKeys:function(e,t){var r=this;return Vt(this,this.toSeq().flip().map((function(n,i){return e.call(t,n,i,r)})).flip())}});var Tr=n.prototype;function Or(e,t){return t}function xr(e,t){return[t,e]}function Ar(e){return function(){return!e.apply(this,arguments)}}function Rr(e){return function(){return-e.apply(this,arguments)}}function Ir(e){return"string"==typeof e?JSON.stringify(e):String(e)}function Pr(){return w(arguments)}function Nr(e,t){return et?-1:0}function Cr(e,t){return e^t+2654435769+(e<<6)+(e>>2)|0}return Tr[p]=!0,Tr[j]=Er.entries,Tr.__toJS=Er.toObject,Tr.__toStringMapper=function(e,t){return JSON.stringify(t)+": "+Ir(e)},Sr(i,{toKeyedSeq:function(){return new xt(this,!1)},filter:function(e,t){return Vt(this,jt(this,e,t,!1))},findIndex:function(e,t){var r=this.findEntry(e,t);return r?r[0]:-1},indexOf:function(e){var t=this.keyOf(e);return void 0===t?-1:t},lastIndexOf:function(e){var t=this.lastKeyOf(e);return void 0===t?-1:t},reverse:function(){return Vt(this,Ct(this,!1))},slice:function(e,t){return Vt(this,Dt(this,e,t,!1))},splice:function(e,t){var r=arguments.length;if(t=Math.max(0|t,0),0===r||2===r&&!t)return this;e=x(e,e<0?this.count():this.size);var n=this.slice(0,e);return Vt(this,1===r?n:n.concat(w(arguments,2),this.slice(e+t)))},findLastIndex:function(e,t){var r=this.findLastEntry(e,t);return r?r[0]:-1},first:function(){return this.get(0)},flatten:function(e){return Vt(this,Mt(this,e,!1))},get:function(e,t){return(e=E(this,e))<0||this.size===1/0||void 0!==this.size&&e>this.size?t:this.find((function(t,r){return r===e}),void 0,t)},has:function(e){return(e=E(this,e))>=0&&(void 0!==this.size?this.size===1/0||et.length)return!1;for(let r=0;r1)throw new n.ErrorCoded(`Found illegal neighbouring entries next to @set for key: '${t}'`,n.ERROR_CODES.INVALID_SET_OR_LIST_OBJECT);return[]}if("@list"in r){if(Object.keys(r).length>1)throw new n.ErrorCoded(`Found illegal neighbouring entries next to @list for key: '${t}'`,n.ERROR_CODES.INVALID_SET_OR_LIST_OBJECT);const e=r["@list"];return Array.isArray(e)?0===e.length?[this.rdfNil]:this.parsingContext.idStack[i+1]||[]:await this.valueToTerm(await this.parsingContext.getContext(a),t,e,i-1,a.slice(0,-1))}if("@reverse"in r)return[];if("@graph"in o.getContextValueContainer(await this.parsingContext.getContext(a),t)){const e=this.parsingContext.graphContainerTermStack[i+1];return e?Object.values(e):[this.dataFactory.blankNode()]}return"@id"in r?(Object.keys(r).length>1&&(e=await this.parsingContext.getContext(a,0)),"@context"in r&&(e=await this.parsingContext.parseContext(r["@context"],e.getContextRaw())),"@vocab"===r["@type"]?this.nullableTermToArray(this.createVocabOrBaseTerm(e,r["@id"])):this.nullableTermToArray(this.resourceToTerm(e,r["@id"]))):this.parsingContext.emittedStack[i+1]?this.parsingContext.idStack[i+1]||(this.parsingContext.idStack[i+1]=[this.dataFactory.blankNode()]):[];case"string":return this.nullableTermToArray(this.stringValueToTerm(i,await this.getContextSelfOrPropertyScoped(e,t),t,r,null));case"boolean":return this.nullableTermToArray(this.stringValueToTerm(i,await this.getContextSelfOrPropertyScoped(e,t),t,Boolean(r).toString(),this.dataFactory.namedNode(o.XSD_BOOLEAN)));case"number":return this.nullableTermToArray(this.stringValueToTerm(i,await this.getContextSelfOrPropertyScoped(e,t),t,r,this.dataFactory.namedNode(r%1==0&&r<1e21?o.XSD_INTEGER:o.XSD_DOUBLE)));default:return this.parsingContext.emitError(new Error("Could not determine the RDF type of a "+s)),[]}}async getContextSelfOrPropertyScoped(e,t){const r=e.getContextRaw()[t];return r&&"object"==typeof r&&"@context"in r&&(e=await this.parsingContext.parseContext(r,e.getContextRaw(),!0)),e}nullableTermToArray(e){return e?[e]:[]}predicateToTerm(e,t){const r=e.expandTerm(t,!0,this.parsingContext.getExpandOptions());return r?"_"===r[0]&&":"===r[1]?this.parsingContext.produceGeneralizedRdf?this.dataFactory.blankNode(r.substr(2)):null:o.isValidIri(r)?this.dataFactory.namedNode(r):r&&this.parsingContext.strictValues?(this.parsingContext.emitError(new n.ErrorCoded("Invalid predicate IRI: "+r,n.ERROR_CODES.INVALID_IRI_MAPPING)),null):null:null}resourceToTerm(e,t){if(t.startsWith("_:"))return this.dataFactory.blankNode(t.substr(2));const r=e.expandTerm(t,!1,this.parsingContext.getExpandOptions());if(!o.isValidIri(r)){if(!r||!this.parsingContext.strictValues)return null;this.parsingContext.emitError(new Error("Invalid resource IRI: "+r))}return this.dataFactory.namedNode(r)}createVocabOrBaseTerm(e,t){if(t.startsWith("_:"))return this.dataFactory.blankNode(t.substr(2));const r=this.parsingContext.getExpandOptions();let n=e.expandTerm(t,!0,r);if(n===t&&(n=e.expandTerm(t,!1,r)),!o.isValidIri(n)){if(!n||!this.parsingContext.strictValues)return null;this.parsingContext.emitError(new Error("Invalid term IRI: "+n))}return this.dataFactory.namedNode(n)}intToString(e,t){if("number"==typeof e){if(Number.isFinite(e)){return!(e%1==0)||t&&t.value===o.XSD_DOUBLE?e.toExponential(15).replace(/(\d)0*e\+?/,"$1E"):Number(e).toString()}return e>0?"INF":"-INF"}return e}stringValueToTerm(e,t,r,n,i){const a=o.getContextValueType(t,r);if(a)if("@id"===a){if(!i)return this.resourceToTerm(t,this.intToString(n,i))}else if("@vocab"===a){if(!i)return this.createVocabOrBaseTerm(t,this.intToString(n,i))}else i=this.dataFactory.namedNode(a);if(!i){const a=o.getContextValueLanguage(t,r),s=o.getContextValueDirection(t,r);return s&&this.parsingContext.rdfDirection?this.createLanguageDirectionLiteral(e,this.intToString(n,i),a,s):this.dataFactory.literal(this.intToString(n,i),a)}return this.dataFactory.literal(this.intToString(n,i),i)}createLanguageDirectionLiteral(e,t,r,n){if("i18n-datatype"===this.parsingContext.rdfDirection)return r||(r=""),this.dataFactory.literal(t,this.dataFactory.namedNode(`https://www.w3.org/ns/i18n#${r}_${n}`));{const i=this.dataFactory.blankNode(),a=this.getDefaultGraph();return this.parsingContext.emitQuad(e,this.dataFactory.quad(i,this.dataFactory.namedNode(o.RDF+"value"),this.dataFactory.literal(t),a)),r&&this.parsingContext.emitQuad(e,this.dataFactory.quad(i,this.dataFactory.namedNode(o.RDF+"language"),this.dataFactory.literal(r),a)),this.parsingContext.emitQuad(e,this.dataFactory.quad(i,this.dataFactory.namedNode(o.RDF+"direction"),this.dataFactory.literal(n),a)),i}}valueToJsonString(e){return s(e)}async unaliasKeyword(e,t,r,i,a){if(Number.isInteger(e))return e;if(!i){const e=this.parsingContext.unaliasedKeywordCacheStack[r];if(e)return e}if(!n.Util.isPotentialKeyword(e)){let r=(a=a||await this.parsingContext.getContext(t)).getContextRaw()[e];r&&"object"==typeof r&&(r=r["@id"]),n.Util.isValidKeyword(r)&&(e=r)}return i?e:this.parsingContext.unaliasedKeywordCacheStack[r]=e}async unaliasKeywordParent(e,t){return await this.unaliasKeyword(t>0&&e[t-1],e,t-1)}async unaliasKeywords(e,t,r,n){const i={};for(const a in e)i[await this.unaliasKeyword(a,t,r+1,!0,n)]=e[a];return i}isLiteral(e){for(let t=e;t>=0;t--)if(this.parsingContext.literalStack[t]||this.parsingContext.jsonLiteralStack[t])return!0;return!1}async getDepthOffsetGraph(e,t){for(let r=e-1;r>0;r--)if("@graph"===await this.unaliasKeyword(t[r],t,r)){const n=(await a.EntryHandlerContainer.getContainerHandler(this.parsingContext,t,r)).containers;return a.EntryHandlerContainer.isComplexGraphContainer(n)?-1:e-r-1}return-1}validateReverseSubject(e){if("Literal"===e.termType)throw new n.ErrorCoded("Found illegal literal in subject position: "+e.value,n.ERROR_CODES.INVALID_REVERSE_PROPERTY_VALUE)}getDefaultGraph(){return this.parsingContext.defaultGraph||this.dataFactory.defaultGraph()}async getGraphContainerValue(e,t){let r=this.getDefaultGraph();const{containers:n,depth:i}=await a.EntryHandlerContainer.getContainerHandler(this.parsingContext,e,t);if("@graph"in n){const t=a.EntryHandlerContainer.getContainerGraphIndex(n,i,e),s=this.parsingContext.graphContainerTermStack[i];if(r=s?s[t]:null,!r){let a=null;if("@id"in n){const t=await this.getContainerKey(e[i],e,i);null!==t&&(a=await this.resourceToTerm(await this.parsingContext.getContext(e),t))}a||(a=this.dataFactory.blankNode()),this.parsingContext.graphContainerTermStack[i]||(this.parsingContext.graphContainerTermStack[i]={}),r=this.parsingContext.graphContainerTermStack[i][t]=a}}return r}async getPropertiesDepth(e,t){let r=t;for(let n=t-1;n>0;n--)if("number"!=typeof e[n]){const t=await this.unaliasKeyword(e[n],e,n);if("@reverse"===t)return n;if("@nest"!==t)return r;r=n}return r}async getContainerKey(e,t,r){const n=await this.unaliasKeyword(e,t,r);return"@none"===n?null:n}}t.Util=o,o.XSD="http://www.w3.org/2001/XMLSchema#",o.XSD_BOOLEAN=o.XSD+"boolean",o.XSD_INTEGER=o.XSD+"integer",o.XSD_DOUBLE=o.XSD+"double",o.RDF="http://www.w3.org/1999/02/22-rdf-syntax-ns#"},function(e,t,r){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.EntryHandlerKeyword=void 0;t.EntryHandlerKeyword=class{constructor(e){this.keyword=e}isPropertyHandler(){return!1}isStackProcessor(){return!0}async validate(e,t,r,n,i){return!1}async test(e,t,r,n,i){return r===this.keyword}}},function(e,t,r){"use strict";var n=this&&this.__createBinding||(Object.create?function(e,t,r,n){void 0===n&&(n=r),Object.defineProperty(e,n,{enumerable:!0,get:function(){return t[r]}})}:function(e,t,r,n){void 0===n&&(n=r),e[n]=t[r]}),i=this&&this.__exportStar||function(e,t){for(var r in e)"default"===r||Object.prototype.hasOwnProperty.call(t,r)||n(t,e,r)};Object.defineProperty(t,"__esModule",{value:!0}),i(r(206),t)},function(e,t){e.exports=solid.auth},function(e){e.exports=JSON.parse('{"@context":{"acl":"http://www.w3.org/ns/auth/acl#","app":"http://www.w3.org/ns/solid/app#","as":"https://www.w3.org/ns/activitystreams#","cert":"http://www.w3.org/ns/auth/cert#","dc":"http://purl.org/dc/elements/1.1/","dct":"http://purl.org/dc/terms/","foaf":"http://xmlns.com/foaf/0.1/","ldp":"http://www.w3.org/ns/ldp#","owl":"http://www.w3.org/2002/07/owl#","pim":"http://www.w3.org/ns/pim/space#","rdf":"http://www.w3.org/1999/02/22-rdf-syntax-ns#","rdfs":"http://www.w3.org/2000/01/rdf-schema#","schema":"http://schema.org/","sioc":"http://rdfs.org/sioc/ns#","solid":"http://www.w3.org/ns/solid/terms#","stat":"http://www.w3.org/ns/posix/stat#","ui":"http://www.w3.org/ns/ui#","vcard":"http://www.w3.org/2006/vcard/ns#","xsd":"http://www.w3.org/2001/XMLSchema#","accessControl":"acl:accessControl","accessTo":"acl:accessTo","accessToClass":"acl:accessToClass","agent":"acl:agent","agents":"acl:agent","agentClass":"acl:agentClass","agentClasses":"acl:agentClass","agentGroup":"acl:agentGroup","agentGroups":"acl:agentGroup","defaultAcl":"acl:default","defaultAclForNew":"acl:defaultForNew","delegates":"acl:delegates","mode":"acl:mode","modes":"acl:mode","origin":"acl:origin","origins":"acl:origin","actor":"as:actor","attachment":"as:attachment","attributedTo":"as:attributedTo","author":"as:author","bcc":"as:bcc","bto":"as:bto","cc":"as:cc","inReplyTo":"as:inReplyTo","object":"as:object","publicationDate":"as:published","subject":"as:subject","summary":"as:summary","target":"as:target","to":"as:to","abstract":"dc:abstract","abstracts":"dc:abstract","created":"dc:created","license":"dc:license","modified":"dc:modified","title":"dc:title","titles":"dc:title","account":"foaf:account","accounts":"foaf:account","age":"foaf:age","basedNear":"foaf:based_near","birthday":"foaf:birthday","blog":"foaf:weblog","depiction":"foaf:depiction","depicts":"foaf:depicts","email":"foaf:mbox","familyName":"foaf:familyName","firstName":"foaf:givenName","friend":"foaf:knows","friends":"foaf:knows","gender":"foaf:gender","givenName":"foaf:givenName","homepage":"foaf:homepage","image":"foaf:img","images":"foaf:img","interest":"foaf:topic_interest","interests":"foaf:topic_interest","knows":"foaf:knows","lastName":"foaf:familyName","logo":"foaf:logo","made":"foaf:made","maker":"foaf:maker","member":"foaf:member","name":"foaf:name","nick":"foaf:nick","page":"foaf:page","pages":"foaf:page","primaryTopic":"foaf:primaryTopic","primaryTopicOf":"foaf:primaryTopicOf","publication":"foaf:publications","publications":"foaf:publications","thumbnail":"foaf:thumbnail","thumbnails":"foaf:thumbnail","topic":"foaf:topic","topics":"foaf:topic","inbox":"ldp:inbox","inboxes":"ldp:inbox","storage":"pim:storage","preferences":"pim:preferencesFile","workspace":"pim:workspace","type":"rdf:type","types":"rdf:type","comment":"rdfs:comment","comments":"rdfs:comment","label":"rdfs:label","labels":"rdfs:label","seeAlso":"rdfs:seeAlso","definedBy":"rdfs:isDefinedBy","oidcIssuer":"solid:oidcIssuer","publicTypeIndex":"solid:publicTypeIndex","publicTypeIndexes":"solid:publicTypeIndex","privateTypeIndex":"solid:privateTypeIndex","privateTypeIndexes":"solid:privateTypeIndex"}}')},,function(e,t,r){"use strict";var n=this&&this.__createBinding||(Object.create?function(e,t,r,n){void 0===n&&(n=r),Object.defineProperty(e,n,{enumerable:!0,get:function(){return t[r]}})}:function(e,t,r,n){void 0===n&&(n=r),e[n]=t[r]}),i=this&&this.__exportStar||function(e,t){for(var r in e)"default"===r||Object.prototype.hasOwnProperty.call(t,r)||n(t,e,r)};Object.defineProperty(t,"__esModule",{value:!0}),i(r(88),t),i(r(236),t)},function(e,t,r){"use strict";var n={};function i(e,t,r){r||(r=Error);var i=function(e){var r,n;function i(r,n,i){return e.call(this,function(e,r,n){return"string"==typeof t?t:t(e,r,n)}(r,n,i))||this}return n=e,(r=i).prototype=Object.create(n.prototype),r.prototype.constructor=r,r.__proto__=n,i}(r);i.prototype.name=r.name,i.prototype.code=e,n[e]=i}function a(e,t){if(Array.isArray(e)){var r=e.length;return e=e.map((function(e){return String(e)})),r>2?"one of ".concat(t," ").concat(e.slice(0,r-1).join(", "),", or ")+e[r-1]:2===r?"one of ".concat(t," ").concat(e[0]," or ").concat(e[1]):"of ".concat(t," ").concat(e[0])}return"of ".concat(t," ").concat(String(e))}i("ERR_INVALID_OPT_VALUE",(function(e,t){return'The value "'+t+'" is invalid for option "'+e+'"'}),TypeError),i("ERR_INVALID_ARG_TYPE",(function(e,t,r){var n,i,s,o;if("string"==typeof t&&(i="not ",t.substr(!s||s<0?0:+s,i.length)===i)?(n="must not be",t=t.replace(/^not /,"")):n="must be",function(e,t,r){return(void 0===r||r>e.length)&&(r=e.length),e.substring(r-t.length,r)===t}(e," argument"))o="The ".concat(e," ").concat(n," ").concat(a(t,"type"));else{var c=function(e,t,r){return"number"!=typeof r&&(r=0),!(r+t.length>e.length)&&-1!==e.indexOf(t,r)}(e,".")?"property":"argument";o='The "'.concat(e,'" ').concat(c," ").concat(n," ").concat(a(t,"type"))}return o+=". Received type ".concat(typeof r)}),TypeError),i("ERR_STREAM_PUSH_AFTER_EOF","stream.push() after EOF"),i("ERR_METHOD_NOT_IMPLEMENTED",(function(e){return"The "+e+" method is not implemented"})),i("ERR_STREAM_PREMATURE_CLOSE","Premature close"),i("ERR_STREAM_DESTROYED",(function(e){return"Cannot call "+e+" after a stream was destroyed"})),i("ERR_MULTIPLE_CALLBACK","Callback called multiple times"),i("ERR_STREAM_CANNOT_PIPE","Cannot pipe, not readable"),i("ERR_STREAM_WRITE_AFTER_END","write after end"),i("ERR_STREAM_NULL_VALUES","May not write null values to stream",TypeError),i("ERR_UNKNOWN_ENCODING",(function(e){return"Unknown encoding: "+e}),TypeError),i("ERR_STREAM_UNSHIFT_AFTER_END_EVENT","stream.unshift() after end event"),e.exports.codes=n},function(e,t,r){"use strict";(function(t){var n=Object.keys||function(e){var t=[];for(var r in e)t.push(r);return t};e.exports=u;var i=r(89),a=r(93);r(11)(u,i);for(var s=n(a.prototype),o=0;od(e)),n=u.specialFunctions.get(t);if(!n.checkArity(r))throw new o.InvalidArity(r,t);return new a.SpecialOperator(r,n.applyAsync,n.applySync)}{if(!s.Operators.contains(e.operator))throw new o.UnknownOperator(e.operator);const t=e.operator,r=e.args.map(e=>d(e)),n=u.regularFunctions.get(t);if(!function(e,t){if(t===1/0)return!0;if(Array.isArray(t))return t.indexOf(e.length)>=0;return e.length===t}(r,n.arity))throw new o.InvalidArity(r,t);return new a.Operator(r,n.apply)}}(e);case t.NAMED:return f(e);case t.EXISTENCE:return g(e);case t.AGGREGATE:return m(e);case t.WILDCARD:return function(e){if(!e.wildcard)throw new o.InvalidExpression(e);return new a.NamedNode(e.wildcard.value)}(e);default:throw new o.InvalidExpressionType(e)}}function p(e){if(!e.term)throw new o.InvalidExpression(e);switch(e.term.termType){case"Variable":return new a.Variable(n.termToString(e.term));case"Literal":return h(e.term);case"NamedNode":return new a.NamedNode(e.term.value);case"BlankNode":return new a.BlankNode(e.term.value);default:throw new o.InvalidTermType(e)}}function h(e){if(!e.datatype)return e.language?new a.LangStringLiteral(e.value,e.language):new a.StringLiteral(e.value);switch(e.datatype.value){case null:case void 0:case"":return e.language?new a.LangStringLiteral(e.value,e.language):new a.StringLiteral(e.value);case l.TypeURL.XSD_STRING:return new a.StringLiteral(e.value);case l.TypeURL.RDF_LANG_STRING:return new a.LangStringLiteral(e.value,e.language);case l.TypeURL.XSD_DATE_TIME:case l.TypeURL.XSD_DATE:{const t=new Date(e.value);return isNaN(t.getTime())?new a.NonLexicalLiteral(void 0,e.datatype,e.value):new a.DateTimeLiteral(new Date(e.value),e.value)}case l.TypeURL.XSD_BOOLEAN:return"true"!==e.value&&"false"!==e.value?new a.NonLexicalLiteral(void 0,e.datatype,e.value):new a.BooleanLiteral("true"===e.value,e.value);case l.TypeURL.XSD_INTEGER:case l.TypeURL.XSD_DECIMAL:case l.TypeURL.XSD_NEGATIVE_INTEGER:case l.TypeURL.XSD_NON_NEGATIVE_INTEGER:case l.TypeURL.XSD_NON_POSITIVE_INTEGER:case l.TypeURL.XSD_POSITIVE_INTEGER:case l.TypeURL.XSD_LONG:case l.TypeURL.XSD_SHORT:case l.TypeURL.XSD_BYTE:case l.TypeURL.XSD_UNSIGNED_LONG:case l.TypeURL.XSD_UNSIGNED_INT:case l.TypeURL.XSD_UNSIGNED_SHORT:case l.TypeURL.XSD_UNSIGNED_BYTE:case l.TypeURL.XSD_INT:{const t=c.parseXSDDecimal(e.value);return void 0===t?new a.NonLexicalLiteral(void 0,e.datatype,e.value):new a.NumericLiteral(t,e.datatype,e.value)}case l.TypeURL.XSD_FLOAT:case l.TypeURL.XSD_DOUBLE:{const t=c.parseXSDFloat(e.value);return void 0===t?new a.NonLexicalLiteral(void 0,e.datatype,e.value):new a.NumericLiteral(t,e.datatype,e.value)}default:return new a.Literal(e.value,e.datatype,e.value)}}function f(e){const t=e.name.value;if(!s.NamedOperators.contains(t))throw new o.UnknownNamedOperator(e.name.value);const r=e.name.value,n=e.args.map(e=>d(e)),i=u.namedFunctions.get(r);return new a.Named(e.name,n,i.apply)}function m(e){const t=e.aggregator;return new a.Aggregate(t,e)}function g(e){return new a.Existence(e)}t.transformAlgebra=d,t.transformRDFTermUnsafe=function(e){return p({term:e,type:"expression",expressionType:"term"})},t.transformLiteral=h,t.transformNamed=f,t.transformAggregate=m,t.transformExistence=g},function(e,t,r){"use strict";var n=this&&this.__createBinding||(Object.create?function(e,t,r,n){void 0===n&&(n=r),Object.defineProperty(e,n,{enumerable:!0,get:function(){return t[r]}})}:function(e,t,r,n){void 0===n&&(n=r),e[n]=t[r]}),i=this&&this.__exportStar||function(e,t){for(var r in e)"default"===r||Object.prototype.hasOwnProperty.call(t,r)||n(t,e,r)};Object.defineProperty(t,"__esModule",{value:!0}),i(r(24),t),i(r(414),t),i(r(415),t),i(r(416),t),i(r(417),t),i(r(418),t),i(r(419),t),i(r(420),t)},function(e,t,r){var n=r(15).Buffer;function i(e,t){this._block=n.alloc(e),this._finalSize=t,this._blockSize=e,this._len=0}i.prototype.update=function(e,t){"string"==typeof e&&(t=t||"utf8",e=n.from(e,t));for(var r=this._block,i=this._blockSize,a=e.length,s=this._len,o=0;o=this._finalSize&&(this._update(this._block),this._block.fill(0));var r=8*this._len;if(r<=4294967295)this._block.writeUInt32BE(r,this._blockSize-4);else{var n=(4294967295&r)>>>0,i=(r-n)/4294967296;this._block.writeUInt32BE(i,this._blockSize-8),this._block.writeUInt32BE(n,this._blockSize-4)}this._update(this._block);var a=this._hash();return e?a.toString(e):a},i.prototype._update=function(){throw new Error("_update must be implemented by subclass")},e.exports=i},function(e,t,r){"use strict";r.r(t),r.d(t,"Lexer",(function(){return i.a})),r.d(t,"Parser",(function(){return k})),r.d(t,"Writer",(function(){return G})),r.d(t,"Store",(function(){return $})),r.d(t,"StreamParser",(function(){return J})),r.d(t,"StreamWriter",(function(){return W})),r.d(t,"Util",(function(){return n})),r.d(t,"DataFactory",(function(){return w})),r.d(t,"Term",(function(){return S})),r.d(t,"NamedNode",(function(){return E})),r.d(t,"Literal",(function(){return T})),r.d(t,"BlankNode",(function(){return O})),r.d(t,"Variable",(function(){return x})),r.d(t,"DefaultGraph",(function(){return A})),r.d(t,"Quad",(function(){return P})),r.d(t,"Triple",(function(){return P})),r.d(t,"termFromId",(function(){return R})),r.d(t,"termToId",(function(){return I}));var n={};r.r(n),r.d(n,"isNamedNode",(function(){return s})),r.d(n,"isBlankNode",(function(){return o})),r.d(n,"isLiteral",(function(){return c})),r.d(n,"isVariable",(function(){return u})),r.d(n,"isDefaultGraph",(function(){return l})),r.d(n,"inDefaultGraph",(function(){return d})),r.d(n,"prefix",(function(){return p})),r.d(n,"prefixes",(function(){return h}));var i=r(57),a=r(9);function s(e){return!!e&&"NamedNode"===e.termType}function o(e){return!!e&&"BlankNode"===e.termType}function c(e){return!!e&&"Literal"===e.termType}function u(e){return!!e&&"Variable"===e.termType}function l(e){return!!e&&"DefaultGraph"===e.termType}function d(e){return l(e.graph)}function p(e,t){return h({"":e},t)("")}function h(e,t){var r=Object.create(null);for(var n in e)i(n,e[n]);function i(e,n){if("string"==typeof n){var i=Object.create(null);r[e]=function(e){return i[e]||(i[e]=t.namedNode(n+e))}}else if(!(e in r))throw new Error("Unknown prefix: "+e);return r[e]}return t=t||w,i}const{rdf:f,xsd:m}=a.a;let g,y=0;const b=/^"(.*".*)(?="[^"]*$)/,_=/^<<("(?:""|[^"])*"[^ ]*|[^ ]+) ("(?:""|[^"])*"[^ ]*|[^ ]+) ("(?:""|[^"])*"[^ ]*|[^ ]+) ?("(?:""|[^"])*"[^ ]*|[^ ]+)?>>$/,v={namedNode:function(e){return new E(e)},blankNode:function(e){return new O(e||"n3-"+y++)},variable:function(e){return new x(e)},literal:function(e,t){if("string"==typeof t)return new T('"'+e+'"@'+t.toLowerCase());let r=t?t.value:"";""===r&&("boolean"==typeof e?r=m.boolean:"number"==typeof e&&(Number.isFinite(e)?r=Number.isInteger(e)?m.integer:m.double:(r=m.double,Number.isNaN(e)||(e=e>0?"INF":"-INF"))));return""===r||r===m.string?new T('"'+e+'"'):new T('"'+e+'"^^'+r)},defaultGraph:function(){return g},quad:j,triple:j};var w=v;class S{constructor(e){this.id=e}get value(){return this.id}equals(e){return e instanceof S?this.id===e.id:!!e&&this.termType===e.termType&&this.value===e.value}toJSON(){return{termType:this.termType,value:this.value}}}class E extends S{get termType(){return"NamedNode"}}class T extends S{get termType(){return"Literal"}get value(){return this.id.substring(1,this.id.lastIndexOf('"'))}get language(){var e=this.id,t=e.lastIndexOf('"')+1;return t>`;default:throw new Error("Unexpected termType: "+e.termType)}}g=new A;class P extends S{constructor(e,t,r,n){super(""),this.subject=e,this.predicate=t,this.object=r,this.graph=n||g}get termType(){return"Quad"}toJSON(){return{termType:this.termType,subject:this.subject.toJSON(),predicate:this.predicate.toJSON(),object:this.object.toJSON(),graph:this.graph.toJSON()}}equals(e){return!!e&&this.subject.equals(e.subject)&&this.predicate.equals(e.predicate)&&this.object.equals(e.object)&&this.graph.equals(e.graph)}}function N(e){return e.replace(b,(e,t)=>'"'+t.replace(/"/g,'""'))}function C(e){return e.replace(b,(e,t)=>'"'+t.replace(/""/g,'"'))}function j(e,t,r,n){return new P(e,t,r,n)}let D=0;class k{constructor(e){this._contextStack=[],this._graph=null,e=e||{},this._setBase(e.baseIRI),e.factory&&M(this,e.factory);var t="string"==typeof e.format?e.format.match(/\w*$/)[0].toLowerCase():"",r=/turtle/.test(t),n=/trig/.test(t),a=/triple/.test(t),s=/quad/.test(t),o=this._n3Mode=/n3/.test(t),c=a||s;(this._supportsNamedGraphs=!(r||o))||(this._readPredicateOrNamedGraph=this._readPredicate),this._supportsQuads=!(r||n||a||o),this._supportsRDFStar=""===t||/star|\*$/.test(t),c&&(this._resolveRelativeIRI=function(e){return null}),this._blankNodePrefix="string"!=typeof e.blankNodePrefix?"":e.blankNodePrefix.replace(/^(?!_:)/,"_:"),this._lexer=e.lexer||new i.a({lineMode:c,n3:o}),this._explicitQuantifiers=!!e.explicitQuantifiers}static _resetBlankNodePrefix(){D=0}_setBase(e){if(e){var t=e.indexOf("#");t>=0&&(e=e.substr(0,t)),this._base=e,this._basePath=e.indexOf("/")<0?e:e.replace(/[^\/?]*(?:\?.*)?$/,""),e=e.match(/^(?:([a-z][a-z0-9+.-]*:))?(?:\/\/[^\/]*)?/i),this._baseRoot=e[0],this._baseScheme=e[1]}else this._base="",this._basePath=""}_saveContext(e,t,r,n,i){var a=this._n3Mode;this._contextStack.push({subject:r,predicate:n,object:i,graph:t,type:e,inverse:!!a&&this._inversePredicate,blankPrefix:a?this._prefixes._:"",quantified:a?this._quantified:null}),a&&(this._inversePredicate=!1,this._prefixes._=this._graph?this._graph.id.substr(2)+".":".",this._quantified=Object.create(this._quantified))}_restoreContext(){var e=this._contextStack.pop(),t=this._n3Mode;this._subject=e.subject,this._predicate=e.predicate,this._object=e.object,this._graph=e.graph,t&&(this._inversePredicate=e.inverse,this._prefixes._=e.blankPrefix,this._quantified=e.quantified)}_readInTopContext(e){switch(e.type){case"eof":return null!==this._graph?this._error("Unclosed graph",e):(delete this._prefixes._,this._callback(null,null,this._prefixes));case"PREFIX":this._sparqlStyle=!0;case"@prefix":return this._readPrefix;case"BASE":this._sparqlStyle=!0;case"@base":return this._readBaseIRI;case"{":if(this._supportsNamedGraphs)return this._graph="",this._subject=null,this._readSubject;case"GRAPH":if(this._supportsNamedGraphs)return this._readNamedGraphLabel;default:return this._readSubject(e)}}_readEntity(e,t){var r;switch(e.type){case"IRI":case"typeIRI":var n=this._resolveIRI(e.value);if(null===n)return this._error("Invalid IRI",e);r=this._namedNode(n);break;case"type":case"prefixed":var i=this._prefixes[e.prefix];if(void 0===i)return this._error('Undefined prefix "'+e.prefix+':"',e);r=this._namedNode(i+e.value);break;case"blank":r=this._blankNode(this._prefixes[e.prefix]+e.value);break;case"var":r=this._variable(e.value.substr(1));break;default:return this._error("Expected entity but got "+e.type,e)}return!t&&this._n3Mode&&r.id in this._quantified&&(r=this._quantified[r.id]),r}_readSubject(e){switch(this._predicate=null,e.type){case"[":return this._saveContext("blank",this._graph,this._subject=this._blankNode(),null,null),this._readBlankNodeHead;case"(":return this._saveContext("list",this._graph,this.RDF_NIL,null,null),this._subject=null,this._readListItem;case"{":return this._n3Mode?(this._saveContext("formula",this._graph,this._graph=this._blankNode(),null,null),this._readSubject):this._error("Unexpected graph",e);case"}":return this._readPunctuation(e);case"@forSome":return this._n3Mode?(this._subject=null,this._predicate=this.N3_FORSOME,this._quantifier=this._blankNode,this._readQuantifierList):this._error('Unexpected "@forSome"',e);case"@forAll":return this._n3Mode?(this._subject=null,this._predicate=this.N3_FORALL,this._quantifier=this._variable,this._readQuantifierList):this._error('Unexpected "@forAll"',e);case"literal":if(!this._n3Mode)return this._error("Unexpected literal",e);if(0===e.prefix.length)return this._literalValue=e.value,this._completeSubjectLiteral;this._subject=this._literal(e.value,this._namedNode(e.prefix));break;case"<<":return this._supportsRDFStar?(this._saveContext("<<",this._graph,null,null,null),this._graph=null,this._readSubject):this._error("Unexpected RDF* syntax",e);default:if(void 0===(this._subject=this._readEntity(e)))return;if(this._n3Mode)return this._getPathReader(this._readPredicateOrNamedGraph)}return this._readPredicateOrNamedGraph}_readPredicate(e){var t=e.type;switch(t){case"inverse":this._inversePredicate=!0;case"abbreviation":this._predicate=this.ABBREVIATIONS[e.value];break;case".":case"]":case"}":return null===this._predicate?this._error("Unexpected "+t,e):(this._subject=null,"]"===t?this._readBlankNodeTail(e):this._readPunctuation(e));case";":return null!==this._predicate?this._readPredicate:this._error("Expected predicate but got ;",e);case"blank":if(!this._n3Mode)return this._error("Disallowed blank node as predicate",e);default:if(void 0===(this._predicate=this._readEntity(e)))return}return this._readObject}_readObject(e){switch(e.type){case"literal":if(0===e.prefix.length)return this._literalValue=e.value,this._readDataTypeOrLang;this._object=this._literal(e.value,this._namedNode(e.prefix));break;case"[":return this._saveContext("blank",this._graph,this._subject,this._predicate,this._subject=this._blankNode()),this._readBlankNodeHead;case"(":return this._saveContext("list",this._graph,this._subject,this._predicate,this.RDF_NIL),this._subject=null,this._readListItem;case"{":return this._n3Mode?(this._saveContext("formula",this._graph,this._subject,this._predicate,this._graph=this._blankNode()),this._readSubject):this._error("Unexpected graph",e);case"<<":return this._supportsRDFStar?(this._saveContext("<<",this._graph,this._subject,this._predicate,null),this._graph=null,this._readSubject):this._error("Unexpected RDF* syntax",e);default:if(void 0===(this._object=this._readEntity(e)))return;if(this._n3Mode)return this._getPathReader(this._getContextEndReader())}return this._getContextEndReader()}_readPredicateOrNamedGraph(e){return"{"===e.type?this._readGraph(e):this._readPredicate(e)}_readGraph(e){return"{"!==e.type?this._error("Expected graph but got "+e.type,e):(this._graph=this._subject,this._subject=null,this._readSubject)}_readBlankNodeHead(e){return"]"===e.type?(this._subject=null,this._readBlankNodeTail(e)):(this._predicate=null,this._readPredicate(e))}_readBlankNodeTail(e){if("]"!==e.type)return this._readBlankNodePunctuation(e);null!==this._subject&&this._emit(this._subject,this._predicate,this._object,this._graph);var t=null===this._predicate;return this._restoreContext(),null===this._object?t?this._readPredicateOrNamedGraph:this._readPredicateAfterBlank:this._getContextEndReader()}_readPredicateAfterBlank(e){switch(e.type){case".":case"}":return this._subject=null,this._readPunctuation(e);default:return this._readPredicate(e)}}_readListItem(e){var t=null,r=null,n=this._subject,i=this._contextStack,a=i[i.length-1],s=this._readListItem;switch(e.type){case"[":this._saveContext("blank",this._graph,r=this._blankNode(),this.RDF_FIRST,this._subject=t=this._blankNode()),s=this._readBlankNodeHead;break;case"(":this._saveContext("list",this._graph,r=this._blankNode(),this.RDF_FIRST,this.RDF_NIL),this._subject=null;break;case")":if(this._restoreContext(),0!==i.length&&"list"===i[i.length-1].type&&this._emit(this._subject,this._predicate,this._object,this._graph),null===this._predicate){if(s=this._readPredicate,this._subject===this.RDF_NIL)return s}else if(s=this._getContextEndReader(),this._object===this.RDF_NIL)return s;r=this.RDF_NIL;break;case"literal":0===e.prefix.length?(this._literalValue=e.value,s=this._readListItemDataTypeOrLang):(t=this._literal(e.value,this._namedNode(e.prefix)),s=this._getContextEndReader());break;case"{":return this._n3Mode?(this._saveContext("formula",this._graph,this._subject,this._predicate,this._graph=this._blankNode()),this._readSubject):this._error("Unexpected graph",e);default:if(void 0===(t=this._readEntity(e)))return}if(null===r&&(this._subject=r=this._blankNode()),null===n?null===a.predicate?a.subject=r:a.object=r:this._emit(n,this.RDF_REST,r,this._graph),null!==t){if(this._n3Mode&&("IRI"===e.type||"prefixed"===e.type))return this._saveContext("item",this._graph,r,this.RDF_FIRST,t),this._subject=t,this._predicate=null,this._getPathReader(this._readListItem);this._emit(r,this.RDF_FIRST,t,this._graph)}return s}_readDataTypeOrLang(e){return this._completeObjectLiteral(e,!1)}_readListItemDataTypeOrLang(e){return this._completeObjectLiteral(e,!0)}_completeLiteral(e){let t=this._literal(this._literalValue);switch(e.type){case"type":case"typeIRI":var r=this._readEntity(e);if(void 0===r)return;t=this._literal(this._literalValue,r),e=null;break;case"langcode":t=this._literal(this._literalValue,e.value),e=null}return{token:e,literal:t}}_completeSubjectLiteral(e){return this._subject=this._completeLiteral(e).literal,this._readPredicateOrNamedGraph}_completeObjectLiteral(e,t){const r=this._completeLiteral(e);if(r)return this._object=r.literal,t&&this._emit(this._subject,this.RDF_FIRST,this._object,this._graph),null===r.token?this._getContextEndReader():(this._readCallback=this._getContextEndReader(),this._readCallback(r.token))}_readFormulaTail(e){return"}"!==e.type?this._readPunctuation(e):(null!==this._subject&&this._emit(this._subject,this._predicate,this._object,this._graph),this._restoreContext(),null===this._object?this._readPredicate:this._getContextEndReader())}_readPunctuation(e){var t,r=this._subject,n=this._graph,i=this._inversePredicate;switch(e.type){case"}":if(null===this._graph)return this._error("Unexpected graph closing",e);if(this._n3Mode)return this._readFormulaTail(e);this._graph=null;case".":this._subject=null,t=this._contextStack.length?this._readSubject:this._readInTopContext,i&&(this._inversePredicate=!1);break;case";":t=this._readPredicate;break;case",":t=this._readObject;break;default:if(this._supportsQuads&&null===this._graph&&void 0!==(n=this._readEntity(e))){t=this._readQuadPunctuation;break}return this._error('Expected punctuation to follow "'+this._object.id+'"',e)}if(null!==r){var a=this._predicate,s=this._object;i?this._emit(s,a,r,n):this._emit(r,a,s,n)}return t}_readBlankNodePunctuation(e){var t;switch(e.type){case";":t=this._readPredicate;break;case",":t=this._readObject;break;default:return this._error('Expected punctuation to follow "'+this._object.id+'"',e)}return this._emit(this._subject,this._predicate,this._object,this._graph),t}_readQuadPunctuation(e){return"."!==e.type?this._error("Expected dot to follow quad",e):this._readInTopContext}_readPrefix(e){return"prefix"!==e.type?this._error("Expected prefix to follow @prefix",e):(this._prefix=e.value,this._readPrefixIRI)}_readPrefixIRI(e){if("IRI"!==e.type)return this._error('Expected IRI to follow prefix "'+this._prefix+':"',e);var t=this._readEntity(e);return this._prefixes[this._prefix]=t.value,this._prefixCallback(this._prefix,t),this._readDeclarationPunctuation}_readBaseIRI(e){var t="IRI"===e.type&&this._resolveIRI(e.value);return t?(this._setBase(t),this._readDeclarationPunctuation):this._error("Expected valid IRI to follow base declaration",e)}_readNamedGraphLabel(e){switch(e.type){case"IRI":case"blank":case"prefixed":return this._readSubject(e),this._readGraph;case"[":return this._readNamedGraphBlankLabel;default:return this._error("Invalid graph label",e)}}_readNamedGraphBlankLabel(e){return"]"!==e.type?this._error("Invalid graph label",e):(this._subject=this._blankNode(),this._readGraph)}_readDeclarationPunctuation(e){return this._sparqlStyle?(this._sparqlStyle=!1,this._readInTopContext(e)):"."!==e.type?this._error("Expected declaration to end with a dot",e):this._readInTopContext}_readQuantifierList(e){var t;switch(e.type){case"IRI":case"prefixed":if(void 0!==(t=this._readEntity(e,!0)))break;default:return this._error("Unexpected "+e.type,e)}return this._explicitQuantifiers?(null===this._subject?this._emit(this._graph||this.DEFAULTGRAPH,this._predicate,this._subject=this._blankNode(),this.QUANTIFIERS_GRAPH):this._emit(this._subject,this.RDF_REST,this._subject=this._blankNode(),this.QUANTIFIERS_GRAPH),this._emit(this._subject,this.RDF_FIRST,t,this.QUANTIFIERS_GRAPH)):this._quantified[t.id]=this._quantifier(this._blankNode().value),this._readQuantifierPunctuation}_readQuantifierPunctuation(e){return","===e.type?this._readQuantifierList:(this._explicitQuantifiers&&(this._emit(this._subject,this.RDF_REST,this.RDF_NIL,this.QUANTIFIERS_GRAPH),this._subject=null),this._readCallback=this._getContextEndReader(),this._readCallback(e))}_getPathReader(e){return this._afterPath=e,this._readPath}_readPath(e){switch(e.type){case"!":return this._readForwardPath;case"^":return this._readBackwardPath;default:var t=this._contextStack,r=t.length&&t[t.length-1];if(r&&"item"===r.type){var n=this._subject;this._restoreContext(),this._emit(this._subject,this.RDF_FIRST,n,this._graph)}return this._afterPath(e)}}_readForwardPath(e){var t,r,n=this._blankNode();if(void 0!==(r=this._readEntity(e)))return null===this._predicate?(t=this._subject,this._subject=n):(t=this._object,this._object=n),this._emit(t,r,n,this._graph),this._readPath}_readBackwardPath(e){var t,r,n=this._blankNode();if(void 0!==(t=this._readEntity(e)))return null===this._predicate?(r=this._subject,this._subject=n):(r=this._object,this._object=n),this._emit(n,t,r,this._graph),this._readPath}_readRDFStarTailOrGraph(e){return">>"!==e.type?this._supportsQuads&&null===this._graph&&void 0!==(this._graph=this._readEntity(e))?this._readRDFStarTail:this._error('Expected >> to follow "'+this._object.id+'"',e):this._readRDFStarTail(e)}_readRDFStarTail(e){if(">>"!==e.type)return this._error("Expected >> but got "+e.type,e);const t=this._quad(this._subject,this._predicate,this._object,this._graph||this.DEFAULTGRAPH);return this._restoreContext(),null===this._subject?(this._subject=t,this._readPredicate):(this._object=t,this._getContextEndReader())}_getContextEndReader(){var e=this._contextStack;if(!e.length)return this._readPunctuation;switch(e[e.length-1].type){case"blank":return this._readBlankNodeTail;case"list":return this._readListItem;case"formula":return this._readFormulaTail;case"<<":return this._readRDFStarTailOrGraph}}_emit(e,t,r,n){this._callback(null,this._quad(e,t,r,n||this.DEFAULTGRAPH))}_error(e,t){var r=new Error(e+" on line "+t.line+".");r.context={token:t,line:t.line,previousToken:this._lexer.previousToken},this._callback(r),this._callback=L}_resolveIRI(e){return/^[a-z][a-z0-9+.-]*:/i.test(e)?e:this._resolveRelativeIRI(e)}_resolveRelativeIRI(e){if(!e.length)return this._base;switch(e[0]){case"#":return this._base+e;case"?":return this._base.replace(/(?:\?.*)?$/,e);case"/":return("/"===e[1]?this._baseScheme:this._baseRoot)+this._removeDotSegments(e);default:return/^[^/:]*:/.test(e)?null:this._removeDotSegments(this._basePath+e)}}_removeDotSegments(e){if(!/(^|\/)\.\.?($|[/#?])/.test(e))return e;for(var t="",r=e.length,n=-1,i=-1,a=0,s="/";n=i&&(t=t.substr(0,a)),"/"!==s)return t+"/"+e.substr(n+1);a=n+1}}}s=e[++n]}return t+e.substring(a)}parse(e,t,r){var n=this;if(this._readCallback=this._readInTopContext,this._sparqlStyle=!1,this._prefixes=Object.create(null),this._prefixes._=this._blankNodePrefix?this._blankNodePrefix.substr(2):"b"+D+++"_",this._prefixCallback=r||L,this._inversePredicate=!1,this._quantified=Object.create(null),!t){var i,a=[];if(this._callback=function(e,t){e?i=e:t&&a.push(t)},this._lexer.tokenize(e).every((function(e){return n._readCallback=n._readCallback(e)})),i)throw i;return a}this._callback=t,this._lexer.tokenize(e,(function(e,t){null!==e?(n._callback(e),n._callback=L):n._readCallback&&(n._readCallback=n._readCallback(t))}))}}function L(){}function M(e,t){var r=t.namedNode;e._namedNode=r,e._blankNode=t.blankNode,e._literal=t.literal,e._variable=t.variable,e._quad=t.quad,e.DEFAULTGRAPH=t.defaultGraph(),e.RDF_FIRST=r(a.a.rdf.first),e.RDF_REST=r(a.a.rdf.rest),e.RDF_NIL=r(a.a.rdf.nil),e.N3_FORALL=r(a.a.r.forAll),e.N3_FORSOME=r(a.a.r.forSome),e.ABBREVIATIONS={a:r(a.a.rdf.type),"=":r(a.a.owl.sameAs),">":r(a.a.log.implies)},e.QUANTIFIERS_GRAPH=r("urn:n3:quantifiers")}M(k.prototype,w);const F=w.defaultGraph(),{rdf:q,xsd:B}=a.a;var U=/["\\\t\n\r\b\f\u0000-\u0019\ud800-\udbff]/,V=/["\\\t\n\r\b\f\u0000-\u0019]|[\ud800-\udbff][\udc00-\udfff]/g,Q={"\\":"\\\\",'"':'\\"',"\t":"\\t","\n":"\\n","\r":"\\r","\b":"\\b","\f":"\\f"};class H extends S{equals(){return!1}}class G{constructor(e,t){if(this._prefixRegex=/$0^/,e&&"function"!=typeof e.write&&(t=e,e=null),t=t||{},this._lists=t.lists,e)this._outputStream=e,this._endStream=void 0===t.end||!!t.end;else{var r="";this._outputStream={write(e,t,n){r+=e,n&&n()},end:function(e){e&&e(null,r)}},this._endStream=!0}this._subject=null,/triple|quad/i.test(t.format)?this._writeQuad=this._writeQuadLine:(this._graph=F,this._prefixIRIs=Object.create(null),t.prefixes&&this.addPrefixes(t.prefixes))}get _inDefaultGraph(){return F.equals(this._graph)}_write(e,t){this._outputStream.write(e,"utf8",t)}_writeQuad(e,t,r,n,i){try{n.equals(this._graph)||(this._write((null===this._subject?"":this._inDefaultGraph?".\n":"\n}\n")+(F.equals(n)?"":this._encodeIriOrBlank(n)+" {\n")),this._graph=n,this._subject=null),e.equals(this._subject)?t.equals(this._predicate)?this._write(", "+this._encodeObject(r),i):this._write(";\n "+this._encodePredicate(this._predicate=t)+" "+this._encodeObject(r),i):this._write((null===this._subject?"":".\n")+this._encodeSubject(this._subject=e)+" "+this._encodePredicate(this._predicate=t)+" "+this._encodeObject(r),i)}catch(e){i&&i(e)}}_writeQuadLine(e,t,r,n,i){delete this._prefixMatch,this._write(this.quadToString(e,t,r,n),i)}quadToString(e,t,r,n){return this._encodeSubject(e)+" "+this._encodeIriOrBlank(t)+" "+this._encodeObject(r)+(n&&n.value?" "+this._encodeIriOrBlank(n)+" .\n":" .\n")}quadsToString(e){return e.map((function(e){return this.quadToString(e.subject,e.predicate,e.object,e.graph)}),this).join("")}_encodeSubject(e){return"Quad"===e.termType?this._encodeQuad(e):this._encodeIriOrBlank(e)}_encodeIriOrBlank(e){if("NamedNode"!==e.termType)return this._lists&&e.value in this._lists&&(e=this.list(this._lists[e.value])),"id"in e?e.id:"_:"+e.value;var t=e.value;U.test(t)&&(t=t.replace(V,z));var r=this._prefixRegex.exec(t);return r?r[1]?this._prefixIRIs[r[1]]+r[2]:t:"<"+t+">"}_encodeLiteral(e){var t=e.value;return U.test(t)&&(t=t.replace(V,z)),e.language?'"'+t+'"@'+e.language:e.datatype.value!==B.string?'"'+t+'"^^'+this._encodeIriOrBlank(e.datatype):'"'+t+'"'}_encodePredicate(e){return e.value===q.type?"a":this._encodeIriOrBlank(e)}_encodeObject(e){switch(e.termType){case"Quad":return this._encodeQuad(e);case"Literal":return this._encodeLiteral(e);default:return this._encodeIriOrBlank(e)}}_encodeQuad({subject:e,predicate:t,object:r,graph:n}){return`<<${this._encodeSubject(e)} ${this._encodePredicate(t)} ${this._encodeObject(r)}${l(n)?"":" "+this._encodeIriOrBlank(n)}>>`}_blockedWrite(){throw new Error("Cannot write because the writer has been closed.")}addQuad(e,t,r,n,i){void 0===r?this._writeQuad(e.subject,e.predicate,e.object,e.graph,t):"function"==typeof n?this._writeQuad(e,t,r,F,n):this._writeQuad(e,t,r,n||F,i)}addQuads(e){for(var t=0;t.\n")}if(n){var s="",o="";for(var c in r)s+=s?"|"+c:c,o+=(o?"|":"")+r[c];s=s.replace(/[\]\/\(\)\*\+\?\.\\\$]/g,"\\$&"),this._prefixRegex=new RegExp("^(?:"+o+")[^/]*$|^("+s+")([a-zA-Z][\\-_a-zA-Z0-9]*)$")}this._write(n?"\n":"",t)}blank(e,t){var r,n,i=e;switch(void 0===e?i=[]:e.termType?i=[{predicate:e,object:t}]:"length"in e||(i=[e]),n=i.length){case 0:return new H("[]");case 1:if(!((r=i[0]).object instanceof H))return new H("[ "+this._encodePredicate(r.predicate)+" "+this._encodeObject(r.object)+" ]");default:for(var a="[",s=0;s<"]=0,this._entities=Object.create(null),this._blankNodeIndex=0,t||!e||e[0]||(t=e,e=null),t=t||{},this._factory=t.factory||w,e&&this.addQuads(e)}get size(){var e=this._size;if(null!==e)return e;e=0;var t,r,n=this._graphs;for(var i in n)for(var a in t=n[i].subjects)for(var s in r=t[a])e+=Object.keys(r[s]).length;return this._size=e}_addToIndex(e,t,r,n){var i=e[t]||(e[t]={}),a=i[r]||(i[r]={}),s=n in a;return s||(a[n]=null),!s}_removeFromIndex(e,t,r,n){var i,a=e[t],s=a[r];for(i in delete s[n],s)return;for(i in delete a[r],a)return;delete e[t]}_findInIndex(e,t,r,n,i,a,s,o,c,u){var l,d,p,h=!t+!r+!n>1?Object.keys(this._ids):this._entities;for(var f in t&&((l=e,e={})[t]=l[t]),e){var m=h[f];if(d=e[f])for(var g in r&&((l=d,d={})[r]=l[r]),d){var y=h[g];if(p=d[g])for(var b=(n?n in p?[n]:[]:Object.keys(p)),_=0;_{for(var a of this.getQuads(e,t,r,n))i.push(a);i.push(null)},i}countQuads(e,t,r,n){e=e&&I(e),t=t&&I(t),r=r&&I(r),n=n&&I(n);var i,a,s,o,c=0,u=this._getGraphs(n),l=this._ids;if(Y(e)&&!(a=l[e])||Y(t)&&!(s=l[t])||Y(r)&&!(o=l[r]))return 0;for(var d in u)(i=u[d])&&(c+=e?r?this._countInIndex(i.objects,o,a,s):this._countInIndex(i.subjects,a,s,o):t?this._countInIndex(i.predicates,s,o,a):this._countInIndex(i.objects,o,a,s));return c}forEach(e,t,r,n,i){this.some((function(t){return e(t),!1}),t,r,n,i)}every(e,t,r,n,i){var a=!1,s=!this.some((function(t){return a=!0,!e(t)}),t,r,n,i);return a&&s}some(e,t,r,n,i){t=t&&I(t),r=r&&I(r),n=n&&I(n),i=i&&I(i);var a,s,o,c,u=this._getGraphs(i),l=this._ids;if(Y(t)&&!(s=l[t])||Y(r)&&!(o=l[r])||Y(n)&&!(c=l[n]))return!1;for(var d in u)if(a=u[d])if(s){if(c){if(this._findInIndex(a.objects,c,s,o,"object","subject","predicate",d,e,null))return!0}else if(this._findInIndex(a.subjects,s,o,null,"subject","predicate","object",d,e,null))return!0}else if(o){if(this._findInIndex(a.predicates,o,c,null,"predicate","object","subject",d,e,null))return!0}else if(c){if(this._findInIndex(a.objects,c,null,null,"object","subject","predicate",d,e,null))return!0}else if(this._findInIndex(a.subjects,null,null,null,"subject","predicate","object",d,e,null))return!0;return!1}getSubjects(e,t,r){var n=[];return this.forSubjects((function(e){n.push(e)}),e,t,r),n}forSubjects(e,t,r,n){t=t&&I(t),r=r&&I(r),n=n&&I(n);var i,a,s,o=this._ids,c=this._getGraphs(n);if(e=this._uniqueEntities(e),!(Y(t)&&!(a=o[t])||Y(r)&&!(s=o[r])))for(n in c)(i=c[n])&&(a?s?this._loopBy2Keys(i.predicates,a,s,e):this._loopByKey1(i.subjects,a,e):s?this._loopByKey0(i.objects,s,e):this._loop(i.subjects,e))}getPredicates(e,t,r){var n=[];return this.forPredicates((function(e){n.push(e)}),e,t,r),n}forPredicates(e,t,r,n){t=t&&I(t),r=r&&I(r),n=n&&I(n);var i,a,s,o=this._ids,c=this._getGraphs(n);if(e=this._uniqueEntities(e),!(Y(t)&&!(a=o[t])||Y(r)&&!(s=o[r])))for(n in c)(i=c[n])&&(a?s?this._loopBy2Keys(i.objects,s,a,e):this._loopByKey0(i.subjects,a,e):s?this._loopByKey1(i.predicates,s,e):this._loop(i.predicates,e))}getObjects(e,t,r){var n=[];return this.forObjects((function(e){n.push(e)}),e,t,r),n}forObjects(e,t,r,n){t=t&&I(t),r=r&&I(r),n=n&&I(n);var i,a,s,o=this._ids,c=this._getGraphs(n);if(e=this._uniqueEntities(e),!(Y(t)&&!(a=o[t])||Y(r)&&!(s=o[r])))for(n in c)(i=c[n])&&(a?s?this._loopBy2Keys(i.subjects,a,s,e):this._loopByKey1(i.objects,a,e):s?this._loopByKey0(i.predicates,s,e):this._loop(i.objects,e))}getGraphs(e,t,r){var n=[];return this.forGraphs((function(e){n.push(e)}),e,t,r),n}forGraphs(e,t,r,n){for(var i in this._graphs)this.some((function(t){return e(t.graph),!0}),t,r,n,i)}createBlankNode(e){var t,r;if(e)for(t=e="_:"+e,r=1;this._ids[t];)t=e+r++;else do{t="_:b"+this._blankNodeIndex++}while(this._ids[t]);return this._ids[t]=++this._id,this._entities[this._id]=t,this._factory.blankNode(t.substr(2))}extractLists({remove:e=!1,ignoreErrors:t=!1}={}){var r={},n=t?()=>!0:(e,t)=>{throw new Error(`${e.value} ${t}`)},i=this.getQuads(null,a.a.rdf.rest,a.a.rdf.nil,null),s=e?[...i]:[];return i.forEach(t=>{for(var i,o,c=[],u=!1,l=t.graph,d=t.subject;d&&!u;){var p,h,f=this.getQuads(null,null,d,null),m=this.getQuads(d,null,null,null),g=null,y=null,b=null;for(p=0;p0&&s.length>i&&!s.warned){s.warned=!0;var c=new Error("Possible EventEmitter memory leak detected. "+s.length+" "+String(t)+" listeners added. Use emitter.setMaxListeners() to increase limit");c.name="MaxListenersExceededWarning",c.emitter=e,c.type=t,c.count=s.length,o=c,console&&console.warn&&console.warn(o)}return e}function p(){if(!this.fired)return this.target.removeListener(this.type,this.wrapFn),this.fired=!0,0===arguments.length?this.listener.call(this.target):this.listener.apply(this.target,arguments)}function h(e,t,r){var n={fired:!1,wrapFn:void 0,target:e,type:t,listener:r},i=p.bind(n);return i.listener=r,n.wrapFn=i,i}function f(e,t,r){var n=e._events;if(void 0===n)return[];var i=n[t];return void 0===i?[]:"function"==typeof i?r?[i.listener||i]:[i]:r?function(e){for(var t=new Array(e.length),r=0;r0&&(s=t[0]),s instanceof Error)throw s;var o=new Error("Unhandled error."+(s?" ("+s.message+")":""));throw o.context=s,o}var c=i[e];if(void 0===c)return!1;if("function"==typeof c)a(c,this,t);else{var u=c.length,l=g(c,u);for(r=0;r=0;a--)if(r[a]===t||r[a].listener===t){s=r[a].listener,i=a;break}if(i<0)return this;0===i?r.shift():function(e,t){for(;t+1=0;n--)this.removeListener(e,t[n]);return this},o.prototype.listeners=function(e){return f(this,e,!0)},o.prototype.rawListeners=function(e){return f(this,e,!1)},o.listenerCount=function(e,t){return"function"==typeof e.listenerCount?e.listenerCount(t):m.call(e,t)},o.prototype.listenerCount=m,o.prototype.eventNames=function(){return this._eventsCount>0?n(this._events):[]}},function(e,t){!function(e){!function(t){var r="URLSearchParams"in e,n="Symbol"in e&&"iterator"in Symbol,i="FileReader"in e&&"Blob"in e&&function(){try{return new Blob,!0}catch(e){return!1}}(),a="FormData"in e,s="ArrayBuffer"in e;if(s)var o=["[object Int8Array]","[object Uint8Array]","[object Uint8ClampedArray]","[object Int16Array]","[object Uint16Array]","[object Int32Array]","[object Uint32Array]","[object Float32Array]","[object Float64Array]"],c=ArrayBuffer.isView||function(e){return e&&o.indexOf(Object.prototype.toString.call(e))>-1};function u(e){if("string"!=typeof e&&(e=String(e)),/[^a-z0-9\-#$%&'*+.^_`|~]/i.test(e))throw new TypeError("Invalid character in header field name");return e.toLowerCase()}function l(e){return"string"!=typeof e&&(e=String(e)),e}function d(e){var t={next:function(){var t=e.shift();return{done:void 0===t,value:t}}};return n&&(t[Symbol.iterator]=function(){return t}),t}function p(e){this.map={},e instanceof p?e.forEach((function(e,t){this.append(t,e)}),this):Array.isArray(e)?e.forEach((function(e){this.append(e[0],e[1])}),this):e&&Object.getOwnPropertyNames(e).forEach((function(t){this.append(t,e[t])}),this)}function h(e){if(e.bodyUsed)return Promise.reject(new TypeError("Already read"));e.bodyUsed=!0}function f(e){return new Promise((function(t,r){e.onload=function(){t(e.result)},e.onerror=function(){r(e.error)}}))}function m(e){var t=new FileReader,r=f(t);return t.readAsArrayBuffer(e),r}function g(e){if(e.slice)return e.slice(0);var t=new Uint8Array(e.byteLength);return t.set(new Uint8Array(e)),t.buffer}function y(){return this.bodyUsed=!1,this._initBody=function(e){var t;this._bodyInit=e,e?"string"==typeof e?this._bodyText=e:i&&Blob.prototype.isPrototypeOf(e)?this._bodyBlob=e:a&&FormData.prototype.isPrototypeOf(e)?this._bodyFormData=e:r&&URLSearchParams.prototype.isPrototypeOf(e)?this._bodyText=e.toString():s&&i&&((t=e)&&DataView.prototype.isPrototypeOf(t))?(this._bodyArrayBuffer=g(e.buffer),this._bodyInit=new Blob([this._bodyArrayBuffer])):s&&(ArrayBuffer.prototype.isPrototypeOf(e)||c(e))?this._bodyArrayBuffer=g(e):this._bodyText=e=Object.prototype.toString.call(e):this._bodyText="",this.headers.get("content-type")||("string"==typeof e?this.headers.set("content-type","text/plain;charset=UTF-8"):this._bodyBlob&&this._bodyBlob.type?this.headers.set("content-type",this._bodyBlob.type):r&&URLSearchParams.prototype.isPrototypeOf(e)&&this.headers.set("content-type","application/x-www-form-urlencoded;charset=UTF-8"))},i&&(this.blob=function(){var e=h(this);if(e)return e;if(this._bodyBlob)return Promise.resolve(this._bodyBlob);if(this._bodyArrayBuffer)return Promise.resolve(new Blob([this._bodyArrayBuffer]));if(this._bodyFormData)throw new Error("could not read FormData body as blob");return Promise.resolve(new Blob([this._bodyText]))},this.arrayBuffer=function(){return this._bodyArrayBuffer?h(this)||Promise.resolve(this._bodyArrayBuffer):this.blob().then(m)}),this.text=function(){var e,t,r,n=h(this);if(n)return n;if(this._bodyBlob)return e=this._bodyBlob,t=new FileReader,r=f(t),t.readAsText(e),r;if(this._bodyArrayBuffer)return Promise.resolve(function(e){for(var t=new Uint8Array(e),r=new Array(t.length),n=0;n-1?n:r),this.mode=t.mode||this.mode||null,this.signal=t.signal||this.signal,this.referrer=null,("GET"===this.method||"HEAD"===this.method)&&i)throw new TypeError("Body not allowed for GET or HEAD requests");this._initBody(i)}function v(e){var t=new FormData;return e.trim().split("&").forEach((function(e){if(e){var r=e.split("="),n=r.shift().replace(/\+/g," "),i=r.join("=").replace(/\+/g," ");t.append(decodeURIComponent(n),decodeURIComponent(i))}})),t}function w(e,t){t||(t={}),this.type="default",this.status=void 0===t.status?200:t.status,this.ok=this.status>=200&&this.status<300,this.statusText="statusText"in t?t.statusText:"OK",this.headers=new p(t.headers),this.url=t.url||"",this._initBody(e)}_.prototype.clone=function(){return new _(this,{body:this._bodyInit})},y.call(_.prototype),y.call(w.prototype),w.prototype.clone=function(){return new w(this._bodyInit,{status:this.status,statusText:this.statusText,headers:new p(this.headers),url:this.url})},w.error=function(){var e=new w(null,{status:0,statusText:""});return e.type="error",e};var S=[301,302,303,307,308];w.redirect=function(e,t){if(-1===S.indexOf(t))throw new RangeError("Invalid status code");return new w(null,{status:t,headers:{location:e}})},t.DOMException=e.DOMException;try{new t.DOMException}catch(e){t.DOMException=function(e,t){this.message=e,this.name=t;var r=Error(e);this.stack=r.stack},t.DOMException.prototype=Object.create(Error.prototype),t.DOMException.prototype.constructor=t.DOMException}function E(e,r){return new Promise((function(n,a){var s=new _(e,r);if(s.signal&&s.signal.aborted)return a(new t.DOMException("Aborted","AbortError"));var o=new XMLHttpRequest;function c(){o.abort()}o.onload=function(){var e,t,r={status:o.status,statusText:o.statusText,headers:(e=o.getAllResponseHeaders()||"",t=new p,e.replace(/\r?\n[\t ]+/g," ").split(/\r?\n/).forEach((function(e){var r=e.split(":"),n=r.shift().trim();if(n){var i=r.join(":").trim();t.append(n,i)}})),t)};r.url="responseURL"in o?o.responseURL:r.headers.get("X-Request-URL");var i="response"in o?o.response:o.responseText;n(new w(i,r))},o.onerror=function(){a(new TypeError("Network request failed"))},o.ontimeout=function(){a(new TypeError("Network request failed"))},o.onabort=function(){a(new t.DOMException("Aborted","AbortError"))},o.open(s.method,s.url,!0),"include"===s.credentials?o.withCredentials=!0:"omit"===s.credentials&&(o.withCredentials=!1),"responseType"in o&&i&&(o.responseType="blob"),s.headers.forEach((function(e,t){o.setRequestHeader(t,e)})),s.signal&&(s.signal.addEventListener("abort",c),o.onreadystatechange=function(){4===o.readyState&&s.signal.removeEventListener("abort",c)}),o.send(void 0===s._bodyInit?null:s._bodyInit)}))}E.polyfill=!0,e.fetch||(e.fetch=E,e.Headers=p,e.Request=_,e.Response=w),t.Headers=p,t.Request=_,t.Response=w,t.fetch=E}({})}("undefined"!=typeof self?self:this)},function(e,t,r){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.ERROR_CODES=t.ErrorCoded=void 0;class n extends Error{constructor(e,t){super(e),this.code=t}}t.ErrorCoded=n,function(e){e.COLLIDING_KEYWORDS="colliding keywords",e.CONFLICTING_INDEXES="conflicting indexes",e.CYCLIC_IRI_MAPPING="cyclic IRI mapping",e.INVALID_ID_VALUE="invalid @id value",e.INVALID_INDEX_VALUE="invalid @index value",e.INVALID_NEST_VALUE="invalid @nest value",e.INVALID_PREFIX_VALUE="invalid @prefix value",e.INVALID_PROPAGATE_VALUE="invalid @propagate value",e.INVALID_REVERSE_VALUE="invalid @reverse value",e.INVALID_IMPORT_VALUE="invalid @import value",e.INVALID_VERSION_VALUE="invalid @version value",e.INVALID_BASE_IRI="invalid base IRI",e.INVALID_CONTAINER_MAPPING="invalid container mapping",e.INVALID_CONTEXT_ENTRY="invalid context entry",e.INVALID_CONTEXT_NULLIFICATION="invalid context nullification",e.INVALID_DEFAULT_LANGUAGE="invalid default language",e.INVALID_INCLUDED_VALUE="invalid @included value",e.INVALID_IRI_MAPPING="invalid IRI mapping",e.INVALID_JSON_LITERAL="invalid JSON literal",e.INVALID_KEYWORD_ALIAS="invalid keyword alias",e.INVALID_LANGUAGE_MAP_VALUE="invalid language map value",e.INVALID_LANGUAGE_MAPPING="invalid language mapping",e.INVALID_LANGUAGE_TAGGED_STRING="invalid language-tagged string",e.INVALID_LANGUAGE_TAGGED_VALUE="invalid language-tagged value",e.INVALID_LOCAL_CONTEXT="invalid local context",e.INVALID_REMOTE_CONTEXT="invalid remote context",e.INVALID_REVERSE_PROPERTY="invalid reverse property",e.INVALID_REVERSE_PROPERTY_MAP="invalid reverse property map",e.INVALID_REVERSE_PROPERTY_VALUE="invalid reverse property value",e.INVALID_SCOPED_CONTEXT="invalid scoped context",e.INVALID_SCRIPT_ELEMENT="invalid script element",e.INVALID_SET_OR_LIST_OBJECT="invalid set or list object",e.INVALID_TERM_DEFINITION="invalid term definition",e.INVALID_TYPE_MAPPING="invalid type mapping",e.INVALID_TYPE_VALUE="invalid type value",e.INVALID_TYPED_VALUE="invalid typed value",e.INVALID_VALUE_OBJECT="invalid value object",e.INVALID_VALUE_OBJECT_VALUE="invalid value object value",e.INVALID_VOCAB_MAPPING="invalid vocab mapping",e.IRI_CONFUSED_WITH_PREFIX="IRI confused with prefix",e.KEYWORD_REDEFINITION="keyword redefinition",e.LOADING_DOCUMENT_FAILED="loading document failed",e.LOADING_REMOTE_CONTEXT_FAILED="loading remote context failed",e.MULTIPLE_CONTEXT_LINK_HEADERS="multiple context link headers",e.PROCESSING_MODE_CONFLICT="processing mode conflict",e.PROTECTED_TERM_REDEFINITION="protected term redefinition",e.CONTEXT_OVERFLOW="context overflow",e.INVALID_BASE_DIRECTION="invalid base direction",e.RECURSIVE_CONTEXT_INCLUSION="recursive context inclusion",e.INVALID_STREAMING_KEY_ORDER="invalid streaming key order"}(t.ERROR_CODES||(t.ERROR_CODES={}))},function(e,t,r){(function(e){var n=void 0!==e&&e||"undefined"!=typeof self&&self||window,i=Function.prototype.apply;function a(e,t){this._id=e,this._clearFn=t}t.setTimeout=function(){return new a(i.call(setTimeout,n,arguments),clearTimeout)},t.setInterval=function(){return new a(i.call(setInterval,n,arguments),clearInterval)},t.clearTimeout=t.clearInterval=function(e){e&&e.close()},a.prototype.unref=a.prototype.ref=function(){},a.prototype.close=function(){this._clearFn.call(n,this._id)},t.enroll=function(e,t){clearTimeout(e._idleTimeoutId),e._idleTimeout=t},t.unenroll=function(e){clearTimeout(e._idleTimeoutId),e._idleTimeout=-1},t._unrefActive=t.active=function(e){clearTimeout(e._idleTimeoutId);var t=e._idleTimeout;t>=0&&(e._idleTimeoutId=setTimeout((function(){e._onTimeout&&e._onTimeout()}),t))},r(229),t.setImmediate="undefined"!=typeof self&&self.setImmediate||void 0!==e&&e.setImmediate||this&&this.setImmediate,t.clearImmediate="undefined"!=typeof self&&self.clearImmediate||void 0!==e&&e.clearImmediate||this&&this.clearImmediate}).call(this,r(17))},function(e,t,r){"use strict";var n=this&&this.__createBinding||(Object.create?function(e,t,r,n){void 0===n&&(n=r),Object.defineProperty(e,n,{enumerable:!0,get:function(){return t[r]}})}:function(e,t,r,n){void 0===n&&(n=r),e[n]=t[r]}),i=this&&this.__exportStar||function(e,t){for(var r in e)"default"===r||Object.prototype.hasOwnProperty.call(t,r)||n(t,e,r)};Object.defineProperty(t,"__esModule",{value:!0}),i(r(235),t),i(r(237),t)},function(e,t,r){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.orderTypes=t.isExpressionError=t.ExpressionError=t.AggregateEvaluator=t.SyncEvaluator=t.AsyncEvaluator=void 0;var n=r(413);Object.defineProperty(t,"AsyncEvaluator",{enumerable:!0,get:function(){return n.AsyncEvaluator}});var i=r(189);Object.defineProperty(t,"SyncEvaluator",{enumerable:!0,get:function(){return i.SyncEvaluator}});var a=r(435);Object.defineProperty(t,"AggregateEvaluator",{enumerable:!0,get:function(){return a.AggregateEvaluator}});var s=r(19);Object.defineProperty(t,"ExpressionError",{enumerable:!0,get:function(){return s.ExpressionError}}),Object.defineProperty(t,"isExpressionError",{enumerable:!0,get:function(){return s.isExpressionError}});var o=r(436);Object.defineProperty(t,"orderTypes",{enumerable:!0,get:function(){return o.orderTypes}})},function(e,t,r){"use strict";var n=r(15).Buffer,i=n.isEncoding||function(e){switch((e=""+e)&&e.toLowerCase()){case"hex":case"utf8":case"utf-8":case"ascii":case"binary":case"base64":case"ucs2":case"ucs-2":case"utf16le":case"utf-16le":case"raw":return!0;default:return!1}};function a(e){var t;switch(this.encoding=function(e){var t=function(e){if(!e)return"utf8";for(var t;;)switch(e){case"utf8":case"utf-8":return"utf8";case"ucs2":case"ucs-2":case"utf16le":case"utf-16le":return"utf16le";case"latin1":case"binary":return"latin1";case"base64":case"ascii":case"hex":return e;default:if(t)return;e=(""+e).toLowerCase(),t=!0}}(e);if("string"!=typeof t&&(n.isEncoding===i||!i(e)))throw new Error("Unknown encoding: "+e);return t||e}(e),this.encoding){case"utf16le":this.text=c,this.end=u,t=4;break;case"utf8":this.fillLast=o,t=4;break;case"base64":this.text=l,this.end=d,t=3;break;default:return this.write=p,void(this.end=h)}this.lastNeed=0,this.lastTotal=0,this.lastChar=n.allocUnsafe(t)}function s(e){return e<=127?0:e>>5==6?2:e>>4==14?3:e>>3==30?4:e>>6==2?-1:-2}function o(e){var t=this.lastTotal-this.lastNeed,r=function(e,t,r){if(128!=(192&t[0]))return e.lastNeed=0,"�";if(e.lastNeed>1&&t.length>1){if(128!=(192&t[1]))return e.lastNeed=1,"�";if(e.lastNeed>2&&t.length>2&&128!=(192&t[2]))return e.lastNeed=2,"�"}}(this,e);return void 0!==r?r:this.lastNeed<=e.length?(e.copy(this.lastChar,t,0,this.lastNeed),this.lastChar.toString(this.encoding,0,this.lastTotal)):(e.copy(this.lastChar,t,0,e.length),void(this.lastNeed-=e.length))}function c(e,t){if((e.length-t)%2==0){var r=e.toString("utf16le",t);if(r){var n=r.charCodeAt(r.length-1);if(n>=55296&&n<=56319)return this.lastNeed=2,this.lastTotal=4,this.lastChar[0]=e[e.length-2],this.lastChar[1]=e[e.length-1],r.slice(0,-1)}return r}return this.lastNeed=1,this.lastTotal=2,this.lastChar[0]=e[e.length-1],e.toString("utf16le",t,e.length-1)}function u(e){var t=e&&e.length?this.write(e):"";if(this.lastNeed){var r=this.lastTotal-this.lastNeed;return t+this.lastChar.toString("utf16le",0,r)}return t}function l(e,t){var r=(e.length-t)%3;return 0===r?e.toString("base64",t):(this.lastNeed=3-r,this.lastTotal=3,1===r?this.lastChar[0]=e[e.length-1]:(this.lastChar[0]=e[e.length-2],this.lastChar[1]=e[e.length-1]),e.toString("base64",t,e.length-r))}function d(e){var t=e&&e.length?this.write(e):"";return this.lastNeed?t+this.lastChar.toString("base64",0,3-this.lastNeed):t}function p(e){return e.toString(this.encoding)}function h(e){return e&&e.length?this.write(e):""}t.StringDecoder=a,a.prototype.write=function(e){if(0===e.length)return"";var t,r;if(this.lastNeed){if(void 0===(t=this.fillLast(e)))return"";r=this.lastNeed,this.lastNeed=0}else r=0;return r=0)return i>0&&(e.lastNeed=i-1),i;if(--n=0)return i>0&&(e.lastNeed=i-2),i;if(--n=0)return i>0&&(2===i?i=0:e.lastNeed=i-3),i;return 0}(this,e,t);if(!this.lastNeed)return e.toString("utf8",t);this.lastTotal=r;var n=e.length-(r-this.lastNeed);return e.copy(this.lastChar,0,n),e.toString("utf8",t,n)},a.prototype.fillLast=function(e){if(this.lastNeed<=e.length)return e.copy(this.lastChar,this.lastTotal-this.lastNeed,0,this.lastNeed),this.lastChar.toString(this.encoding,0,this.lastTotal);e.copy(this.lastChar,this.lastTotal-this.lastNeed,0,e.length),this.lastNeed-=e.length}},function(e,t,r){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.expressionTypes=t.types=void 0,t.types=Object.freeze({ALT:"alt",ASK:"ask",BGP:"bgp",CONSTRUCT:"construct",DESC:"desc",DESCRIBE:"describe",DISTINCT:"distinct",EXPRESSION:"expression",EXTEND:"extend",FILTER:"filter",FROM:"from",GRAPH:"graph",GROUP:"group",INV:"inv",JOIN:"join",LEFT_JOIN:"leftjoin",LINK:"link",MINUS:"minus",NPS:"nps",ONE_OR_MORE_PATH:"OneOrMorePath",ORDER_BY:"orderby",PATH:"path",PATTERN:"pattern",PROJECT:"project",REDUCED:"reduced",SEQ:"seq",SERVICE:"service",SLICE:"slice",UNION:"union",VALUES:"values",ZERO_OR_MORE_PATH:"ZeroOrMorePath",ZERO_OR_ONE_PATH:"ZeroOrOnePath",COMPOSITE_UPDATE:"compositeupdate",DELETE_INSERT:"deleteinsert",LOAD:"load",CLEAR:"clear",CREATE:"create",DROP:"drop",ADD:"add",MOVE:"move",COPY:"copy"}),t.expressionTypes=Object.freeze({AGGREGATE:"aggregate",EXISTENCE:"existence",NAMED:"named",OPERATOR:"operator",TERM:"term",WILDCARD:"wildcard"})},function(e,t,r){"use strict";Object.defineProperty(t,"__esModule",{value:!0});const n=r(6),i=r(5),a=r(37).Wildcard;t.default=class{constructor(e){this.dataFactory=e||new n.DataFactory,this.stringType=this.createTerm("http://www.w3.org/2001/XMLSchema#string")}createAlt(e,t){return{type:"alt",left:e,right:t}}createAsk(e){return{type:"ask",input:e}}createBoundAggregate(e,t,r,n,i){let a=this.createAggregateExpression(t,r,n,i);return a.variable=e,a}createBgp(e){return{type:"bgp",patterns:e}}createConstruct(e,t){return{type:"construct",input:e,template:t}}createDescribe(e,t){return{type:"describe",input:e,terms:t}}createDistinct(e){return{type:"distinct",input:e}}createExtend(e,t,r){return{type:"extend",input:e,variable:t,expression:r}}createFrom(e,t,r){return{type:"from",input:e,default:t,named:r}}createFilter(e,t){return{type:"filter",input:e,expression:t}}createGraph(e,t){return{type:"graph",input:e,name:t}}createGroup(e,t,r){return{type:"group",input:e,variables:t,aggregates:r}}createInv(e){return{type:"inv",path:e}}createJoin(e,t){return{type:"join",left:e,right:t}}createLeftJoin(e,t,r){return r?{type:"leftjoin",left:e,right:t,expression:r}:{type:"leftjoin",left:e,right:t}}createLink(e){return{type:"link",iri:e}}createMinus(e,t){return{type:"minus",left:e,right:t}}createNps(e){return{type:"nps",iris:e}}createOneOrMorePath(e){return{type:"OneOrMorePath",path:e}}createOrderBy(e,t){return{type:"orderby",input:e,expressions:t}}createPath(e,t,r,n){return n?{type:"path",subject:e,predicate:t,object:r,graph:n}:{type:"path",subject:e,predicate:t,object:r,graph:this.dataFactory.defaultGraph()}}createPattern(e,t,r,n){let i=this.dataFactory.quad(e,t,r,n);return i.type="pattern",i}createProject(e,t){return{type:"project",input:e,variables:t}}createReduced(e){return{type:"reduced",input:e}}createSeq(e,t){return{type:"seq",left:e,right:t}}createService(e,t,r){return{type:"service",input:e,name:t,silent:r}}createSlice(e,t,r){return void 0===t&&(t=0),void 0!==r?{type:"slice",input:e,start:t,length:r}:{type:"slice",input:e,start:t}}createUnion(e,t){return{type:"union",left:e,right:t}}createValues(e,t){return{type:"values",variables:e,bindings:t}}createZeroOrMorePath(e){return{type:"ZeroOrMorePath",path:e}}createZeroOrOnePath(e){return{type:"ZeroOrOnePath",path:e}}createAggregateExpression(e,t,r,n){return n?{type:"expression",expressionType:"aggregate",aggregator:e,expression:t,separator:n,distinct:r}:{type:"expression",expressionType:"aggregate",aggregator:e,expression:t,distinct:r}}createExistenceExpression(e,t){return{type:"expression",expressionType:"existence",not:e,input:t}}createNamedExpression(e,t){return{type:"expression",expressionType:"named",name:e,args:t}}createOperatorExpression(e,t){return{type:"expression",expressionType:"operator",operator:e,args:t}}createTermExpression(e){return{type:"expression",expressionType:"term",term:e}}createWildcardExpression(){return{type:"expression",expressionType:"wildcard",wildcard:new a}}createTerm(e){return i.stringToTerm(e,this.dataFactory)}createCompositeUpdate(e){return{type:"compositeupdate",updates:e}}createDeleteInsert(e,t,r){const n={type:"deleteinsert"};return e&&(n.delete=e),t&&(n.insert=t),r&&(n.where=r),n}createLoad(e,t,r){const n={type:"load",source:e};return t&&(n.destination=t),this.addSilent(n,r)}createClear(e,t){return this.addSilent({type:"clear",source:e},t)}createCreate(e,t){return this.addSilent({type:"create",source:e},t)}createDrop(e,t){return this.addSilent({type:"drop",source:e},t)}createAdd(e,t,r){return this.addSilent({type:"add",source:e,destination:t},r)}createMove(e,t,r){return this.addSilent({type:"move",source:e,destination:t},r)}createCopy(e,t,r){return this.addSilent({type:"copy",source:e,destination:t},r)}addSilent(e,t){return t&&(e.silent=t),e}}},function(e,t,r){"use strict";var n=this&&this.__createBinding||(Object.create?function(e,t,r,n){void 0===n&&(n=r),Object.defineProperty(e,n,{enumerable:!0,get:function(){return t[r]}})}:function(e,t,r,n){void 0===n&&(n=r),e[n]=t[r]}),i=this&&this.__exportStar||function(e,t){for(var r in e)"default"===r||Object.prototype.hasOwnProperty.call(t,r)||n(t,e,r)};Object.defineProperty(t,"__esModule",{value:!0}),i(r(294),t)},function(e,t,r){"use strict";var n=this&&this.__createBinding||(Object.create?function(e,t,r,n){void 0===n&&(n=r),Object.defineProperty(e,n,{enumerable:!0,get:function(){return t[r]}})}:function(e,t,r,n){void 0===n&&(n=r),e[n]=t[r]}),i=this&&this.__exportStar||function(e,t){for(var r in e)"default"===r||Object.prototype.hasOwnProperty.call(t,r)||n(t,e,r)};Object.defineProperty(t,"__esModule",{value:!0}),i(r(334),t)},function(e,t,r){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.EntryHandlerPredicate=void 0;const n=r(8),i=r(26);class a{static async handlePredicateObject(e,t,r,n,i,a,s){const o=await t.getPropertiesDepth(r,n),c=await t.getDepthOffsetGraph(n,r),u=n-c,l=e.idStack[o];if(l)for(const d of l){if(c>=0){const r=e.idStack[u-1];if(r)for(const o of r)s?(t.validateReverseSubject(a),e.emitQuad(n,t.dataFactory.quad(a,i,d,o))):e.emitQuad(n,t.dataFactory.quad(d,i,a,o));else s?(t.validateReverseSubject(a),e.getUnidentifiedGraphBufferSafe(u-1).push({subject:a,predicate:i,object:d})):e.getUnidentifiedGraphBufferSafe(u-1).push({subject:d,predicate:i,object:a})}else{const c=await t.getGraphContainerValue(r,o);s?(t.validateReverseSubject(a),e.emitQuad(n,t.dataFactory.quad(a,i,d,c))):e.emitQuad(n,t.dataFactory.quad(d,i,a,c))}}else s&&t.validateReverseSubject(a),e.getUnidentifiedValueBufferSafe(o).push({predicate:i,object:a,reverse:s})}isPropertyHandler(){return!0}isStackProcessor(){return!0}async validate(e,t,r,n,a){const s=r[n];if(s){const a=await e.getContext(r);if(await t.predicateToTerm(a,r[n]))return"@json"===i.Util.getContextValueType(a,s)&&(e.jsonLiteralStack[n+1]=!0),!0}return!1}async test(e,t,r,n,i){return n[i]}async handle(e,t,r,s,o,c,u){const l=s[c],d=await e.getContext(s),p=await t.predicateToTerm(d,r);if(p){const u=await t.valueToTerm(d,r,o,c,s);if(u.length)for(let h of u){const u=i.Util.isPropertyReverse(d,l,await t.unaliasKeywordParent(s,c));if(o){const a="@list"in i.Util.getContextValueContainer(d,r);if(a||o["@list"]){if((a&&!Array.isArray(o)&&!o["@list"]||o["@list"]&&!Array.isArray(o["@list"]))&&h!==t.rdfNil){const r=t.dataFactory.blankNode();e.emitQuad(c,t.dataFactory.quad(r,t.rdfRest,t.rdfNil,t.getDefaultGraph())),e.emitQuad(c,t.dataFactory.quad(r,t.rdfFirst,h,t.getDefaultGraph())),h=r}if(u&&!e.allowSubjectList)throw new n.ErrorCoded("Found illegal list value in subject position at "+r,n.ERROR_CODES.INVALID_REVERSE_PROPERTY_VALUE)}}await a.handlePredicateObject(e,t,s,c,p,h,u)}else e.emittedStack[c]=!1}}}t.EntryHandlerPredicate=a},function(e,t,r){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.parseXSDDateTime=t.parseXSDInteger=t.parseXSDDecimal=t.parseXSDFloat=void 0,t.parseXSDFloat=function(e){const t=Number(e);return isNaN(t)?"NaN"===e?NaN:"INF"===e?1/0:"-INF"===e?-1/0:void 0:t},t.parseXSDDecimal=function(e){if(/^(\-|\+)?([0-9]+(\.[0-9]+)?)$/.test(e)){const t=Number(e);return isNaN(t)?void 0:t}},t.parseXSDInteger=function(e){if(/^(\-|\+)?([0-9]+)$/.test(e)){const t=Number(e);return isNaN(t)?void 0:t}},t.parseXSDDateTime=function(e){const t=e.indexOf("T"),r=t>=0?e.substr(0,t):e,[n,i,a]=r.split("-");let s="",o="",c="",u="";if(t>=0){const r=e.substr(t+1),[n,i]=r.split(/[\+\-Z]/);[s,o,c]=n.split(":");const a=new RegExp(/([\+\-Z].*)/).exec(r);u=a?a[0]:""}else s="00",o="00",c="00",u="";return{year:n,month:i,day:a,hours:s,minutes:o,seconds:c,timezone:u}}},function(e,t,r){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.typeCheckLit=t.log=t.dateTime=t.langString=t.string=t.numberFromString=t.number=t.bool=t.map=t.Impl=t.Builder=t.declare=void 0;const n=r(23),i=r(40),a=r(16),s=r(19),o=r(16),c=r(77);t.declare=function(){return new u};class u{constructor(){this.implementations=[]}collect(){return p(this.implementations)}log(){return console.log(this.implementations),this}add(e){return this.implementations.push(e),this}set(e,t){const r=n.List(e);return this.add(new d({types:r,func:t}))}copy({from:e,to:t}){const r=this.implementations.length-1,i=n.List(e);for(let e=r;e>=0;e--){const r=this.implementations[e];if(r.get("types").equals(i))return this.set(t,r.get("func"))}throw new s.UnexpectedError("Tried to copy implementation, but types not found",{from:e,to:t})}onUnary(e,t){return this.set([e],([e])=>t(e))}onUnaryTyped(e,t){return this.set([e],([e])=>t(e.typedValue))}onBinary(e,t){return this.set(e,([e,r])=>t(e,r))}onBinaryTyped(e,t){return this.set(e,([e,r])=>t(e.typedValue,r.typedValue))}onTernaryTyped(e,t){return this.set(e,([e,r,n])=>t(e.typedValue,r.typedValue,n.typedValue))}onTernary(e,t){return this.set(e,([e,r,n])=>t(e,r,n))}onQuaternaryTyped(e,t){return this.set(e,([e,r,n,i])=>t(e.typedValue,r.typedValue,n.typedValue,i.typedValue))}unimplemented(e){for(let t=0;t<=5;t++){const r=Array(t).fill("term"),n=t=>{throw new s.UnimplementedError(e)};this.set(r,n)}return this}onTerm1(e){return this.set(["term"],([t])=>e(t))}onLiteral1(e){return this.set(["literal"],([t])=>e(t))}onBoolean1(e){return this.set(["boolean"],([t])=>e(t))}onBoolean1Typed(e){return this.set(["boolean"],([t])=>e(t.typedValue))}onString1(e){return this.set(["string"],([t])=>e(t))}onString1Typed(e){return this.set(["string"],([t])=>e(t.typedValue))}onLangString1(e){return this.set(["langString"],([t])=>e(t))}onStringly1(e){return this.set(["string"],([t])=>e(t)).set(["langString"],([t])=>e(t))}onStringly1Typed(e){return this.set(["string"],([t])=>e(t.typedValue)).set(["langString"],([t])=>e(t.typedValue))}onNumeric1(e){return this.set(["integer"],([t])=>e(t)).set(["decimal"],([t])=>e(t)).set(["float"],([t])=>e(t)).set(["double"],([t])=>e(t)).invalidLexicalForm(["nonlexical"],1)}onDateTime1(e){return this.set(["date"],([t])=>e(t)).invalidLexicalForm(["nonlexical"],1)}arithmetic(e){return this.numeric(([t,r])=>{const n=c.promote(t.type,r.type),i=a.decategorize(n);return f(e(t.typedValue,r.typedValue),i)})}numberTest(e){return this.numeric(([t,r])=>h(e(t.typedValue,r.typedValue)))}stringTest(e){return this.set(["string","string"],([t,r])=>h(e(t.typedValue,r.typedValue))).invalidLexicalForm(["nonlexical","string"],1).invalidLexicalForm(["string","nonlexical"],2)}booleanTest(e){return this.set(["boolean","boolean"],([t,r])=>h(e(t.typedValue,r.typedValue))).invalidLexicalForm(["nonlexical","boolean"],1).invalidLexicalForm(["boolean","nonlexical"],2)}dateTimeTest(e){return this.set(["date","date"],([t,r])=>h(e(t.typedValue,r.typedValue))).invalidLexicalForm(["nonlexical","date"],1).invalidLexicalForm(["date","nonlexical"],2)}numeric(e){return this.set(["integer","integer"],e).set(["integer","decimal"],e).set(["integer","float"],e).set(["integer","double"],e).invalidLexicalForm(["integer","nonlexical"],2).set(["decimal","integer"],e).set(["decimal","decimal"],e).set(["decimal","float"],e).set(["decimal","double"],e).invalidLexicalForm(["decimal","nonlexical"],2).set(["float","integer"],e).set(["float","decimal"],e).set(["float","float"],e).set(["float","double"],e).invalidLexicalForm(["float","nonlexical"],2).set(["double","integer"],e).set(["double","decimal"],e).set(["double","float"],e).set(["double","double"],e).invalidLexicalForm(["double","nonlexical"],2).invalidLexicalForm(["nonlexical","integer"],1).invalidLexicalForm(["nonlexical","decimal"],1).invalidLexicalForm(["nonlexical","float"],1).invalidLexicalForm(["nonlexical","double"],1)}invalidLexicalForm(e,t){return this.set(e,e=>{throw new s.InvalidLexicalForm(e[t-1].toRDF())})}chain(e){return this.implementations=this.implementations.concat(e),this}}t.Builder=u;const l={types:[],func(){throw new s.UnexpectedError("Implementation not set yet declared as implemented")}};class d extends(n.Record(l)){constructor(e){super(e)}get(e){return super.get(e)}toPair(){return[this.get("types"),this.get("func")]}}function p(e){const t=e.map(e=>e.toPair());return n.Map(t)}function h(e){return new i.BooleanLiteral(e)}function f(e,t){return new i.NumericLiteral(e,a.make(t||o.TypeURL.XSD_FLOAT),void 0)}t.Impl=d,t.map=p,t.bool=h,t.number=f,t.numberFromString=function(e,t){const r=Number(e);return new i.NumericLiteral(r,a.make(t||o.TypeURL.XSD_FLOAT),void 0)},t.string=function(e){return new i.StringLiteral(e)},t.langString=function(e,t){return new i.LangStringLiteral(e,t)},t.dateTime=function(e,t){return new i.DateTimeLiteral(e,t)},t.log=function(e,...t){return console.log(e,t),e},t.typeCheckLit=function(e,t,r,n){if("literal"!==e.termType)throw new s.InvalidArgumentTypes(r,n);const i=e;if(!t.includes(i.type))throw new s.InvalidArgumentTypes(r,n);return i}},function(e,t,r){"use strict";(function(e){r.d(t,"a",(function(){return p}));var n=r(9),i=r(216),a=r.n(i);const{xsd:s}=n.a;var o=/\\u([a-fA-F0-9]{4})|\\U([a-fA-F0-9]{8})|\\([^])/g,c={"\\":"\\","'":"'",'"':'"',n:"\n",r:"\r",t:"\t",f:"\f",b:"\b",_:"_","~":"~",".":".","-":"-","!":"!",$:"$","&":"&","(":"(",")":")","*":"*","+":"+",",":",",";":";","=":"=","/":"/","?":"?","#":"#","@":"@","%":"%"},u=/[\x00-\x20<>\\"\{\}\|\^\`]/,l={_iri:!0,_unescapedIri:!0,_simpleQuotedString:!0,_langcode:!0,_blank:!0,_newline:!0,_comment:!0,_whitespace:!0,_endOfFile:!0},d=/$0^/;class p{constructor(e){if(this._iri=/^<((?:[^ <>{}\\]|\\[uU])+)>[ \t]*/,this._unescapedIri=/^<([^\x00-\x20<>\\"\{\}\|\^\`]*)>[ \t]*/,this._simpleQuotedString=/^"([^"\\\r\n]*)"(?=[^"])/,this._simpleApostropheString=/^'([^'\\\r\n]*)'(?=[^'])/,this._langcode=/^@([a-z]+(?:-[a-z0-9]+)*)(?=[^a-z0-9\-])/i,this._prefix=/^((?:[A-Za-z\xc0-\xd6\xd8-\xf6\xf8-\u02ff\u0370-\u037d\u037f-\u1fff\u200c\u200d\u2070-\u218f\u2c00-\u2fef\u3001-\ud7ff\uf900-\ufdcf\ufdf0-\ufffd]|[\ud800-\udb7f][\udc00-\udfff])(?:\.?[\-0-9A-Z_a-z\xb7\xc0-\xd6\xd8-\xf6\xf8-\u037d\u037f-\u1fff\u200c\u200d\u203f\u2040\u2070-\u218f\u2c00-\u2fef\u3001-\ud7ff\uf900-\ufdcf\ufdf0-\ufffd]|[\ud800-\udb7f][\udc00-\udfff])*)?:(?=[#\s<])/,this._prefixed=/^((?:[A-Za-z\xc0-\xd6\xd8-\xf6\xf8-\u02ff\u0370-\u037d\u037f-\u1fff\u200c\u200d\u2070-\u218f\u2c00-\u2fef\u3001-\ud7ff\uf900-\ufdcf\ufdf0-\ufffd]|[\ud800-\udb7f][\udc00-\udfff])(?:\.?[\-0-9A-Z_a-z\xb7\xc0-\xd6\xd8-\xf6\xf8-\u037d\u037f-\u1fff\u200c\u200d\u203f\u2040\u2070-\u218f\u2c00-\u2fef\u3001-\ud7ff\uf900-\ufdcf\ufdf0-\ufffd]|[\ud800-\udb7f][\udc00-\udfff])*)?:((?:(?:[0-:A-Z_a-z\xc0-\xd6\xd8-\xf6\xf8-\u02ff\u0370-\u037d\u037f-\u1fff\u200c\u200d\u2070-\u218f\u2c00-\u2fef\u3001-\ud7ff\uf900-\ufdcf\ufdf0-\ufffd]|[\ud800-\udb7f][\udc00-\udfff]|%[0-9a-fA-F]{2}|\\[!#-\/;=?\-@_~])(?:(?:[\.\-0-:A-Z_a-z\xb7\xc0-\xd6\xd8-\xf6\xf8-\u037d\u037f-\u1fff\u200c\u200d\u203f\u2040\u2070-\u218f\u2c00-\u2fef\u3001-\ud7ff\uf900-\ufdcf\ufdf0-\ufffd]|[\ud800-\udb7f][\udc00-\udfff]|%[0-9a-fA-F]{2}|\\[!#-\/;=?\-@_~])*(?:[\-0-:A-Z_a-z\xb7\xc0-\xd6\xd8-\xf6\xf8-\u037d\u037f-\u1fff\u200c\u200d\u203f\u2040\u2070-\u218f\u2c00-\u2fef\u3001-\ud7ff\uf900-\ufdcf\ufdf0-\ufffd]|[\ud800-\udb7f][\udc00-\udfff]|%[0-9a-fA-F]{2}|\\[!#-\/;=?\-@_~]))?)?)(?:[ \t]+|(?=\.?[,;!\^\s#()\[\]\{\}"'<>]))/,this._variable=/^\?(?:(?:[A-Z_a-z\xc0-\xd6\xd8-\xf6\xf8-\u02ff\u0370-\u037d\u037f-\u1fff\u200c\u200d\u2070-\u218f\u2c00-\u2fef\u3001-\ud7ff\uf900-\ufdcf\ufdf0-\ufffd]|[\ud800-\udb7f][\udc00-\udfff])(?:[\-0-:A-Z_a-z\xb7\xc0-\xd6\xd8-\xf6\xf8-\u037d\u037f-\u1fff\u200c\u200d\u203f\u2040\u2070-\u218f\u2c00-\u2fef\u3001-\ud7ff\uf900-\ufdcf\ufdf0-\ufffd]|[\ud800-\udb7f][\udc00-\udfff])*)(?=[.,;!\^\s#()\[\]\{\}"'<>])/,this._blank=/^_:((?:[0-9A-Z_a-z\xc0-\xd6\xd8-\xf6\xf8-\u02ff\u0370-\u037d\u037f-\u1fff\u200c\u200d\u2070-\u218f\u2c00-\u2fef\u3001-\ud7ff\uf900-\ufdcf\ufdf0-\ufffd]|[\ud800-\udb7f][\udc00-\udfff])(?:\.?[\-0-9A-Z_a-z\xb7\xc0-\xd6\xd8-\xf6\xf8-\u037d\u037f-\u1fff\u200c\u200d\u203f\u2040\u2070-\u218f\u2c00-\u2fef\u3001-\ud7ff\uf900-\ufdcf\ufdf0-\ufffd]|[\ud800-\udb7f][\udc00-\udfff])*)(?:[ \t]+|(?=\.?[,;:\s#()\[\]\{\}"'<>]))/,this._number=/^[\-+]?(?:(\d+\.\d*|\.?\d+)[eE][\-+]?|\d*(\.)?)\d+(?=\.?[,;:\s#()\[\]\{\}"'<>])/,this._boolean=/^(?:true|false)(?=[.,;\s#()\[\]\{\}"'<>])/,this._keyword=/^@[a-z]+(?=[\s#<:])/i,this._sparqlKeyword=/^(?:PREFIX|BASE|GRAPH)(?=[\s#<])/i,this._shortPredicates=/^a(?=[\s()\[\]\{\}"'<>])/,this._newline=/^[ \t]*(?:#[^\n\r]*)?(?:\r\n|\n|\r)[ \t]*/,this._comment=/#([^\n\r]*)/,this._whitespace=/^[ \t]+/,this._endOfFile=/^(?:#[^\n\r]*)?$/,e=e||{},this._lineMode=!!e.lineMode)for(var t in this._n3Mode=!1,this)!(t in l)&&this[t]instanceof RegExp&&(this[t]=d);else this._n3Mode=!1!==e.n3;this._comments=!!e.comments,this._literalClosingPos=0}_tokenizeToEnd(e,t){for(var r=this._input,n=this._comments;;){for(var i,a;i=this._newline.exec(r);)n&&(a=this._comment.exec(i[0]))&&e(null,{line:this._line,type:"comment",value:a[1],prefix:""}),r=r.substr(i[0].length,r.length),this._line++;if(!i&&(i=this._whitespace.exec(r))&&(r=r.substr(i[0].length,r.length)),this._endOfFile.test(r))return t&&(n&&(a=this._comment.exec(r))&&e(null,{line:this._line,type:"comment",value:a[1],prefix:""}),e(r=null,{line:this._line,type:"eof",value:"",prefix:""})),this._input=r;var o=this._line,c="",l="",d="",p=r[0],h=null,f=0,m=!1;switch(p){case"^":if(r.length<3)break;if("^"!==r[1]){this._n3Mode&&(f=1,c="^");break}if(this._previousMarker="^^","<"!==(r=r.substr(2))[0]){m=!0;break}case"<":if(h=this._unescapedIri.exec(r))c="IRI",l=h[1];else if(h=this._iri.exec(r)){if(null===(l=this._unescape(h[1]))||u.test(l))return y(this);c="IRI"}else r.length>1&&"<"===r[1]?(c="<<",f=2):this._n3Mode&&r.length>1&&"="===r[1]&&(c="inverse",f=2,l=">");break;case">":r.length>1&&">"===r[1]&&(c=">>",f=2);break;case"_":((h=this._blank.exec(r))||t&&(h=this._blank.exec(r+" ")))&&(c="blank",d="_",l=h[1]);break;case'"':if(h=this._simpleQuotedString.exec(r))l=h[1];else if(({value:l,matchLength:f}=this._parseLiteral(r)),null===l)return y(this);null===h&&0===f||(c="literal",this._literalClosingPos=0);break;case"'":if(!this._lineMode){if(h=this._simpleApostropheString.exec(r))l=h[1];else if(({value:l,matchLength:f}=this._parseLiteral(r)),null===l)return y(this);null===h&&0===f||(c="literal",this._literalClosingPos=0)}break;case"?":this._n3Mode&&(h=this._variable.exec(r))&&(c="var",l=h[0]);break;case"@":"literal"===this._previousMarker&&(h=this._langcode.exec(r))?(c="langcode",l=h[1]):(h=this._keyword.exec(r))&&(c=h[0]);break;case".":if(1===r.length?t:r[1]<"0"||r[1]>"9"){c=".",f=1;break}case"0":case"1":case"2":case"3":case"4":case"5":case"6":case"7":case"8":case"9":case"+":case"-":(h=this._number.exec(r)||t&&(h=this._number.exec(r+" ")))&&(c="literal",l=h[0],d="string"==typeof h[1]?s.double:"string"==typeof h[2]?s.decimal:s.integer);break;case"B":case"b":case"p":case"P":case"G":case"g":(h=this._sparqlKeyword.exec(r))?c=h[0].toUpperCase():m=!0;break;case"f":case"t":(h=this._boolean.exec(r))?(c="literal",l=h[0],d=s.boolean):m=!0;break;case"a":(h=this._shortPredicates.exec(r))?(c="abbreviation",l="a"):m=!0;break;case"=":this._n3Mode&&r.length>1&&(c="abbreviation",">"!==r[1]?(f=1,l="="):(f=2,l=">"));break;case"!":if(!this._n3Mode)break;case",":case";":case"[":case"]":case"(":case")":case"{":case"}":this._lineMode||(f=1,c=p);break;default:m=!0}if(m&&("@prefix"!==this._previousMarker&&"PREFIX"!==this._previousMarker||!(h=this._prefix.exec(r))?((h=this._prefixed.exec(r))||t&&(h=this._prefixed.exec(r+" ")))&&(c="prefixed",d=h[1]||"",l=this._unescape(h[2])):(c="prefix",l=h[1]||"")),"^^"===this._previousMarker)switch(c){case"prefixed":c="type";break;case"IRI":c="typeIRI";break;default:c=""}if(!c)return t||!/^'''|^"""/.test(r)&&/\n|\r/.test(r)?y(this):this._input=r;var g={line:o,type:c,value:l,prefix:d};e(null,g),this.previousToken=g,this._previousMarker=c,r=r.substr(f||h[0].length,r.length)}function y(t){e(t._syntaxError(/^\S*/.exec(r)[0]))}}_unescape(e){let t=!1;const r=e.replace(o,(e,r,n,i)=>{if("string"==typeof r)return String.fromCharCode(Number.parseInt(r,16));if("string"==typeof n){let e=Number.parseInt(n,16);return e<=65535?String.fromCharCode(Number.parseInt(n,16)):String.fromCharCode(55296+((e-=65536)>>10),56320+(1023&e))}return i in c?c[i]:(t=!0,"")});return t?null:r}_parseLiteral(e){if(e.length>=3){const t=e.match(/^(?:"""|"|'''|'|)/)[0],r=t.length;let n=Math.max(this._literalClosingPos,r);for(;(n=e.indexOf(t,n))>0;){let t=0;for(;"\\"===e[n-t-1];)t++;if(t%2==0){const t=e.substring(r,n),i=t.split(/\r\n|\r|\n/).length-1,a=n+r;if(1===r&&0!==i||3===r&&this._lineMode)break;return this._line+=i,{value:this._unescape(t),matchLength:a}}n++}this._literalClosingPos=e.length-r+1}return{value:"",matchLength:0}}_syntaxError(e){this._input=null;var t=new Error('Unexpected "'+e+'" on line '+this._line+".");return t.context={token:void 0,line:this._line,previousToken:this.previousToken},t}tokenize(t,r){var n=this;if(this._line=1,"string"==typeof t){if(this._input=t,"function"!=typeof r){var i,s=[];if(this._tokenizeToEnd((function(e,t){e?i=e:s.push(t)}),!0),i)throw i;return s}a()(()=>n._tokenizeToEnd(r,!0))}else this._input="",this._pendingBuffer=null,"function"==typeof t.setEncoding&&t.setEncoding("utf8"),t.on("data",(function(t){null!==n._input&&0!==t.length&&(n._pendingBuffer&&(t=e.concat([n._pendingBuffer,t]),n._pendingBuffer=null),128&t[t.length-1]?n._pendingBuffer=t:(n._input+=t,n._tokenizeToEnd(r,!1)))})),t.on("end",(function(){null!==n._input&&n._tokenizeToEnd(r,!0)})),t.on("error",r)}}}).call(this,r(14).Buffer)},function(e,t,r){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.Util=void 0;class n{static isCompactIri(e){return e.indexOf(":")>0&&!(e&&"#"===e[0])}static getPrefix(e,t){if(e&&"#"===e[0])return null;const r=e.indexOf(":");if(r>=0){if(e.length>r+1&&"/"===e.charAt(r+1)&&"/"===e.charAt(r+2))return null;const n=e.substr(0,r);if("_"===n)return null;if(t[n])return n}return null}static getContextValueId(e){if(null===e||"string"==typeof e)return e;const t=e["@id"];return t||null}static isSimpleTermDefinitionPrefix(e,t){return!n.isPotentialKeyword(e)&&("_"===e[0]||t.allowPrefixNonGenDelims||n.isPrefixIriEndingWithGenDelim(e))}static isPotentialKeyword(e){return"string"==typeof e&&n.KEYWORD_REGEX.test(e)}static isPrefixIriEndingWithGenDelim(e){return n.ENDS_WITH_GEN_DELIM.test(e)}static isPrefixValue(e){return e&&("string"==typeof e||e&&"object"==typeof e)}static isValidIri(e){return n.IRI_REGEX.test(e)}static isValidIriWeak(e){return!!e&&":"!==e[0]&&n.IRI_REGEX_WEAK.test(e)}static isValidKeyword(e){return n.VALID_KEYWORDS[e]}static isTermProtected(e,t){const r=e[t];return!("string"==typeof r)&&r&&r["@protected"]}static hasProtectedTerms(e){for(const t of Object.keys(e))if(n.isTermProtected(e,t))return!0;return!1}static isReservedInternalKeyword(e){return e.startsWith("@__")}}t.Util=n,n.IRI_REGEX=/^([A-Za-z][A-Za-z0-9+-.]*|_):[^ "<>{}|\\\[\]`#]*(#[^#]*)?$/,n.IRI_REGEX_WEAK=/(?::[^:])|\//,n.KEYWORD_REGEX=/^@[a-z]+$/i,n.ENDS_WITH_GEN_DELIM=/[:/?#\[\]@]$/,n.REGEX_LANGUAGE_TAG=/^[a-zA-Z]+(-[a-zA-Z0-9]+)*$/,n.REGEX_DIRECTION_TAG=/^(ltr)|(rtl)$/,n.VALID_KEYWORDS={"@base":!0,"@container":!0,"@context":!0,"@direction":!0,"@graph":!0,"@id":!0,"@import":!0,"@included":!0,"@index":!0,"@json":!0,"@language":!0,"@list":!0,"@nest":!0,"@none":!0,"@prefix":!0,"@propagate":!0,"@protected":!0,"@reverse":!0,"@set":!0,"@type":!0,"@value":!0,"@version":!0,"@vocab":!0},n.EXPAND_KEYS_BLACKLIST=["@base","@vocab","@language","@version","@direction"],n.ALIAS_DOMAIN_BLACKLIST=["@container","@graph","@id","@index","@list","@nest","@none","@prefix","@reverse","@set","@type","@value","@version"],n.ALIAS_RANGE_BLACKLIST=["@context","@preserve"],n.CONTAINERS=["@list","@set","@index","@language","@graph","@id","@type"],n.CONTAINERS_1_0=["@list","@set","@index"]},function(e,t,r){"use strict";e.exports=function(e){return function e(t){if(null===t||"object"!=typeof t||null!=t.toJSON)return JSON.stringify(t);if(Array.isArray(t)&&0===t.length)return"[]";if(Array.isArray(t)&&1===t.length)return"["+e(t[0])+"]";if(Array.isArray(t))return"["+t.reduce((t,r,n)=>(t=1===n?e(t):t)+","+e(r))+"]";const r=Object.keys(t);if(0===r.length)return"{}";if(1===r.length)return"{"+e(r[0])+":"+e(t[r[0]])+"}";return"{"+r.sort().reduce((r,n,i)=>(r=1===i?e(r)+":"+e(t[r]):r)+","+e(n)+":"+e(t[n]))+"}"}(e)}},function(e,t,r){"use strict";var n=r(33).codes.ERR_STREAM_PREMATURE_CLOSE;function i(){}e.exports=function e(t,r,a){if("function"==typeof r)return e(t,null,r);r||(r={}),a=function(e){var t=!1;return function(){if(!t){t=!0;for(var r=arguments.length,n=new Array(r),i=0;i","GT":">","Gt":"≫","gtdot":"⋗","gtlPar":"⦕","gtquest":"⩼","gtrapprox":"⪆","gtrarr":"⥸","gtrdot":"⋗","gtreqless":"⋛","gtreqqless":"⪌","gtrless":"≷","gtrsim":"≳","gvertneqq":"≩︀","gvnE":"≩︀","Hacek":"ˇ","hairsp":" ","half":"½","hamilt":"ℋ","HARDcy":"Ъ","hardcy":"ъ","harrcir":"⥈","harr":"↔","hArr":"⇔","harrw":"↭","Hat":"^","hbar":"ℏ","Hcirc":"Ĥ","hcirc":"ĥ","hearts":"♥","heartsuit":"♥","hellip":"…","hercon":"⊹","hfr":"𝔥","Hfr":"ℌ","HilbertSpace":"ℋ","hksearow":"⤥","hkswarow":"⤦","hoarr":"⇿","homtht":"∻","hookleftarrow":"↩","hookrightarrow":"↪","hopf":"𝕙","Hopf":"ℍ","horbar":"―","HorizontalLine":"─","hscr":"𝒽","Hscr":"ℋ","hslash":"ℏ","Hstrok":"Ħ","hstrok":"ħ","HumpDownHump":"≎","HumpEqual":"≏","hybull":"⁃","hyphen":"‐","Iacute":"Í","iacute":"í","ic":"⁣","Icirc":"Î","icirc":"î","Icy":"И","icy":"и","Idot":"İ","IEcy":"Е","iecy":"е","iexcl":"¡","iff":"⇔","ifr":"𝔦","Ifr":"ℑ","Igrave":"Ì","igrave":"ì","ii":"ⅈ","iiiint":"⨌","iiint":"∭","iinfin":"⧜","iiota":"℩","IJlig":"IJ","ijlig":"ij","Imacr":"Ī","imacr":"ī","image":"ℑ","ImaginaryI":"ⅈ","imagline":"ℐ","imagpart":"ℑ","imath":"ı","Im":"ℑ","imof":"⊷","imped":"Ƶ","Implies":"⇒","incare":"℅","in":"∈","infin":"∞","infintie":"⧝","inodot":"ı","intcal":"⊺","int":"∫","Int":"∬","integers":"ℤ","Integral":"∫","intercal":"⊺","Intersection":"⋂","intlarhk":"⨗","intprod":"⨼","InvisibleComma":"⁣","InvisibleTimes":"⁢","IOcy":"Ё","iocy":"ё","Iogon":"Į","iogon":"į","Iopf":"𝕀","iopf":"𝕚","Iota":"Ι","iota":"ι","iprod":"⨼","iquest":"¿","iscr":"𝒾","Iscr":"ℐ","isin":"∈","isindot":"⋵","isinE":"⋹","isins":"⋴","isinsv":"⋳","isinv":"∈","it":"⁢","Itilde":"Ĩ","itilde":"ĩ","Iukcy":"І","iukcy":"і","Iuml":"Ï","iuml":"ï","Jcirc":"Ĵ","jcirc":"ĵ","Jcy":"Й","jcy":"й","Jfr":"𝔍","jfr":"𝔧","jmath":"ȷ","Jopf":"𝕁","jopf":"𝕛","Jscr":"𝒥","jscr":"𝒿","Jsercy":"Ј","jsercy":"ј","Jukcy":"Є","jukcy":"є","Kappa":"Κ","kappa":"κ","kappav":"ϰ","Kcedil":"Ķ","kcedil":"ķ","Kcy":"К","kcy":"к","Kfr":"𝔎","kfr":"𝔨","kgreen":"ĸ","KHcy":"Х","khcy":"х","KJcy":"Ќ","kjcy":"ќ","Kopf":"𝕂","kopf":"𝕜","Kscr":"𝒦","kscr":"𝓀","lAarr":"⇚","Lacute":"Ĺ","lacute":"ĺ","laemptyv":"⦴","lagran":"ℒ","Lambda":"Λ","lambda":"λ","lang":"⟨","Lang":"⟪","langd":"⦑","langle":"⟨","lap":"⪅","Laplacetrf":"ℒ","laquo":"«","larrb":"⇤","larrbfs":"⤟","larr":"←","Larr":"↞","lArr":"⇐","larrfs":"⤝","larrhk":"↩","larrlp":"↫","larrpl":"⤹","larrsim":"⥳","larrtl":"↢","latail":"⤙","lAtail":"⤛","lat":"⪫","late":"⪭","lates":"⪭︀","lbarr":"⤌","lBarr":"⤎","lbbrk":"❲","lbrace":"{","lbrack":"[","lbrke":"⦋","lbrksld":"⦏","lbrkslu":"⦍","Lcaron":"Ľ","lcaron":"ľ","Lcedil":"Ļ","lcedil":"ļ","lceil":"⌈","lcub":"{","Lcy":"Л","lcy":"л","ldca":"⤶","ldquo":"“","ldquor":"„","ldrdhar":"⥧","ldrushar":"⥋","ldsh":"↲","le":"≤","lE":"≦","LeftAngleBracket":"⟨","LeftArrowBar":"⇤","leftarrow":"←","LeftArrow":"←","Leftarrow":"⇐","LeftArrowRightArrow":"⇆","leftarrowtail":"↢","LeftCeiling":"⌈","LeftDoubleBracket":"⟦","LeftDownTeeVector":"⥡","LeftDownVectorBar":"⥙","LeftDownVector":"⇃","LeftFloor":"⌊","leftharpoondown":"↽","leftharpoonup":"↼","leftleftarrows":"⇇","leftrightarrow":"↔","LeftRightArrow":"↔","Leftrightarrow":"⇔","leftrightarrows":"⇆","leftrightharpoons":"⇋","leftrightsquigarrow":"↭","LeftRightVector":"⥎","LeftTeeArrow":"↤","LeftTee":"⊣","LeftTeeVector":"⥚","leftthreetimes":"⋋","LeftTriangleBar":"⧏","LeftTriangle":"⊲","LeftTriangleEqual":"⊴","LeftUpDownVector":"⥑","LeftUpTeeVector":"⥠","LeftUpVectorBar":"⥘","LeftUpVector":"↿","LeftVectorBar":"⥒","LeftVector":"↼","lEg":"⪋","leg":"⋚","leq":"≤","leqq":"≦","leqslant":"⩽","lescc":"⪨","les":"⩽","lesdot":"⩿","lesdoto":"⪁","lesdotor":"⪃","lesg":"⋚︀","lesges":"⪓","lessapprox":"⪅","lessdot":"⋖","lesseqgtr":"⋚","lesseqqgtr":"⪋","LessEqualGreater":"⋚","LessFullEqual":"≦","LessGreater":"≶","lessgtr":"≶","LessLess":"⪡","lesssim":"≲","LessSlantEqual":"⩽","LessTilde":"≲","lfisht":"⥼","lfloor":"⌊","Lfr":"𝔏","lfr":"𝔩","lg":"≶","lgE":"⪑","lHar":"⥢","lhard":"↽","lharu":"↼","lharul":"⥪","lhblk":"▄","LJcy":"Љ","ljcy":"љ","llarr":"⇇","ll":"≪","Ll":"⋘","llcorner":"⌞","Lleftarrow":"⇚","llhard":"⥫","lltri":"◺","Lmidot":"Ŀ","lmidot":"ŀ","lmoustache":"⎰","lmoust":"⎰","lnap":"⪉","lnapprox":"⪉","lne":"⪇","lnE":"≨","lneq":"⪇","lneqq":"≨","lnsim":"⋦","loang":"⟬","loarr":"⇽","lobrk":"⟦","longleftarrow":"⟵","LongLeftArrow":"⟵","Longleftarrow":"⟸","longleftrightarrow":"⟷","LongLeftRightArrow":"⟷","Longleftrightarrow":"⟺","longmapsto":"⟼","longrightarrow":"⟶","LongRightArrow":"⟶","Longrightarrow":"⟹","looparrowleft":"↫","looparrowright":"↬","lopar":"⦅","Lopf":"𝕃","lopf":"𝕝","loplus":"⨭","lotimes":"⨴","lowast":"∗","lowbar":"_","LowerLeftArrow":"↙","LowerRightArrow":"↘","loz":"◊","lozenge":"◊","lozf":"⧫","lpar":"(","lparlt":"⦓","lrarr":"⇆","lrcorner":"⌟","lrhar":"⇋","lrhard":"⥭","lrm":"‎","lrtri":"⊿","lsaquo":"‹","lscr":"𝓁","Lscr":"ℒ","lsh":"↰","Lsh":"↰","lsim":"≲","lsime":"⪍","lsimg":"⪏","lsqb":"[","lsquo":"‘","lsquor":"‚","Lstrok":"Ł","lstrok":"ł","ltcc":"⪦","ltcir":"⩹","lt":"<","LT":"<","Lt":"≪","ltdot":"⋖","lthree":"⋋","ltimes":"⋉","ltlarr":"⥶","ltquest":"⩻","ltri":"◃","ltrie":"⊴","ltrif":"◂","ltrPar":"⦖","lurdshar":"⥊","luruhar":"⥦","lvertneqq":"≨︀","lvnE":"≨︀","macr":"¯","male":"♂","malt":"✠","maltese":"✠","Map":"⤅","map":"↦","mapsto":"↦","mapstodown":"↧","mapstoleft":"↤","mapstoup":"↥","marker":"▮","mcomma":"⨩","Mcy":"М","mcy":"м","mdash":"—","mDDot":"∺","measuredangle":"∡","MediumSpace":" ","Mellintrf":"ℳ","Mfr":"𝔐","mfr":"𝔪","mho":"℧","micro":"µ","midast":"*","midcir":"⫰","mid":"∣","middot":"·","minusb":"⊟","minus":"−","minusd":"∸","minusdu":"⨪","MinusPlus":"∓","mlcp":"⫛","mldr":"…","mnplus":"∓","models":"⊧","Mopf":"𝕄","mopf":"𝕞","mp":"∓","mscr":"𝓂","Mscr":"ℳ","mstpos":"∾","Mu":"Μ","mu":"μ","multimap":"⊸","mumap":"⊸","nabla":"∇","Nacute":"Ń","nacute":"ń","nang":"∠⃒","nap":"≉","napE":"⩰̸","napid":"≋̸","napos":"ʼn","napprox":"≉","natural":"♮","naturals":"ℕ","natur":"♮","nbsp":" ","nbump":"≎̸","nbumpe":"≏̸","ncap":"⩃","Ncaron":"Ň","ncaron":"ň","Ncedil":"Ņ","ncedil":"ņ","ncong":"≇","ncongdot":"⩭̸","ncup":"⩂","Ncy":"Н","ncy":"н","ndash":"–","nearhk":"⤤","nearr":"↗","neArr":"⇗","nearrow":"↗","ne":"≠","nedot":"≐̸","NegativeMediumSpace":"​","NegativeThickSpace":"​","NegativeThinSpace":"​","NegativeVeryThinSpace":"​","nequiv":"≢","nesear":"⤨","nesim":"≂̸","NestedGreaterGreater":"≫","NestedLessLess":"≪","NewLine":"\\n","nexist":"∄","nexists":"∄","Nfr":"𝔑","nfr":"𝔫","ngE":"≧̸","nge":"≱","ngeq":"≱","ngeqq":"≧̸","ngeqslant":"⩾̸","nges":"⩾̸","nGg":"⋙̸","ngsim":"≵","nGt":"≫⃒","ngt":"≯","ngtr":"≯","nGtv":"≫̸","nharr":"↮","nhArr":"⇎","nhpar":"⫲","ni":"∋","nis":"⋼","nisd":"⋺","niv":"∋","NJcy":"Њ","njcy":"њ","nlarr":"↚","nlArr":"⇍","nldr":"‥","nlE":"≦̸","nle":"≰","nleftarrow":"↚","nLeftarrow":"⇍","nleftrightarrow":"↮","nLeftrightarrow":"⇎","nleq":"≰","nleqq":"≦̸","nleqslant":"⩽̸","nles":"⩽̸","nless":"≮","nLl":"⋘̸","nlsim":"≴","nLt":"≪⃒","nlt":"≮","nltri":"⋪","nltrie":"⋬","nLtv":"≪̸","nmid":"∤","NoBreak":"⁠","NonBreakingSpace":" ","nopf":"𝕟","Nopf":"ℕ","Not":"⫬","not":"¬","NotCongruent":"≢","NotCupCap":"≭","NotDoubleVerticalBar":"∦","NotElement":"∉","NotEqual":"≠","NotEqualTilde":"≂̸","NotExists":"∄","NotGreater":"≯","NotGreaterEqual":"≱","NotGreaterFullEqual":"≧̸","NotGreaterGreater":"≫̸","NotGreaterLess":"≹","NotGreaterSlantEqual":"⩾̸","NotGreaterTilde":"≵","NotHumpDownHump":"≎̸","NotHumpEqual":"≏̸","notin":"∉","notindot":"⋵̸","notinE":"⋹̸","notinva":"∉","notinvb":"⋷","notinvc":"⋶","NotLeftTriangleBar":"⧏̸","NotLeftTriangle":"⋪","NotLeftTriangleEqual":"⋬","NotLess":"≮","NotLessEqual":"≰","NotLessGreater":"≸","NotLessLess":"≪̸","NotLessSlantEqual":"⩽̸","NotLessTilde":"≴","NotNestedGreaterGreater":"⪢̸","NotNestedLessLess":"⪡̸","notni":"∌","notniva":"∌","notnivb":"⋾","notnivc":"⋽","NotPrecedes":"⊀","NotPrecedesEqual":"⪯̸","NotPrecedesSlantEqual":"⋠","NotReverseElement":"∌","NotRightTriangleBar":"⧐̸","NotRightTriangle":"⋫","NotRightTriangleEqual":"⋭","NotSquareSubset":"⊏̸","NotSquareSubsetEqual":"⋢","NotSquareSuperset":"⊐̸","NotSquareSupersetEqual":"⋣","NotSubset":"⊂⃒","NotSubsetEqual":"⊈","NotSucceeds":"⊁","NotSucceedsEqual":"⪰̸","NotSucceedsSlantEqual":"⋡","NotSucceedsTilde":"≿̸","NotSuperset":"⊃⃒","NotSupersetEqual":"⊉","NotTilde":"≁","NotTildeEqual":"≄","NotTildeFullEqual":"≇","NotTildeTilde":"≉","NotVerticalBar":"∤","nparallel":"∦","npar":"∦","nparsl":"⫽⃥","npart":"∂̸","npolint":"⨔","npr":"⊀","nprcue":"⋠","nprec":"⊀","npreceq":"⪯̸","npre":"⪯̸","nrarrc":"⤳̸","nrarr":"↛","nrArr":"⇏","nrarrw":"↝̸","nrightarrow":"↛","nRightarrow":"⇏","nrtri":"⋫","nrtrie":"⋭","nsc":"⊁","nsccue":"⋡","nsce":"⪰̸","Nscr":"𝒩","nscr":"𝓃","nshortmid":"∤","nshortparallel":"∦","nsim":"≁","nsime":"≄","nsimeq":"≄","nsmid":"∤","nspar":"∦","nsqsube":"⋢","nsqsupe":"⋣","nsub":"⊄","nsubE":"⫅̸","nsube":"⊈","nsubset":"⊂⃒","nsubseteq":"⊈","nsubseteqq":"⫅̸","nsucc":"⊁","nsucceq":"⪰̸","nsup":"⊅","nsupE":"⫆̸","nsupe":"⊉","nsupset":"⊃⃒","nsupseteq":"⊉","nsupseteqq":"⫆̸","ntgl":"≹","Ntilde":"Ñ","ntilde":"ñ","ntlg":"≸","ntriangleleft":"⋪","ntrianglelefteq":"⋬","ntriangleright":"⋫","ntrianglerighteq":"⋭","Nu":"Ν","nu":"ν","num":"#","numero":"№","numsp":" ","nvap":"≍⃒","nvdash":"⊬","nvDash":"⊭","nVdash":"⊮","nVDash":"⊯","nvge":"≥⃒","nvgt":">⃒","nvHarr":"⤄","nvinfin":"⧞","nvlArr":"⤂","nvle":"≤⃒","nvlt":"<⃒","nvltrie":"⊴⃒","nvrArr":"⤃","nvrtrie":"⊵⃒","nvsim":"∼⃒","nwarhk":"⤣","nwarr":"↖","nwArr":"⇖","nwarrow":"↖","nwnear":"⤧","Oacute":"Ó","oacute":"ó","oast":"⊛","Ocirc":"Ô","ocirc":"ô","ocir":"⊚","Ocy":"О","ocy":"о","odash":"⊝","Odblac":"Ő","odblac":"ő","odiv":"⨸","odot":"⊙","odsold":"⦼","OElig":"Œ","oelig":"œ","ofcir":"⦿","Ofr":"𝔒","ofr":"𝔬","ogon":"˛","Ograve":"Ò","ograve":"ò","ogt":"⧁","ohbar":"⦵","ohm":"Ω","oint":"∮","olarr":"↺","olcir":"⦾","olcross":"⦻","oline":"‾","olt":"⧀","Omacr":"Ō","omacr":"ō","Omega":"Ω","omega":"ω","Omicron":"Ο","omicron":"ο","omid":"⦶","ominus":"⊖","Oopf":"𝕆","oopf":"𝕠","opar":"⦷","OpenCurlyDoubleQuote":"“","OpenCurlyQuote":"‘","operp":"⦹","oplus":"⊕","orarr":"↻","Or":"⩔","or":"∨","ord":"⩝","order":"ℴ","orderof":"ℴ","ordf":"ª","ordm":"º","origof":"⊶","oror":"⩖","orslope":"⩗","orv":"⩛","oS":"Ⓢ","Oscr":"𝒪","oscr":"ℴ","Oslash":"Ø","oslash":"ø","osol":"⊘","Otilde":"Õ","otilde":"õ","otimesas":"⨶","Otimes":"⨷","otimes":"⊗","Ouml":"Ö","ouml":"ö","ovbar":"⌽","OverBar":"‾","OverBrace":"⏞","OverBracket":"⎴","OverParenthesis":"⏜","para":"¶","parallel":"∥","par":"∥","parsim":"⫳","parsl":"⫽","part":"∂","PartialD":"∂","Pcy":"П","pcy":"п","percnt":"%","period":".","permil":"‰","perp":"⊥","pertenk":"‱","Pfr":"𝔓","pfr":"𝔭","Phi":"Φ","phi":"φ","phiv":"ϕ","phmmat":"ℳ","phone":"☎","Pi":"Π","pi":"π","pitchfork":"⋔","piv":"ϖ","planck":"ℏ","planckh":"ℎ","plankv":"ℏ","plusacir":"⨣","plusb":"⊞","pluscir":"⨢","plus":"+","plusdo":"∔","plusdu":"⨥","pluse":"⩲","PlusMinus":"±","plusmn":"±","plussim":"⨦","plustwo":"⨧","pm":"±","Poincareplane":"ℌ","pointint":"⨕","popf":"𝕡","Popf":"ℙ","pound":"£","prap":"⪷","Pr":"⪻","pr":"≺","prcue":"≼","precapprox":"⪷","prec":"≺","preccurlyeq":"≼","Precedes":"≺","PrecedesEqual":"⪯","PrecedesSlantEqual":"≼","PrecedesTilde":"≾","preceq":"⪯","precnapprox":"⪹","precneqq":"⪵","precnsim":"⋨","pre":"⪯","prE":"⪳","precsim":"≾","prime":"′","Prime":"″","primes":"ℙ","prnap":"⪹","prnE":"⪵","prnsim":"⋨","prod":"∏","Product":"∏","profalar":"⌮","profline":"⌒","profsurf":"⌓","prop":"∝","Proportional":"∝","Proportion":"∷","propto":"∝","prsim":"≾","prurel":"⊰","Pscr":"𝒫","pscr":"𝓅","Psi":"Ψ","psi":"ψ","puncsp":" ","Qfr":"𝔔","qfr":"𝔮","qint":"⨌","qopf":"𝕢","Qopf":"ℚ","qprime":"⁗","Qscr":"𝒬","qscr":"𝓆","quaternions":"ℍ","quatint":"⨖","quest":"?","questeq":"≟","quot":"\\"","QUOT":"\\"","rAarr":"⇛","race":"∽̱","Racute":"Ŕ","racute":"ŕ","radic":"√","raemptyv":"⦳","rang":"⟩","Rang":"⟫","rangd":"⦒","range":"⦥","rangle":"⟩","raquo":"»","rarrap":"⥵","rarrb":"⇥","rarrbfs":"⤠","rarrc":"⤳","rarr":"→","Rarr":"↠","rArr":"⇒","rarrfs":"⤞","rarrhk":"↪","rarrlp":"↬","rarrpl":"⥅","rarrsim":"⥴","Rarrtl":"⤖","rarrtl":"↣","rarrw":"↝","ratail":"⤚","rAtail":"⤜","ratio":"∶","rationals":"ℚ","rbarr":"⤍","rBarr":"⤏","RBarr":"⤐","rbbrk":"❳","rbrace":"}","rbrack":"]","rbrke":"⦌","rbrksld":"⦎","rbrkslu":"⦐","Rcaron":"Ř","rcaron":"ř","Rcedil":"Ŗ","rcedil":"ŗ","rceil":"⌉","rcub":"}","Rcy":"Р","rcy":"р","rdca":"⤷","rdldhar":"⥩","rdquo":"”","rdquor":"”","rdsh":"↳","real":"ℜ","realine":"ℛ","realpart":"ℜ","reals":"ℝ","Re":"ℜ","rect":"▭","reg":"®","REG":"®","ReverseElement":"∋","ReverseEquilibrium":"⇋","ReverseUpEquilibrium":"⥯","rfisht":"⥽","rfloor":"⌋","rfr":"𝔯","Rfr":"ℜ","rHar":"⥤","rhard":"⇁","rharu":"⇀","rharul":"⥬","Rho":"Ρ","rho":"ρ","rhov":"ϱ","RightAngleBracket":"⟩","RightArrowBar":"⇥","rightarrow":"→","RightArrow":"→","Rightarrow":"⇒","RightArrowLeftArrow":"⇄","rightarrowtail":"↣","RightCeiling":"⌉","RightDoubleBracket":"⟧","RightDownTeeVector":"⥝","RightDownVectorBar":"⥕","RightDownVector":"⇂","RightFloor":"⌋","rightharpoondown":"⇁","rightharpoonup":"⇀","rightleftarrows":"⇄","rightleftharpoons":"⇌","rightrightarrows":"⇉","rightsquigarrow":"↝","RightTeeArrow":"↦","RightTee":"⊢","RightTeeVector":"⥛","rightthreetimes":"⋌","RightTriangleBar":"⧐","RightTriangle":"⊳","RightTriangleEqual":"⊵","RightUpDownVector":"⥏","RightUpTeeVector":"⥜","RightUpVectorBar":"⥔","RightUpVector":"↾","RightVectorBar":"⥓","RightVector":"⇀","ring":"˚","risingdotseq":"≓","rlarr":"⇄","rlhar":"⇌","rlm":"‏","rmoustache":"⎱","rmoust":"⎱","rnmid":"⫮","roang":"⟭","roarr":"⇾","robrk":"⟧","ropar":"⦆","ropf":"𝕣","Ropf":"ℝ","roplus":"⨮","rotimes":"⨵","RoundImplies":"⥰","rpar":")","rpargt":"⦔","rppolint":"⨒","rrarr":"⇉","Rrightarrow":"⇛","rsaquo":"›","rscr":"𝓇","Rscr":"ℛ","rsh":"↱","Rsh":"↱","rsqb":"]","rsquo":"’","rsquor":"’","rthree":"⋌","rtimes":"⋊","rtri":"▹","rtrie":"⊵","rtrif":"▸","rtriltri":"⧎","RuleDelayed":"⧴","ruluhar":"⥨","rx":"℞","Sacute":"Ś","sacute":"ś","sbquo":"‚","scap":"⪸","Scaron":"Š","scaron":"š","Sc":"⪼","sc":"≻","sccue":"≽","sce":"⪰","scE":"⪴","Scedil":"Ş","scedil":"ş","Scirc":"Ŝ","scirc":"ŝ","scnap":"⪺","scnE":"⪶","scnsim":"⋩","scpolint":"⨓","scsim":"≿","Scy":"С","scy":"с","sdotb":"⊡","sdot":"⋅","sdote":"⩦","searhk":"⤥","searr":"↘","seArr":"⇘","searrow":"↘","sect":"§","semi":";","seswar":"⤩","setminus":"∖","setmn":"∖","sext":"✶","Sfr":"𝔖","sfr":"𝔰","sfrown":"⌢","sharp":"♯","SHCHcy":"Щ","shchcy":"щ","SHcy":"Ш","shcy":"ш","ShortDownArrow":"↓","ShortLeftArrow":"←","shortmid":"∣","shortparallel":"∥","ShortRightArrow":"→","ShortUpArrow":"↑","shy":"­","Sigma":"Σ","sigma":"σ","sigmaf":"ς","sigmav":"ς","sim":"∼","simdot":"⩪","sime":"≃","simeq":"≃","simg":"⪞","simgE":"⪠","siml":"⪝","simlE":"⪟","simne":"≆","simplus":"⨤","simrarr":"⥲","slarr":"←","SmallCircle":"∘","smallsetminus":"∖","smashp":"⨳","smeparsl":"⧤","smid":"∣","smile":"⌣","smt":"⪪","smte":"⪬","smtes":"⪬︀","SOFTcy":"Ь","softcy":"ь","solbar":"⌿","solb":"⧄","sol":"/","Sopf":"𝕊","sopf":"𝕤","spades":"♠","spadesuit":"♠","spar":"∥","sqcap":"⊓","sqcaps":"⊓︀","sqcup":"⊔","sqcups":"⊔︀","Sqrt":"√","sqsub":"⊏","sqsube":"⊑","sqsubset":"⊏","sqsubseteq":"⊑","sqsup":"⊐","sqsupe":"⊒","sqsupset":"⊐","sqsupseteq":"⊒","square":"□","Square":"□","SquareIntersection":"⊓","SquareSubset":"⊏","SquareSubsetEqual":"⊑","SquareSuperset":"⊐","SquareSupersetEqual":"⊒","SquareUnion":"⊔","squarf":"▪","squ":"□","squf":"▪","srarr":"→","Sscr":"𝒮","sscr":"𝓈","ssetmn":"∖","ssmile":"⌣","sstarf":"⋆","Star":"⋆","star":"☆","starf":"★","straightepsilon":"ϵ","straightphi":"ϕ","strns":"¯","sub":"⊂","Sub":"⋐","subdot":"⪽","subE":"⫅","sube":"⊆","subedot":"⫃","submult":"⫁","subnE":"⫋","subne":"⊊","subplus":"⪿","subrarr":"⥹","subset":"⊂","Subset":"⋐","subseteq":"⊆","subseteqq":"⫅","SubsetEqual":"⊆","subsetneq":"⊊","subsetneqq":"⫋","subsim":"⫇","subsub":"⫕","subsup":"⫓","succapprox":"⪸","succ":"≻","succcurlyeq":"≽","Succeeds":"≻","SucceedsEqual":"⪰","SucceedsSlantEqual":"≽","SucceedsTilde":"≿","succeq":"⪰","succnapprox":"⪺","succneqq":"⪶","succnsim":"⋩","succsim":"≿","SuchThat":"∋","sum":"∑","Sum":"∑","sung":"♪","sup1":"¹","sup2":"²","sup3":"³","sup":"⊃","Sup":"⋑","supdot":"⪾","supdsub":"⫘","supE":"⫆","supe":"⊇","supedot":"⫄","Superset":"⊃","SupersetEqual":"⊇","suphsol":"⟉","suphsub":"⫗","suplarr":"⥻","supmult":"⫂","supnE":"⫌","supne":"⊋","supplus":"⫀","supset":"⊃","Supset":"⋑","supseteq":"⊇","supseteqq":"⫆","supsetneq":"⊋","supsetneqq":"⫌","supsim":"⫈","supsub":"⫔","supsup":"⫖","swarhk":"⤦","swarr":"↙","swArr":"⇙","swarrow":"↙","swnwar":"⤪","szlig":"ß","Tab":"\\t","target":"⌖","Tau":"Τ","tau":"τ","tbrk":"⎴","Tcaron":"Ť","tcaron":"ť","Tcedil":"Ţ","tcedil":"ţ","Tcy":"Т","tcy":"т","tdot":"⃛","telrec":"⌕","Tfr":"𝔗","tfr":"𝔱","there4":"∴","therefore":"∴","Therefore":"∴","Theta":"Θ","theta":"θ","thetasym":"ϑ","thetav":"ϑ","thickapprox":"≈","thicksim":"∼","ThickSpace":"  ","ThinSpace":" ","thinsp":" ","thkap":"≈","thksim":"∼","THORN":"Þ","thorn":"þ","tilde":"˜","Tilde":"∼","TildeEqual":"≃","TildeFullEqual":"≅","TildeTilde":"≈","timesbar":"⨱","timesb":"⊠","times":"×","timesd":"⨰","tint":"∭","toea":"⤨","topbot":"⌶","topcir":"⫱","top":"⊤","Topf":"𝕋","topf":"𝕥","topfork":"⫚","tosa":"⤩","tprime":"‴","trade":"™","TRADE":"™","triangle":"▵","triangledown":"▿","triangleleft":"◃","trianglelefteq":"⊴","triangleq":"≜","triangleright":"▹","trianglerighteq":"⊵","tridot":"◬","trie":"≜","triminus":"⨺","TripleDot":"⃛","triplus":"⨹","trisb":"⧍","tritime":"⨻","trpezium":"⏢","Tscr":"𝒯","tscr":"𝓉","TScy":"Ц","tscy":"ц","TSHcy":"Ћ","tshcy":"ћ","Tstrok":"Ŧ","tstrok":"ŧ","twixt":"≬","twoheadleftarrow":"↞","twoheadrightarrow":"↠","Uacute":"Ú","uacute":"ú","uarr":"↑","Uarr":"↟","uArr":"⇑","Uarrocir":"⥉","Ubrcy":"Ў","ubrcy":"ў","Ubreve":"Ŭ","ubreve":"ŭ","Ucirc":"Û","ucirc":"û","Ucy":"У","ucy":"у","udarr":"⇅","Udblac":"Ű","udblac":"ű","udhar":"⥮","ufisht":"⥾","Ufr":"𝔘","ufr":"𝔲","Ugrave":"Ù","ugrave":"ù","uHar":"⥣","uharl":"↿","uharr":"↾","uhblk":"▀","ulcorn":"⌜","ulcorner":"⌜","ulcrop":"⌏","ultri":"◸","Umacr":"Ū","umacr":"ū","uml":"¨","UnderBar":"_","UnderBrace":"⏟","UnderBracket":"⎵","UnderParenthesis":"⏝","Union":"⋃","UnionPlus":"⊎","Uogon":"Ų","uogon":"ų","Uopf":"𝕌","uopf":"𝕦","UpArrowBar":"⤒","uparrow":"↑","UpArrow":"↑","Uparrow":"⇑","UpArrowDownArrow":"⇅","updownarrow":"↕","UpDownArrow":"↕","Updownarrow":"⇕","UpEquilibrium":"⥮","upharpoonleft":"↿","upharpoonright":"↾","uplus":"⊎","UpperLeftArrow":"↖","UpperRightArrow":"↗","upsi":"υ","Upsi":"ϒ","upsih":"ϒ","Upsilon":"Υ","upsilon":"υ","UpTeeArrow":"↥","UpTee":"⊥","upuparrows":"⇈","urcorn":"⌝","urcorner":"⌝","urcrop":"⌎","Uring":"Ů","uring":"ů","urtri":"◹","Uscr":"𝒰","uscr":"𝓊","utdot":"⋰","Utilde":"Ũ","utilde":"ũ","utri":"▵","utrif":"▴","uuarr":"⇈","Uuml":"Ü","uuml":"ü","uwangle":"⦧","vangrt":"⦜","varepsilon":"ϵ","varkappa":"ϰ","varnothing":"∅","varphi":"ϕ","varpi":"ϖ","varpropto":"∝","varr":"↕","vArr":"⇕","varrho":"ϱ","varsigma":"ς","varsubsetneq":"⊊︀","varsubsetneqq":"⫋︀","varsupsetneq":"⊋︀","varsupsetneqq":"⫌︀","vartheta":"ϑ","vartriangleleft":"⊲","vartriangleright":"⊳","vBar":"⫨","Vbar":"⫫","vBarv":"⫩","Vcy":"В","vcy":"в","vdash":"⊢","vDash":"⊨","Vdash":"⊩","VDash":"⊫","Vdashl":"⫦","veebar":"⊻","vee":"∨","Vee":"⋁","veeeq":"≚","vellip":"⋮","verbar":"|","Verbar":"‖","vert":"|","Vert":"‖","VerticalBar":"∣","VerticalLine":"|","VerticalSeparator":"❘","VerticalTilde":"≀","VeryThinSpace":" ","Vfr":"𝔙","vfr":"𝔳","vltri":"⊲","vnsub":"⊂⃒","vnsup":"⊃⃒","Vopf":"𝕍","vopf":"𝕧","vprop":"∝","vrtri":"⊳","Vscr":"𝒱","vscr":"𝓋","vsubnE":"⫋︀","vsubne":"⊊︀","vsupnE":"⫌︀","vsupne":"⊋︀","Vvdash":"⊪","vzigzag":"⦚","Wcirc":"Ŵ","wcirc":"ŵ","wedbar":"⩟","wedge":"∧","Wedge":"⋀","wedgeq":"≙","weierp":"℘","Wfr":"𝔚","wfr":"𝔴","Wopf":"𝕎","wopf":"𝕨","wp":"℘","wr":"≀","wreath":"≀","Wscr":"𝒲","wscr":"𝓌","xcap":"⋂","xcirc":"◯","xcup":"⋃","xdtri":"▽","Xfr":"𝔛","xfr":"𝔵","xharr":"⟷","xhArr":"⟺","Xi":"Ξ","xi":"ξ","xlarr":"⟵","xlArr":"⟸","xmap":"⟼","xnis":"⋻","xodot":"⨀","Xopf":"𝕏","xopf":"𝕩","xoplus":"⨁","xotime":"⨂","xrarr":"⟶","xrArr":"⟹","Xscr":"𝒳","xscr":"𝓍","xsqcup":"⨆","xuplus":"⨄","xutri":"△","xvee":"⋁","xwedge":"⋀","Yacute":"Ý","yacute":"ý","YAcy":"Я","yacy":"я","Ycirc":"Ŷ","ycirc":"ŷ","Ycy":"Ы","ycy":"ы","yen":"¥","Yfr":"𝔜","yfr":"𝔶","YIcy":"Ї","yicy":"ї","Yopf":"𝕐","yopf":"𝕪","Yscr":"𝒴","yscr":"𝓎","YUcy":"Ю","yucy":"ю","yuml":"ÿ","Yuml":"Ÿ","Zacute":"Ź","zacute":"ź","Zcaron":"Ž","zcaron":"ž","Zcy":"З","zcy":"з","Zdot":"Ż","zdot":"ż","zeetrf":"ℨ","ZeroWidthSpace":"​","Zeta":"Ζ","zeta":"ζ","zfr":"𝔷","Zfr":"ℨ","ZHcy":"Ж","zhcy":"ж","zigrarr":"⇝","zopf":"𝕫","Zopf":"ℤ","Zscr":"𝒵","zscr":"𝓏","zwj":"‍","zwnj":"‌"}')},function(e){e.exports=JSON.parse('{"amp":"&","apos":"\'","gt":">","lt":"<","quot":"\\""}')},function(e,t,r){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.Doctype=t.CDATA=t.Tag=t.Style=t.Script=t.Comment=t.Directive=t.Text=t.isTag=void 0,t.isTag=function(e){return"tag"===e.type||"script"===e.type||"style"===e.type},t.Text="text",t.Directive="directive",t.Comment="comment",t.Script="script",t.Style="style",t.Tag="tag",t.CDATA="cdata",t.Doctype="doctype"},function(e,t,r){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.RDFA_CONTENTTYPES=t.RDFA_FEATURES=void 0,t.RDFA_FEATURES={"":{baseTag:!0,xmlBase:!0,langAttribute:!0,onlyAllowUriRelRevIfProperty:!0,inheritSubjectInHeadBody:!0,datetimeAttribute:!0,timeTag:!0,htmlDatatype:!0,copyRdfaPatterns:!0,xmlnsPrefixMappings:!0,xhtmlInitialContext:!0,roleAttribute:!0},core:{baseTag:!1,xmlBase:!1,langAttribute:!0,onlyAllowUriRelRevIfProperty:!0,inheritSubjectInHeadBody:!1,datetimeAttribute:!1,timeTag:!1,htmlDatatype:!1,copyRdfaPatterns:!0,xmlnsPrefixMappings:!0,xhtmlInitialContext:!1,roleAttribute:!1},html:{baseTag:!0,xmlBase:!1,langAttribute:!0,onlyAllowUriRelRevIfProperty:!0,inheritSubjectInHeadBody:!0,datetimeAttribute:!0,timeTag:!0,htmlDatatype:!0,copyRdfaPatterns:!0,xmlnsPrefixMappings:!0,xhtmlInitialContext:!1,roleAttribute:!0},xhtml:{baseTag:!0,xmlBase:!1,langAttribute:!0,onlyAllowUriRelRevIfProperty:!0,inheritSubjectInHeadBody:!0,datetimeAttribute:!0,timeTag:!0,htmlDatatype:!0,copyRdfaPatterns:!0,xmlnsPrefixMappings:!0,xhtmlInitialContext:!0,roleAttribute:!0},xml:{baseTag:!1,xmlBase:!0,langAttribute:!0,onlyAllowUriRelRevIfProperty:!1,inheritSubjectInHeadBody:!1,datetimeAttribute:!0,timeTag:!0,htmlDatatype:!1,copyRdfaPatterns:!1,xmlnsPrefixMappings:!0,xhtmlInitialContext:!1,roleAttribute:!0}},t.RDFA_CONTENTTYPES={"text/html":"html","application/xhtml+xml":"xhtml","application/xml":"xml","text/xml":"xml","image/svg+xml":"xml"}},function(e,t,r){"use strict";Object.defineProperty(t,"__esModule",{value:!0});const n=r(50),i=r(51);class a{static flatten(e){return Array.prototype.concat(...e).filter(e=>e)}static inScopeVariables(e){const t=[];function r(e){t.find(t=>e.value===t.value)||t.push(e)}function i(e){"Variable"===e.subject.termType&&r(e.subject),"Variable"===e.predicate.termType&&r(e.predicate),"Variable"===e.object.termType&&r(e.object),"Variable"===e.graph.termType&&r(e.graph),"Quad"===e.subject.termType&&i(e.subject),"Quad"===e.predicate.termType&&i(e.predicate),"Quad"===e.object.termType&&i(e.object),"Quad"===e.graph.termType&&i(e.graph)}return a.recurseOperation(e,{[n.types.EXPRESSION]:e=>{let t=e;if("aggregate"===t.expressionType&&t.variable){r(t.variable)}return!0},[n.types.EXTEND]:e=>(r(e.variable),!0),[n.types.GRAPH]:e=>{let t=e;return"Variable"===t.name.termType&&r(t.name),!0},[n.types.GROUP]:e=>(e.variables.forEach(r),!0),[n.types.PATH]:e=>{let t=e;return"Variable"===t.subject.termType&&r(t.subject),"Variable"===t.object.termType&&r(t.object),"Variable"===t.graph.termType&&r(t.graph),"Quad"===t.subject.termType&&i(t.subject),"Quad"===t.object.termType&&i(t.object),"Quad"===t.graph.termType&&i(t.graph),!0},[n.types.PATTERN]:e=>(i(e),!0),[n.types.PROJECT]:e=>(e.variables.forEach(r),!1),[n.types.SERVICE]:e=>{let t=e;return"Variable"===t.name.termType&&r(t.name),!0},[n.types.VALUES]:e=>(e.variables.forEach(r),!0)}),t}static recurseOperation(e,t){let r=e,i=!0;if(t[e.type]&&(i=t[e.type](e)),!i)return;let s=e=>a.recurseOperation(e,t);switch(r.type){case n.types.ALT:const e=r;s(e.left),s(e.right);break;case n.types.ASK:s(r.input);break;case n.types.BGP:r.patterns.forEach(s);break;case n.types.CONSTRUCT:const t=r;s(t.input),t.template.map(s);break;case n.types.DESCRIBE:s(r.input);break;case n.types.DISTINCT:s(r.input);break;case n.types.EXPRESSION:const i=r;if(i.expressionType===n.expressionTypes.EXISTENCE){s(i.input)}break;case n.types.EXTEND:const a=r;s(a.input),s(a.expression);break;case n.types.FILTER:const o=r;s(o.input),s(o.expression);break;case n.types.FROM:s(r.input);break;case n.types.GRAPH:s(r.input);break;case n.types.GROUP:const c=r;s(c.input),c.aggregates.forEach(s);break;case n.types.INV:s(r.path);break;case n.types.JOIN:const u=r;s(u.left),s(u.right);break;case n.types.LEFT_JOIN:const l=r;s(l.left),s(l.right),l.expression&&s(l.expression);break;case n.types.LINK:break;case n.types.MINUS:const d=r;s(d.left),s(d.right);break;case n.types.NPS:break;case n.types.ONE_OR_MORE_PATH:s(r.path);break;case n.types.ORDER_BY:const p=r;s(p.input),p.expressions.forEach(s);break;case n.types.PATH:s(r.predicate);break;case n.types.PATTERN:break;case n.types.PROJECT:s(r.input);break;case n.types.REDUCED:s(r.input);break;case n.types.SEQ:const h=r;s(h.left),s(h.right);break;case n.types.SERVICE:s(r.input);break;case n.types.SLICE:s(r.input);break;case n.types.UNION:const f=r;s(f.left),s(f.right);break;case n.types.VALUES:break;case n.types.ZERO_OR_MORE_PATH:s(r.path);break;case n.types.ZERO_OR_ONE_PATH:s(r.path);break;case n.types.COMPOSITE_UPDATE:r.updates.forEach(e=>s(e));break;case n.types.DELETE_INSERT:const m=r;m.delete&&m.delete.forEach(e=>s(e)),m.insert&&m.insert.forEach(e=>s(e)),m.where&&s(m.where);break;case n.types.LOAD:case n.types.CLEAR:case n.types.CREATE:case n.types.DROP:case n.types.ADD:case n.types.MOVE:case n.types.COPY:break;default:throw new Error("Unknown Operation type "+r.type)}}static mapOperation(e,t,r){let s=e,o=!0;if(r=r||new i.default,t[e.type]&&({result:s,recurse:o}=t[e.type](e,r)),!o)return s;let c=e=>a.mapOperation(e,t,r);switch(s.type){case n.types.ALT:const e=s;return r.createAlt(c(e.left),c(e.right));case n.types.ASK:const i=s;return r.createAsk(c(i.input));case n.types.BGP:const o=s;return r.createBgp(o.patterns.map(c));case n.types.CONSTRUCT:const u=s;return r.createConstruct(c(u.input),u.template.map(c));case n.types.DESCRIBE:const l=s;return r.createDescribe(c(l.input),l.terms);case n.types.DISTINCT:const d=s;return r.createDistinct(c(d.input));case n.types.EXPRESSION:const p=s;return a.mapExpression(p,t,r);case n.types.EXTEND:const h=s;return r.createExtend(c(h.input),h.variable,c(h.expression));case n.types.FILTER:const f=s;return r.createFilter(c(f.input),c(f.expression));case n.types.FROM:const m=s;return r.createFrom(c(m.input),[].concat(m.default),[].concat(m.named));case n.types.GRAPH:const g=s;return r.createGraph(c(g.input),g.name);case n.types.GROUP:const y=s;return r.createGroup(c(y.input),[].concat(y.variables),y.aggregates.map(c));case n.types.INV:const b=s;return r.createInv(c(b.path));case n.types.JOIN:const _=s;return r.createJoin(c(_.left),c(_.right));case n.types.LEFT_JOIN:const v=s;return r.createLeftJoin(c(v.left),c(v.right),v.expression?c(v.expression):void 0);case n.types.LINK:const w=s;return r.createLink(w.iri);case n.types.MINUS:const S=s;return r.createMinus(c(S.left),c(S.right));case n.types.NPS:const E=s;return r.createNps([].concat(E.iris));case n.types.ONE_OR_MORE_PATH:const T=s;return r.createOneOrMorePath(c(T.path));case n.types.ORDER_BY:const O=s;return r.createOrderBy(c(O.input),O.expressions.map(c));case n.types.PATH:const x=s;return r.createPath(x.subject,c(x.predicate),x.object,x.graph);case n.types.PATTERN:const A=s;return r.createPattern(A.subject,A.predicate,A.object,A.graph);case n.types.PROJECT:const R=s;return r.createProject(c(R.input),[].concat(R.variables));case n.types.REDUCED:const I=s;return r.createReduced(c(I.input));case n.types.SEQ:const P=s;return r.createSeq(c(P.left),c(P.right));case n.types.SERVICE:const N=s;return r.createService(c(N.input),N.name,N.silent);case n.types.SLICE:const C=s;return r.createSlice(c(C.input),C.start,C.length);case n.types.UNION:const j=s;return r.createUnion(c(j.left),c(j.right));case n.types.VALUES:const D=s;return r.createValues([].concat(D.variables),D.bindings.map(e=>Object.assign({},e)));case n.types.ZERO_OR_MORE_PATH:const k=s;return r.createZeroOrMorePath(c(k.path));case n.types.ZERO_OR_ONE_PATH:const L=s;return r.createZeroOrOnePath(c(L.path));case n.types.COMPOSITE_UPDATE:const M=s;return r.createCompositeUpdate(M.updates.map(c));case n.types.DELETE_INSERT:const F=s;return r.createDeleteInsert(F.delete?F.delete.map(c):void 0,F.insert?F.insert.map(c):void 0,F.where?c(F.where):void 0);case n.types.LOAD:const q=s;return r.createLoad(q.source,q.destination,q.silent);case n.types.CLEAR:const B=s;return r.createClear(B.source,B.silent);case n.types.CREATE:const U=s;return r.createCreate(U.source,U.silent);case n.types.DROP:const V=s;return r.createDrop(V.source,V.silent);case n.types.ADD:const Q=s;return r.createAdd(Q.source,Q.destination);case n.types.MOVE:const H=s;return r.createMove(H.source,H.destination);case n.types.COPY:const G=s;return r.createCopy(G.source,G.destination);default:throw new Error("Unknown Operation type "+s)}}static mapExpression(e,t,r){let i=e=>a.mapOperation(e,t,r);switch(e.expressionType){case n.expressionTypes.AGGREGATE:if(e.variable){const t=e;return r.createBoundAggregate(t.variable,t.aggregator,i(t.expression),t.distinct,t.separator)}const t=e;return r.createAggregateExpression(t.aggregator,i(t.expression),t.distinct,t.separator);case n.expressionTypes.EXISTENCE:const a=e;return r.createExistenceExpression(a.not,i(a.input));case n.expressionTypes.NAMED:const s=e;return r.createNamedExpression(s.name,s.args.map(i));case n.expressionTypes.OPERATOR:const o=e;return r.createOperatorExpression(o.operator,o.args.map(i));case n.expressionTypes.TERM:const c=e;return r.createTermExpression(c.term);case n.expressionTypes.WILDCARD:return r.createWildcardExpression();default:throw new Error("Unknown Expression type "+e.expressionType)}}static createUniqueVariable(e,t,r){let n=0,i=e;for(;t[i];)i=e+n++;return r.variable(i)}static isTerm(e){return void 0!==e.termType&&"Quad"!==e.termType&&"Wildcard"!==e.termType}static isWildcard(e){return"Wildcard"===e.termType}}t.default=a},function(e,t,r){"use strict";var n=this&&this.__createBinding||(Object.create?function(e,t,r,n){void 0===n&&(n=r),Object.defineProperty(e,n,{enumerable:!0,get:function(){return t[r]}})}:function(e,t,r,n){void 0===n&&(n=r),e[n]=t[r]}),i=this&&this.__exportStar||function(e,t){for(var r in e)"default"===r||Object.prototype.hasOwnProperty.call(t,r)||n(t,e,r)};Object.defineProperty(t,"__esModule",{value:!0}),i(r(301),t),i(r(303),t),i(r(130),t)},function(e,t,r){"use strict";var n=this&&this.__createBinding||(Object.create?function(e,t,r,n){void 0===n&&(n=r),Object.defineProperty(e,n,{enumerable:!0,get:function(){return t[r]}})}:function(e,t,r,n){void 0===n&&(n=r),e[n]=t[r]}),i=this&&this.__exportStar||function(e,t){for(var r in e)"default"===r||Object.prototype.hasOwnProperty.call(t,r)||n(t,e,r)};Object.defineProperty(t,"__esModule",{value:!0}),i(r(136),t),i(r(308),t),i(r(142),t)},function(e,t){e.exports=null},function(e,t,r){"use strict";var n=this&&this.__createBinding||(Object.create?function(e,t,r,n){void 0===n&&(n=r),Object.defineProperty(e,n,{enumerable:!0,get:function(){return t[r]}})}:function(e,t,r,n){void 0===n&&(n=r),e[n]=t[r]}),i=this&&this.__exportStar||function(e,t){for(var r in e)"default"===r||Object.prototype.hasOwnProperty.call(t,r)||n(t,e,r)};Object.defineProperty(t,"__esModule",{value:!0}),i(r(318),t),i(r(139),t)},function(e,t,r){"use strict";(function(e){var n=r(140),i=r(319),a=e.from&&e.from!==Uint8Array.from;function s(e,t){return"string"==typeof e?t==e:e&&"function"==typeof e.exec?e.exec(t):"boolean"==typeof e||"object"==typeof e?e:"function"==typeof e&&e(t)}t.parse=function(t,r){var o,c,u=new n,l=i((function(t){"string"==typeof t&&(t=a?e.from(t):new e(t)),u.write(t)}),(function(e){e&&l.write(e),o&&l.emit("header",o),c&&l.emit("footer",c),l.queue(null)}));"string"==typeof t&&(t=t.split(".").map((function(e){return"$*"===e?{emitKey:!0}:"*"===e||(""===e?{recurse:!0}:e)})));return t&&t.length||(t=null),u.onValue=function(e){if(this.root||(l.root=e),t){for(var n=0,i=0,a=!1,c=!1;n-1&&(e.message="Invalid JSON ("+e.message+")"),l.emit("error",e)},l;function d(e,t){!1!==o&&((o=o||{})[e]=t),!1!==c&&!1===o&&((c=c||{})[e]=t)}},t.stringify=function(e,t,r,n){n=n||0,!1===e?(e="",t="\n",r=""):null==e&&(e="[\n",t="\n,\n",r="\n]\n");var a,s=!0,o=!1;return a=i((function(r){o=!0;try{var i=JSON.stringify(r,null,n)}catch(e){return a.emit("error",e)}s?(s=!1,a.queue(e+i)):a.queue(t+i)}),(function(t){o||a.queue(e),a.queue(r),a.queue(null)}))},t.stringifyObject=function(e,t,r,n){n=n||0,!1===e?(e="",t="\n",r=""):null==e&&(e="{\n",t="\n,\n",r="\n}\n");var a=!0,s=!1;return i((function(r){s=!0;var i=JSON.stringify(r[0])+":"+JSON.stringify(r[1],null,n);a?(a=!1,this.queue(e+i)):this.queue(t+i)}),(function(t){s||this.queue(e),this.queue(r),this.queue(null)}))}}).call(this,r(14).Buffer)},function(e,t,r){"use strict";var n=this&&this.__createBinding||(Object.create?function(e,t,r,n){void 0===n&&(n=r),Object.defineProperty(e,n,{enumerable:!0,get:function(){return t[r]}})}:function(e,t,r,n){void 0===n&&(n=r),e[n]=t[r]}),i=this&&this.__exportStar||function(e,t){for(var r in e)"default"===r||Object.prototype.hasOwnProperty.call(t,r)||n(t,e,r)};Object.defineProperty(t,"__esModule",{value:!0}),i(r(326),t)},function(e,t,r){"use strict";const n=r(396),i=Symbol("max"),a=Symbol("length"),s=Symbol("lengthCalculator"),o=Symbol("allowStale"),c=Symbol("maxAge"),u=Symbol("dispose"),l=Symbol("noDisposeOnSet"),d=Symbol("lruList"),p=Symbol("cache"),h=Symbol("updateAgeOnGet"),f=()=>1;const m=(e,t,r)=>{const n=e[p].get(t);if(n){const t=n.value;if(g(e,t)){if(b(e,n),!e[o])return}else r&&(e[h]&&(n.value.now=Date.now()),e[d].unshiftNode(n));return t.value}},g=(e,t)=>{if(!t||!t.maxAge&&!e[c])return!1;const r=Date.now()-t.now;return t.maxAge?r>t.maxAge:e[c]&&r>e[c]},y=e=>{if(e[a]>e[i])for(let t=e[d].tail;e[a]>e[i]&&null!==t;){const r=t.prev;b(e,t),t=r}},b=(e,t)=>{if(t){const r=t.value;e[u]&&e[u](r.key,r.value),e[a]-=r.length,e[p].delete(r.key),e[d].removeNode(t)}};class _{constructor(e,t,r,n,i){this.key=e,this.value=t,this.length=r,this.now=n,this.maxAge=i||0}}const v=(e,t,r,n)=>{let i=r.value;g(e,i)&&(b(e,r),e[o]||(i=void 0)),i&&t.call(n,i.value,i.key,e)};e.exports=class{constructor(e){if("number"==typeof e&&(e={max:e}),e||(e={}),e.max&&("number"!=typeof e.max||e.max<0))throw new TypeError("max must be a non-negative number");this[i]=e.max||1/0;const t=e.length||f;if(this[s]="function"!=typeof t?f:t,this[o]=e.stale||!1,e.maxAge&&"number"!=typeof e.maxAge)throw new TypeError("maxAge must be a number");this[c]=e.maxAge||0,this[u]=e.dispose,this[l]=e.noDisposeOnSet||!1,this[h]=e.updateAgeOnGet||!1,this.reset()}set max(e){if("number"!=typeof e||e<0)throw new TypeError("max must be a non-negative number");this[i]=e||1/0,y(this)}get max(){return this[i]}set allowStale(e){this[o]=!!e}get allowStale(){return this[o]}set maxAge(e){if("number"!=typeof e)throw new TypeError("maxAge must be a non-negative number");this[c]=e,y(this)}get maxAge(){return this[c]}set lengthCalculator(e){"function"!=typeof e&&(e=f),e!==this[s]&&(this[s]=e,this[a]=0,this[d].forEach(e=>{e.length=this[s](e.value,e.key),this[a]+=e.length})),y(this)}get lengthCalculator(){return this[s]}get length(){return this[a]}get itemCount(){return this[d].length}rforEach(e,t){t=t||this;for(let r=this[d].tail;null!==r;){const n=r.prev;v(this,e,r,t),r=n}}forEach(e,t){t=t||this;for(let r=this[d].head;null!==r;){const n=r.next;v(this,e,r,t),r=n}}keys(){return this[d].toArray().map(e=>e.key)}values(){return this[d].toArray().map(e=>e.value)}reset(){this[u]&&this[d]&&this[d].length&&this[d].forEach(e=>this[u](e.key,e.value)),this[p]=new Map,this[d]=new n,this[a]=0}dump(){return this[d].map(e=>!g(this,e)&&{k:e.key,v:e.value,e:e.now+(e.maxAge||0)}).toArray().filter(e=>e)}dumpLru(){return this[d]}set(e,t,r){if((r=r||this[c])&&"number"!=typeof r)throw new TypeError("maxAge must be a number");const n=r?Date.now():0,o=this[s](t,e);if(this[p].has(e)){if(o>this[i])return b(this,this[p].get(e)),!1;const s=this[p].get(e).value;return this[u]&&(this[l]||this[u](e,s.value)),s.now=n,s.maxAge=r,s.value=t,this[a]+=o-s.length,s.length=o,this.get(e),y(this),!0}const h=new _(e,t,o,n,r);return h.length>this[i]?(this[u]&&this[u](e,t),!1):(this[a]+=h.length,this[d].unshift(h),this[p].set(e,this[d].head),y(this),!0)}has(e){if(!this[p].has(e))return!1;const t=this[p].get(e).value;return!g(this,t)}get(e){return m(this,e,!0)}peek(e){return m(this,e,!1)}pop(){const e=this[d].tail;return e?(b(this,e),e.value):null}del(e){b(this,this[p].get(e))}load(e){this.reset();const t=Date.now();for(let r=e.length-1;r>=0;r--){const n=e[r],i=n.e||0;if(0===i)this.set(n.k,n.v);else{const e=i-t;e>0&&this.set(n.k,n.v,e)}}}prune(){this[p].forEach((e,t)=>m(this,t,!1))}}},function(e,t,r){"use strict";var n=this&&this.__createBinding||(Object.create?function(e,t,r,n){void 0===n&&(n=r),Object.defineProperty(e,n,{enumerable:!0,get:function(){return t[r]}})}:function(e,t,r,n){void 0===n&&(n=r),e[n]=t[r]}),i=this&&this.__exportStar||function(e,t){for(var r in e)"default"===r||Object.prototype.hasOwnProperty.call(t,r)||n(t,e,r)};Object.defineProperty(t,"__esModule",{value:!0}),i(r(408),t)},function(e,t,r){"use strict";var n=this&&this.__createBinding||(Object.create?function(e,t,r,n){void 0===n&&(n=r),Object.defineProperty(e,n,{enumerable:!0,get:function(){return t[r]}})}:function(e,t,r,n){void 0===n&&(n=r),e[n]=t[r]}),i=this&&this.__exportStar||function(e,t){for(var r in e)"default"===r||Object.prototype.hasOwnProperty.call(t,r)||n(t,e,r)};Object.defineProperty(t,"__esModule",{value:!0}),i(r(410),t),i(r(183),t)},function(e,t,r){"use strict";var n=this&&this.__createBinding||(Object.create?function(e,t,r,n){void 0===n&&(n=r),Object.defineProperty(e,n,{enumerable:!0,get:function(){return t[r]}})}:function(e,t,r,n){void 0===n&&(n=r),e[n]=t[r]}),i=this&&this.__exportStar||function(e,t){for(var r in e)"default"===r||Object.prototype.hasOwnProperty.call(t,r)||n(t,e,r)};Object.defineProperty(t,"__esModule",{value:!0}),t.namedFunctions=t.specialFunctions=t.regularFunctions=void 0;const a=r(77),s=r(421),o=r(422),c=r(434);i(r(77),t),t.regularFunctions=o.definitions.map((e,t)=>new a.RegularFunction(t,e)).toMap(),t.specialFunctions=c.specialDefinitions.map((e,t)=>new a.SpecialFunction(t,e)).toMap(),t.namedFunctions=s.namedDefinitions.map((e,t)=>new a.NamedFunction(t,e)).toMap()},function(e,t,r){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.promote=t.SpecialFunction=t.NamedFunction=t.RegularFunction=t.BaseFunction=void 0;const n=r(23),i=r(19);class a{constructor(e,t){this.operator=e,this.apply=e=>(this.monomorph(e)||this.handleInvalidTypes(e))(e),this.arity=t.arity,this.overloads=t.overloads}monomorph(e){return this.overloads.get(s.asConcreteTypes(e))||this.overloads.get(s.asTermTypes(e))||this.overloads.get(s.asGenericTerms(e))}}t.BaseFunction=a;class s{static asConcreteTypes(e){return n.List(e.map(e=>e.type||e.termType))}static asTermTypes(e){return n.List(e.map(e=>e.termType))}static asGenericTerms(e){return n.List(Array(e.length).fill("term"))}}t.RegularFunction=class extends a{constructor(e,t){super(e,t),this.functionClass="regular"}handleInvalidTypes(e){throw new i.InvalidArgumentTypes(e,this.operator)}};t.NamedFunction=class extends a{constructor(e,t){super(e,t),this.functionClass="named"}handleInvalidTypes(e){throw new i.InvalidArgumentTypes(e,this.operator)}};t.SpecialFunction=class{constructor(e,t){var r;this.operator=e,this.functionClass="special",this.arity=t.arity,this.applySync=t.applySync,this.applyAsync=t.applyAsync,this.checkArity=t.checkArity||(r=this.arity,e=>r===1/0||(Array.isArray(r)?r.indexOf(e.length)>=0:e.length===r))}};const o={integer:{integer:"integer",decimal:"decimal",float:"float",double:"double"},decimal:{integer:"decimal",decimal:"decimal",float:"float",double:"double"},float:{integer:"float",decimal:"float",float:"float",double:"double"},double:{integer:"double",decimal:"double",float:"double",double:"double"}};t.promote=function(e,t){return o[e][t]}},function(e,t,r){"use strict";var n=this&&this.__awaiter||function(e,t,r,n){return new(r||(r=Promise))((function(i,a){function s(e){try{c(n.next(e))}catch(e){a(e)}}function o(e){try{c(n.throw(e))}catch(e){a(e)}}function c(e){var t;e.done?i(e.value):(t=e.value,t instanceof r?t:new r((function(e){e(t)}))).then(s,o)}c((n=n.apply(e,t||[])).next())}))};Object.defineProperty(t,"__esModule",{value:!0}),t.defaultExpandOptions=t.ContextParser=void 0,r(44);const i=r(21),a=r(45),s=r(79),o=r(81),c=r(58),u=r(59);class l{constructor(e){e=e||{},this.documentLoader=e.documentLoader||new s.FetchDocumentLoader,this.documentCache={},this.validateContext=!e.skipValidation,this.expandContentTypeToBase=!!e.expandContentTypeToBase,this.remoteContextsDepthLimit=e.remoteContextsDepthLimit||32,this.redirectSchemaOrgHttps=!("redirectSchemaOrgHttps"in e)||!!e.redirectSchemaOrgHttps}static validateLanguage(e,t,r){if("string"!=typeof e)throw new a.ErrorCoded(`The value of an '@language' must be a string, got '${JSON.stringify(e)}'`,r);if(!c.Util.REGEX_LANGUAGE_TAG.test(e)){if(t)throw new a.ErrorCoded(`The value of an '@language' must be a valid language tag, got '${JSON.stringify(e)}'`,r);return!1}return!0}static validateDirection(e,t){if("string"!=typeof e)throw new a.ErrorCoded(`The value of an '@direction' must be a string, got '${JSON.stringify(e)}'`,a.ERROR_CODES.INVALID_BASE_DIRECTION);if(!c.Util.REGEX_DIRECTION_TAG.test(e)){if(t)throw new a.ErrorCoded(`The value of an '@direction' must be 'ltr' or 'rtl', got '${JSON.stringify(e)}'`,a.ERROR_CODES.INVALID_BASE_DIRECTION);return!1}return!0}idifyReverseTerms(e){for(const t of Object.keys(e)){const r=e[t];if(r&&"object"==typeof r&&r["@reverse"]&&!r["@id"]){if("string"!=typeof r["@reverse"]||c.Util.isValidKeyword(r["@reverse"]))throw new a.ErrorCoded(`Invalid @reverse value, must be absolute IRI or blank node: '${r["@reverse"]}'`,a.ERROR_CODES.INVALID_IRI_MAPPING);r["@id"]=r["@reverse"],c.Util.isPotentialKeyword(r["@reverse"])?delete r["@reverse"]:r["@reverse"]=!0}}return e}expandPrefixedTerms(e,t){const r=e.getContextRaw();for(const n of Object.keys(r))if(c.Util.EXPAND_KEYS_BLACKLIST.indexOf(n)<0&&!c.Util.isReservedInternalKeyword(n)){const i=r[n];if(c.Util.isPotentialKeyword(n)&&c.Util.ALIAS_DOMAIN_BLACKLIST.indexOf(n)>=0&&("@type"!==n||"object"==typeof r[n]&&!r[n]["@protected"]&&"@set"!==r[n]["@container"]))throw new a.ErrorCoded(`Keywords can not be aliased to something else.\nTried mapping ${n} to ${JSON.stringify(i)}`,a.ERROR_CODES.KEYWORD_REDEFINITION);if(c.Util.ALIAS_RANGE_BLACKLIST.indexOf(c.Util.getContextValueId(i))>=0)throw new a.ErrorCoded(`Aliasing to certain keywords is not allowed.\nTried mapping ${n} to ${JSON.stringify(i)}`,a.ERROR_CODES.INVALID_KEYWORD_ALIAS);if(i&&c.Util.isPotentialKeyword(c.Util.getContextValueId(i))&&!0===i["@prefix"])throw new a.ErrorCoded(`Tried to use keyword aliases as prefix: '${n}': '${JSON.stringify(i)}'`,a.ERROR_CODES.INVALID_TERM_DEFINITION);for(;c.Util.isPrefixValue(r[n]);){const i=r[n];let a=!1;if("string"==typeof i)r[n]=e.expandTerm(i,!0),a=a||i!==r[n];else{const s=i["@id"],o=i["@type"],u=!("@prefix"in i)||c.Util.isValidIri(n);if("@id"in i)null!=s&&"string"==typeof s&&(r[n]["@id"]=e.expandTerm(s,!0),a=a||s!==r[n]["@id"]);else if(!c.Util.isPotentialKeyword(n)&&u){const t=e.expandTerm(n,!0);t!==n&&(r[n]["@id"]=t,a=!0)}!o||"string"!=typeof o||"@vocab"===o||i["@container"]&&i["@container"]["@type"]||!u||(r[n]["@type"]=e.expandTerm(o,!0),t&&o===r[n]["@type"]&&(r[n]["@type"]=e.expandTerm(o,!1)),a=a||o!==r[n]["@type"])}if(!a)break}}}normalize(e,{processingMode:t,normalizeLanguageTags:r}){if(r||1===t)for(const t of Object.keys(e))if("@language"===t&&"string"==typeof e[t])e[t]=e[t].toLowerCase();else{const r=e[t];r&&"object"==typeof r&&"string"==typeof r["@language"]&&(r["@language"]=r["@language"].toLowerCase())}}containersToHash(e){for(const t of Object.keys(e)){const r=e[t];if(r&&"object"==typeof r)if("string"==typeof r["@container"])r["@container"]={[r["@container"]]:!0};else if(Array.isArray(r["@container"])){const e={};for(const t of r["@container"])e[t]=!0;r["@container"]=e}}}applyScopedProtected(e,{processingMode:t}){if(t&&t>=1.1&&e["@protected"]){for(const t of Object.keys(e))if(!c.Util.isReservedInternalKeyword(t)&&!c.Util.isPotentialKeyword(t)&&!c.Util.isTermProtected(e,t)){const r=e[t];r&&"object"==typeof r?"@protected"in e[t]||(e[t]["@protected"]=!0):e[t]={"@id":r,"@protected":!0}}delete e["@protected"]}}validateKeywordRedefinitions(e,t,r){for(const n of Object.keys(t))if(c.Util.isTermProtected(e,n)){if("string"==typeof t[n]){const i=c.Util.isSimpleTermDefinitionPrefix(t[n],r);t[n]={"@id":t[n]},i&&(t[n]["@prefix"]=!0,e[n]["@prefix"]=!0)}const i=u(e[n]);t[n]["@protected"]=!0;if(i!==u(t[n]))throw new a.ErrorCoded(`Attempted to override the protected keyword ${n} from ${JSON.stringify(c.Util.getContextValueId(e[n]))} to ${JSON.stringify(c.Util.getContextValueId(t[n]))}`,a.ERROR_CODES.PROTECTED_TERM_REDEFINITION)}}validate(e,{processingMode:t}){for(const r of Object.keys(e)){if(c.Util.isReservedInternalKeyword(r))continue;if(""===r)throw new a.ErrorCoded(`The empty term is not allowed, got: '${r}': '${JSON.stringify(e[r])}'`,a.ERROR_CODES.INVALID_TERM_DEFINITION);const n=e[r],i=typeof n;if(c.Util.isPotentialKeyword(r)){switch(r.substr(1)){case"vocab":if(null!==n&&"string"!==i)throw new a.ErrorCoded("Found an invalid @vocab IRI: "+n,a.ERROR_CODES.INVALID_VOCAB_MAPPING);break;case"base":if(null!==n&&"string"!==i)throw new a.ErrorCoded("Found an invalid @base IRI: "+e[r],a.ERROR_CODES.INVALID_BASE_IRI);break;case"language":null!==n&&l.validateLanguage(n,!0,a.ERROR_CODES.INVALID_DEFAULT_LANGUAGE);break;case"version":if(null!==n&&"number"!==i)throw new a.ErrorCoded("Found an invalid @version number: "+n,a.ERROR_CODES.INVALID_VERSION_VALUE);break;case"direction":null!==n&&l.validateDirection(n,!0);break;case"propagate":if(1===t)throw new a.ErrorCoded("Found an illegal @propagate keyword: "+n,a.ERROR_CODES.INVALID_CONTEXT_ENTRY);if(null!==n&&"boolean"!==i)throw new a.ErrorCoded("Found an invalid @propagate value: "+n,a.ERROR_CODES.INVALID_PROPAGATE_VALUE)}if(c.Util.isValidKeyword(r)&&c.Util.isValidKeyword(c.Util.getContextValueId(n)))throw new a.ErrorCoded(`Illegal keyword alias in term value, found: '${r}': '${c.Util.getContextValueId(n)}'`,a.ERROR_CODES.KEYWORD_REDEFINITION)}else if(null!==n)switch(i){case"string":if(c.Util.getPrefix(n,e)===r)throw new a.ErrorCoded(`Detected cyclical IRI mapping in context entry: '${r}': '${JSON.stringify(n)}'`,a.ERROR_CODES.CYCLIC_IRI_MAPPING);if(c.Util.isValidIriWeak(r)){if("@type"===n)throw new a.ErrorCoded(`IRIs can not be mapped to @type, found: '${r}': '${n}'`,a.ERROR_CODES.INVALID_IRI_MAPPING);if(c.Util.isValidIri(n)&&n!==new o.JsonLdContextNormalized(e).expandTerm(r))throw new a.ErrorCoded(`IRIs can not be mapped to other IRIs, found: '${r}': '${n}'`,a.ERROR_CODES.INVALID_IRI_MAPPING)}break;case"object":if(!(c.Util.isCompactIri(r)||"@id"in n||("@id"===n["@type"]?e["@base"]:e["@vocab"])))throw new a.ErrorCoded(`Missing @id in context entry: '${r}': '${JSON.stringify(n)}'`,a.ERROR_CODES.INVALID_IRI_MAPPING);for(const s of Object.keys(n)){const u=n[s];if(u)switch(s){case"@id":if(c.Util.isValidKeyword(u)&&"@type"!==u&&"@id"!==u&&"@graph"!==u)throw new a.ErrorCoded(`Illegal keyword alias in term value, found: '${r}': '${JSON.stringify(n)}'`,a.ERROR_CODES.INVALID_IRI_MAPPING);if(c.Util.isValidIriWeak(r)){if("@type"===u)throw new a.ErrorCoded(`IRIs can not be mapped to @type, found: '${r}': '${JSON.stringify(n)}'`,a.ERROR_CODES.INVALID_IRI_MAPPING);if(c.Util.isValidIri(u)&&u!==new o.JsonLdContextNormalized(e).expandTerm(r))throw new a.ErrorCoded(`IRIs can not be mapped to other IRIs, found: '${r}': '${JSON.stringify(n)}'`,a.ERROR_CODES.INVALID_IRI_MAPPING)}if("string"!=typeof u)throw new a.ErrorCoded(`Detected non-string @id in context entry: '${r}': '${JSON.stringify(n)}'`,a.ERROR_CODES.INVALID_IRI_MAPPING);if(c.Util.getPrefix(u,e)===r)throw new a.ErrorCoded(`Detected cyclical IRI mapping in context entry: '${r}': '${JSON.stringify(n)}'`,a.ERROR_CODES.CYCLIC_IRI_MAPPING);break;case"@type":if("@type"===n["@container"]&&"@id"!==u&&"@vocab"!==u)throw new a.ErrorCoded(`@container: @type only allows @type: @id or @vocab, but got: '${r}': '${u}'`,a.ERROR_CODES.INVALID_TYPE_MAPPING);if("string"!=typeof u)throw new a.ErrorCoded(`The value of an '@type' must be a string, got '${JSON.stringify(i)}'`,a.ERROR_CODES.INVALID_TYPE_MAPPING);if(!("@id"===u||"@vocab"===u||1!==t&&"@json"===u||1!==t&&"@none"===u||"_"!==u[0]&&c.Util.isValidIri(u)))throw new a.ErrorCoded(`A context @type must be an absolute IRI, found: '${r}': '${u}'`,a.ERROR_CODES.INVALID_TYPE_MAPPING);break;case"@reverse":if("string"==typeof u&&n["@id"]&&n["@id"]!==u)throw new a.ErrorCoded(`Found non-matching @id and @reverse term values in '${r}':'${u}' and '${n["@id"]}'`,a.ERROR_CODES.INVALID_REVERSE_PROPERTY);if("@nest"in n)throw new a.ErrorCoded(`@nest is not allowed in the reverse property '${r}'`,a.ERROR_CODES.INVALID_REVERSE_PROPERTY);break;case"@container":if(1===t&&(Object.keys(u).length>1||c.Util.CONTAINERS_1_0.indexOf(Object.keys(u)[0])<0))throw new a.ErrorCoded(`Invalid term @container for '${r}' ('${Object.keys(u)}') in 1.0, must be only one of ${c.Util.CONTAINERS_1_0.join(", ")}`,a.ERROR_CODES.INVALID_CONTAINER_MAPPING);for(const e of Object.keys(u)){if("@list"===e&&n["@reverse"])throw new a.ErrorCoded(`Term value can not be @container: @list and @reverse at the same time on '${r}'`,a.ERROR_CODES.INVALID_REVERSE_PROPERTY);if(c.Util.CONTAINERS.indexOf(e)<0)throw new a.ErrorCoded(`Invalid term @container for '${r}' ('${e}'), must be one of ${c.Util.CONTAINERS.join(", ")}`,a.ERROR_CODES.INVALID_CONTAINER_MAPPING)}break;case"@language":l.validateLanguage(u,!0,a.ERROR_CODES.INVALID_LANGUAGE_MAPPING);break;case"@direction":l.validateDirection(u,!0);break;case"@prefix":if(null!==u&&"boolean"!=typeof u)throw new a.ErrorCoded(`Found an invalid term @prefix boolean in: '${r}': '${JSON.stringify(n)}'`,a.ERROR_CODES.INVALID_PREFIX_VALUE);if(!("@id"in n)&&!c.Util.isValidIri(r))throw new a.ErrorCoded(`Invalid @prefix definition for '${r}' ('${JSON.stringify(n)}'`,a.ERROR_CODES.INVALID_TERM_DEFINITION);break;case"@index":if(1===t||!n["@container"]||!n["@container"]["@index"])throw new a.ErrorCoded(`Attempt to add illegal key to value object: '${r}': '${JSON.stringify(n)}'`,a.ERROR_CODES.INVALID_TERM_DEFINITION);break;case"@nest":if(c.Util.isPotentialKeyword(u)&&"@nest"!==u)throw new a.ErrorCoded(`Found an invalid term @nest value in: '${r}': '${JSON.stringify(n)}'`,a.ERROR_CODES.INVALID_NEST_VALUE)}}break;default:throw new a.ErrorCoded(`Found an invalid term value: '${r}': '${n}'`,a.ERROR_CODES.INVALID_TERM_DEFINITION)}}}applyBaseEntry(e,t,r){return"string"==typeof e||(r&&!("@base"in e)&&t.parentContext&&"@base"in t.parentContext&&(e["@base"]=t.parentContext["@base"],t.parentContext["@__baseDocument"]&&(e["@__baseDocument"]=!0)),t.baseIRI&&!t.external&&("@base"in e?null===e["@base"]||"string"!=typeof e["@base"]||c.Util.isValidIri(e["@base"])||(e["@base"]=i.resolve(e["@base"],t.parentContext&&t.parentContext["@base"]||t.baseIRI)):(e["@base"]=t.baseIRI,e["@__baseDocument"]=!0))),e}normalizeContextIri(e,t){if(!c.Util.isValidIri(e)&&(e=i.resolve(e,t),!c.Util.isValidIri(e)))throw new Error("Invalid context IRI: "+e);return this.redirectSchemaOrgHttps&&e.startsWith("http://schema.org")&&(e="https://schema.org/"),e}parseInnerContexts(e,t){return n(this,void 0,void 0,(function*(){for(const r of Object.keys(e)){const n=e[r];if(n&&"object"==typeof n&&"@context"in n&&null!==n["@context"]){if(this.validateContext)try{const i=Object.assign({},e);i[r]=Object.assign({},i[r]),delete i[r]["@context"],yield this.parse(n["@context"],Object.assign(Object.assign({},t),{parentContext:i,ignoreProtection:!0,ignoreRemoteScopedContexts:!0}))}catch(e){throw new a.ErrorCoded(e.message,a.ERROR_CODES.INVALID_SCOPED_CONTEXT)}n["@context"]=(yield this.parse(n["@context"],Object.assign(Object.assign({},t),{minimalProcessing:!0,ignoreRemoteScopedContexts:!0,parentContext:e}))).getContextRaw()}}return e}))}parse(e,r={processingMode:l.DEFAULT_PROCESSING_MODE}){return n(this,void 0,void 0,(function*(){const{baseIRI:n,parentContext:i,external:s,processingMode:u,normalizeLanguageTags:d,ignoreProtection:p,minimalProcessing:h}=r;let f=i;const m=r.remoteContexts||{};if(Object.keys(m).length>=this.remoteContextsDepthLimit)throw new a.ErrorCoded("Detected an overflow in remote context inclusions: "+Object.keys(m),a.ERROR_CODES.CONTEXT_OVERFLOW);if(null==e){if(!p&&f&&c.Util.hasProtectedTerms(f))throw new a.ErrorCoded("Illegal context nullification when terms are protected",a.ERROR_CODES.INVALID_CONTEXT_NULLIFICATION);return new o.JsonLdContextNormalized(this.applyBaseEntry({},r,!1))}if("string"==typeof e){const t=this.normalizeContextIri(e,n),i=this.getOverriddenLoad(t,r);if(i)return new o.JsonLdContextNormalized(i);const a=yield this.parse(yield this.load(t),Object.assign(Object.assign({},r),{baseIRI:t,external:!0,remoteContexts:Object.assign(Object.assign({},m),{[t]:!0})}));return this.applyBaseEntry(a.getContextRaw(),r,!0),a}if(Array.isArray(e)){const t=[],i=yield Promise.all(e.map((e,i)=>{if("string"==typeof e){const a=this.normalizeContextIri(e,n);t[i]=a;const s=this.getOverriddenLoad(a,r);return s||this.load(a)}return e}));if(h)return new o.JsonLdContextNormalized(i);const a=yield i.reduce((e,n,i)=>e.then(e=>this.parse(n,Object.assign(Object.assign({},r),{baseIRI:t[i]||r.baseIRI,external:!!t[i]||r.external,parentContext:e.getContextRaw(),remoteContexts:t[i]?Object.assign(Object.assign({},m),{[t[i]]:!0}):m}))),Promise.resolve(new o.JsonLdContextNormalized(f||{})));return this.applyBaseEntry(a.getContextRaw(),r,!0),a}if("object"==typeof e){if("@context"in e)return yield this.parse(e["@context"],r);e=JSON.parse(JSON.stringify(e)),f&&(f=JSON.parse(JSON.stringify(f)));let i={};if(s&&delete e["@base"],this.applyBaseEntry(e,r,!0),this.containersToHash(e),h)return new o.JsonLdContextNormalized(e);let c={};if("@import"in e){if(!(u&&u>=1.1))throw new a.ErrorCoded("Context importing is not supported in JSON-LD 1.0",a.ERROR_CODES.INVALID_CONTEXT_ENTRY);if("string"!=typeof e["@import"])throw new a.ErrorCoded("An @import value must be a string, but got "+typeof e["@import"],a.ERROR_CODES.INVALID_IMPORT_VALUE);c=yield this.loadImportContext(this.normalizeContextIri(e["@import"],n)),delete e["@import"]}i=Object.assign(Object.assign(Object.assign(Object.assign({},i),f),c),e);const m=new o.JsonLdContextNormalized(i);return yield this.parseInnerContexts(i,r),!p&&f&&u&&u>=1.1&&this.validateKeywordRedefinitions(f,i,t.defaultExpandOptions),(i&&i["@version"]||u||l.DEFAULT_PROCESSING_MODE)>=1.1&&(e["@vocab"]&&"string"==typeof e["@vocab"]||""===e["@vocab"])&&e["@vocab"].indexOf(":")<0&&f&&"@vocab"in f&&(i["@vocab"]=f["@vocab"]+e["@vocab"]),this.idifyReverseTerms(i),this.expandPrefixedTerms(m,this.expandContentTypeToBase),this.normalize(i,{processingMode:u,normalizeLanguageTags:d}),this.applyScopedProtected(i,{processingMode:u}),this.validateContext&&this.validate(i,{processingMode:u}),m}throw new a.ErrorCoded("Tried parsing a context that is not a string, array or object, but got "+e,a.ERROR_CODES.INVALID_LOCAL_CONTEXT)}))}load(e){return n(this,void 0,void 0,(function*(){const t=this.documentCache[e];if(t)return"string"==typeof t?t:Array.isArray(t)?t.slice():Object.assign({},t);let r;try{r=yield this.documentLoader.load(e)}catch(t){throw new a.ErrorCoded(`Failed to load remote context ${e}: ${t.message}`,a.ERROR_CODES.LOADING_REMOTE_CONTEXT_FAILED)}if(!("@context"in r))throw new a.ErrorCoded("Missing @context in remote context at "+e,a.ERROR_CODES.INVALID_REMOTE_CONTEXT);return this.documentCache[e]=r["@context"]}))}getOverriddenLoad(e,t){if(e in(t.remoteContexts||{})){if(t.ignoreRemoteScopedContexts)return e;throw new a.ErrorCoded("Detected a cyclic context inclusion of "+e,a.ERROR_CODES.RECURSIVE_CONTEXT_INCLUSION)}return null}loadImportContext(e){return n(this,void 0,void 0,(function*(){const t=yield this.load(e);if("object"!=typeof t||Array.isArray(t))throw new a.ErrorCoded("An imported context must be a single object: "+e,a.ERROR_CODES.INVALID_REMOTE_CONTEXT);if("@import"in t)throw new a.ErrorCoded("An imported context can not import another context: "+e,a.ERROR_CODES.INVALID_CONTEXT_ENTRY);return t}))}}t.ContextParser=l,l.DEFAULT_PROCESSING_MODE=1.1,t.defaultExpandOptions={allowPrefixForcing:!0,allowPrefixNonGenDelims:!1,allowVocabRelativeToBase:!0}},function(e,t,r){"use strict";var n=this&&this.__awaiter||function(e,t,r,n){return new(r||(r=Promise))((function(i,a){function s(e){try{c(n.next(e))}catch(e){a(e)}}function o(e){try{c(n.throw(e))}catch(e){a(e)}}function c(e){var t;e.done?i(e.value):(t=e.value,t instanceof r?t:new r((function(e){e(t)}))).then(s,o)}c((n=n.apply(e,t||[])).next())}))};Object.defineProperty(t,"__esModule",{value:!0}),t.FetchDocumentLoader=void 0,r(44);const i=r(45),a=r(80),s=r(21);t.FetchDocumentLoader=class{constructor(e){this.fetcher=e}load(e){return n(this,void 0,void 0,(function*(){const t=yield(this.fetcher||fetch)(e,{headers:new Headers({accept:"application/ld+json"})});if(t.ok&&t.headers){let r=t.headers.get("Content-Type");if(r){const e=r.indexOf(";");e>0&&(r=r.substr(0,e))}if("application/ld+json"===r)return yield t.json();if(t.headers.has("Link")){let r;if(t.headers.forEach((t,n)=>{if("link"===n){const n=a.parse(t);for(const t of n.get("type","application/ld+json"))if("alternate"===t.rel){if(r)throw new Error("Multiple JSON-LD alternate links were found on "+e);r=s.resolve(t.uri,e)}}}),r)return this.load(r)}throw new i.ErrorCoded("Unsupported JSON-LD media type "+r,i.ERROR_CODES.LOADING_DOCUMENT_FAILED)}throw new Error(t.statusText||"Status code: "+t.status)}))}}},function(e,t,r){"use strict";(function(t){var r=/^utf-?8|ascii|utf-?16-?le|ucs-?2|base-?64|latin-?1$/i,n=/^[\s\uFEFF\xA0]+|[\s\uFEFF\xA0]+$/g,i=/\s|\uFEFF|\xA0/,a=/\r?\n[\x20\x09]+/g,s=/[;,"]/,o=/[;,"]|\s/,c=1,u=2,l=4;function d(e){return e.replace(n,"")}function p(e){return i.test(e)}function h(e,t){for(;p(e[t]);)t++;return t}function f(e){return o.test(e)}class m{constructor(e){this.refs=[],e&&this.parse(e)}rel(e){for(var t=[],r=0;r",t)))throw new Error("Expected end of URI delimiter at offset "+t);i={uri:e.slice(t+1,g)},this.refs.push(i),t=g,r=u,t++}else if(r===u){if(p(e[t])){t++;continue}if(";"===e[t])r=l,t++;else{if(","!==e[t])throw new Error('Unexpected character "'+e[t]+'" at offset '+t);r=c,t++}}else{if(r!==l)throw new Error('Unknown parser state "'+r+'"');if(";"===e[t]||p(e[t])){t++;continue}if(-1===(g=e.indexOf("=",t)))throw new Error("Expected attribute delimiter at offset "+t);var o=d(e.slice(t,g)).toLowerCase(),f="";if('"'===e[t=h(e,t=g+1)])for(t++;t"),e.push(t);return e.join(", ")}}m.isCompatibleEncoding=function(e){return r.test(e)},m.parse=function(e,t){return(new m).parse(e,t)},m.isSingleOccurenceAttr=function(e){return"rel"===e||"type"===e||"media"===e||"title"===e||"title*"===e},m.isTokenAttr=function(e){return"rel"===e||"type"===e||"anchor"===e},m.escapeQuotes=function(e){return e.replace(/"/g,'\\"')},m.parseExtendedValue=function(e){var t=/([^']+)?(?:'([^']+)')?(.+)/.exec(e);return{language:t[2].toLowerCase(),encoding:m.isCompatibleEncoding(t[1])?null:t[1].toLowerCase(),value:m.isCompatibleEncoding(t[1])?decodeURIComponent(t[3]):t[3]}},m.formatExtendedAttribute=function(e,r){var n=(r.encoding||"utf-8").toUpperCase();return e+"="+n+"'"+(r.language||"en")+"'"+(t.isBuffer(r.value)&&m.isCompatibleEncoding(n)?r.value.toString(n):t.isBuffer(r.value)?r.value.toString("hex").replace(/[0-9a-f]{2}/gi,"%$1"):encodeURIComponent(r.value))},m.formatAttribute=function(e,t){return Array.isArray(t)?t.map(t=>m.formatAttribute(e,t)).join("; "):"*"===e[e.length-1]||"string"!=typeof t?m.formatExtendedAttribute(e,t):(m.isTokenAttr(e)?t=f(t)?'"'+m.escapeQuotes(t)+'"':m.escapeQuotes(t):f(t)&&(t='"'+(t=(t=encodeURIComponent(t)).replace(/%20/g," ").replace(/%2C/g,",").replace(/%3B/g,";"))+'"'),e+"="+t)},e.exports=m}).call(this,r(14).Buffer)},function(e,t,r){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.JsonLdContextNormalized=void 0;const n=r(21),i=r(78),a=r(45),s=r(58);t.JsonLdContextNormalized=class{constructor(e){this.contextRaw=e}getContextRaw(){return this.contextRaw}expandTerm(e,t,r=i.defaultExpandOptions){const o=this.contextRaw[e];if(null===o||o&&null===o["@id"])return null;let c=!0;if(o&&t){const t=s.Util.getContextValueId(o);if(t&&t!==e){if("string"==typeof t&&(s.Util.isValidIri(t)||s.Util.isValidKeyword(t)))return t;s.Util.isPotentialKeyword(t)||(c=!1)}}const u=s.Util.getPrefix(e,this.contextRaw),l=this.contextRaw["@vocab"],d=(!!l||""===l)&&l.indexOf(":")<0,p=this.contextRaw["@base"],h=s.Util.isPotentialKeyword(e);if(u){const t=this.contextRaw[u],n=s.Util.getContextValueId(t);if(n){if("string"!=typeof t&&r.allowPrefixForcing){if("_"!==n[0]&&!h&&!t["@prefix"]&&!(e in this.contextRaw))return e}else if(!s.Util.isSimpleTermDefinitionPrefix(n,r))return e;return n+e.substr(u.length+1)}}else{if(t&&(l||""===l||r.allowVocabRelativeToBase&&p&&d)&&!h&&!s.Util.isCompactIri(e)){if(d){if(r.allowVocabRelativeToBase)return n.resolve(l,p)+e;throw new a.ErrorCoded(`Relative vocab expansion for term '${e}' with vocab '${l}' is not allowed.`,a.ERROR_CODES.INVALID_VOCAB_MAPPING)}return l+e}if(!t&&p&&!h&&!s.Util.isCompactIri(e))return n.resolve(e,p)}if(c)return e;throw new a.ErrorCoded(`Invalid IRI mapping found for context entry '${e}': '${JSON.stringify(o)}'`,a.ERROR_CODES.INVALID_IRI_MAPPING)}compactIri(e,t){if(t&&this.contextRaw["@vocab"]&&e.startsWith(this.contextRaw["@vocab"]))return e.substr(this.contextRaw["@vocab"].length);if(!t&&this.contextRaw["@base"]&&e.startsWith(this.contextRaw["@base"]))return e.substr(this.contextRaw["@base"].length);const r={prefix:"",suffix:e};for(const n in this.contextRaw){const i=this.contextRaw[n];if(i&&!s.Util.isPotentialKeyword(n)){const a=s.Util.getContextValueId(i);if(e.startsWith(a)){const i=e.substr(a.length);if(i)i.length=0&&(this.actors.splice(t,1),!0)}unsubscribeObserver(e){const t=this.observers.indexOf(e);return t>=0&&(this.observers.splice(t,1),!0)}publish(e){return this.actors.map(t=>({actor:t,reply:t.test(e)}))}onRun(e,t,r){for(const n of this.observers)n.onRun(e,t,r)}addDependencies(e,t){for(const r of t){let t=this.dependencyLinks.get(r);t||(t=[],this.dependencyLinks.set(r,t)),t.push(e)}this.reorderForDependencies()}reorderForDependencies(){if(this.dependencyLinks.size>0){const e=[];for(const t of this.dependencyLinks.keys()){const r=this.actors.indexOf(t);r>=0&&(this.actors.splice(r,1),e.push(t))}for(;e.length>0;){let t=-1;for(let r=0;r0)if("string"==typeof t||s.objectMode||Object.getPrototypeOf(t)===o.prototype||(t=function(e){return o.from(e)}(t)),n)s.endEmitted?S(e,new w):A(e,s,t,!0);else if(s.ended)S(e,new _);else{if(s.destroyed)return!1;s.reading=!1,s.decoder&&!r?(t=s.decoder.write(t),s.objectMode||0!==t.length?A(e,s,t,!1):N(e,s)):A(e,s,t,!1)}else n||(s.reading=!1,N(e,s));return!s.ended&&(s.lengtht.highWaterMark&&(t.highWaterMark=function(e){return e>=1073741824?e=1073741824:(e--,e|=e>>>1,e|=e>>>2,e|=e>>>4,e|=e>>>8,e|=e>>>16,e++),e}(e)),e<=t.length?e:t.ended?t.length:(t.needReadable=!0,0))}function I(e){var t=e._readableState;u("emitReadable",t.needReadable,t.emittedReadable),t.needReadable=!1,t.emittedReadable||(u("emitReadable",t.flowing),t.emittedReadable=!0,n.nextTick(P,e))}function P(e){var t=e._readableState;u("emitReadable_",t.destroyed,t.length,t.ended),t.destroyed||!t.length&&!t.ended||(e.emit("readable"),t.emittedReadable=!1),t.needReadable=!t.flowing&&!t.ended&&t.length<=t.highWaterMark,L(e)}function N(e,t){t.readingMore||(t.readingMore=!0,n.nextTick(C,e,t))}function C(e,t){for(;!t.reading&&!t.ended&&(t.length0,t.resumeScheduled&&!t.paused?t.flowing=!0:e.listenerCount("data")>0&&e.resume()}function D(e){u("readable nexttick read 0"),e.read(0)}function k(e,t){u("resume",t.reading),t.reading||e.read(0),t.resumeScheduled=!1,e.emit("resume"),L(e),t.flowing&&!t.reading&&e.read(0)}function L(e){var t=e._readableState;for(u("flow",t.flowing);t.flowing&&null!==e.read(););}function M(e,t){return 0===t.length?null:(t.objectMode?r=t.buffer.shift():!e||e>=t.length?(r=t.decoder?t.buffer.join(""):1===t.buffer.length?t.buffer.first():t.buffer.concat(t.length),t.buffer.clear()):r=t.buffer.consume(e,t.decoder),r);var r}function F(e){var t=e._readableState;u("endReadable",t.endEmitted),t.endEmitted||(t.ended=!0,n.nextTick(q,t,e))}function q(e,t){if(u("endReadableNT",e.endEmitted,e.length),!e.endEmitted&&0===e.length&&(e.endEmitted=!0,t.readable=!1,t.emit("end"),e.autoDestroy)){var r=t._writableState;(!r||r.autoDestroy&&r.finished)&&t.destroy()}}function B(e,t){for(var r=0,n=e.length;r=t.highWaterMark:t.length>0)||t.ended))return u("read: emitReadable",t.length,t.ended),0===t.length&&t.ended?F(this):I(this),null;if(0===(e=R(e,t))&&t.ended)return 0===t.length&&F(this),null;var n,i=t.needReadable;return u("need readable",i),(0===t.length||t.length-e0?M(e,t):null)?(t.needReadable=t.length<=t.highWaterMark,e=0):(t.length-=e,t.awaitDrain=0),0===t.length&&(t.ended||(t.needReadable=!0),r!==e&&t.ended&&F(this)),null!==n&&this.emit("data",n),n},O.prototype._read=function(e){S(this,new v("_read()"))},O.prototype.pipe=function(e,t){var r=this,i=this._readableState;switch(i.pipesCount){case 0:i.pipes=e;break;case 1:i.pipes=[i.pipes,e];break;default:i.pipes.push(e)}i.pipesCount+=1,u("pipe count=%d opts=%j",i.pipesCount,t);var s=(!t||!1!==t.end)&&e!==n.stdout&&e!==n.stderr?c:g;function o(t,n){u("onunpipe"),t===r&&n&&!1===n.hasUnpiped&&(n.hasUnpiped=!0,u("cleanup"),e.removeListener("close",f),e.removeListener("finish",m),e.removeListener("drain",l),e.removeListener("error",h),e.removeListener("unpipe",o),r.removeListener("end",c),r.removeListener("end",g),r.removeListener("data",p),d=!0,!i.awaitDrain||e._writableState&&!e._writableState.needDrain||l())}function c(){u("onend"),e.end()}i.endEmitted?n.nextTick(s):r.once("end",s),e.on("unpipe",o);var l=function(e){return function(){var t=e._readableState;u("pipeOnDrain",t.awaitDrain),t.awaitDrain&&t.awaitDrain--,0===t.awaitDrain&&a(e,"data")&&(t.flowing=!0,L(e))}}(r);e.on("drain",l);var d=!1;function p(t){u("ondata");var n=e.write(t);u("dest.write",n),!1===n&&((1===i.pipesCount&&i.pipes===e||i.pipesCount>1&&-1!==B(i.pipes,e))&&!d&&(u("false write response, pause",i.awaitDrain),i.awaitDrain++),r.pause())}function h(t){u("onerror",t),g(),e.removeListener("error",h),0===a(e,"error")&&S(e,t)}function f(){e.removeListener("finish",m),g()}function m(){u("onfinish"),e.removeListener("close",f),g()}function g(){u("unpipe"),r.unpipe(e)}return r.on("data",p),function(e,t,r){if("function"==typeof e.prependListener)return e.prependListener(t,r);e._events&&e._events[t]?Array.isArray(e._events[t])?e._events[t].unshift(r):e._events[t]=[r,e._events[t]]:e.on(t,r)}(e,"error",h),e.once("close",f),e.once("finish",m),e.emit("pipe",r),i.flowing||(u("pipe resume"),r.resume()),e},O.prototype.unpipe=function(e){var t=this._readableState,r={hasUnpiped:!1};if(0===t.pipesCount)return this;if(1===t.pipesCount)return e&&e!==t.pipes||(e||(e=t.pipes),t.pipes=null,t.pipesCount=0,t.flowing=!1,e&&e.emit("unpipe",this,r)),this;if(!e){var n=t.pipes,i=t.pipesCount;t.pipes=null,t.pipesCount=0,t.flowing=!1;for(var a=0;a0,!1!==i.flowing&&this.resume()):"readable"===e&&(i.endEmitted||i.readableListening||(i.readableListening=i.needReadable=!0,i.flowing=!1,i.emittedReadable=!1,u("on readable",i.length,i.reading),i.length?I(this):i.reading||n.nextTick(D,this))),r},O.prototype.addListener=O.prototype.on,O.prototype.removeListener=function(e,t){var r=s.prototype.removeListener.call(this,e,t);return"readable"===e&&n.nextTick(j,this),r},O.prototype.removeAllListeners=function(e){var t=s.prototype.removeAllListeners.apply(this,arguments);return"readable"!==e&&void 0!==e||n.nextTick(j,this),t},O.prototype.resume=function(){var e=this._readableState;return e.flowing||(u("resume"),e.flowing=!e.readableListening,function(e,t){t.resumeScheduled||(t.resumeScheduled=!0,n.nextTick(k,e,t))}(this,e)),e.paused=!1,this},O.prototype.pause=function(){return u("call pause flowing=%j",this._readableState.flowing),!1!==this._readableState.flowing&&(u("pause"),this._readableState.flowing=!1,this.emit("pause")),this._readableState.paused=!0,this},O.prototype.wrap=function(e){var t=this,r=this._readableState,n=!1;for(var i in e.on("end",(function(){if(u("wrapped end"),r.decoder&&!r.ended){var e=r.decoder.end();e&&e.length&&t.push(e)}t.push(null)})),e.on("data",(function(i){(u("wrapped data"),r.decoder&&(i=r.decoder.write(i)),r.objectMode&&null==i)||(r.objectMode||i&&i.length)&&(t.push(i)||(n=!0,e.pause()))})),e)void 0===this[i]&&"function"==typeof e[i]&&(this[i]=function(t){return function(){return e[t].apply(e,arguments)}}(i));for(var a=0;a-1))throw new w(e);return this._writableState.defaultEncoding=e,this},Object.defineProperty(O.prototype,"writableBuffer",{enumerable:!1,get:function(){return this._writableState&&this._writableState.getBuffer()}}),Object.defineProperty(O.prototype,"writableHighWaterMark",{enumerable:!1,get:function(){return this._writableState.highWaterMark}}),O.prototype._write=function(e,t,r){r(new m("_write()"))},O.prototype._writev=null,O.prototype.end=function(e,t,r){var i=this._writableState;return"function"==typeof e?(r=e,e=null,t=null):"function"==typeof t&&(r=t,t=null),null!=e&&this.write(e,t),i.corked&&(i.corked=1,this.uncork()),i.ending||function(e,t,r){t.ending=!0,N(e,t),r&&(t.finished?n.nextTick(r):e.once("finish",r));t.ended=!0,e.writable=!1}(this,i,r),this},Object.defineProperty(O.prototype,"writableLength",{enumerable:!1,get:function(){return this._writableState.length}}),Object.defineProperty(O.prototype,"destroyed",{enumerable:!1,get:function(){return void 0!==this._writableState&&this._writableState.destroyed},set:function(e){this._writableState&&(this._writableState.destroyed=e)}}),O.prototype.destroy=d.destroy,O.prototype._undestroy=d.undestroy,O.prototype._destroy=function(e,t){t(e)}}).call(this,r(17),r(12))},function(e,t,r){"use strict";e.exports=l;var n=r(33).codes,i=n.ERR_METHOD_NOT_IMPLEMENTED,a=n.ERR_MULTIPLE_CALLBACK,s=n.ERR_TRANSFORM_ALREADY_TRANSFORMING,o=n.ERR_TRANSFORM_WITH_LENGTH_0,c=r(34);function u(e,t){var r=this._transformState;r.transforming=!1;var n=r.writecb;if(null===n)return this.emit("error",new a);r.writechunk=null,r.writecb=null,null!=t&&this.push(t),n(e);var i=this._readableState;i.reading=!1,(i.needReadable||i.length"===n?(O(this,"onsgmldeclaration",this.sgmlDecl),this.sgmlDecl="",this.state=S.TEXT):m(n)?(this.state=S.SGML_DECL_QUOTED,this.sgmlDecl+=n):this.sgmlDecl+=n;continue;case S.SGML_DECL_QUOTED:n===this.q&&(this.state=S.SGML_DECL,this.q=""),this.sgmlDecl+=n;continue;case S.DOCTYPE:">"===n?(this.state=S.TEXT,O(this,"ondoctype",this.doctype),this.doctype=!0):(this.doctype+=n,"["===n?this.state=S.DOCTYPE_DTD:m(n)&&(this.state=S.DOCTYPE_QUOTED,this.q=n));continue;case S.DOCTYPE_QUOTED:this.doctype+=n,n===this.q&&(this.q="",this.state=S.DOCTYPE);continue;case S.DOCTYPE_DTD:this.doctype+=n,"]"===n?this.state=S.DOCTYPE:m(n)&&(this.state=S.DOCTYPE_DTD_QUOTED,this.q=n);continue;case S.DOCTYPE_DTD_QUOTED:this.doctype+=n,n===this.q&&(this.state=S.DOCTYPE_DTD,this.q="");continue;case S.COMMENT:"-"===n?this.state=S.COMMENT_ENDING:this.comment+=n;continue;case S.COMMENT_ENDING:"-"===n?(this.state=S.COMMENT_ENDED,this.comment=A(this.opt,this.comment),this.comment&&O(this,"oncomment",this.comment),this.comment=""):(this.comment+="-"+n,this.state=S.COMMENT);continue;case S.COMMENT_ENDED:">"!==n?(P(this,"Malformed comment"),this.comment+="--"+n,this.state=S.COMMENT):this.state=S.TEXT;continue;case S.CDATA:"]"===n?this.state=S.CDATA_ENDING:this.cdata+=n;continue;case S.CDATA_ENDING:"]"===n?this.state=S.CDATA_ENDING_2:(this.cdata+="]"+n,this.state=S.CDATA);continue;case S.CDATA_ENDING_2:">"===n?(this.cdata&&O(this,"oncdata",this.cdata),O(this,"onclosecdata"),this.cdata="",this.state=S.TEXT):"]"===n?this.cdata+="]":(this.cdata+="]]"+n,this.state=S.CDATA);continue;case S.PROC_INST:"?"===n?this.state=S.PROC_INST_ENDING:f(n)?this.state=S.PROC_INST_BODY:this.procInstName+=n;continue;case S.PROC_INST_BODY:if(!this.procInstBody&&f(n))continue;"?"===n?this.state=S.PROC_INST_ENDING:this.procInstBody+=n;continue;case S.PROC_INST_ENDING:">"===n?(O(this,"onprocessinginstruction",{name:this.procInstName,body:this.procInstBody}),this.procInstName=this.procInstBody="",this.state=S.TEXT):(this.procInstBody+="?"+n,this.state=S.PROC_INST_BODY);continue;case S.OPEN_TAG:y(d,n)?this.tagName+=n:(N(this),">"===n?D(this):"/"===n?this.state=S.OPEN_TAG_SLASH:(f(n)||P(this,"Invalid character in tag name"),this.state=S.ATTRIB));continue;case S.OPEN_TAG_SLASH:">"===n?(D(this,!0),k(this)):(P(this,"Forward-slash in opening tag not followed by >"),this.state=S.ATTRIB);continue;case S.ATTRIB:if(f(n))continue;">"===n?D(this):"/"===n?this.state=S.OPEN_TAG_SLASH:y(l,n)?(this.attribName=n,this.attribValue="",this.state=S.ATTRIB_NAME):P(this,"Invalid attribute name");continue;case S.ATTRIB_NAME:"="===n?this.state=S.ATTRIB_VALUE:">"===n?(P(this,"Attribute without value"),this.attribValue=this.attribName,j(this),D(this)):f(n)?this.state=S.ATTRIB_NAME_SAW_WHITE:y(d,n)?this.attribName+=n:P(this,"Invalid attribute name");continue;case S.ATTRIB_NAME_SAW_WHITE:if("="===n)this.state=S.ATTRIB_VALUE;else{if(f(n))continue;P(this,"Attribute without value"),this.tag.attributes[this.attribName]="",this.attribValue="",O(this,"onattribute",{name:this.attribName,value:""}),this.attribName="",">"===n?D(this):y(l,n)?(this.attribName=n,this.state=S.ATTRIB_NAME):(P(this,"Invalid attribute name"),this.state=S.ATTRIB)}continue;case S.ATTRIB_VALUE:if(f(n))continue;m(n)?(this.q=n,this.state=S.ATTRIB_VALUE_QUOTED):(P(this,"Unquoted attribute value"),this.state=S.ATTRIB_VALUE_UNQUOTED,this.attribValue=n);continue;case S.ATTRIB_VALUE_QUOTED:if(n!==this.q){"&"===n?this.state=S.ATTRIB_VALUE_ENTITY_Q:this.attribValue+=n;continue}j(this),this.q="",this.state=S.ATTRIB_VALUE_CLOSED;continue;case S.ATTRIB_VALUE_CLOSED:f(n)?this.state=S.ATTRIB:">"===n?D(this):"/"===n?this.state=S.OPEN_TAG_SLASH:y(l,n)?(P(this,"No whitespace between attributes"),this.attribName=n,this.attribValue="",this.state=S.ATTRIB_NAME):P(this,"Invalid attribute name");continue;case S.ATTRIB_VALUE_UNQUOTED:if(!g(n)){"&"===n?this.state=S.ATTRIB_VALUE_ENTITY_U:this.attribValue+=n;continue}j(this),">"===n?D(this):this.state=S.ATTRIB;continue;case S.CLOSE_TAG:if(this.tagName)">"===n?k(this):y(d,n)?this.tagName+=n:this.script?(this.script+=""===n?k(this):P(this,"Invalid characters in closing tag");continue;case S.TEXT_ENTITY:case S.ATTRIB_VALUE_ENTITY_Q:case S.ATTRIB_VALUE_ENTITY_U:var o,c;switch(this.state){case S.TEXT_ENTITY:o=S.TEXT,c="textNode";break;case S.ATTRIB_VALUE_ENTITY_Q:o=S.ATTRIB_VALUE_QUOTED,c="attribValue";break;case S.ATTRIB_VALUE_ENTITY_U:o=S.ATTRIB_VALUE_UNQUOTED,c="attribValue"}";"===n?(this[c]+=L(this),this.entity="",this.state=o):y(this.entity.length?h:p,n)?this.entity+=n:(P(this,"Invalid character in entity name"),this[c]+="&"+this.entity+n,this.entity="",this.state=o);continue;default:throw new Error(this,"Unknown state: "+this.state)}this.position>=this.bufferCheckPosition&&function(e){for(var r=Math.max(t.MAX_BUFFER_LENGTH,10),n=0,a=0,s=i.length;ar)switch(i[a]){case"textNode":x(e);break;case"cdata":O(e,"oncdata",e.cdata),e.cdata="";break;case"script":O(e,"onscript",e.script),e.script="";break;default:R(e,"Max buffer length exceeded: "+i[a])}n=Math.max(n,o)}var c=t.MAX_BUFFER_LENGTH-n;e.bufferCheckPosition=c+e.position}(this);return this} +/*! http://mths.be/fromcodepoint v0.1.0 by @mathias */,resume:function(){return this.error=null,this},close:function(){return this.write(null)},flush:function(){var e;x(e=this),""!==e.cdata&&(O(e,"oncdata",e.cdata),e.cdata=""),""!==e.script&&(O(e,"onscript",e.script),e.script="")}};try{n=r(2).Stream}catch(e){n=function(){}}var s=t.EVENTS.filter((function(e){return"error"!==e&&"end"!==e}));function o(e,t){if(!(this instanceof o))return new o(e,t);n.apply(this),this._parser=new a(e,t),this.writable=!0,this.readable=!0;var r=this;this._parser.onend=function(){r.emit("end")},this._parser.onerror=function(e){r.emit("error",e),r._parser.error=null},this._decoder=null,s.forEach((function(e){Object.defineProperty(r,"on"+e,{get:function(){return r._parser["on"+e]},set:function(t){if(!t)return r.removeAllListeners(e),r._parser["on"+e]=t,t;r.on(e,t)},enumerable:!0,configurable:!1})}))}o.prototype=Object.create(n.prototype,{constructor:{value:o}}),o.prototype.write=function(t){if("function"==typeof e&&"function"==typeof e.isBuffer&&e.isBuffer(t)){if(!this._decoder){var n=r(49).StringDecoder;this._decoder=new n("utf8")}t=this._decoder.write(t)}return this._parser.write(t.toString()),this.emit("data",t),!0},o.prototype.end=function(e){return e&&e.length&&this.write(e),this._parser.end(),!0},o.prototype.on=function(e,t){var r=this;return r._parser["on"+e]||-1===s.indexOf(e)||(r._parser["on"+e]=function(){var t=1===arguments.length?[arguments[0]]:Array.apply(null,arguments);t.splice(0,0,e),r.emit.apply(r,t)}),n.prototype.on.call(r,e,t)};var c="http://www.w3.org/XML/1998/namespace",u={xml:c,xmlns:"http://www.w3.org/2000/xmlns/"},l=/[:_A-Za-z\u00C0-\u00D6\u00D8-\u00F6\u00F8-\u02FF\u0370-\u037D\u037F-\u1FFF\u200C-\u200D\u2070-\u218F\u2C00-\u2FEF\u3001-\uD7FF\uF900-\uFDCF\uFDF0-\uFFFD]/,d=/[:_A-Za-z\u00C0-\u00D6\u00D8-\u00F6\u00F8-\u02FF\u0370-\u037D\u037F-\u1FFF\u200C-\u200D\u2070-\u218F\u2C00-\u2FEF\u3001-\uD7FF\uF900-\uFDCF\uFDF0-\uFFFD\u00B7\u0300-\u036F\u203F-\u2040.\d-]/,p=/[#:_A-Za-z\u00C0-\u00D6\u00D8-\u00F6\u00F8-\u02FF\u0370-\u037D\u037F-\u1FFF\u200C-\u200D\u2070-\u218F\u2C00-\u2FEF\u3001-\uD7FF\uF900-\uFDCF\uFDF0-\uFFFD]/,h=/[#:_A-Za-z\u00C0-\u00D6\u00D8-\u00F6\u00F8-\u02FF\u0370-\u037D\u037F-\u1FFF\u200C-\u200D\u2070-\u218F\u2C00-\u2FEF\u3001-\uD7FF\uF900-\uFDCF\uFDF0-\uFFFD\u00B7\u0300-\u036F\u203F-\u2040.\d-]/;function f(e){return" "===e||"\n"===e||"\r"===e||"\t"===e}function m(e){return'"'===e||"'"===e}function g(e){return">"===e||f(e)}function y(e,t){return e.test(t)}function b(e,t){return!y(e,t)}var _,v,w,S=0;for(var E in t.STATE={BEGIN:S++,BEGIN_WHITESPACE:S++,TEXT:S++,TEXT_ENTITY:S++,OPEN_WAKA:S++,SGML_DECL:S++,SGML_DECL_QUOTED:S++,DOCTYPE:S++,DOCTYPE_QUOTED:S++,DOCTYPE_DTD:S++,DOCTYPE_DTD_QUOTED:S++,COMMENT_STARTING:S++,COMMENT:S++,COMMENT_ENDING:S++,COMMENT_ENDED:S++,CDATA:S++,CDATA_ENDING:S++,CDATA_ENDING_2:S++,PROC_INST:S++,PROC_INST_BODY:S++,PROC_INST_ENDING:S++,OPEN_TAG:S++,OPEN_TAG_SLASH:S++,ATTRIB:S++,ATTRIB_NAME:S++,ATTRIB_NAME_SAW_WHITE:S++,ATTRIB_VALUE:S++,ATTRIB_VALUE_QUOTED:S++,ATTRIB_VALUE_CLOSED:S++,ATTRIB_VALUE_UNQUOTED:S++,ATTRIB_VALUE_ENTITY_Q:S++,ATTRIB_VALUE_ENTITY_U:S++,CLOSE_TAG:S++,CLOSE_TAG_SAW_WHITE:S++,SCRIPT:S++,SCRIPT_ENDING:S++},t.XML_ENTITIES={amp:"&",gt:">",lt:"<",quot:'"',apos:"'"},t.ENTITIES={amp:"&",gt:">",lt:"<",quot:'"',apos:"'",AElig:198,Aacute:193,Acirc:194,Agrave:192,Aring:197,Atilde:195,Auml:196,Ccedil:199,ETH:208,Eacute:201,Ecirc:202,Egrave:200,Euml:203,Iacute:205,Icirc:206,Igrave:204,Iuml:207,Ntilde:209,Oacute:211,Ocirc:212,Ograve:210,Oslash:216,Otilde:213,Ouml:214,THORN:222,Uacute:218,Ucirc:219,Ugrave:217,Uuml:220,Yacute:221,aacute:225,acirc:226,aelig:230,agrave:224,aring:229,atilde:227,auml:228,ccedil:231,eacute:233,ecirc:234,egrave:232,eth:240,euml:235,iacute:237,icirc:238,igrave:236,iuml:239,ntilde:241,oacute:243,ocirc:244,ograve:242,oslash:248,otilde:245,ouml:246,szlig:223,thorn:254,uacute:250,ucirc:251,ugrave:249,uuml:252,yacute:253,yuml:255,copy:169,reg:174,nbsp:160,iexcl:161,cent:162,pound:163,curren:164,yen:165,brvbar:166,sect:167,uml:168,ordf:170,laquo:171,not:172,shy:173,macr:175,deg:176,plusmn:177,sup1:185,sup2:178,sup3:179,acute:180,micro:181,para:182,middot:183,cedil:184,ordm:186,raquo:187,frac14:188,frac12:189,frac34:190,iquest:191,times:215,divide:247,OElig:338,oelig:339,Scaron:352,scaron:353,Yuml:376,fnof:402,circ:710,tilde:732,Alpha:913,Beta:914,Gamma:915,Delta:916,Epsilon:917,Zeta:918,Eta:919,Theta:920,Iota:921,Kappa:922,Lambda:923,Mu:924,Nu:925,Xi:926,Omicron:927,Pi:928,Rho:929,Sigma:931,Tau:932,Upsilon:933,Phi:934,Chi:935,Psi:936,Omega:937,alpha:945,beta:946,gamma:947,delta:948,epsilon:949,zeta:950,eta:951,theta:952,iota:953,kappa:954,lambda:955,mu:956,nu:957,xi:958,omicron:959,pi:960,rho:961,sigmaf:962,sigma:963,tau:964,upsilon:965,phi:966,chi:967,psi:968,omega:969,thetasym:977,upsih:978,piv:982,ensp:8194,emsp:8195,thinsp:8201,zwnj:8204,zwj:8205,lrm:8206,rlm:8207,ndash:8211,mdash:8212,lsquo:8216,rsquo:8217,sbquo:8218,ldquo:8220,rdquo:8221,bdquo:8222,dagger:8224,Dagger:8225,bull:8226,hellip:8230,permil:8240,prime:8242,Prime:8243,lsaquo:8249,rsaquo:8250,oline:8254,frasl:8260,euro:8364,image:8465,weierp:8472,real:8476,trade:8482,alefsym:8501,larr:8592,uarr:8593,rarr:8594,darr:8595,harr:8596,crarr:8629,lArr:8656,uArr:8657,rArr:8658,dArr:8659,hArr:8660,forall:8704,part:8706,exist:8707,empty:8709,nabla:8711,isin:8712,notin:8713,ni:8715,prod:8719,sum:8721,minus:8722,lowast:8727,radic:8730,prop:8733,infin:8734,ang:8736,and:8743,or:8744,cap:8745,cup:8746,int:8747,there4:8756,sim:8764,cong:8773,asymp:8776,ne:8800,equiv:8801,le:8804,ge:8805,sub:8834,sup:8835,nsub:8836,sube:8838,supe:8839,oplus:8853,otimes:8855,perp:8869,sdot:8901,lceil:8968,rceil:8969,lfloor:8970,rfloor:8971,lang:9001,rang:9002,loz:9674,spades:9824,clubs:9827,hearts:9829,diams:9830},Object.keys(t.ENTITIES).forEach((function(e){var r=t.ENTITIES[e],n="number"==typeof r?String.fromCharCode(r):r;t.ENTITIES[e]=n})),t.STATE)t.STATE[t.STATE[E]]=E;function T(e,t,r){e[t]&&e[t](r)}function O(e,t,r){e.textNode&&x(e),T(e,t,r)}function x(e){e.textNode=A(e.opt,e.textNode),e.textNode&&T(e,"ontext",e.textNode),e.textNode=""}function A(e,t){return e.trim&&(t=t.trim()),e.normalize&&(t=t.replace(/\s+/g," ")),t}function R(e,t){return x(e),e.trackPosition&&(t+="\nLine: "+e.line+"\nColumn: "+e.column+"\nChar: "+e.c),t=new Error(t),e.error=t,T(e,"onerror",t),e}function I(e){return e.sawRoot&&!e.closedRoot&&P(e,"Unclosed root tag"),e.state!==S.BEGIN&&e.state!==S.BEGIN_WHITESPACE&&e.state!==S.TEXT&&R(e,"Unexpected end"),x(e),e.c="",e.closed=!0,T(e,"onend"),a.call(e,e.strict,e.opt),e}function P(e,t){if("object"!=typeof e||!(e instanceof a))throw new Error("bad call to strictFail");e.strict&&R(e,t)}function N(e){e.strict||(e.tagName=e.tagName[e.looseCase]());var t=e.tags[e.tags.length-1]||e,r=e.tag={name:e.tagName,attributes:{}};e.opt.xmlns&&(r.ns=t.ns),e.attribList.length=0,O(e,"onopentagstart",r)}function C(e,t){var r=e.indexOf(":")<0?["",e]:e.split(":"),n=r[0],i=r[1];return t&&"xmlns"===e&&(n="xmlns",i=""),{prefix:n,local:i}}function j(e){if(e.strict||(e.attribName=e.attribName[e.looseCase]()),-1!==e.attribList.indexOf(e.attribName)||e.tag.attributes.hasOwnProperty(e.attribName))e.attribName=e.attribValue="";else{if(e.opt.xmlns){var t=C(e.attribName,!0),r=t.prefix,n=t.local;if("xmlns"===r)if("xml"===n&&e.attribValue!==c)P(e,"xml: prefix must be bound to "+c+"\nActual: "+e.attribValue);else if("xmlns"===n&&"http://www.w3.org/2000/xmlns/"!==e.attribValue)P(e,"xmlns: prefix must be bound to http://www.w3.org/2000/xmlns/\nActual: "+e.attribValue);else{var i=e.tag,a=e.tags[e.tags.length-1]||e;i.ns===a.ns&&(i.ns=Object.create(a.ns)),i.ns[n]=e.attribValue}e.attribList.push([e.attribName,e.attribValue])}else e.tag.attributes[e.attribName]=e.attribValue,O(e,"onattribute",{name:e.attribName,value:e.attribValue});e.attribName=e.attribValue=""}}function D(e,t){if(e.opt.xmlns){var r=e.tag,n=C(e.tagName);r.prefix=n.prefix,r.local=n.local,r.uri=r.ns[n.prefix]||"",r.prefix&&!r.uri&&(P(e,"Unbound namespace prefix: "+JSON.stringify(e.tagName)),r.uri=n.prefix);var i=e.tags[e.tags.length-1]||e;r.ns&&i.ns!==r.ns&&Object.keys(r.ns).forEach((function(t){O(e,"onopennamespace",{prefix:t,uri:r.ns[t]})}));for(var a=0,s=e.attribList.length;a",e.tagName="",void(e.state=S.SCRIPT);O(e,"onscript",e.script),e.script=""}var t=e.tags.length,r=e.tagName;e.strict||(r=r[e.looseCase]());for(var n=r;t--;){if(e.tags[t].name===n)break;P(e,"Unexpected close tag")}if(t<0)return P(e,"Unmatched closing tag: "+e.tagName),e.textNode+="",void(e.state=S.TEXT);e.tagName=r;for(var i=e.tags.length;i-- >t;){var a=e.tag=e.tags.pop();e.tagName=e.tag.name,O(e,"onclosetag",e.tagName);var s={};for(var o in a.ns)s[o]=a.ns[o];var c=e.tags[e.tags.length-1]||e;e.opt.xmlns&&a.ns!==c.ns&&Object.keys(a.ns).forEach((function(t){var r=a.ns[t];O(e,"onclosenamespace",{prefix:t,uri:r})}))}0===t&&(e.closedRoot=!0),e.tagName=e.attribValue=e.attribName="",e.attribList.length=0,e.state=S.TEXT}function L(e){var t,r=e.entity,n=r.toLowerCase(),i="";return e.ENTITIES[r]?e.ENTITIES[r]:e.ENTITIES[n]?e.ENTITIES[n]:("#"===(r=n).charAt(0)&&("x"===r.charAt(1)?(r=r.slice(2),i=(t=parseInt(r,16)).toString(16)):(r=r.slice(1),i=(t=parseInt(r,10)).toString(10))),r=r.replace(/^0+/,""),isNaN(t)||i.toLowerCase()!==r?(P(e,"Invalid character entity"),"&"+e.entity+";"):String.fromCodePoint(t))}function M(e,t){"<"===t?(e.state=S.OPEN_WAKA,e.startTagPosition=e.position):f(t)||(P(e,"Non-whitespace before first tag."),e.textNode=t,e.state=S.TEXT)}function F(e,t){var r="";return t1114111||v(o)!==o)throw RangeError("Invalid code point: "+o);o<=65535?n.push(o):(e=55296+((o-=65536)>>10),t=o%1024+56320,n.push(e,t)),(i+1===a||n.length>r)&&(s+=_.apply(null,n),n.length=0)}return s},Object.defineProperty?Object.defineProperty(String,"fromCodePoint",{value:w,configurable:!0,writable:!0}):String.fromCodePoint=w)}(t)}).call(this,r(14).Buffer)},function(e,t,r){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.BlankNode=void 0;t.BlankNode=class{constructor(e){this.termType="BlankNode",this.value=e}equals(e){return!!e&&"BlankNode"===e.termType&&e.value===this.value}}},function(e,t,r){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.DefaultGraph=void 0;class n{constructor(){this.termType="DefaultGraph",this.value=""}equals(e){return!!e&&"DefaultGraph"===e.termType}}t.DefaultGraph=n,n.INSTANCE=new n},function(e,t,r){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.Literal=void 0;const n=r(61);class i{constructor(e,t){this.termType="Literal",this.value=e,"string"==typeof t?(this.language=t,this.datatype=i.RDF_LANGUAGE_STRING):t?(this.language="",this.datatype=t):(this.language="",this.datatype=i.XSD_STRING)}equals(e){return!!e&&"Literal"===e.termType&&e.value===this.value&&e.language===this.language&&e.datatype.equals(this.datatype)}}t.Literal=i,i.RDF_LANGUAGE_STRING=new n.NamedNode("http://www.w3.org/1999/02/22-rdf-syntax-ns#langString"),i.XSD_STRING=new n.NamedNode("http://www.w3.org/2001/XMLSchema#string")},function(e,t,r){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.Quad=void 0;t.Quad=class{constructor(e,t,r,n){this.termType="Quad",this.value="",this.subject=e,this.predicate=t,this.object=r,this.graph=n}equals(e){return!!e&&("Quad"===e.termType||!e.termType)&&this.subject.equals(e.subject)&&this.predicate.equals(e.predicate)&&this.object.equals(e.object)&&this.graph.equals(e.graph)}}},function(e,t,r){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.Variable=void 0;t.Variable=class{constructor(e){this.termType="Variable",this.value=e}equals(e){return!!e&&"Variable"===e.termType&&e.value===this.value}}},function(e,t,r){"use strict";var n=this&&this.__createBinding||(Object.create?function(e,t,r,n){void 0===n&&(n=r),Object.defineProperty(e,n,{enumerable:!0,get:function(){return t[r]}})}:function(e,t,r,n){void 0===n&&(n=r),e[n]=t[r]}),i=this&&this.__exportStar||function(e,t){for(var r in e)"default"===r||Object.prototype.hasOwnProperty.call(t,r)||n(t,e,r)};Object.defineProperty(t,"__esModule",{value:!0}),i(r(251),t)},function(e,t,r){"use strict";var n=this&&this.__createBinding||(Object.create?function(e,t,r,n){void 0===n&&(n=r),Object.defineProperty(e,n,{enumerable:!0,get:function(){return t[r]}})}:function(e,t,r,n){void 0===n&&(n=r),e[n]=t[r]}),i=this&&this.__exportStar||function(e,t){for(var r in e)"default"===r||Object.prototype.hasOwnProperty.call(t,r)||n(t,e,r)};Object.defineProperty(t,"__esModule",{value:!0}),i(r(252),t),i(r(253),t),i(r(254),t),i(r(255),t),i(r(65),t),i(r(115),t)},function(e,t,r){"use strict";function n(e){for(var r in e)t.hasOwnProperty(r)||(t[r]=e[r])}var i=this&&this.__importStar||function(e){if(e&&e.__esModule)return e;var t={};if(null!=e)for(var r in e)Object.hasOwnProperty.call(e,r)&&(t[r]=e[r]);return t.default=e,t};Object.defineProperty(t,"__esModule",{value:!0});var a=r(105);t.Parser=a.Parser;var s=r(109);t.DomHandler=s.DomHandler,t.DefaultHandler=s.DomHandler,t.parseDOM=function(e,t){var r=new s.DomHandler(void 0,t);return new a.Parser(r,t).end(e),r.dom},t.createDomStream=function(e,t,r){var n=new s.DomHandler(e,t,r);return new a.Parser(n,t)};var o=r(106);t.Tokenizer=o.default;var c=i(r(64));t.ElementType=c,t.EVENTS={attribute:2,cdatastart:0,cdataend:0,text:1,processinginstruction:2,comment:1,commentend:0,closetag:1,opentag:2,opentagname:1,error:1,end:0},n(r(110)),n(r(266)),n(r(267));var u=i(r(111));t.DomUtils=u;var l=r(110);t.RssHandler=l.FeedHandler},function(e,t,r){"use strict";var n,i=this&&this.__extends||(n=function(e,t){return(n=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(e,t){e.__proto__=t}||function(e,t){for(var r in t)t.hasOwnProperty(r)&&(e[r]=t[r])})(e,t)},function(e,t){function r(){this.constructor=e}n(e,t),e.prototype=null===t?Object.create(t):(r.prototype=t.prototype,new r)}),a=this&&this.__importDefault||function(e){return e&&e.__esModule?e:{default:e}};Object.defineProperty(t,"__esModule",{value:!0});var s=a(r(106)),o=r(43),c=new Set(["input","option","optgroup","select","button","datalist","textarea"]),u=new Set(["p"]),l={tr:new Set(["tr","th","td"]),th:new Set(["th"]),td:new Set(["thead","th","td"]),body:new Set(["head","link","script"]),li:new Set(["li"]),p:u,h1:u,h2:u,h3:u,h4:u,h5:u,h6:u,select:c,input:c,output:c,button:c,datalist:c,textarea:c,option:new Set(["option"]),optgroup:new Set(["optgroup","option"]),dd:new Set(["dt","dd"]),dt:new Set(["dt","dd"]),address:u,article:u,aside:u,blockquote:u,details:u,div:u,dl:u,fieldset:u,figcaption:u,figure:u,footer:u,form:u,header:u,hr:u,main:u,nav:u,ol:u,pre:u,section:u,table:u,ul:u,rt:new Set(["rt","rp"]),rp:new Set(["rt","rp"]),tbody:new Set(["thead","tbody"]),tfoot:new Set(["thead","tbody"])},d=new Set(["area","base","basefont","br","col","command","embed","frame","hr","img","input","isindex","keygen","link","meta","param","source","track","wbr"]),p=new Set(["math","svg"]),h=new Set(["mi","mo","mn","ms","mtext","annotation-xml","foreignObject","desc","title"]),f=/\s|\//,m=function(e){function t(r,n){var i=e.call(this)||this;return i._tagname="",i._attribname="",i._attribvalue="",i._attribs=null,i._stack=[],i._foreignContext=[],i.startIndex=0,i.endIndex=null,i.parseChunk=t.prototype.write,i.done=t.prototype.end,i._options=n||{},i._cbs=r||{},i._tagname="",i._attribname="",i._attribvalue="",i._attribs=null,i._stack=[],i._foreignContext=[],i.startIndex=0,i.endIndex=null,i._lowerCaseTagNames="lowerCaseTags"in i._options?!!i._options.lowerCaseTags:!i._options.xmlMode,i._lowerCaseAttributeNames="lowerCaseAttributeNames"in i._options?!!i._options.lowerCaseAttributeNames:!i._options.xmlMode,i._tokenizer=new(i._options.Tokenizer||s.default)(i._options,i),i._cbs.onparserinit&&i._cbs.onparserinit(i),i}return i(t,e),t.prototype._updatePosition=function(e){null===this.endIndex?this._tokenizer._sectionStart<=e?this.startIndex=0:this.startIndex=this._tokenizer._sectionStart-e:this.startIndex=this.endIndex+1,this.endIndex=this._tokenizer.getAbsoluteIndex()},t.prototype.ontext=function(e){this._updatePosition(1),this.endIndex--,this._cbs.ontext&&this._cbs.ontext(e)},t.prototype.onopentagname=function(e){if(this._lowerCaseTagNames&&(e=e.toLowerCase()),this._tagname=e,!this._options.xmlMode&&Object.prototype.hasOwnProperty.call(l,e))for(var t=void 0;l[e].has(t=this._stack[this._stack.length-1]);this.onclosetag(t));!this._options.xmlMode&&d.has(e)||(this._stack.push(e),p.has(e)?this._foreignContext.push(!0):h.has(e)&&this._foreignContext.push(!1)),this._cbs.onopentagname&&this._cbs.onopentagname(e),this._cbs.onopentag&&(this._attribs={})},t.prototype.onopentagend=function(){this._updatePosition(1),this._attribs&&(this._cbs.onopentag&&this._cbs.onopentag(this._tagname,this._attribs),this._attribs=null),!this._options.xmlMode&&this._cbs.onclosetag&&d.has(this._tagname)&&this._cbs.onclosetag(this._tagname),this._tagname=""},t.prototype.onclosetag=function(e){if(this._updatePosition(1),this._lowerCaseTagNames&&(e=e.toLowerCase()),(p.has(e)||h.has(e))&&this._foreignContext.pop(),!this._stack.length||!this._options.xmlMode&&d.has(e))this._options.xmlMode||"br"!==e&&"p"!==e||(this.onopentagname(e),this._closeCurrentTag());else{var t=this._stack.lastIndexOf(e);if(-1!==t)if(this._cbs.onclosetag)for(t=this._stack.length-t;t--;)this._cbs.onclosetag(this._stack.pop());else this._stack.length=t;else"p"!==e||this._options.xmlMode||(this.onopentagname(e),this._closeCurrentTag())}},t.prototype.onselfclosingtag=function(){this._options.xmlMode||this._options.recognizeSelfClosing||this._foreignContext[this._foreignContext.length-1]?this._closeCurrentTag():this.onopentagend()},t.prototype._closeCurrentTag=function(){var e=this._tagname;this.onopentagend(),this._stack[this._stack.length-1]===e&&(this._cbs.onclosetag&&this._cbs.onclosetag(e),this._stack.pop())},t.prototype.onattribname=function(e){this._lowerCaseAttributeNames&&(e=e.toLowerCase()),this._attribname=e},t.prototype.onattribdata=function(e){this._attribvalue+=e},t.prototype.onattribend=function(){this._cbs.onattribute&&this._cbs.onattribute(this._attribname,this._attribvalue),this._attribs&&!Object.prototype.hasOwnProperty.call(this._attribs,this._attribname)&&(this._attribs[this._attribname]=this._attribvalue),this._attribname="",this._attribvalue=""},t.prototype._getInstructionName=function(e){var t=e.search(f),r=t<0?e:e.substr(0,t);return this._lowerCaseTagNames&&(r=r.toLowerCase()),r},t.prototype.ondeclaration=function(e){if(this._cbs.onprocessinginstruction){var t=this._getInstructionName(e);this._cbs.onprocessinginstruction("!"+t,"!"+e)}},t.prototype.onprocessinginstruction=function(e){if(this._cbs.onprocessinginstruction){var t=this._getInstructionName(e);this._cbs.onprocessinginstruction("?"+t,"?"+e)}},t.prototype.oncomment=function(e){this._updatePosition(4),this._cbs.oncomment&&this._cbs.oncomment(e),this._cbs.oncommentend&&this._cbs.oncommentend()},t.prototype.oncdata=function(e){this._updatePosition(1),this._options.xmlMode||this._options.recognizeCDATA?(this._cbs.oncdatastart&&this._cbs.oncdatastart(),this._cbs.ontext&&this._cbs.ontext(e),this._cbs.oncdataend&&this._cbs.oncdataend()):this.oncomment("[CDATA["+e+"]]")},t.prototype.onerror=function(e){this._cbs.onerror&&this._cbs.onerror(e)},t.prototype.onend=function(){if(this._cbs.onclosetag)for(var e=this._stack.length;e>0;this._cbs.onclosetag(this._stack[--e]));this._cbs.onend&&this._cbs.onend()},t.prototype.reset=function(){this._cbs.onreset&&this._cbs.onreset(),this._tokenizer.reset(),this._tagname="",this._attribname="",this._attribs=null,this._stack=[],this._cbs.onparserinit&&this._cbs.onparserinit(this)},t.prototype.parseComplete=function(e){this.reset(),this.end(e)},t.prototype.write=function(e){this._tokenizer.write(e)},t.prototype.end=function(e){this._tokenizer.end(e)},t.prototype.pause=function(){this._tokenizer.pause()},t.prototype.resume=function(){this._tokenizer.resume()},t}(o.EventEmitter);t.Parser=m},function(e,t,r){"use strict";var n=this&&this.__importDefault||function(e){return e&&e.__esModule?e:{default:e}};Object.defineProperty(t,"__esModule",{value:!0});var i=n(r(107)),a=n(r(62)),s=n(r(108)),o=n(r(63));function c(e){return" "===e||"\n"===e||"\t"===e||"\f"===e||"\r"===e}function u(e,t,r){var n=e.toLowerCase();return e===n?function(e,i){i===n?e._state=t:(e._state=r,e._index--)}:function(i,a){a===n||a===e?i._state=t:(i._state=r,i._index--)}}function l(e,t){var r=e.toLowerCase();return function(n,i){i===r||i===e?n._state=t:(n._state=3,n._index--)}}var d=u("C",23,16),p=u("D",24,16),h=u("A",25,16),f=u("T",26,16),m=u("A",27,16),g=l("R",34),y=l("I",35),b=l("P",36),_=l("T",37),v=u("R",39,1),w=u("I",40,1),S=u("P",41,1),E=u("T",42,1),T=l("Y",44),O=l("L",45),x=l("E",46),A=u("Y",48,1),R=u("L",49,1),I=u("E",50,1),P=u("#",52,53),N=u("X",55,54),C=function(){function e(e,t){this._state=1,this._buffer="",this._sectionStart=0,this._index=0,this._bufferOffset=0,this._baseState=1,this._special=1,this._running=!0,this._ended=!1,this._cbs=t,this._xmlMode=!(!e||!e.xmlMode),this._decodeEntities=!(!e||!e.decodeEntities)}return e.prototype.reset=function(){this._state=1,this._buffer="",this._sectionStart=0,this._index=0,this._bufferOffset=0,this._baseState=1,this._special=1,this._running=!0,this._ended=!1},e.prototype._stateText=function(e){"<"===e?(this._index>this._sectionStart&&this._cbs.ontext(this._getSection()),this._state=2,this._sectionStart=this._index):this._decodeEntities&&1===this._special&&"&"===e&&(this._index>this._sectionStart&&this._cbs.ontext(this._getSection()),this._baseState=1,this._state=51,this._sectionStart=this._index)},e.prototype._stateBeforeTagName=function(e){"/"===e?this._state=5:"<"===e?(this._cbs.ontext(this._getSection()),this._sectionStart=this._index):">"===e||1!==this._special||c(e)?this._state=1:"!"===e?(this._state=15,this._sectionStart=this._index+1):"?"===e?(this._state=17,this._sectionStart=this._index+1):(this._state=this._xmlMode||"s"!==e&&"S"!==e?3:31,this._sectionStart=this._index)},e.prototype._stateInTagName=function(e){("/"===e||">"===e||c(e))&&(this._emitToken("onopentagname"),this._state=8,this._index--)},e.prototype._stateBeforeClosingTagName=function(e){c(e)||(">"===e?this._state=1:1!==this._special?"s"===e||"S"===e?this._state=32:(this._state=1,this._index--):(this._state=6,this._sectionStart=this._index))},e.prototype._stateInClosingTagName=function(e){(">"===e||c(e))&&(this._emitToken("onclosetag"),this._state=7,this._index--)},e.prototype._stateAfterClosingTagName=function(e){">"===e&&(this._state=1,this._sectionStart=this._index+1)},e.prototype._stateBeforeAttributeName=function(e){">"===e?(this._cbs.onopentagend(),this._state=1,this._sectionStart=this._index+1):"/"===e?this._state=4:c(e)||(this._state=9,this._sectionStart=this._index)},e.prototype._stateInSelfClosingTag=function(e){">"===e?(this._cbs.onselfclosingtag(),this._state=1,this._sectionStart=this._index+1):c(e)||(this._state=8,this._index--)},e.prototype._stateInAttributeName=function(e){("="===e||"/"===e||">"===e||c(e))&&(this._cbs.onattribname(this._getSection()),this._sectionStart=-1,this._state=10,this._index--)},e.prototype._stateAfterAttributeName=function(e){"="===e?this._state=11:"/"===e||">"===e?(this._cbs.onattribend(),this._state=8,this._index--):c(e)||(this._cbs.onattribend(),this._state=9,this._sectionStart=this._index)},e.prototype._stateBeforeAttributeValue=function(e){'"'===e?(this._state=12,this._sectionStart=this._index+1):"'"===e?(this._state=13,this._sectionStart=this._index+1):c(e)||(this._state=14,this._sectionStart=this._index,this._index--)},e.prototype._stateInAttributeValueDoubleQuotes=function(e){'"'===e?(this._emitToken("onattribdata"),this._cbs.onattribend(),this._state=8):this._decodeEntities&&"&"===e&&(this._emitToken("onattribdata"),this._baseState=this._state,this._state=51,this._sectionStart=this._index)},e.prototype._stateInAttributeValueSingleQuotes=function(e){"'"===e?(this._emitToken("onattribdata"),this._cbs.onattribend(),this._state=8):this._decodeEntities&&"&"===e&&(this._emitToken("onattribdata"),this._baseState=this._state,this._state=51,this._sectionStart=this._index)},e.prototype._stateInAttributeValueNoQuotes=function(e){c(e)||">"===e?(this._emitToken("onattribdata"),this._cbs.onattribend(),this._state=8,this._index--):this._decodeEntities&&"&"===e&&(this._emitToken("onattribdata"),this._baseState=this._state,this._state=51,this._sectionStart=this._index)},e.prototype._stateBeforeDeclaration=function(e){this._state="["===e?22:"-"===e?18:16},e.prototype._stateInDeclaration=function(e){">"===e&&(this._cbs.ondeclaration(this._getSection()),this._state=1,this._sectionStart=this._index+1)},e.prototype._stateInProcessingInstruction=function(e){">"===e&&(this._cbs.onprocessinginstruction(this._getSection()),this._state=1,this._sectionStart=this._index+1)},e.prototype._stateBeforeComment=function(e){"-"===e?(this._state=19,this._sectionStart=this._index+1):this._state=16},e.prototype._stateInComment=function(e){"-"===e&&(this._state=20)},e.prototype._stateAfterComment1=function(e){this._state="-"===e?21:19},e.prototype._stateAfterComment2=function(e){">"===e?(this._cbs.oncomment(this._buffer.substring(this._sectionStart,this._index-2)),this._state=1,this._sectionStart=this._index+1):"-"!==e&&(this._state=19)},e.prototype._stateBeforeCdata6=function(e){"["===e?(this._state=28,this._sectionStart=this._index+1):(this._state=16,this._index--)},e.prototype._stateInCdata=function(e){"]"===e&&(this._state=29)},e.prototype._stateAfterCdata1=function(e){this._state="]"===e?30:28},e.prototype._stateAfterCdata2=function(e){">"===e?(this._cbs.oncdata(this._buffer.substring(this._sectionStart,this._index-2)),this._state=1,this._sectionStart=this._index+1):"]"!==e&&(this._state=28)},e.prototype._stateBeforeSpecial=function(e){"c"===e||"C"===e?this._state=33:"t"===e||"T"===e?this._state=43:(this._state=3,this._index--)},e.prototype._stateBeforeSpecialEnd=function(e){2!==this._special||"c"!==e&&"C"!==e?3!==this._special||"t"!==e&&"T"!==e?this._state=1:this._state=47:this._state=38},e.prototype._stateBeforeScript5=function(e){("/"===e||">"===e||c(e))&&(this._special=2),this._state=3,this._index--},e.prototype._stateAfterScript5=function(e){">"===e||c(e)?(this._special=1,this._state=6,this._sectionStart=this._index-6,this._index--):this._state=1},e.prototype._stateBeforeStyle4=function(e){("/"===e||">"===e||c(e))&&(this._special=3),this._state=3,this._index--},e.prototype._stateAfterStyle4=function(e){">"===e||c(e)?(this._special=1,this._state=6,this._sectionStart=this._index-5,this._index--):this._state=1},e.prototype._parseNamedEntityStrict=function(){if(this._sectionStart+16&&(t=6);t>=2;){var r=this._buffer.substr(e,t);if(Object.prototype.hasOwnProperty.call(s.default,r))return this._emitPartial(s.default[r]),void(this._sectionStart+=t+1);t--}},e.prototype._stateInNamedEntity=function(e){";"===e?(this._parseNamedEntityStrict(),this._sectionStart+1"z")&&(e<"A"||e>"Z")&&(e<"0"||e>"9")&&(this._xmlMode||this._sectionStart+1===this._index||(1!==this._baseState?"="!==e&&this._parseNamedEntityStrict():this._parseLegacyEntity()),this._state=this._baseState,this._index--)},e.prototype._decodeNumericEntity=function(e,t){var r=this._sectionStart+e;if(r!==this._index){var n=this._buffer.substring(r,this._index),a=parseInt(n,t);this._emitPartial(i.default(a)),this._sectionStart=this._index}else this._sectionStart--;this._state=this._baseState},e.prototype._stateInNumericEntity=function(e){";"===e?(this._decodeNumericEntity(2,10),this._sectionStart++):(e<"0"||e>"9")&&(this._xmlMode?this._state=this._baseState:this._decodeNumericEntity(2,10),this._index--)},e.prototype._stateInHexEntity=function(e){";"===e?(this._decodeNumericEntity(3,16),this._sectionStart++):(e<"a"||e>"f")&&(e<"A"||e>"F")&&(e<"0"||e>"9")&&(this._xmlMode?this._state=this._baseState:this._decodeNumericEntity(3,16),this._index--)},e.prototype._cleanup=function(){this._sectionStart<0?(this._buffer="",this._bufferOffset+=this._index,this._index=0):this._running&&(1===this._state?(this._sectionStart!==this._index&&this._cbs.ontext(this._buffer.substr(this._sectionStart)),this._buffer="",this._bufferOffset+=this._index,this._index=0):this._sectionStart===this._index?(this._buffer="",this._bufferOffset+=this._index,this._index=0):(this._buffer=this._buffer.substr(this._sectionStart),this._index-=this._sectionStart,this._bufferOffset+=this._sectionStart),this._sectionStart=0)},e.prototype.write=function(e){this._ended&&this._cbs.onerror(Error(".write() after done!")),this._buffer+=e,this._parse()},e.prototype._parse=function(){for(;this._index=55296&&e<=57343||e>1114111)return"�";e in i.default&&(e=i.default[e]);var t="";return e>65535&&(e-=65536,t+=String.fromCharCode(e>>>10&1023|55296),e=56320|1023&e),t+=String.fromCharCode(e)}},function(e){e.exports=JSON.parse('{"Aacute":"Á","aacute":"á","Acirc":"Â","acirc":"â","acute":"´","AElig":"Æ","aelig":"æ","Agrave":"À","agrave":"à","amp":"&","AMP":"&","Aring":"Å","aring":"å","Atilde":"Ã","atilde":"ã","Auml":"Ä","auml":"ä","brvbar":"¦","Ccedil":"Ç","ccedil":"ç","cedil":"¸","cent":"¢","copy":"©","COPY":"©","curren":"¤","deg":"°","divide":"÷","Eacute":"É","eacute":"é","Ecirc":"Ê","ecirc":"ê","Egrave":"È","egrave":"è","ETH":"Ð","eth":"ð","Euml":"Ë","euml":"ë","frac12":"½","frac14":"¼","frac34":"¾","gt":">","GT":">","Iacute":"Í","iacute":"í","Icirc":"Î","icirc":"î","iexcl":"¡","Igrave":"Ì","igrave":"ì","iquest":"¿","Iuml":"Ï","iuml":"ï","laquo":"«","lt":"<","LT":"<","macr":"¯","micro":"µ","middot":"·","nbsp":" ","not":"¬","Ntilde":"Ñ","ntilde":"ñ","Oacute":"Ó","oacute":"ó","Ocirc":"Ô","ocirc":"ô","Ograve":"Ò","ograve":"ò","ordf":"ª","ordm":"º","Oslash":"Ø","oslash":"ø","Otilde":"Õ","otilde":"õ","Ouml":"Ö","ouml":"ö","para":"¶","plusmn":"±","pound":"£","quot":"\\"","QUOT":"\\"","raquo":"»","reg":"®","REG":"®","sect":"§","shy":"­","sup1":"¹","sup2":"²","sup3":"³","szlig":"ß","THORN":"Þ","thorn":"þ","times":"×","Uacute":"Ú","uacute":"ú","Ucirc":"Û","ucirc":"û","Ugrave":"Ù","ugrave":"ù","uml":"¨","Uuml":"Ü","uuml":"ü","Yacute":"Ý","yacute":"ý","yen":"¥","yuml":"ÿ"}')},function(e,t,r){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.DomHandler=t.Element=t.DataNode=t.NodeWithChildren=t.Node=void 0;var n=r(257);Object.defineProperty(t,"Node",{enumerable:!0,get:function(){return n.Node}}),Object.defineProperty(t,"Element",{enumerable:!0,get:function(){return n.Element}}),Object.defineProperty(t,"DataNode",{enumerable:!0,get:function(){return n.DataNode}}),Object.defineProperty(t,"NodeWithChildren",{enumerable:!0,get:function(){return n.NodeWithChildren}});var i=/\s+/g,a={normalizeWhitespace:!1,withStartIndices:!1,withEndIndices:!1},s=function(){function e(e,t,r){this.dom=[],this._done=!1,this._tagStack=[],this._lastNode=null,this._parser=null,"function"==typeof t&&(r=t,t=a),"object"==typeof e&&(t=e,e=void 0),this._callback=null!=e?e:null,this._options=null!=t?t:a,this._elementCB=null!=r?r:null}return e.prototype.onparserinit=function(e){this._parser=e},e.prototype.onreset=function(){var e;this.dom=[],this._done=!1,this._tagStack=[],this._lastNode=null,this._parser=null!==(e=this._parser)&&void 0!==e?e:null},e.prototype.onend=function(){this._done||(this._done=!0,this._parser=null,this.handleCallback(null))},e.prototype.onerror=function(e){this.handleCallback(e)},e.prototype.onclosetag=function(){this._lastNode=null;var e=this._tagStack.pop();e&&this._parser&&(this._options.withEndIndices&&(e.endIndex=this._parser.endIndex),this._elementCB&&this._elementCB(e))},e.prototype.onopentag=function(e,t){var r=new n.Element(e,t);this.addNode(r),this._tagStack.push(r)},e.prototype.ontext=function(e){var t=this._options.normalizeWhitespace,r=this._lastNode;if(r&&"text"===r.type)t?r.data=(r.data+e).replace(i," "):r.data+=e;else{t&&(e=e.replace(i," "));var a=new n.Text(e);this.addNode(a),this._lastNode=a}},e.prototype.oncomment=function(e){if(this._lastNode&&"comment"===this._lastNode.type)this._lastNode.data+=e;else{var t=new n.Comment(e);this.addNode(t),this._lastNode=t}},e.prototype.oncommentend=function(){this._lastNode=null},e.prototype.oncdatastart=function(){var e=new n.DataNode("text",""),t=new n.NodeWithChildren("cdata",[e]);this.addNode(t),e.parent=t,this._lastNode=e},e.prototype.oncdataend=function(){this._lastNode=null},e.prototype.onprocessinginstruction=function(e,t){var r=new n.ProcessingInstruction(e,t);this.addNode(r)},e.prototype.handleCallback=function(e){if("function"==typeof this._callback)this._callback(e,this.dom);else if(e)throw e},e.prototype.addNode=function(e){var t=this._tagStack[this._tagStack.length-1],r=t?t.children:this.dom,n=r[r.length-1];this._parser&&(this._options.withStartIndices&&(e.startIndex=this._parser.startIndex),this._options.withEndIndices&&(e.endIndex=this._parser.endIndex)),r.push(e),n&&(e.prev=n,n.next=e),t&&(e.parent=t),this._lastNode=null},e.prototype.addDataNode=function(e){this.addNode(e),this._lastNode=e},e}();t.DomHandler=s,t.default=s},function(e,t,r){"use strict";var n,i=this&&this.__extends||(n=function(e,t){return(n=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(e,t){e.__proto__=t}||function(e,t){for(var r in t)t.hasOwnProperty(r)&&(e[r]=t[r])})(e,t)},function(e,t){function r(){this.constructor=e}n(e,t),e.prototype=null===t?Object.create(t):(r.prototype=t.prototype,new r)}),a=this&&this.__importDefault||function(e){return e&&e.__esModule?e:{default:e}},s=this&&this.__importStar||function(e){if(e&&e.__esModule)return e;var t={};if(null!=e)for(var r in e)Object.hasOwnProperty.call(e,r)&&(t[r]=e[r]);return t.default=e,t};Object.defineProperty(t,"__esModule",{value:!0});var o=a(r(109)),c=s(r(111)),u=r(105),l=function(e){function t(t,r){return"object"==typeof t&&null!==t&&(r=t=void 0),e.call(this,t,r)||this}return i(t,e),t.prototype.onend=function(){var e={},t=p(g,this.dom);if(t)if("feed"===t.name){var r=t.children;e.type="atom",m(e,"id","id",r),m(e,"title","title",r);var n=f("href",p("link",r));n&&(e.link=n),m(e,"description","subtitle",r),(i=h("updated",r))&&(e.updated=new Date(i)),m(e,"author","email",r,!0),e.items=d("entry",r).map((function(e){var t={},r=e.children;m(t,"id","id",r),m(t,"title","title",r);var n=f("href",p("link",r));n&&(t.link=n);var i=h("summary",r)||h("content",r);i&&(t.description=i);var a=h("updated",r);return a&&(t.pubDate=new Date(a)),t}))}else{var i;r=p("channel",t.children).children;e.type=t.name.substr(0,3),e.id="",m(e,"title","title",r),m(e,"link","link",r),m(e,"description","description",r),(i=h("lastBuildDate",r))&&(e.updated=new Date(i)),m(e,"author","managingEditor",r,!0),e.items=d("item",t.children).map((function(e){var t={},r=e.children;m(t,"id","guid",r),m(t,"title","title",r),m(t,"link","link",r),m(t,"description","description",r);var n=h("pubDate",r);return n&&(t.pubDate=new Date(n)),t}))}this.feed=e,this.handleCallback(t?null:Error("couldn't find root of feed"))},t}(o.default);function d(e,t){return c.getElementsByTagName(e,t,!0)}function p(e,t){return c.getElementsByTagName(e,t,!0,1)[0]}function h(e,t,r){return void 0===r&&(r=!1),c.getText(c.getElementsByTagName(e,t,r,1)).trim()}function f(e,t){return t?t.attribs[e]:null}function m(e,t,r,n,i){void 0===i&&(i=!1);var a=h(r,n,i);a&&(e[t]=a)}function g(e){return"rss"===e||"feed"===e||"rdf:RDF"===e}t.FeedHandler=l;var y={xmlMode:!0};t.parseFeed=function(e,t){void 0===t&&(t=y);var r=new l(t);return new u.Parser(r,t).end(e),r.feed}},function(e,t,r){"use strict";var n=this&&this.__createBinding||(Object.create?function(e,t,r,n){void 0===n&&(n=r),Object.defineProperty(e,n,{enumerable:!0,get:function(){return t[r]}})}:function(e,t,r,n){void 0===n&&(n=r),e[n]=t[r]}),i=this&&this.__exportStar||function(e,t){for(var r in e)"default"===r||Object.prototype.hasOwnProperty.call(t,r)||n(t,e,r)};Object.defineProperty(t,"__esModule",{value:!0}),i(r(258),t),i(r(262),t),i(r(263),t),i(r(114),t),i(r(264),t),i(r(265),t),i(r(35),t)},function(e,t,r){"use strict";var n=this&&this.__importDefault||function(e){return e&&e.__esModule?e:{default:e}};Object.defineProperty(t,"__esModule",{value:!0}),t.decodeHTML=t.decodeHTMLStrict=t.decodeXML=void 0;var i=n(r(62)),a=n(r(108)),s=n(r(63)),o=n(r(107));function c(e){var t=Object.keys(e).join("|"),r=l(e),n=new RegExp("&(?:"+(t+="|#[xX][\\da-fA-F]+|#\\d+")+");","g");return function(e){return String(e).replace(n,r)}}t.decodeXML=c(s.default),t.decodeHTMLStrict=c(i.default);var u=function(e,t){return e0){var l=i(e,u.children,r,a);if(s.push.apply(s,l),(a-=l.length)<=0)break}}return s}t.filter=function(e,t,r,n){return void 0===r&&(r=!0),void 0===n&&(n=1/0),Array.isArray(t)||(t=[t]),i(e,t,r,n)},t.find=i,t.findOneChild=function(e,t){return t.find(e)},t.findOne=function e(t,r,i){void 0===i&&(i=!0);for(var a=null,s=0;s0&&(a=e(t,o.children)))}return a},t.existsOne=function e(t,r){return r.some((function(r){return n.isTag(r)&&(t(r)||r.children.length>0&&e(t,r.children))}))},t.findAll=function(e,t){for(var r,i,a=[],s=t.filter(n.isTag);i=s.shift();){var o=null===(r=i.children)||void 0===r?void 0:r.filter(n.isTag);o&&o.length>0&&s.unshift.apply(s,o),e(i)&&a.push(i)}return a}},function(e,t,r){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.Util=void 0;const n=r(21),i=r(65),a=r(6);class s{constructor(e,t){this.dataFactory=e||new a.DataFactory,this.baseIRI=this.dataFactory.namedNode(t||""),this.baseIRIDocument=this.baseIRI}static parsePrefixes(e,t,r){const n={};if(r)for(const t in e)t.startsWith("xmlns")&&(n[t.substr(6)]=e[t]);if(e.prefix||Object.keys(n).length>0){const r=Object.assign(Object.assign({},t),n);if(e.prefix){let t;for(;t=s.PREFIX_REGEX.exec(e.prefix);)r[t[1]]=t[2]}return r}return t}static expandPrefixedTerm(e,t){const r=e.indexOf(":");let n,i;if(r>=0&&(n=e.substr(0,r),i=e.substr(r+1)),""===n)return"http://www.w3.org/1999/xhtml/vocab#"+i;if(n){const e=t.prefixesAll[n];if(e)return e+i}if(e){const r=t.prefixesAll[e.toLocaleLowerCase()];if(r)return r}return e}static isValidIri(e){return s.IRI_REGEX.test(e)}static contentTypeToProfile(e){return i.RDFA_CONTENTTYPES[e]||""}getBaseIRI(e){let t=e;const r=t.indexOf("#");return r>=0&&(t=t.substr(0,r)),this.dataFactory.namedNode(n.resolve(t,this.baseIRI.value))}getResourceOrBaseIri(e,t){return!0===e?this.getBaseIriTerm(t):e}getBaseIriTerm(e){return e.localBaseIRI||this.baseIRI}createVocabIris(e,t,r,n){return e.split(/\s+/).filter(e=>e&&(r||e.indexOf(":")>=0)).map(e=>this.createIri(e,t,!0,!0,n)).filter(e=>null!=e)}createLiteral(e,t){if(t.interpretObjectAsTime&&!t.datatype)for(const r of s.TIME_REGEXES)if(e.match(r.regex)){t.datatype=this.dataFactory.namedNode(s.XSD+r.type);break}return this.dataFactory.literal(e,t.datatype||t.language)}createBlankNode(){return this.blankNodeFactory?this.blankNodeFactory():this.dataFactory.blankNode()}createIri(e,t,r,i,a){if(e=e||"",!i)return r||(e=n.resolve(e,this.getBaseIriTerm(t).value)),s.isValidIri(e)?this.dataFactory.namedNode(e):null;if(e.length>0&&"["===e[0]&&"]"===e[e.length-1]&&(e=e.substr(1,e.length-2)).indexOf(":")<0)return null;if(e.startsWith("_:"))return a?this.dataFactory.blankNode(e.substr(2)||"b_identity"):null;if(r&&t.vocab&&e.indexOf(":")<0)return this.dataFactory.namedNode(t.vocab+e);let o=s.expandPrefixedTerm(e,t);return r?e!==o&&(o=n.resolve(o,this.baseIRIDocument.value)):o=n.resolve(o,this.getBaseIriTerm(t).value),s.isValidIri(o)?this.dataFactory.namedNode(o):null}}t.Util=s,s.RDF="http://www.w3.org/1999/02/22-rdf-syntax-ns#",s.XSD="http://www.w3.org/2001/XMLSchema#",s.RDFA="http://www.w3.org/ns/rdfa#",s.PREFIX_REGEX=/\s*([^:\s]*)*:\s*([^\s]*)*\s*/g,s.TIME_REGEXES=[{regex:/^-?P([0-9]+Y)?([0-9]+M)?([0-9]+D)?(T([0-9]+H)?([0-9]+M)?([0-9]+(\.[0-9])?S)?)?$/,type:"duration"},{regex:/^[0-9]+-[0-9][0-9]-[0-9][0-9]T[0-9][0-9]:[0-9][0-9]:[0-9][0-9]((Z?)|([\+-][0-9][0-9]:[0-9][0-9]))$/,type:"dateTime"},{regex:/^[0-9]+-[0-9][0-9]-[0-9][0-9]Z?$/,type:"date"},{regex:/^[0-9][0-9]:[0-9][0-9]:[0-9][0-9]((Z?)|([\+-][0-9][0-9]:[0-9][0-9]))$/,type:"time"},{regex:/^[0-9]+-[0-9][0-9]$/,type:"gYearMonth"},{regex:/^[0-9]+$/,type:"gYear"}],s.IRI_REGEX=/^([A-Za-z][A-Za-z0-9+-.]*|_):[^ "<>{}|\\\[\]`]*$/},function(e,t,r){"use strict";(function(t){r(2);const n=r(278),i=r(279);e.exports=r(117),e.exports.toNodeReadable=function(t){if(t instanceof e.exports.ReadableStream||t&&"function"==typeof t.getReader)return i.readable.webToNode(t);throw new TypeError("Expected a ReadableStream.")},e.exports.toWebReadableStream=function(e){if(n(e)&&e.readable)return i.readable.nodeToWeb(e);if(Array.isArray(e))return i.readable.arrayToWeb(e);if(t.isBuffer(e)||"string"==typeof e)return i.readable.arrayToWeb([e]);throw new TypeError("Expected a Node streams.Readable, an Array, Buffer or String.")}}).call(this,r(14).Buffer)},function(e,t,r){(function(t){e.exports=function e(t,r,n){function i(s,o){if(!r[s]){if(!t[s]){if(a)return a(s,!0);var c=new Error("Cannot find module '"+s+"'");throw c.code="MODULE_NOT_FOUND",c}var u=r[s]={exports:{}};t[s][0].call(u.exports,(function(e){var r=t[s][1][e];return i(r||e)}),u,u.exports,e,t,r,n)}return r[s].exports}for(var a=!1,s=0;s=0;o--)if(c[o]!==u[o])return!1;for(o=c.length-1;o>=0;o--)if(s=c[o],!p(e[s],t[s],r,n))return!1;return!0}(e,t,r,o))}return r?e===t:e==t}function h(e){return"[object Arguments]"==Object.prototype.toString.call(e)}function f(e,t){if(!e||!t)return!1;if("[object RegExp]"==Object.prototype.toString.call(t))return t.test(e);try{if(e instanceof t)return!0}catch(e){}return!Error.isPrototypeOf(t)&&!0===t.call({},e)}function m(e,t,r,n){var i;if("function"!=typeof t)throw new TypeError('"block" argument must be a function');"string"==typeof r&&(n=r,r=null),i=function(e){var t;try{e()}catch(e){t=e}return t}(t),n=(r&&r.name?" ("+r.name+").":".")+(n?" "+n:"."),e&&!i&&l(i,r,"Missing expected exception"+n);var a="string"==typeof n,s=!e&&i&&!r;if((!e&&g.isError(i)&&a&&f(i,r)||s)&&l(i,r,"Got unwanted exception"+n),e&&i&&r&&!f(i,r)||!e&&i)throw i}var g=e("util/"),y=Object.prototype.hasOwnProperty,b=Array.prototype.slice,_="foo"===function(){}.name,v=r.exports=d,w=/\s*function\s+([^\(\s]*)\s*/;v.AssertionError=function(e){this.name="AssertionError",this.actual=e.actual,this.expected=e.expected,this.operator=e.operator,e.message?(this.message=e.message,this.generatedMessage=!1):(this.message=function(e){return c(u(e.actual),128)+" "+e.operator+" "+c(u(e.expected),128)}(this),this.generatedMessage=!0);var t=e.stackStartFunction||l;if(Error.captureStackTrace)Error.captureStackTrace(this,t);else{var r=new Error;if(r.stack){var n=r.stack,i=o(t),a=n.indexOf("\n"+i);if(a>=0){var s=n.indexOf("\n",a+1);n=n.substring(s+1)}this.stack=n}}},g.inherits(v.AssertionError,Error),v.fail=l,v.ok=d,v.equal=function(e,t,r){e!=t&&l(e,t,r,"==",v.equal)},v.notEqual=function(e,t,r){e==t&&l(e,t,r,"!=",v.notEqual)},v.deepEqual=function(e,t,r){p(e,t,!1)||l(e,t,r,"deepEqual",v.deepEqual)},v.deepStrictEqual=function(e,t,r){p(e,t,!0)||l(e,t,r,"deepStrictEqual",v.deepStrictEqual)},v.notDeepEqual=function(e,t,r){p(e,t,!1)&&l(e,t,r,"notDeepEqual",v.notDeepEqual)},v.notDeepStrictEqual=function e(t,r,n){p(t,r,!0)&&l(t,r,n,"notDeepStrictEqual",e)},v.strictEqual=function(e,t,r){e!==t&&l(e,t,r,"===",v.strictEqual)},v.notStrictEqual=function(e,t,r){e===t&&l(e,t,r,"!==",v.notStrictEqual)},v.throws=function(e,t,r){m(!0,e,t,r)},v.doesNotThrow=function(e,t,r){m(!1,e,t,r)},v.ifError=function(e){if(e)throw e};var S=Object.keys||function(e){var t=[];for(var r in e)y.call(e,r)&&t.push(r);return t}}).call(this,void 0!==t?t:"undefined"!=typeof self?self:"undefined"!=typeof window?window:{})},{"util/":7}],3:[function(e,t,r){},{}],4:[function(e,t,r){function n(){throw new Error("setTimeout has not been defined")}function i(){throw new Error("clearTimeout has not been defined")}function a(e){if(l===setTimeout)return setTimeout(e,0);if((l===n||!l)&&setTimeout)return l=setTimeout,setTimeout(e,0);try{return l(e,0)}catch(t){try{return l.call(null,e,0)}catch(t){return l.call(this,e,0)}}}function s(){m&&h&&(m=!1,h.length?f=h.concat(f):g=-1,f.length&&o())}function o(){if(!m){var e=a(s);m=!0;for(var t=f.length;t;){for(h=f,f=[];++g1)for(var r=1;r=3&&(r.depth=arguments[2]),arguments.length>=4&&(r.colors=arguments[3]),d(t)?r.showHidden=t:t&&n._extend(r,t),m(r.showHidden)&&(r.showHidden=!1),m(r.depth)&&(r.depth=2),m(r.colors)&&(r.colors=!1),m(r.customInspect)&&(r.customInspect=!0),r.colors&&(r.stylize=a),o(r,e,r.depth)}function a(e,t){var r=i.styles[t];return r?"["+i.colors[r][0]+"m"+e+"["+i.colors[r][1]+"m":e}function s(e,t){return e}function o(e,t,r){if(e.customInspect&&t&&v(t.inspect)&&t.inspect!==n.inspect&&(!t.constructor||t.constructor.prototype!==t)){var i=t.inspect(r,e);return f(i)||(i=o(e,i,r)),i}var a=function(e,t){if(m(t))return e.stylize("undefined","undefined");if(f(t)){var r="'"+JSON.stringify(t).replace(/^"|"$/g,"").replace(/'/g,"\\'").replace(/\\"/g,'"')+"'";return e.stylize(r,"string")}return h(t)?e.stylize(""+t,"number"):d(t)?e.stylize(""+t,"boolean"):p(t)?e.stylize("null","null"):void 0}(e,t);if(a)return a;var s=Object.keys(t),y=function(e){var t={};return e.forEach((function(e,r){t[e]=!0})),t}(s);if(e.showHidden&&(s=Object.getOwnPropertyNames(t)),_(t)&&(s.indexOf("message")>=0||s.indexOf("description")>=0))return c(t);if(0===s.length){if(v(t)){var w=t.name?": "+t.name:"";return e.stylize("[Function"+w+"]","special")}if(g(t))return e.stylize(RegExp.prototype.toString.call(t),"regexp");if(b(t))return e.stylize(Date.prototype.toString.call(t),"date");if(_(t))return c(t)}var S,E="",O=!1,x=["{","}"];return l(t)&&(O=!0,x=["[","]"]),v(t)&&(E=" [Function"+(t.name?": "+t.name:"")+"]"),g(t)&&(E=" "+RegExp.prototype.toString.call(t)),b(t)&&(E=" "+Date.prototype.toUTCString.call(t)),_(t)&&(E=" "+c(t)),0!==s.length||O&&0!=t.length?r<0?g(t)?e.stylize(RegExp.prototype.toString.call(t),"regexp"):e.stylize("[Object]","special"):(e.seen.push(t),S=O?function(e,t,r,n,i){for(var a=[],s=0,o=t.length;s60?r[0]+(""===t?"":t+"\n ")+" "+e.join(",\n ")+" "+r[1]:r[0]+t+" "+e.join(", ")+" "+r[1]}(S,E,x)):x[0]+E+x[1]}function c(e){return"["+Error.prototype.toString.call(e)+"]"}function u(e,t,r,n,i,a){var s,c,u;if((u=Object.getOwnPropertyDescriptor(t,i)||{value:t[i]}).get?c=u.set?e.stylize("[Getter/Setter]","special"):e.stylize("[Getter]","special"):u.set&&(c=e.stylize("[Setter]","special")),T(n,i)||(s="["+i+"]"),c||(e.seen.indexOf(u.value)<0?(c=p(r)?o(e,u.value,null):o(e,u.value,r-1)).indexOf("\n")>-1&&(c=a?c.split("\n").map((function(e){return" "+e})).join("\n").substr(2):"\n"+c.split("\n").map((function(e){return" "+e})).join("\n")):c=e.stylize("[Circular]","special")),m(s)){if(a&&i.match(/^\d+$/))return c;(s=JSON.stringify(""+i)).match(/^"([a-zA-Z_][a-zA-Z_0-9]*)"$/)?(s=s.substr(1,s.length-2),s=e.stylize(s,"name")):(s=s.replace(/'/g,"\\'").replace(/\\"/g,'"').replace(/(^"|"$)/g,"'"),s=e.stylize(s,"string"))}return s+": "+c}function l(e){return Array.isArray(e)}function d(e){return"boolean"==typeof e}function p(e){return null===e}function h(e){return"number"==typeof e}function f(e){return"string"==typeof e}function m(e){return void 0===e}function g(e){return y(e)&&"[object RegExp]"===w(e)}function y(e){return"object"==typeof e&&null!==e}function b(e){return y(e)&&"[object Date]"===w(e)}function _(e){return y(e)&&("[object Error]"===w(e)||e instanceof Error)}function v(e){return"function"==typeof e}function w(e){return Object.prototype.toString.call(e)}function S(e){return e<10?"0"+e.toString(10):e.toString(10)}function E(){var e=new Date,t=[S(e.getHours()),S(e.getMinutes()),S(e.getSeconds())].join(":");return[e.getDate(),R[e.getMonth()],t].join(" ")}function T(e,t){return Object.prototype.hasOwnProperty.call(e,t)}var O=/%[sdj%]/g;n.format=function(e){if(!f(e)){for(var t=[],r=0;r=a)return e;switch(e){case"%s":return String(n[r++]);case"%d":return Number(n[r++]);case"%j":try{return JSON.stringify(n[r++])}catch(e){return"[Circular]"}default:return e}})),o=n[r];r3&&void 0!==arguments[3]?arguments[3]:1,i=arguments.length>4&&void 0!==arguments[4]?arguments[4]:function(){return 1},a=Object.create(qe.prototype);return o(a),L(a,Object.create(Ve.prototype),e,t,r,n,i),a}function o(e){e._state="readable",e._reader=void 0,e._storedError=void 0,e._disturbed=!1}function c(e){return!!Se(e)&&!!Object.prototype.hasOwnProperty.call(e,"_readableStreamController")}function u(e){return void 0!==e._reader}function l(e){return new Promise((function(t,r){var n={_resolve:t,_reject:r};e._reader._readIntoRequests.push(n)}))}function d(e){return new Promise((function(t,r){var n={_resolve:t,_reject:r};e._reader._readRequests.push(n)}))}function p(e,t){return e._disturbed=!0,"closed"===e._state?Promise.resolve(void 0):"errored"===e._state?Promise.reject(e._storedError):(h(e),e._readableStreamController[Me](t).then((function(){})))}function h(e){e._state="closed";var t=e._reader;if(void 0!==t){if(!0===w(t)){var r=!0,n=!1,i=void 0;try{for(var a,s=t._readRequests[Symbol.iterator]();!(r=(a=s.next()).done);r=!0)(0,a.value._resolve)(fe(void 0,!0))}catch(e){n=!0,i=e}finally{try{!r&&s.return&&s.return()}finally{if(n)throw i}}t._readRequests=[]}!function(e){e._closedPromise_resolve(void 0),e._closedPromise_resolve=void 0,e._closedPromise_reject=void 0}(t)}}function f(e,t){e._state="errored",e._storedError=t;var r=e._reader;if(void 0!==r){if(!0===w(r)){var n=!0,i=!1,a=void 0;try{for(var s,o=r._readRequests[Symbol.iterator]();!(n=(s=o.next()).done);n=!0)s.value._reject(t)}catch(e){i=!0,a=e}finally{try{!n&&o.return&&o.return()}finally{if(i)throw a}}r._readRequests=[]}else{var c=!0,u=!1,l=void 0;try{for(var d,p=r._readIntoRequests[Symbol.iterator]();!(c=(d=p.next()).done);c=!0)d.value._reject(t)}catch(e){u=!0,l=e}finally{try{!c&&p.return&&p.return()}finally{if(u)throw l}}r._readIntoRequests=[]}ae(r,t),r._closedPromise.catch((function(){}))}}function m(e,t,r){e._reader._readRequests.shift()._resolve(fe(t,r))}function g(e){return e._reader._readIntoRequests.length}function y(e){return e._reader._readRequests.length}function b(e){var t=e._reader;return void 0!==t&&!1!==v(t)}function _(e){var t=e._reader;return void 0!==t&&!1!==w(t)}function v(e){return!!Se(e)&&!!Object.prototype.hasOwnProperty.call(e,"_readIntoRequests")}function w(e){return!!Se(e)&&!!Object.prototype.hasOwnProperty.call(e,"_readRequests")}function S(e,t){e._ownerReadableStream=t,t._reader=e,"readable"===t._state?function(e){e._closedPromise=new Promise((function(t,r){e._closedPromise_resolve=t,e._closedPromise_reject=r}))}(e):"closed"===t._state?function(e){e._closedPromise=Promise.resolve(void 0),e._closedPromise_resolve=void 0,e._closedPromise_reject=void 0}(e):(function(e,t){e._closedPromise=Promise.reject(t),e._closedPromise_resolve=void 0,e._closedPromise_reject=void 0}(e,t._storedError),e._closedPromise.catch((function(){})))}function E(e,t){return p(e._ownerReadableStream,t)}function T(e){"readable"===e._ownerReadableStream._state?ae(e,new TypeError("Reader was released and can no longer be used to monitor the stream's closedness")):function(e,t){e._closedPromise=Promise.reject(t)}(e,new TypeError("Reader was released and can no longer be used to monitor the stream's closedness")),e._closedPromise.catch((function(){})),e._ownerReadableStream._reader=void 0,e._ownerReadableStream=void 0}function O(e,t){var r=e._ownerReadableStream;return r._disturbed=!0,"errored"===r._state?Promise.reject(r._storedError):function(e,t){var r=e._controlledReadableByteStream,n=1;t.constructor!==DataView&&(n=t.constructor.BYTES_PER_ELEMENT);var i=t.constructor,a={buffer:be(t.buffer),byteOffset:t.byteOffset,byteLength:t.byteLength,bytesFilled:0,elementSize:n,ctor:i,readerType:"byob"};if(e._pendingPullIntos.length>0)return e._pendingPullIntos.push(a),l(r);if("closed"===r._state){var s=new t.constructor(a.buffer,a.byteOffset,0);return Promise.resolve(fe(s,!0))}if(e._queueTotalSize>0){if(!0===G(e,a)){var o=Q(a);return X(e),Promise.resolve(fe(o,!1))}if(!0===e._closeRequested){var c=new TypeError("Insufficient bytes to fill elements in the given buffer");return K(e,c),Promise.reject(c)}}e._pendingPullIntos.push(a);var u=l(r);return B(e),u}(r._readableStreamController,t)}function x(e){var t=e._ownerReadableStream;return t._disturbed=!0,"closed"===t._state?Promise.resolve(fe(void 0,!0)):"errored"===t._state?Promise.reject(t._storedError):t._readableStreamController[Fe]()}function A(e){return!!Se(e)&&!!Object.prototype.hasOwnProperty.call(e,"_controlledReadableStream")}function R(e){!1!==I(e)&&(!0!==e._pulling?(e._pulling=!0,e._pullAlgorithm().then((function(){if(e._pulling=!1,!0===e._pullAgain)return e._pullAgain=!1,R(e)}),(function(t){j(e,t)})).catch(Ee)):e._pullAgain=!0)}function I(e){var t=e._controlledReadableStream;return!1!==k(e)&&!1!==e._started&&(!0===u(t)&&y(t)>0||D(e)>0)}function P(e){var t=e._controlledReadableStream;e._closeRequested=!0,0===e._queue.length&&h(t)}function N(e,t){var r=e._controlledReadableStream;if(!0===u(r)&&y(r)>0)m(r,t,!1);else{var n=void 0;try{n=e._strategySizeAlgorithm(t)}catch(t){throw j(e,t),t}try{xe(e,t,n)}catch(t){throw j(e,t),t}}R(e)}function C(e,t){var r=e._controlledReadableStream;Ae(e),f(r,t)}function j(e,t){"readable"===e._controlledReadableStream._state&&C(e,t)}function D(e){var t=e._controlledReadableStream._state;return"errored"===t?null:"closed"===t?0:e._strategyHWM-e._queueTotalSize}function k(e){var t=e._controlledReadableStream._state;return!1===e._closeRequested&&"readable"===t}function L(e,t,r,n,i,a,s){t._controlledReadableStream=e,t._queue=void 0,t._queueTotalSize=void 0,Ae(t),t._started=!1,t._closeRequested=!1,t._pullAgain=!1,t._pulling=!1,t._strategySizeAlgorithm=s,t._strategyHWM=a,t._pullAlgorithm=n,t._cancelAlgorithm=i,e._readableStreamController=t;var o=r();Promise.resolve(o).then((function(){t._started=!0,R(t)}),(function(e){j(t,e)})).catch(Ee)}function M(e,t,r,n){var i=Object.create(Ve.prototype),a=he(t,"pull",0,[i]),s=he(t,"cancel",1,[]);L(e,i,(function(){return ge(t,"start",[i])}),a,s,r,n)}function F(e){return!!Se(e)&&!!Object.prototype.hasOwnProperty.call(e,"_controlledReadableByteStream")}function q(e){return!!Se(e)&&!!Object.prototype.hasOwnProperty.call(e,"_associatedReadableByteStreamController")}function B(e){!1!==function(e){var t=e._controlledReadableByteStream;return"readable"===t._state&&!0!==e._closeRequested&&!1!==e._started&&(!0===_(t)&&y(t)>0||!0===b(t)&&g(t)>0||Z(e)>0)}(e)&&(!0!==e._pulling?(e._pulling=!0,e._pullAlgorithm().then((function(){e._pulling=!1,!0===e._pullAgain&&(e._pullAgain=!1,B(e))}),(function(t){"readable"===e._controlledReadableByteStream._state&&K(e,t)})).catch(Ee)):e._pullAgain=!0)}function U(e){$(e),e._pendingPullIntos=[]}function V(e,t){var r=!1;"closed"===e._state&&(r=!0);var n=Q(t);"default"===t.readerType?m(e,n,r):function(e,t,r){e._reader._readIntoRequests.shift()._resolve(fe(t,r))}(e,n,r)}function Q(e){var t=e.bytesFilled,r=e.elementSize;return new e.ctor(e.buffer,e.byteOffset,t/r)}function H(e,t,r,n){e._queue.push({buffer:t,byteOffset:r,byteLength:n}),e._queueTotalSize+=n}function G(e,t){var r=t.elementSize,n=t.bytesFilled-t.bytesFilled%r,i=Math.min(e._queueTotalSize,t.byteLength-t.bytesFilled),a=t.bytesFilled+i,s=a-a%r,o=i,c=!1;s>n&&(o=s-t.bytesFilled,c=!0);for(var u=e._queue;o>0;){var l=u[0],d=Math.min(o,l.byteLength),p=t.byteOffset+t.bytesFilled;pe(t.buffer,p,l.buffer,l.byteOffset,d),l.byteLength===d?u.shift():(l.byteOffset+=d,l.byteLength-=d),e._queueTotalSize-=d,z(e,d,t),o-=d}return c}function z(e,t,r){$(e),r.bytesFilled+=t}function X(e){0===e._queueTotalSize&&!0===e._closeRequested?h(e._controlledReadableByteStream):B(e)}function $(e){void 0!==e._byobRequest&&(e._byobRequest._associatedReadableByteStreamController=void 0,e._byobRequest._view=void 0,e._byobRequest=void 0)}function Y(e){for(;e._pendingPullIntos.length>0;){if(0===e._queueTotalSize)return;var t=e._pendingPullIntos[0];!0===G(e,t)&&(W(e),V(e._controlledReadableByteStream,t))}}function J(e,t){var r=e._pendingPullIntos[0];if("closed"===e._controlledReadableByteStream._state){if(0!==t)throw new TypeError("bytesWritten must be 0 when calling respond() on a closed stream");!function(e,t){t.buffer=be(t.buffer);var r=e._controlledReadableByteStream;if(!0===b(r))for(;g(r)>0;)V(r,W(e))}(e,r)}else!function(e,t,r){if(r.bytesFilled+t>r.byteLength)throw new RangeError("bytesWritten out of range");if(z(e,t,r),!(r.bytesFilled0){var i=r.byteOffset+r.bytesFilled,a=r.buffer.slice(i-n,i);H(e,a,0,a.byteLength)}r.buffer=be(r.buffer),r.bytesFilled-=n,V(e._controlledReadableByteStream,r),Y(e)}}(e,t,r)}function W(e){var t=e._pendingPullIntos.shift();return $(e),t}function K(e,t){var r=e._controlledReadableByteStream;U(e),Ae(e),f(r,t)}function Z(e){var t=e._controlledReadableByteStream._state;return"errored"===t?null:"closed"===t?0:e._strategyHWM-e._queueTotalSize}function ee(e,t,r,n,i,a,s){t._controlledReadableByteStream=e,t._pullAgain=!1,t._pulling=!1,U(t),t._queue=t._queueTotalSize=void 0,Ae(t),t._closeRequested=!1,t._started=!1,t._strategyHWM=_e(a),t._pullAlgorithm=n,t._cancelAlgorithm=i,t._autoAllocateChunkSize=s,t._pendingPullIntos=[],e._readableStreamController=t;var o=r();Promise.resolve(o).then((function(){t._started=!0,B(t)}),(function(r){"readable"===e._state&&K(t,r)})).catch(Ee)}function te(e,t,r){var n=Object.create(He.prototype),i=he(t,"pull",0,[n]),a=he(t,"cancel",1,[]),s=t.autoAllocateChunkSize;if(void 0!==s&&(!1===Number.isInteger(s)||s<=0))throw new RangeError("autoAllocateChunkSize must be a positive integer");ee(e,n,(function(){return ge(t,"start",[n])}),i,a,r,s)}function re(e){return new TypeError("ReadableStream.prototype."+e+" can only be used on a ReadableStream")}function ne(e){return new TypeError("Cannot "+e+" a stream using a released reader")}function ie(e){return new TypeError("ReadableStreamDefaultReader.prototype."+e+" can only be used on a ReadableStreamDefaultReader")}function ae(e,t){e._closedPromise_reject(t),e._closedPromise_resolve=void 0,e._closedPromise_reject=void 0}function se(e){return new TypeError("ReadableStreamBYOBReader.prototype."+e+" can only be used on a ReadableStreamBYOBReader")}function oe(e){return new TypeError("ReadableStreamDefaultController.prototype."+e+" can only be used on a ReadableStreamDefaultController")}function ce(e){return new TypeError("ReadableStreamBYOBRequest.prototype."+e+" can only be used on a ReadableStreamBYOBRequest")}function ue(e){return new TypeError("ReadableByteStreamController.prototype."+e+" can only be used on a ReadableByteStreamController")}var le=function(){function e(e,t){for(var r=0;r0&&void 0!==arguments[0]?arguments[0]:{},r=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},i=r.size,a=r.highWaterMark;n(this,e),o(this);var s=t.type;if("bytes"===String(s)){if(void 0===a&&(a=0),a=_e(a),void 0!==i)throw new RangeError("The strategy for a byte stream cannot have a size function");te(this,t,a)}else{if(void 0!==s)throw new RangeError("Invalid type is specified");void 0===a&&(a=1),M(this,t,a=_e(a),ve(i))}}return le(e,[{key:"cancel",value:function(e){return!1===c(this)?Promise.reject(re("cancel")):!0===u(this)?Promise.reject(new TypeError("Cannot cancel a stream that already has a reader")):p(this,e)}},{key:"getReader",value:function(){var e=(arguments.length>0&&void 0!==arguments[0]?arguments[0]:{}).mode;if(!1===c(this))throw re("getReader");if(void 0===e)return a(this);if("byob"===(e=String(e)))return i(this);throw new RangeError("Invalid mode is specified")}},{key:"pipeThrough",value:function(e,t){var r=e.writable,n=e.readable;if(void 0===r||void 0===n)throw new TypeError("readable and writable arguments must be defined");return function(e){try{Promise.prototype.then.call(e,void 0,(function(){}))}catch(e){}}(this.pipeTo(r,t)),n}},{key:"pipeTo",value:function(e){var t=this,r=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},n=r.preventClose,i=r.preventAbort,s=r.preventCancel;if(!1===c(this))return Promise.reject(re("pipeTo"));if(!1===Pe(e))return Promise.reject(new TypeError("ReadableStream.prototype.pipeTo's first argument must be a WritableStream"));if(n=Boolean(n),i=Boolean(i),s=Boolean(s),!0===u(this))return Promise.reject(new TypeError("ReadableStream.prototype.pipeTo cannot be used on a locked ReadableStream"));if(!0===Ne(e))return Promise.reject(new TypeError("ReadableStream.prototype.pipeTo cannot be used on a locked WritableStream"));var o=a(this),l=Ie(e),d=!1,h=Promise.resolve();return new Promise((function(r,a){function c(){var e=h;return h.then((function(){return e!==h?c():void 0}))}function u(e,t,r){"errored"===e._state?r(e._storedError):t.catch(r).catch(Ee)}function f(t,r,n){function i(){t().then((function(){return g(r,n)}),(function(e){return g(!0,e)})).catch(Ee)}!0!==d&&(d=!0,"writable"===e._state&&!1===Le(e)?c().then(i):i())}function m(t,r){!0!==d&&(d=!0,"writable"===e._state&&!1===Le(e)?c().then((function(){return g(t,r)})).catch(Ee):g(t,r))}function g(e,t){De(l),T(o),e?a(t):r(void 0)}if(u(t,o._closedPromise,(function(t){!1===i?f((function(){return Ce(e,t)}),!0,t):m(!0,t)})),u(e,l._closedPromise,(function(e){!1===s?f((function(){return p(t,e)}),!0,e):m(!0,e)})),function(e,t,r){"closed"===e._state?r():t.then(r).catch(Ee)}(t,o._closedPromise,(function(){!1===n?f((function(){return je(l)})):m()})),!0===Le(e)||"closed"===e._state){var y=new TypeError("the destination writable stream closed before all data could be piped to it");!1===s?f((function(){return p(t,y)}),!0,y):m(!0,y)}(function e(){return!0===d?Promise.resolve():l._readyPromise.then((function(){return x(o).then((function(e){var t=e.value;!0!==e.done&&(h=ke(l,t).catch((function(){})))}))})).then(e)})().catch((function(e){h=Promise.resolve(),Ee(e)}))}))}},{key:"tee",value:function(){if(!1===c(this))throw re("tee");var e=function(e,t){function r(){return x(i).then((function(e){var t=e.value;if(!0===e.done&&!1===o&&(!1===c&&P(h._readableStreamController),!1===u&&P(f._readableStreamController),o=!0),!0!==o){var r=t,n=t;!1===c&&N(h._readableStreamController,r),!1===u&&N(f._readableStreamController,n)}}))}function n(){}var i=a(e),o=!1,c=!1,u=!1,l=void 0,d=void 0,h=void 0,f=void 0,m=void 0,g=new Promise((function(e){m=e}));return h=s(n,r,(function(t){if(c=!0,l=t,!0===u){var r=we([l,d]),n=p(e,r);m(n)}return g})),f=s(n,r,(function(t){if(u=!0,d=t,!0===c){var r=we([l,d]),n=p(e,r);m(n)}return g})),i._closedPromise.catch((function(e){!0!==o&&(j(h._readableStreamController,e),j(f._readableStreamController,e),o=!0)})),[h,f]}(this);return we(e)}},{key:"locked",get:function(){if(!1===c(this))throw re("locked");return u(this)}}]),e}();t.exports={CreateReadableByteStream:function(e,t,r){var n=arguments.length>3&&void 0!==arguments[3]?arguments[3]:0,i=arguments.length>4&&void 0!==arguments[4]?arguments[4]:void 0,a=Object.create(qe.prototype);return o(a),ee(a,Object.create(He.prototype),e,t,r,n,i),a},CreateReadableStream:s,ReadableStream:qe,IsReadableStreamDisturbed:function(e){return e._disturbed},ReadableStreamDefaultControllerClose:P,ReadableStreamDefaultControllerEnqueue:N,ReadableStreamDefaultControllerError:C,ReadableStreamDefaultControllerGetDesiredSize:D,ReadableStreamDefaultControllerHasBackpressure:function(e){return!0!==I(e)},ReadableStreamDefaultControllerCanCloseOrEnqueue:k};var Be=function(){function e(t){if(n(this,e),!1===c(t))throw new TypeError("ReadableStreamDefaultReader can only be constructed with a ReadableStream instance");if(!0===u(t))throw new TypeError("This stream has already been locked for exclusive reading by another reader");S(this,t),this._readRequests=[]}return le(e,[{key:"cancel",value:function(e){return!1===w(this)?Promise.reject(ie("cancel")):void 0===this._ownerReadableStream?Promise.reject(ne("cancel")):E(this,e)}},{key:"read",value:function(){return!1===w(this)?Promise.reject(ie("read")):void 0===this._ownerReadableStream?Promise.reject(ne("read from")):x(this)}},{key:"releaseLock",value:function(){if(!1===w(this))throw ie("releaseLock");if(void 0!==this._ownerReadableStream){if(this._readRequests.length>0)throw new TypeError("Tried to release a reader lock when that reader has pending read() calls un-settled");T(this)}}},{key:"closed",get:function(){return!1===w(this)?Promise.reject(ie("closed")):this._closedPromise}}]),e}(),Ue=function(){function e(t){if(n(this,e),!c(t))throw new TypeError("ReadableStreamBYOBReader can only be constructed with a ReadableStream instance given a byte source");if(!1===F(t._readableStreamController))throw new TypeError("Cannot construct a ReadableStreamBYOBReader for a stream not constructed with a byte source");if(u(t))throw new TypeError("This stream has already been locked for exclusive reading by another reader");S(this,t),this._readIntoRequests=[]}return le(e,[{key:"cancel",value:function(e){return v(this)?void 0===this._ownerReadableStream?Promise.reject(ne("cancel")):E(this,e):Promise.reject(se("cancel"))}},{key:"read",value:function(e){return v(this)?void 0===this._ownerReadableStream?Promise.reject(ne("read from")):ArrayBuffer.isView(e)?!0===ye(e.buffer)?Promise.reject(new TypeError("Cannot read into a view onto a detached ArrayBuffer")):0===e.byteLength?Promise.reject(new TypeError("view must have non-zero byteLength")):O(this,e):Promise.reject(new TypeError("view must be an array buffer view")):Promise.reject(se("read"))}},{key:"releaseLock",value:function(){if(!v(this))throw se("releaseLock");if(void 0!==this._ownerReadableStream){if(this._readIntoRequests.length>0)throw new TypeError("Tried to release a reader lock when that reader has pending read() calls un-settled");T(this)}}},{key:"closed",get:function(){return v(this)?this._closedPromise:Promise.reject(se("closed"))}}]),e}(),Ve=function(){function e(){throw n(this,e),new TypeError}return le(e,[{key:"close",value:function(){if(!1===A(this))throw oe("close");if(!1===k(this))throw new TypeError("The stream is not in a state that permits close");P(this)}},{key:"enqueue",value:function(e){if(!1===A(this))throw oe("enqueue");if(!1===k(this))throw new TypeError("The stream is not in a state that permits enqueue");return N(this,e)}},{key:"error",value:function(e){if(!1===A(this))throw oe("error");var t=this._controlledReadableStream;if("readable"!==t._state)throw new TypeError("The stream is "+t._state+" and so cannot be errored");C(this,e)}},{key:Me,value:function(e){return Ae(this),this._cancelAlgorithm(e)}},{key:Fe,value:function(){var e=this._controlledReadableStream;if(this._queue.length>0){var t=Oe(this);return!0===this._closeRequested&&0===this._queue.length?h(e):R(this),Promise.resolve(fe(t,!1))}var r=d(e);return R(this),r}},{key:"desiredSize",get:function(){if(!1===A(this))throw oe("desiredSize");return D(this)}}]),e}(),Qe=function(){function e(){throw n(this,e),new TypeError("ReadableStreamBYOBRequest cannot be used directly")}return le(e,[{key:"respond",value:function(e){if(!1===q(this))throw ce("respond");if(void 0===this._associatedReadableByteStreamController)throw new TypeError("This BYOB request has been invalidated");if(!0===ye(this._view.buffer))throw new TypeError("The BYOB request's buffer has been detached and so cannot be used as a response");!function(e,t){if(t=Number(t),!1===me(t))throw new RangeError("bytesWritten must be a finite");J(e,t)}(this._associatedReadableByteStreamController,e)}},{key:"respondWithNewView",value:function(e){if(!1===q(this))throw ce("respond");if(void 0===this._associatedReadableByteStreamController)throw new TypeError("This BYOB request has been invalidated");if(!ArrayBuffer.isView(e))throw new TypeError("You can only respond with array buffer views");if(!0===ye(e.buffer))throw new TypeError("The supplied view's buffer has been detached and so cannot be used as a response");!function(e,t){var r=e._pendingPullIntos[0];if(r.byteOffset+r.bytesFilled!==t.byteOffset)throw new RangeError("The region specified by view does not match byobRequest");if(r.byteLength!==t.byteLength)throw new RangeError("The buffer of view has different capacity than byobRequest");r.buffer=t.buffer,J(e,t.byteLength)}(this._associatedReadableByteStreamController,e)}},{key:"view",get:function(){if(!1===q(this))throw ce("view");return this._view}}]),e}(),He=function(){function e(){throw n(this,e),new TypeError("ReadableByteStreamController constructor cannot be used directly")}return le(e,[{key:"close",value:function(){if(!1===F(this))throw ue("close");if(!0===this._closeRequested)throw new TypeError("The stream has already been closed; do not close it again!");var e=this._controlledReadableByteStream._state;if("readable"!==e)throw new TypeError("The stream (in "+e+" state) is not in the readable state and cannot be closed");!function(e){var t=e._controlledReadableByteStream;if(e._queueTotalSize>0)e._closeRequested=!0;else{if(e._pendingPullIntos.length>0&&e._pendingPullIntos[0].bytesFilled>0){var r=new TypeError("Insufficient bytes to fill elements in the given buffer");throw K(e,r),r}h(t)}}(this)}},{key:"enqueue",value:function(e){if(!1===F(this))throw ue("enqueue");if(!0===this._closeRequested)throw new TypeError("stream is closed or draining");var t=this._controlledReadableByteStream._state;if("readable"!==t)throw new TypeError("The stream (in "+t+" state) is not in the readable state and cannot be enqueued to");if(!ArrayBuffer.isView(e))throw new TypeError("You can only enqueue array buffer views when using a ReadableByteStreamController");if(!0===ye(e.buffer))throw new TypeError("Cannot enqueue a view onto a detached ArrayBuffer");!function(e,t){var r=e._controlledReadableByteStream,n=t.buffer,i=t.byteOffset,a=t.byteLength,s=be(n);!0===_(r)?0===y(r)?H(e,s,i,a):m(r,new Uint8Array(s,i,a),!1):!0===b(r)?(H(e,s,i,a),Y(e)):H(e,s,i,a)}(this,e)}},{key:"error",value:function(e){if(!1===F(this))throw ue("error");var t=this._controlledReadableByteStream;if("readable"!==t._state)throw new TypeError("The stream is "+t._state+" and so cannot be errored");K(this,e)}},{key:Me,value:function(e){return this._pendingPullIntos.length>0&&(this._pendingPullIntos[0].bytesFilled=0),Ae(this),this._cancelAlgorithm(e)}},{key:Fe,value:function(){var e=this._controlledReadableByteStream;if(this._queueTotalSize>0){var t=this._queue.shift();this._queueTotalSize-=t.byteLength,X(this);var r=void 0;try{r=new Uint8Array(t.buffer,t.byteOffset,t.byteLength)}catch(e){return Promise.reject(e)}return Promise.resolve(fe(r,!1))}var n=this._autoAllocateChunkSize;if(void 0!==n){var i=void 0;try{i=new ArrayBuffer(n)}catch(e){return Promise.reject(e)}var a={buffer:i,byteOffset:0,byteLength:n,bytesFilled:0,elementSize:1,ctor:Uint8Array,readerType:"default"};this._pendingPullIntos.push(a)}var s=d(e);return B(this),s}},{key:"byobRequest",get:function(){if(!1===F(this))throw ue("byobRequest");if(void 0===this._byobRequest&&this._pendingPullIntos.length>0){var e=this._pendingPullIntos[0],t=new Uint8Array(e.buffer,e.byteOffset+e.bytesFilled,e.byteLength-e.bytesFilled),r=Object.create(Qe.prototype);(function(e,t,r){e._associatedReadableByteStreamController=t,e._view=r})(r,this,t),this._byobRequest=r}return this._byobRequest}},{key:"desiredSize",get:function(){if(!1===F(this))throw ue("desiredSize");return Z(this)}}]),e}()},{"./helpers.js":10,"./queue-with-sizes.js":11,"./utils.js":14,"./writable-stream.js":15,"better-assert":16}],13:[function(e,t,r){"use strict";function n(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}function i(e,t,r,n,i,a){function u(){return t}e._writable=j(u,(function(t){return function(e,t){g("TransformStreamDefaultSinkWriteAlgorithm()");var r=e._transformStreamController;return!0===e._backpressure?e._backpressureChangePromise.then((function(){var n=e._writable;if("erroring"===n._state)throw n._storedError;return r._transformAlgorithm(t)})):r._transformAlgorithm(t)}(e,t)}),(function(){return function(e){g("TransformStreamDefaultSinkCloseAlgorithm()");var t=e._readable;return e._transformStreamController._flushAlgorithm().then((function(){if("errored"===t._state)throw t._storedError;var e=t._readableStreamController;!0===N(e)&&x(e)})).catch((function(r){throw s(e,r),t._storedError}))}(e)}),(function(){return function(e){return s(e,new TypeError("Writable side aborted")),Promise.resolve()}(e)}),r,n),e._readable=O(u,(function(){return function(e){return g("TransformStreamDefaultSourcePullAlgorithm()"),c(e,!1),e._backpressureChangePromise}(e)}),(function(t){return o(e,t),Promise.resolve()}),i,a),e._backpressure=void 0,e._backpressureChangePromise=void 0,e._backpressureChangePromise_resolve=void 0,c(e,!0),e._transformStreamController=void 0}function a(e){return!!w(e)&&!!Object.prototype.hasOwnProperty.call(e,"_transformStreamController")}function s(e,t){g("TransformStreamError()"),"readable"===e._readable._state&&R(e._readable._readableStreamController,t),o(e,t)}function o(e,t){D(e._writable._writableStreamController,t),!0===e._backpressure&&c(e,!1)}function c(e,t){g("TransformStreamSetBackpressure() [backpressure = "+t+"]"),void 0!==e._backpressureChangePromise&&e._backpressureChangePromise_resolve(),e._backpressureChangePromise=new Promise((function(t){e._backpressureChangePromise_resolve=t})),e._backpressure=t}function u(e){return!!w(e)&&!!Object.prototype.hasOwnProperty.call(e,"_controlledTransformStream")}function l(e,t,r,n){t._controlledTransformStream=e,e._transformStreamController=t,t._transformAlgorithm=r,t._flushAlgorithm=n}function d(e,t){var r=Object.create(L.prototype),n=function(e){try{return p(r,e),Promise.resolve()}catch(e){return Promise.reject(e)}},i=t.transform;if(void 0!==i){if("function"!=typeof i)throw new TypeError("transform is not a method");n=function(n){return v(i,t,[n,r]).catch((function(t){throw s(e,t),t}))}}var a=_(t,"flush",0,[r]);l(e,r,n,a)}function p(e,t){g("TransformStreamDefaultControllerEnqueue()");var r=e._controlledTransformStream,n=r._readable._readableStreamController;if(!1===N(n))throw new TypeError("Readable side is not in a state that permits enqueue");try{A(n,t)}catch(e){throw o(r,e),r._readable._storedError}P(n)!==r._backpressure&&c(r,!0)}function h(e){return new TypeError("TransformStreamDefaultController.prototype."+e+" can only be used on a TransformStreamDefaultController")}function f(e){return new TypeError("TransformStream.prototype."+e+" can only be used on a TransformStream")}var m=function(){function e(e,t){for(var r=0;r0&&void 0!==arguments[0]?arguments[0]:{},r=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},a=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};if(n(this,e),void 0!==t.readableType)throw new RangeError("Invalid readable type specified");if(void 0!==t.writableType)throw new RangeError("Invalid writable type specified");var s=r.size,o=E(s),c=r.highWaterMark;void 0===c&&(c=1),c=S(c);var u=a.size,l=E(u),p=a.highWaterMark;void 0===p&&(p=0),p=S(p);var h=void 0;i(this,new Promise((function(e){h=e})),c,o,p,l),d(this,t);var f=b(t,"start",[this._transformStreamController]);h(f)}return m(e,[{key:"readable",get:function(){if(!1===a(this))throw f("readable");return this._readable}},{key:"writable",get:function(){if(!1===a(this))throw f("writable");return this._writable}}]),e}(),L=function(){function e(){throw n(this,e),new TypeError("TransformStreamDefaultController instances cannot be created directly")}return m(e,[{key:"enqueue",value:function(e){if(!1===u(this))throw h("enqueue");p(this,e)}},{key:"error",value:function(e){if(!1===u(this))throw h("error");!function(e,t){s(e._controlledTransformStream,t)}(this,e)}},{key:"terminate",value:function(){if(!1===u(this))throw h("terminate");!function(e){g("TransformStreamDefaultControllerTerminate()");var t=e._controlledTransformStream,r=t._readable._readableStreamController;!0===N(r)&&x(r),o(t,new TypeError("TransformStream terminated"))}(this)}},{key:"desiredSize",get:function(){if(!1===u(this))throw h("desiredSize");var e=this._controlledTransformStream._readable._readableStreamController;return I(e)}}]),e}();t.exports={CreateTransformStream:function(e,t,r){var n=arguments.length>3&&void 0!==arguments[3]?arguments[3]:1,a=arguments.length>4&&void 0!==arguments[4]?arguments[4]:function(){return 1},s=arguments.length>5&&void 0!==arguments[5]?arguments[5]:0,o=arguments.length>6&&void 0!==arguments[6]?arguments[6]:function(){return 1},c=Object.create(k.prototype),u=void 0;i(c,new Promise((function(e){u=e})),n,a,s,o),l(c,Object.create(L.prototype),t,r);var d=e();return u(d),c},TransformStream:k}},{"./helpers.js":10,"./readable-stream.js":12,"./writable-stream.js":15,"better-assert":16,debug:18}],14:[function(e,t,r){"use strict";var n=e("better-assert");r.rethrowAssertionErrorRejection=function(e){e&&e.constructor===n.AssertionError&&setTimeout((function(){throw e}),0)}},{"better-assert":16}],15:[function(e,t,r){"use strict";function n(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}function i(e){return new Z(e)}function a(e){e._state="writable",e._storedError=void 0,e._writer=void 0,e._writableStreamController=void 0,e._writeRequests=[],e._inFlightWriteRequest=void 0,e._closeRequest=void 0,e._inFlightCloseRequest=void 0,e._pendingAbortRequest=void 0,e._backpressure=!1}function s(e){return!!Q(e)&&!!Object.prototype.hasOwnProperty.call(e,"_writableStreamController")}function o(e){return void 0!==e._writer}function c(e,t){var r=e._state;if("closed"===r)return Promise.resolve(void 0);if("errored"===r)return Promise.reject(e._storedError);var n=new TypeError("Requested to abort");if(void 0!==e._pendingAbortRequest)return Promise.reject(n);var i=!1;"erroring"===r&&(i=!0,t=void 0);var a=new Promise((function(r,n){e._pendingAbortRequest={_resolve:r,_reject:n,_reason:t,_wasAlreadyErroring:i}}));return!1===i&&l(e,n),a}function u(e,t){M("WritableStreamDealWithRejection(stream, %o)",t),"writable"!==e._state?d(e):l(e,t)}function l(e,t){M("WritableStreamStartErroring(stream, %o)",t);var r=e._writableStreamController;e._state="erroring",e._storedError=t;var n=e._writer;void 0!==n&&b(n,t),!1===function(e){return void 0===e._inFlightWriteRequest&&void 0===e._inFlightCloseRequest?(M("WritableStreamHasOperationMarkedInFlight() is false"),!1):(M("WritableStreamHasOperationMarkedInFlight() is true"),!0)}(e)&&!0===r._started&&d(e)}function d(e){M("WritableStreamFinishErroring()"),e._state="errored",e._writableStreamController[W]();var t=e._storedError,r=!0,n=!1,i=void 0;try{for(var a,s=e._writeRequests[Symbol.iterator]();!(r=(a=s.next()).done);r=!0)a.value._reject(t)}catch(e){n=!0,i=e}finally{try{!r&&s.return&&s.return()}finally{if(n)throw i}}if(e._writeRequests=[],void 0!==e._pendingAbortRequest){var o=e._pendingAbortRequest;if(e._pendingAbortRequest=void 0,!0===o._wasAlreadyErroring)return o._reject(t),void h(e);e._writableStreamController[J](o._reason).then((function(){o._resolve(),h(e)}),(function(t){o._reject(t),h(e)}))}else h(e)}function p(e){return void 0!==e._closeRequest||void 0!==e._inFlightCloseRequest}function h(e){M("WritableStreamRejectCloseAndClosedPromiseIfNeeded()"),void 0!==e._closeRequest&&(e._closeRequest._reject(e._storedError),e._closeRequest=void 0);var t=e._writer;void 0!==t&&(C(t,e._storedError),t._closedPromise.catch((function(){})))}function f(e,t){var r=e._writer;void 0!==r&&t!==e._backpressure&&(!0===t?function(e){M("defaultWriterReadyPromiseReset()"),e._readyPromise=new Promise((function(t,r){e._readyPromise_resolve=t,e._readyPromise_reject=r})),e._readyPromiseState="pending"}(r):k(r)),e._backpressure=t}function m(e){return!!Q(e)&&!!Object.prototype.hasOwnProperty.call(e,"_ownerWritableStream")}function g(e){var t=e._ownerWritableStream,r=t._state;if("closed"===r||"errored"===r)return Promise.reject(new TypeError("The stream (in "+r+" state) is not in the writable state and cannot be closed"));var n=new Promise((function(e,r){var n={_resolve:e,_reject:r};t._closeRequest=n}));return!0===t._backpressure&&"writable"===r&&k(e),function(e){X(e,"close",0),T(e)}(t._writableStreamController),n}function y(e,t){"pending"===e._closedPromiseState?C(e,t):function(e,t){e._closedPromise=Promise.reject(t),e._closedPromiseState="rejected"}(e,t),e._closedPromise.catch((function(){}))}function b(e,t){M("WritableStreamDefaultWriterEnsureReadyPromiseRejected(writer, %o)",t),"pending"===e._readyPromiseState?function(e,t){M("defaultWriterReadyPromiseReject(writer, %o)",t),e._readyPromise_reject(t),e._readyPromise_resolve=void 0,e._readyPromise_reject=void 0,e._readyPromiseState="rejected"}(e,t):function(e,t){M("defaultWriterReadyPromiseResetToRejected(writer, %o)",t),e._readyPromise=Promise.reject(t),e._readyPromiseState="rejected"}(e,t),e._readyPromise.catch((function(){}))}function _(e){var t=e._ownerWritableStream,r=new TypeError("Writer was released and can no longer be used to monitor the stream's closedness");b(e,r),y(e,r),t._writer=void 0,e._ownerWritableStream=void 0}function v(e,t){var r=e._ownerWritableStream,n=r._writableStreamController,i=function(e,t){try{return e._strategySizeAlgorithm(t)}catch(t){return O(e,t),1}}(n,t);if(r!==e._ownerWritableStream)return Promise.reject(P("write to"));var a=r._state;if("errored"===a)return Promise.reject(r._storedError);if(!0===p(r)||"closed"===a)return Promise.reject(new TypeError("The stream is closing or closed and cannot be written to"));if("erroring"===a)return Promise.reject(r._storedError);var s=function(e){return new Promise((function(t,r){var n={_resolve:t,_reject:r};e._writeRequests.push(n)}))}(r);return function(e,t,r){var n={chunk:t};try{X(e,n,r)}catch(t){return void O(e,t)}var i=e._controlledWritableStream;!1===p(i)&&"writable"===i._state&&f(i,x(e)),T(e)}(n,t,i),s}function w(e,t,r,n,i,a,s,o){t._controlledWritableStream=e,e._writableStreamController=t,t._queue=void 0,t._queueTotalSize=void 0,Y(t),t._started=!1,t._strategySizeAlgorithm=o,t._strategyHWM=s,t._writeAlgorithm=n,t._closeAlgorithm=i,t._abortAlgorithm=a;var c=x(t);f(e,c);var l=r();Promise.resolve(l).then((function(){t._started=!0,T(t)}),(function(r){t._started=!0,u(e,r)})).catch(H)}function S(e,t,r,n){var i=Object.create(ee.prototype),a=q(t,"write",1,[i]),s=q(t,"close",0,[]),o=q(t,"abort",1,[]);w(e,i,(function(){return B(t,"start",[i])}),a,s,o,r,n)}function E(e){return e._strategyHWM-e._queueTotalSize}function T(e){M("WritableStreamDefaultControllerAdvanceQueueIfNeeded()");var t=e._controlledWritableStream;if(!1!==e._started&&void 0===t._inFlightWriteRequest){var r=t._state;if("closed"!==r&&"errored"!==r)if("erroring"!==r){if(0!==e._queue.length){var n=$(e);"close"===n?function(e){var t=e._controlledWritableStream;(function(e){e._inFlightCloseRequest=e._closeRequest,e._closeRequest=void 0})(t),z(e),e._closeAlgorithm().then((function(){!function(e){e._inFlightCloseRequest._resolve(void 0),e._inFlightCloseRequest=void 0,"erroring"===e._state&&(e._storedError=void 0,void 0!==e._pendingAbortRequest&&(e._pendingAbortRequest._resolve(),e._pendingAbortRequest=void 0)),e._state="closed";var t=e._writer;void 0!==t&&function(e){e._closedPromise_resolve(void 0),e._closedPromise_resolve=void 0,e._closedPromise_reject=void 0,e._closedPromiseState="resolved"}(t)}(t)}),(function(e){!function(e,t){e._inFlightCloseRequest._reject(t),e._inFlightCloseRequest=void 0,void 0!==e._pendingAbortRequest&&(e._pendingAbortRequest._reject(t),e._pendingAbortRequest=void 0),u(e,t)}(t,e)})).catch(H)}(e):function(e,t){var r=e._controlledWritableStream;(function(e){e._inFlightWriteRequest=e._writeRequests.shift()})(r),e._writeAlgorithm(t).then((function(){!function(e){e._inFlightWriteRequest._resolve(void 0),e._inFlightWriteRequest=void 0}(r);var t=r._state;if(z(e),!1===p(r)&&"writable"===t){var n=x(e);f(r,n)}T(e)}),(function(e){!function(e,t){e._inFlightWriteRequest._reject(t),e._inFlightWriteRequest=void 0,u(e,t)}(r,e)})).catch(H)}(e,n.chunk)}}else d(t)}}function O(e,t){"writable"===e._controlledWritableStream._state&&A(e,t)}function x(e){return E(e)<=0}function A(e,t){l(e._controlledWritableStream,t)}function R(e){return new TypeError("WritableStream.prototype."+e+" can only be used on a WritableStream")}function I(e){return new TypeError("WritableStreamDefaultWriter.prototype."+e+" can only be used on a WritableStreamDefaultWriter")}function P(e){return new TypeError("Cannot "+e+" a stream using a released writer")}function N(e){e._closedPromise=new Promise((function(t,r){e._closedPromise_resolve=t,e._closedPromise_reject=r,e._closedPromiseState="pending"}))}function C(e,t){e._closedPromise_reject(t),e._closedPromise_resolve=void 0,e._closedPromise_reject=void 0,e._closedPromiseState="rejected"}function j(e,t){M("defaultWriterReadyPromiseInitializeAsRejected(writer, %o)",t),e._readyPromise=Promise.reject(t),e._readyPromise_resolve=void 0,e._readyPromise_reject=void 0,e._readyPromiseState="rejected"}function D(e){M("defaultWriterReadyPromiseInitializeAsResolved()"),e._readyPromise=Promise.resolve(void 0),e._readyPromise_resolve=void 0,e._readyPromise_reject=void 0,e._readyPromiseState="fulfilled"}function k(e){M("defaultWriterReadyPromiseResolve()"),e._readyPromise_resolve(void 0),e._readyPromise_resolve=void 0,e._readyPromise_reject=void 0,e._readyPromiseState="fulfilled"}var L=function(){function e(e,t){for(var r=0;r0&&void 0!==arguments[0]?arguments[0]:{},r=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},i=r.size,s=r.highWaterMark,o=void 0===s?1:s;if(n(this,e),a(this),void 0!==t.type)throw new RangeError("Invalid type is specified");var c=V(i);S(this,t,o=U(o),c)}return L(e,[{key:"abort",value:function(e){return!1===s(this)?Promise.reject(R("abort")):!0===o(this)?Promise.reject(new TypeError("Cannot abort a stream that already has a writer")):c(this,e)}},{key:"getWriter",value:function(){if(!1===s(this))throw R("getWriter");return i(this)}},{key:"locked",get:function(){if(!1===s(this))throw R("locked");return o(this)}}]),e}();t.exports={AcquireWritableStreamDefaultWriter:i,CreateWritableStream:function(e,t,r,n){var i=arguments.length>4&&void 0!==arguments[4]?arguments[4]:1,s=arguments.length>5&&void 0!==arguments[5]?arguments[5]:function(){return 1},o=Object.create(K.prototype);return a(o),w(o,Object.create(ee.prototype),e,t,r,n,i,s),o},IsWritableStream:s,IsWritableStreamLocked:o,WritableStream:K,WritableStreamAbort:c,WritableStreamDefaultControllerErrorIfNeeded:O,WritableStreamDefaultWriterCloseWithErrorPropagation:function(e){var t=e._ownerWritableStream,r=t._state;return!0===p(t)||"closed"===r?Promise.resolve():"errored"===r?Promise.reject(t._storedError):g(e)},WritableStreamDefaultWriterRelease:_,WritableStreamDefaultWriterWrite:v,WritableStreamCloseQueuedOrInFlight:p};var Z=function(){function e(t){if(n(this,e),!1===s(t))throw new TypeError("WritableStreamDefaultWriter can only be constructed with a WritableStream instance");if(!0===o(t))throw new TypeError("This stream has already been locked for exclusive writing by another writer");this._ownerWritableStream=t,t._writer=this;var r=t._state;if("writable"===r)!1===p(t)&&!0===t._backpressure?function(e){M("defaultWriterReadyPromiseInitialize()"),e._readyPromise=new Promise((function(t,r){e._readyPromise_resolve=t,e._readyPromise_reject=r})),e._readyPromiseState="pending"}(this):D(this),N(this);else if("erroring"===r)j(this,t._storedError),this._readyPromise.catch((function(){})),N(this);else if("closed"===r)D(this),function(e){e._closedPromise=Promise.resolve(void 0),e._closedPromise_resolve=void 0,e._closedPromise_reject=void 0,e._closedPromiseState="resolved"}(this);else{var i=t._storedError;j(this,i),this._readyPromise.catch((function(){})),function(e,t){e._closedPromise=Promise.reject(t),e._closedPromise_resolve=void 0,e._closedPromise_reject=void 0,e._closedPromiseState="rejected"}(this,i),this._closedPromise.catch((function(){}))}}return L(e,[{key:"abort",value:function(e){return!1===m(this)?Promise.reject(I("abort")):void 0===this._ownerWritableStream?Promise.reject(P("abort")):function(e,t){return c(e._ownerWritableStream,t)}(this,e)}},{key:"close",value:function(){if(!1===m(this))return Promise.reject(I("close"));var e=this._ownerWritableStream;return void 0===e?Promise.reject(P("close")):!0===p(e)?Promise.reject(new TypeError("cannot close an already-closing stream")):g(this)}},{key:"releaseLock",value:function(){if(!1===m(this))throw I("releaseLock");void 0!==this._ownerWritableStream&&_(this)}},{key:"write",value:function(e){return!1===m(this)?Promise.reject(I("write")):void 0===this._ownerWritableStream?Promise.reject(P("write to")):v(this,e)}},{key:"closed",get:function(){return!1===m(this)?Promise.reject(I("closed")):this._closedPromise}},{key:"desiredSize",get:function(){if(!1===m(this))throw I("desiredSize");if(void 0===this._ownerWritableStream)throw P("desiredSize");return e=this._ownerWritableStream,"errored"===(t=e._state)||"erroring"===t?null:"closed"===t?0:E(e._writableStreamController);var e,t}},{key:"ready",get:function(){return!1===m(this)?Promise.reject(I("ready")):this._readyPromise}}]),e}(),ee=function(){function e(){throw n(this,e),new TypeError("WritableStreamDefaultController cannot be constructed explicitly")}return L(e,[{key:"error",value:function(e){if(!1===function(e){return!!Q(e)&&!!Object.prototype.hasOwnProperty.call(e,"_controlledWritableStream")}(this))throw new TypeError("WritableStreamDefaultController.prototype.error can only be used on a WritableStreamDefaultController");"writable"===this._controlledWritableStream._state&&A(this,e)}},{key:J,value:function(e){return this._abortAlgorithm(e)}},{key:W,value:function(){Y(this)}}]),e}()},{"./helpers.js":10,"./queue-with-sizes.js":11,"./utils.js":14,"better-assert":16,debug:18}],16:[function(e,t,r){(function(r){var n=e("assert").AssertionError,i=e("callsite"),a=e("fs");t.exports=r.env.NO_ASSERT?function(){}:function(e){if(!e){var t=i(),r=t[1],s=r.getFileName(),o=r.getLineNumber(),c=(c=a.readFileSync(s,"utf8")).split("\n")[o-1].match(/assert\((.*)\)/)[1];throw new n({message:c,stackStartFunction:t[0].getFunction()})}}}).call(this,e("_process"))},{_process:4,assert:2,callsite:17,fs:3}],17:[function(e,t,r){t.exports=function(){var e=Error.prepareStackTrace;Error.prepareStackTrace=function(e,t){return t};var t=new Error;Error.captureStackTrace(t,arguments.callee);var r=t.stack;return Error.prepareStackTrace=e,r}},{}],18:[function(e,t,r){(function(n){function i(){var e;try{e=r.storage.debug}catch(e){}return!e&&void 0!==n&&"env"in n&&(e=n.env.DEBUG),e}(r=t.exports=e("./debug")).log=function(){return"object"==typeof console&&console.log&&Function.prototype.apply.call(console.log,console,arguments)},r.formatArgs=function(e){var t=this.useColors;if(e[0]=(t?"%c":"")+this.namespace+(t?" %c":" ")+e[0]+(t?"%c ":" ")+"+"+r.humanize(this.diff),t){var n="color: "+this.color;e.splice(1,0,n,"color: inherit");var i=0,a=0;e[0].replace(/%[a-zA-Z%]/g,(function(e){"%%"!==e&&(i++,"%c"===e&&(a=i))})),e.splice(a,0,n)}},r.save=function(e){try{null==e?r.storage.removeItem("debug"):r.storage.debug=e}catch(e){}},r.load=i,r.useColors=function(){return!("undefined"==typeof window||!window.process||"renderer"!==window.process.type)||("undefined"==typeof navigator||!navigator.userAgent||!navigator.userAgent.toLowerCase().match(/(edge|trident)\/(\d+)/))&&("undefined"!=typeof document&&document.documentElement&&document.documentElement.style&&document.documentElement.style.WebkitAppearance||"undefined"!=typeof window&&window.console&&(window.console.firebug||window.console.exception&&window.console.table)||"undefined"!=typeof navigator&&navigator.userAgent&&navigator.userAgent.toLowerCase().match(/firefox\/(\d+)/)&&parseInt(RegExp.$1,10)>=31||"undefined"!=typeof navigator&&navigator.userAgent&&navigator.userAgent.toLowerCase().match(/applewebkit\/(\d+)/))},r.storage="undefined"!=typeof chrome&&void 0!==chrome.storage?chrome.storage.local:function(){try{return window.localStorage}catch(e){}}(),r.colors=["#0000CC","#0000FF","#0033CC","#0033FF","#0066CC","#0066FF","#0099CC","#0099FF","#00CC00","#00CC33","#00CC66","#00CC99","#00CCCC","#00CCFF","#3300CC","#3300FF","#3333CC","#3333FF","#3366CC","#3366FF","#3399CC","#3399FF","#33CC00","#33CC33","#33CC66","#33CC99","#33CCCC","#33CCFF","#6600CC","#6600FF","#6633CC","#6633FF","#66CC00","#66CC33","#9900CC","#9900FF","#9933CC","#9933FF","#99CC00","#99CC33","#CC0000","#CC0033","#CC0066","#CC0099","#CC00CC","#CC00FF","#CC3300","#CC3333","#CC3366","#CC3399","#CC33CC","#CC33FF","#CC6600","#CC6633","#CC9900","#CC9933","#CCCC00","#CCCC33","#FF0000","#FF0033","#FF0066","#FF0099","#FF00CC","#FF00FF","#FF3300","#FF3333","#FF3366","#FF3399","#FF33CC","#FF33FF","#FF6600","#FF6633","#FF9900","#FF9933","#FFCC00","#FFCC33"],r.formatters.j=function(e){try{return JSON.stringify(e)}catch(e){return"[UnexpectedJSONParseError]: "+e.message}},r.enable(i())}).call(this,e("_process"))},{"./debug":19,_process:4}],19:[function(e,t,r){function n(e){function t(){if(t.enabled){var e=t,i=+new Date,a=i-(n||i);e.diff=a,e.prev=n,e.curr=i,n=i;for(var s=new Array(arguments.length),o=0;o100)){var t=/^((?:\d+)?\.?\d+) *(milliseconds?|msecs?|ms|seconds?|secs?|s|minutes?|mins?|m|hours?|hrs?|h|days?|d|years?|yrs?|y)?$/i.exec(e);if(t){var r=parseFloat(t[1]);switch((t[2]||"ms").toLowerCase()){case"years":case"year":case"yrs":case"yr":case"y":return r*d;case"days":case"day":case"d":return r*l;case"hours":case"hour":case"hrs":case"hr":case"h":return r*u;case"minutes":case"minute":case"mins":case"min":case"m":return r*c;case"seconds":case"second":case"secs":case"sec":case"s":return r*o;case"milliseconds":case"millisecond":case"msecs":case"msec":case"ms":return r;default:return}}}}function i(e){return e>=l?Math.round(e/l)+"d":e>=u?Math.round(e/u)+"h":e>=c?Math.round(e/c)+"m":e>=o?Math.round(e/o)+"s":e+"ms"}function a(e){return s(e,l,"day")||s(e,u,"hour")||s(e,c,"minute")||s(e,o,"second")||e+" ms"}function s(e,t,r){if(!(e0)return n(e);if("number"===r&&!1===isNaN(e))return t.long?a(e):i(e);throw new Error("val is not a non-empty string or a valid number. val="+JSON.stringify(e))}},{}]},{},[1])(1)}).call(this,r(17))},function(e,t,r){"use strict";var n=this&&this.__createBinding||(Object.create?function(e,t,r,n){void 0===n&&(n=r),Object.defineProperty(e,n,{enumerable:!0,get:function(){return t[r]}})}:function(e,t,r,n){void 0===n&&(n=r),e[n]=t[r]}),i=this&&this.__exportStar||function(e,t){for(var r in e)"default"===r||Object.prototype.hasOwnProperty.call(t,r)||n(t,e,r)};Object.defineProperty(t,"__esModule",{value:!0}),i(r(281),t)},function(e,t,r){"use strict";var n=this&&this.__createBinding||(Object.create?function(e,t,r,n){void 0===n&&(n=r),Object.defineProperty(e,n,{enumerable:!0,get:function(){return t[r]}})}:function(e,t,r,n){void 0===n&&(n=r),e[n]=t[r]}),i=this&&this.__exportStar||function(e,t){for(var r in e)"default"===r||Object.prototype.hasOwnProperty.call(t,r)||n(t,e,r)};Object.defineProperty(t,"__esModule",{value:!0}),i(r(282),t)},function(e,t,r){"use strict";var n=this&&this.__createBinding||(Object.create?function(e,t,r,n){void 0===n&&(n=r),Object.defineProperty(e,n,{enumerable:!0,get:function(){return t[r]}})}:function(e,t,r,n){void 0===n&&(n=r),e[n]=t[r]}),i=this&&this.__exportStar||function(e,t){for(var r in e)"default"===r||Object.prototype.hasOwnProperty.call(t,r)||n(t,e,r)};Object.defineProperty(t,"__esModule",{value:!0}),i(r(283),t)},function(e,t,r){"use strict";var n=this&&this.__createBinding||(Object.create?function(e,t,r,n){void 0===n&&(n=r),Object.defineProperty(e,n,{enumerable:!0,get:function(){return t[r]}})}:function(e,t,r,n){void 0===n&&(n=r),e[n]=t[r]}),i=this&&this.__exportStar||function(e,t){for(var r in e)"default"===r||Object.prototype.hasOwnProperty.call(t,r)||n(t,e,r)};Object.defineProperty(t,"__esModule",{value:!0}),i(r(284),t)},function(e,t,r){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.getMetadata=t.ActorQueryOperation=t.KEY_CONTEXT_QUERY_TIMESTAMP=t.KEY_CONTEXT_BASEIRI=t.KEY_CONTEXT_PATTERN_PARENTMETADATA=t.KEY_CONTEXT_BGP_PATTERNBINDINGS=t.KEY_CONTEXT_BGP_PARENTMETADATA=t.KEY_CONTEXT_BGP_CURRENTMETADATA=void 0;const n=r(0),i=r(123);t.KEY_CONTEXT_BGP_CURRENTMETADATA="@comunica/bus-query-operation:bgpCurrentMetadata",t.KEY_CONTEXT_BGP_PARENTMETADATA="@comunica/bus-query-operation:bgpParentMetadata",t.KEY_CONTEXT_BGP_PATTERNBINDINGS="@comunica/bus-query-operation:bgpPatternBindings",t.KEY_CONTEXT_PATTERN_PARENTMETADATA="@comunica/bus-query-operation:patternParentMetadata",t.KEY_CONTEXT_BASEIRI="@comunica/actor-init-sparql:baseIRI",t.KEY_CONTEXT_QUERY_TIMESTAMP="@comunica/actor-init-sparql:queryTimestamp";class a extends n.Actor{constructor(e){super(e)}static getSafeBindings(e){return a.validateQueryOutput(e,"bindings"),e}static getSafeQuads(e){return a.validateQueryOutput(e,"quads"),e}static getSafeBoolean(e){return a.validateQueryOutput(e,"boolean"),e}static cachifyMetadata(e){let t;return e&&(()=>t||(t=e()))}static validateQueryOutput(e,t){if(e.type!==t)throw new Error(`Invalid query output type: Expected '${t}' but got '${e.type}'`)}static getExpressionContext(e,r){if(e){const n=e.get(t.KEY_CONTEXT_QUERY_TIMESTAMP),i=e.get(t.KEY_CONTEXT_BASEIRI);return Object.assign({now:n,baseIRI:i},r?{exists:a.createExistenceResolver(e,r)}:{})}return{}}static createExistenceResolver(e,t){return async(r,n)=>{const s=i.materializeOperation(r.input,n),o=await t.mediate({operation:s,context:e}),c=a.getSafeBindings(o);return new Promise((e,t)=>{c.bindingsStream.on("end",()=>{e(!1)}),c.bindingsStream.on("error",t),c.bindingsStream.on("data",()=>{c.bindingsStream.close(),e(!0)})}).then(e=>r.not?!e:e)}}}t.ActorQueryOperation=a,t.getMetadata=function(e){return e.metadata?e.metadata():Promise.resolve({})}},function(e,t,r){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.materializeOperation=t.materializeTerm=t.ensureBindings=t.isBindings=t.Bindings=void 0;const n=r(23),i=r(5),a=r(7);function s(e){return n.Map(e)}function o(e){return n.Map.isMap(e)}function c(e,t){if("Variable"===e.termType){const r=t.get(i.termToString(e));if(r)return r}return e}t.Bindings=s,t.isBindings=o,t.ensureBindings=function(e){return o(e)?e:s(e)},t.materializeTerm=c,t.materializeOperation=function e(t,r,n=!1){return a.Util.mapOperation(t,{path:(e,t)=>({recurse:!1,result:t.createPath(c(e.subject,r),e.predicate,c(e.object,r),c(e.graph,r))}),pattern:(e,t)=>({recurse:!1,result:t.createPattern(c(e.subject,r),c(e.predicate,r),c(e.object,r),c(e.graph,r))}),extend(t){if(r.has(i.termToString(t.variable))){if(n)throw new Error(`Tried to bind variable ${i.termToString(t.variable)} in a BIND operator.`);return{recurse:!0,result:e(t.input,r,n)}}return{recurse:!0,result:t}},group(e,t){if(n){for(const t of e.variables)if(r.has(i.termToString(t)))throw new Error(`Tried to bind variable ${i.termToString(t)} in a GROUP BY operator.`);return{recurse:!0,result:e}}const a=e.variables.filter(e=>!r.has(i.termToString(e)));return{recurse:!0,result:t.createGroup(e.input,a,e.aggregates)}},project(e,t){if(n){for(const t of e.variables)if(r.has(i.termToString(t)))throw new Error(`Tried to bind variable ${i.termToString(t)} in a SELECT operator.`);return{recurse:!0,result:e}}const a=e.variables.filter(e=>!r.has(i.termToString(e)));return{recurse:!0,result:t.createProject(e.input,a)}},values(e,t){if(!n){const n=e.variables.filter(e=>!r.has(i.termToString(e))),a=e.bindings.map(e=>{const t=Object.assign({},e);return r.forEach((e,r)=>delete t[r]),t});return{recurse:!0,result:t.createValues(n,a)}}for(const t of e.variables)if(r.has(i.termToString(t)))throw new Error(`Tried to bind variable ${i.termToString(t)} in a VALUES operator.`);return{recurse:!1,result:e}},expression(e,t){if("term"===e.expressionType)return{recurse:!1,result:t.createTermExpression(c(e.term,r))};if("aggregate"===e.expressionType&&"variable"in e&&r.has(i.termToString(e.variable))){if(n)throw new Error(`Tried to bind ${i.termToString(e.variable)} in a ${e.aggregator} aggregate.`);return{recurse:!0,result:e}}return{recurse:!0,result:e}}})}},function(e,t){e.exports=function(e){return e.webpackPolyfill||(e.deprecate=function(){},e.paths=[],e.children||(e.children=[]),Object.defineProperty(e,"loaded",{enumerable:!0,get:function(){return e.l}}),Object.defineProperty(e,"id",{enumerable:!0,get:function(){return e.i}}),e.webpackPolyfill=1),e}},function(e,t,r){const{Term:n}=r(42);class i extends n{constructor(){return super(""),a||this}equals(e){return e&&this.termType===e.termType}}Object.defineProperty(i.prototype,"value",{enumerable:!0,value:"*"}),Object.defineProperty(i.prototype,"termType",{enumerable:!0,value:"Wildcard"});var a=new i;e.exports.Wildcard=i},function(e,t,r){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.ActorQueryOperationTyped=t.KEY_CONTEXT_QUERYOPERATION=void 0;const n=r(122);t.KEY_CONTEXT_QUERYOPERATION="@comunica/bus-query-operation:operation";class i extends n.ActorQueryOperation{constructor(e,t){if(super(Object.assign(Object.assign({},e),{operationName:t})),!this.operationName)throw new Error('A valid "operationName" argument must be provided.')}async test(e){if(!e.operation)throw new Error("Missing field 'operation' in a query operation action.");if(e.operation.type!==this.operationName)throw new Error(`Actor ${this.name} only supports ${this.operationName} operations, but got ${e.operation.type}`);const t=e.operation;return this.testOperation(t,e.context)}async run(e){const r=e.operation,i=e.context&&e.context.set(t.KEY_CONTEXT_QUERYOPERATION,r),a=await this.runOperation(r,i);return a.metadata&&(a.metadata=n.ActorQueryOperation.cachifyMetadata(a.metadata)),a}}t.ActorQueryOperationTyped=i},function(e,t,r){const n=r(295),i=r(296),a=r(297),s=r(298),o=r(299);e.exports={DynamicNestedLoopJoin:n,HashJoin:i,NestedLoopJoin:a,SymmetricHashJoin:s,MergeStream:o}},function(e,t,r){"use strict";var n=this&&this.__createBinding||(Object.create?function(e,t,r,n){void 0===n&&(n=r),Object.defineProperty(e,n,{enumerable:!0,get:function(){return t[r]}})}:function(e,t,r,n){void 0===n&&(n=r),e[n]=t[r]}),i=this&&this.__exportStar||function(e,t){for(var r in e)"default"===r||Object.prototype.hasOwnProperty.call(t,r)||n(t,e,r)};Object.defineProperty(t,"__esModule",{value:!0}),i(r(300),t)},function(e,t,r){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.ActorRdfResolveQuadPattern=t.getDataSourceContext=t.getDataSourceValue=t.getDataSourceType=t.isDataSourceRawType=t.KEY_CONTEXT_SOURCE=t.KEY_CONTEXT_SOURCES=void 0;const n=r(0);function i(e){return"string"==typeof e||"match"in e}function a(e){return"string"==typeof e?"":"match"in e?"rdfjsSource":e.type}function s(e){return i(e)?e:e.value}t.KEY_CONTEXT_SOURCES="@comunica/bus-rdf-resolve-quad-pattern:sources",t.KEY_CONTEXT_SOURCE="@comunica/bus-rdf-resolve-quad-pattern:source",t.isDataSourceRawType=i,t.getDataSourceType=a,t.getDataSourceValue=s,t.getDataSourceContext=function(e,t){return"string"==typeof e||"match"in e||!e.context?t:t.merge(e.context)};class o extends n.Actor{constructor(e){super(e)}getContextSources(e){return e?e.get(t.KEY_CONTEXT_SOURCES):void 0}getContextSource(e){return e?e.get(t.KEY_CONTEXT_SOURCE):void 0}getContextSourceUrl(e){if(e){let t=s(e);if("string"==typeof t){const e=t.indexOf("#");return e>=0&&(t=t.slice(0,e)),t}}}hasContextSingleSource(e){const t=this.getContextSource(e);return Boolean(t&&(i(t)||t.value))}hasContextSingleSourceOfType(e,t){const r=this.getContextSource(t);return Boolean(r&&a(r)===e&&s(r))}}t.ActorRdfResolveQuadPattern=o},function(e,t,r){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.RdfJsQuadSource=void 0;const n=r(3);class i{constructor(e){this.source=e}static nullifyVariables(e){return e&&"Variable"!==e.termType?e:void 0}match(e,t,r,a){const s=this.source.match(i.nullifyVariables(e),i.nullifyVariables(t),i.nullifyVariables(r),i.nullifyVariables(a)),o=n.wrap(s,{autoStart:!1});return this.setMetadata(o,e,t,r,a).catch(e=>o.destroy(e)),o}async setMetadata(e,t,r,n,a){let s;if(this.source.countQuads)s=await this.source.countQuads(i.nullifyVariables(t),i.nullifyVariables(r),i.nullifyVariables(n),i.nullifyVariables(a));else{let e=0;s=await new Promise((s,o)=>{const c=this.source.match(i.nullifyVariables(t),i.nullifyVariables(r),i.nullifyVariables(n),i.nullifyVariables(a));c.on("error",o),c.on("end",()=>s(e)),c.on("data",()=>e++)})}e.setProperty("metadata",{totalItems:s})}}t.RdfJsQuadSource=i},function(e,t,r){"use strict";var n=this&&this.__createBinding||(Object.create?function(e,t,r,n){void 0===n&&(n=r),Object.defineProperty(e,n,{enumerable:!0,get:function(){return t[r]}})}:function(e,t,r,n){void 0===n&&(n=r),e[n]=t[r]}),i=this&&this.__exportStar||function(e,t){for(var r in e)"default"===r||Object.prototype.hasOwnProperty.call(t,r)||n(t,e,r)};Object.defineProperty(t,"__esModule",{value:!0}),i(r(304),t)},function(e,t,r){"use strict";var n=this&&this.__createBinding||(Object.create?function(e,t,r,n){void 0===n&&(n=r),Object.defineProperty(e,n,{enumerable:!0,get:function(){return t[r]}})}:function(e,t,r,n){void 0===n&&(n=r),e[n]=t[r]}),i=this&&this.__exportStar||function(e,t){for(var r in e)"default"===r||Object.prototype.hasOwnProperty.call(t,r)||n(t,e,r)};Object.defineProperty(t,"__esModule",{value:!0}),i(r(133),t),i(r(305),t)},function(e,t,r){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.ActorRdfMetadata=void 0;const n=r(0);class i extends n.Actor{constructor(e){super(e)}}t.ActorRdfMetadata=i},function(e,t,r){"use strict";var n=this&&this.__createBinding||(Object.create?function(e,t,r,n){void 0===n&&(n=r),Object.defineProperty(e,n,{enumerable:!0,get:function(){return t[r]}})}:function(e,t,r,n){void 0===n&&(n=r),e[n]=t[r]}),i=this&&this.__exportStar||function(e,t){for(var r in e)"default"===r||Object.prototype.hasOwnProperty.call(t,r)||n(t,e,r)};Object.defineProperty(t,"__esModule",{value:!0}),i(r(306),t)},function(e,t,r){"use strict";var n=this&&this.__createBinding||(Object.create?function(e,t,r,n){void 0===n&&(n=r),Object.defineProperty(e,n,{enumerable:!0,get:function(){return t[r]}})}:function(e,t,r,n){void 0===n&&(n=r),e[n]=t[r]}),i=this&&this.__exportStar||function(e,t){for(var r in e)"default"===r||Object.prototype.hasOwnProperty.call(t,r)||n(t,e,r)};Object.defineProperty(t,"__esModule",{value:!0}),i(r(307),t)},function(e,t,r){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.ActorRdfMetadataExtract=void 0;const n=r(0);class i extends n.Actor{constructor(e){super(e)}}t.ActorRdfMetadataExtract=i},function(e,t,r){"use strict";var n=this&&this.__createBinding||(Object.create?function(e,t,r,n){void 0===n&&(n=r),Object.defineProperty(e,n,{enumerable:!0,get:function(){return t[r]}})}:function(e,t,r,n){void 0===n&&(n=r),e[n]=t[r]}),i=this&&this.__exportStar||function(e,t){for(var r in e)"default"===r||Object.prototype.hasOwnProperty.call(t,r)||n(t,e,r)};Object.defineProperty(t,"__esModule",{value:!0}),i(r(311),t)},function(e,t,r){"use strict";function n(e){for(var r in e)t.hasOwnProperty(r)||(t[r]=e[r])}Object.defineProperty(t,"__esModule",{value:!0}),n(r(313)),n(r(314)),n(r(315)),n(r(316)),n(r(317))},function(e,t,r){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.SparqlJsonBindingsTransformer=void 0;const n=r(2);class i extends n.Transform{constructor(e){super({objectMode:!0}),this.parser=e}_transform(e,t,r){r(null,this.parser.parseJsonBindings(e))}}t.SparqlJsonBindingsTransformer=i},function(e,t,r){(function(t){var r={},n=r.LEFT_BRACE=1,i=r.RIGHT_BRACE=2,a=r.LEFT_BRACKET=3,s=r.RIGHT_BRACKET=4,o=r.COLON=5,c=r.COMMA=6,u=r.TRUE=7,l=r.FALSE=8,d=r.NULL=9,p=r.STRING=10,h=r.NUMBER=11,f=r.START=17,m=r.STOP=18,g=r.TRUE1=33,y=r.TRUE2=34,b=r.TRUE3=35,_=r.FALSE1=49,v=r.FALSE2=50,w=r.FALSE3=51,S=r.FALSE4=52,E=r.NULL1=65,T=r.NULL2=66,O=r.NULL3=67,x=r.NUMBER1=81,A=r.NUMBER3=83,R=r.STRING1=97,I=r.STRING2=98,P=r.STRING3=99,N=r.STRING4=100,C=r.STRING5=101,j=r.STRING6=102,D=r.VALUE=113,k=r.KEY=114,L=r.OBJECT=129,M=r.ARRAY=130,F="\\".charCodeAt(0),q="/".charCodeAt(0),B="\b".charCodeAt(0),U="\f".charCodeAt(0),V="\n".charCodeAt(0),Q="\r".charCodeAt(0),H="\t".charCodeAt(0);function G(){this.tState=f,this.value=void 0,this.string=void 0,this.stringBuffer=t.alloc?t.alloc(65536):new t(65536),this.stringBufferOffset=0,this.unicode=void 0,this.highSurrogate=void 0,this.key=void 0,this.mode=void 0,this.stack=[],this.state=D,this.bytes_remaining=0,this.bytes_in_sequence=0,this.temp_buffs={2:new t(2),3:new t(3),4:new t(4)},this.offset=-1}G.toknam=function(e){for(var t=Object.keys(r),n=0,i=t.length;n=65536&&(this.string+=this.stringBuffer.toString("utf8"),this.stringBufferOffset=0),this.stringBuffer[this.stringBufferOffset++]=e},z.appendStringBuf=function(e,t,r){var n=e.length;"number"==typeof t&&(n="number"==typeof r?r<0?e.length-t+r:r-t:e.length-t),n<0&&(n=0),this.stringBufferOffset+n>65536&&(this.string+=this.stringBuffer.toString("utf8",0,this.stringBufferOffset),this.stringBufferOffset=0),e.copy(this.stringBuffer,this.stringBufferOffset,t,r),this.stringBufferOffset+=n},z.write=function(e){var r;"string"==typeof e&&(e=new t(e));for(var m=0,D=e.length;m=48&&r<64)this.string=String.fromCharCode(r),this.tState=A;else if(32!==r&&9!==r&&10!==r&&13!==r)return this.charError(e,m)}else if(this.tState===R)if(r=e[m],this.bytes_remaining>0){for(var k=0;k=128){if(r<=193||r>244)return this.onError(new Error("Invalid UTF-8 character at position "+m+" in state "+G.toknam(this.tState)));if(r>=194&&r<=223&&(this.bytes_in_sequence=2),r>=224&&r<=239&&(this.bytes_in_sequence=3),r>=240&&r<=244&&(this.bytes_in_sequence=4),this.bytes_in_sequence+m>e.length){for(var L=0;L<=e.length-1-m;L++)this.temp_buffs[this.bytes_in_sequence][L]=e[m+L];this.bytes_remaining=m+this.bytes_in_sequence-e.length,m=e.length-1}else this.appendStringBuf(e,m,m+this.bytes_in_sequence),m=m+this.bytes_in_sequence-1}else if(34===r)this.tState=f,this.string+=this.stringBuffer.toString("utf8",0,this.stringBufferOffset),this.stringBufferOffset=0,this.onToken(p,this.string),this.offset+=t.byteLength(this.string,"utf8")+1,this.string=void 0;else if(92===r)this.tState=I;else{if(!(r>=32))return this.charError(e,m);this.appendStringChar(r)}else if(this.tState===I)if(34===(r=e[m]))this.appendStringChar(r),this.tState=R;else if(92===r)this.appendStringChar(F),this.tState=R;else if(47===r)this.appendStringChar(q),this.tState=R;else if(98===r)this.appendStringChar(B),this.tState=R;else if(102===r)this.appendStringChar(U),this.tState=R;else if(110===r)this.appendStringChar(V),this.tState=R;else if(114===r)this.appendStringChar(Q),this.tState=R;else if(116===r)this.appendStringChar(H),this.tState=R;else{if(117!==r)return this.charError(e,m);this.unicode="",this.tState=P}else if(this.tState===P||this.tState===N||this.tState===C||this.tState===j){if(!((r=e[m])>=48&&r<64||r>64&&r<=70||r>96&&r<=102))return this.charError(e,m);if(this.unicode+=String.fromCharCode(r),this.tState++===j){var M=parseInt(this.unicode,16);this.unicode=void 0,void 0!==this.highSurrogate&&M>=56320&&M<57344?(this.appendStringBuf(new t(String.fromCharCode(this.highSurrogate,M))),this.highSurrogate=void 0):void 0===this.highSurrogate&&M>=55296&&M<56320?this.highSurrogate=M:(void 0!==this.highSurrogate&&(this.appendStringBuf(new t(String.fromCharCode(this.highSurrogate))),this.highSurrogate=void 0),this.appendStringBuf(new t(String.fromCharCode(M)))),this.tState=R}}else if(this.tState===x||this.tState===A)switch(r=e[m]){case 48:case 49:case 50:case 51:case 52:case 53:case 54:case 55:case 56:case 57:case 46:case 101:case 69:case 43:case 45:this.string+=String.fromCharCode(r),this.tState=A;break;default:this.tState=f;var z=Number(this.string);if(isNaN(z))return this.charError(e,m);this.string.match(/[0-9]+/)==this.string&&z.toString()!=this.string?this.onToken(p,this.string):this.onToken(h,z),this.offset+=this.string.length-1,this.string=void 0,m--}else if(this.tState===g){if(114!==e[m])return this.charError(e,m);this.tState=y}else if(this.tState===y){if(117!==e[m])return this.charError(e,m);this.tState=b}else if(this.tState===b){if(101!==e[m])return this.charError(e,m);this.tState=f,this.onToken(u,!0),this.offset+=3}else if(this.tState===_){if(97!==e[m])return this.charError(e,m);this.tState=v}else if(this.tState===v){if(108!==e[m])return this.charError(e,m);this.tState=w}else if(this.tState===w){if(115!==e[m])return this.charError(e,m);this.tState=S}else if(this.tState===S){if(101!==e[m])return this.charError(e,m);this.tState=f,this.onToken(l,!1),this.offset+=4}else if(this.tState===E){if(117!==e[m])return this.charError(e,m);this.tState=T}else if(this.tState===T){if(108!==e[m])return this.charError(e,m);this.tState=O}else if(this.tState===O){if(108!==e[m])return this.charError(e,m);this.tState=f,this.onToken(d,null),this.offset+=3}},z.onToken=function(e,t){},z.parseError=function(e,t){this.tState=m,this.onError(new Error("Unexpected "+G.toknam(e)+(t?"("+JSON.stringify(t)+")":"")+" in state "+G.toknam(this.state)))},z.push=function(){this.stack.push({value:this.value,key:this.key,mode:this.mode})},z.pop=function(){var e=this.value,t=this.stack.pop();this.value=t.value,this.key=t.key,this.mode=t.mode,this.emit(e),this.mode||(this.state=D)},z.emit=function(e){this.mode&&(this.state=c),this.onValue(e)},z.onValue=function(e){},z.onToken=function(e,t){if(this.state===D)if(e===p||e===h||e===u||e===l||e===d)this.value&&(this.value[this.key]=t),this.emit(t);else if(e===n)this.push(),this.value?this.value=this.value[this.key]={}:this.value={},this.key=void 0,this.state=k,this.mode=L;else if(e===a)this.push(),this.value?this.value=this.value[this.key]=[]:this.value=[],this.key=0,this.mode=M,this.state=D;else if(e===i){if(this.mode!==L)return this.parseError(e,t);this.pop()}else{if(e!==s)return this.parseError(e,t);if(this.mode!==M)return this.parseError(e,t);this.pop()}else if(this.state===k)if(e===p)this.key=t,this.state=o;else{if(e!==i)return this.parseError(e,t);this.pop()}else if(this.state===o){if(e!==o)return this.parseError(e,t);this.state=D}else{if(this.state!==c)return this.parseError(e,t);if(e===c)this.mode===M?(this.key++,this.state=D):this.mode===L&&(this.state=k);else{if(!(e===s&&this.mode===M||e===i&&this.mode===L))return this.parseError(e,t);this.pop()}}},G.C=r,e.exports=G}).call(this,r(14).Buffer)},function(e,t,r){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.storeStream=void 0;const n=r(42);t.storeStream=function(e){const t=new n.Store;return new Promise(r=>t.import(e).once("end",()=>r(t)))}},function(e,t,r){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.GraphQlQueryEngine=void 0;const n=r(143);t.GraphQlQueryEngine=class{constructor(e){this.comunicaEngine=e}async query(e,t){const{data:r}=await this.comunicaEngine.resultToString(await this.comunicaEngine.query(e,t),"application/sparql-results+json");return JSON.parse(await n(r))}}},function(e,t,r){var n=r(321);e.exports=function(e,t,r){"function"==typeof t&&(r=t,t=null),r=r||function(){};var i="";return new n((function(n,a){e.on("data",(function(e){i+="string"==typeof t?e.toString(t):e.toString()})),e.on("end",(function(){n(i),r(null,i)})),e.on("error",(function(e){a(e),r(e)}))}))}},function(e,t,r){"use strict";var n=this&&this.__createBinding||(Object.create?function(e,t,r,n){void 0===n&&(n=r),Object.defineProperty(e,n,{enumerable:!0,get:function(){return t[r]}})}:function(e,t,r,n){void 0===n&&(n=r),e[n]=t[r]}),i=this&&this.__exportStar||function(e,t){for(var r in e)"default"===r||Object.prototype.hasOwnProperty.call(t,r)||n(t,e,r)};Object.defineProperty(t,"__esModule",{value:!0}),i(r(323),t)},function(e,t,r){"use strict";var n=this&&this.__createBinding||(Object.create?function(e,t,r,n){void 0===n&&(n=r),Object.defineProperty(e,n,{enumerable:!0,get:function(){return t[r]}})}:function(e,t,r,n){void 0===n&&(n=r),e[n]=t[r]}),i=this&&this.__exportStar||function(e,t){for(var r in e)"default"===r||Object.prototype.hasOwnProperty.call(t,r)||n(t,e,r)};Object.defineProperty(t,"__esModule",{value:!0}),i(r(324),t)},function(e,t,r){"use strict";var n=this&&this.__createBinding||(Object.create?function(e,t,r,n){void 0===n&&(n=r),Object.defineProperty(e,n,{enumerable:!0,get:function(){return t[r]}})}:function(e,t,r,n){void 0===n&&(n=r),e[n]=t[r]}),i=this&&this.__exportStar||function(e,t){for(var r in e)"default"===r||Object.prototype.hasOwnProperty.call(t,r)||n(t,e,r)};Object.defineProperty(t,"__esModule",{value:!0}),i(r(325),t)},function(e,t,r){"use strict";var n=this&&this.__createBinding||(Object.create?function(e,t,r,n){void 0===n&&(n=r),Object.defineProperty(e,n,{enumerable:!0,get:function(){return t[r]}})}:function(e,t,r,n){void 0===n&&(n=r),e[n]=t[r]}),i=this&&this.__exportStar||function(e,t){for(var r in e)"default"===r||Object.prototype.hasOwnProperty.call(t,r)||n(t,e,r)};Object.defineProperty(t,"__esModule",{value:!0}),i(r(327),t)},function(e,t,r){"use strict";var n=this&&this.__createBinding||(Object.create?function(e,t,r,n){void 0===n&&(n=r),Object.defineProperty(e,n,{enumerable:!0,get:function(){return t[r]}})}:function(e,t,r,n){void 0===n&&(n=r),e[n]=t[r]}),i=this&&this.__exportStar||function(e,t){for(var r in e)"default"===r||Object.prototype.hasOwnProperty.call(t,r)||n(t,e,r)};Object.defineProperty(t,"__esModule",{value:!0}),i(r(149),t),i(r(330),t)},function(e,t,r){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.ActorHttpInvalidate=void 0;const n=r(0);class i extends n.Actor{constructor(e){super(e)}}t.ActorHttpInvalidate=i},function(e,t,r){"use strict";var n=this&&this.__createBinding||(Object.create?function(e,t,r,n){void 0===n&&(n=r),Object.defineProperty(e,n,{enumerable:!0,get:function(){return t[r]}})}:function(e,t,r,n){void 0===n&&(n=r),e[n]=t[r]}),i=this&&this.__exportStar||function(e,t){for(var r in e)"default"===r||Object.prototype.hasOwnProperty.call(t,r)||n(t,e,r)};Object.defineProperty(t,"__esModule",{value:!0}),i(r(331),t)},function(e,t,r){"use strict";var n=this&&this.__createBinding||(Object.create?function(e,t,r,n){void 0===n&&(n=r),Object.defineProperty(e,n,{enumerable:!0,get:function(){return t[r]}})}:function(e,t,r,n){void 0===n&&(n=r),e[n]=t[r]}),i=this&&this.__exportStar||function(e,t){for(var r in e)"default"===r||Object.prototype.hasOwnProperty.call(t,r)||n(t,e,r)};Object.defineProperty(t,"__esModule",{value:!0}),i(r(332),t)},function(e,t,r){"use strict";var n=this&&this.__createBinding||(Object.create?function(e,t,r,n){void 0===n&&(n=r),Object.defineProperty(e,n,{enumerable:!0,get:function(){return t[r]}})}:function(e,t,r,n){void 0===n&&(n=r),e[n]=t[r]}),i=this&&this.__exportStar||function(e,t){for(var r in e)"default"===r||Object.prototype.hasOwnProperty.call(t,r)||n(t,e,r)};Object.defineProperty(t,"__esModule",{value:!0}),i(r(333),t)},function(e,t,r){"use strict";var n=this&&this.__createBinding||(Object.create?function(e,t,r,n){void 0===n&&(n=r),Object.defineProperty(e,n,{enumerable:!0,get:function(){return t[r]}})}:function(e,t,r,n){void 0===n&&(n=r),e[n]=t[r]}),i=this&&this.__exportStar||function(e,t){for(var r in e)"default"===r||Object.prototype.hasOwnProperty.call(t,r)||n(t,e,r)};Object.defineProperty(t,"__esModule",{value:!0}),i(r(335),t)},function(e,t,r){"use strict";var n=this&&this.__createBinding||(Object.create?function(e,t,r,n){void 0===n&&(n=r),Object.defineProperty(e,n,{enumerable:!0,get:function(){return t[r]}})}:function(e,t,r,n){void 0===n&&(n=r),e[n]=t[r]}),i=this&&this.__exportStar||function(e,t){for(var r in e)"default"===r||Object.prototype.hasOwnProperty.call(t,r)||n(t,e,r)};Object.defineProperty(t,"__esModule",{value:!0}),i(r(338),t)},function(e,t,r){"use strict";var n=this&&this.__createBinding||(Object.create?function(e,t,r,n){void 0===n&&(n=r),Object.defineProperty(e,n,{enumerable:!0,get:function(){return t[r]}})}:function(e,t,r,n){void 0===n&&(n=r),e[n]=t[r]}),i=this&&this.__exportStar||function(e,t){for(var r in e)"default"===r||Object.prototype.hasOwnProperty.call(t,r)||n(t,e,r)};Object.defineProperty(t,"__esModule",{value:!0}),i(r(342),t)},function(e,t,r){"use strict";var n=this&&this.__createBinding||(Object.create?function(e,t,r,n){void 0===n&&(n=r),Object.defineProperty(e,n,{enumerable:!0,get:function(){return t[r]}})}:function(e,t,r,n){void 0===n&&(n=r),e[n]=t[r]}),i=this&&this.__exportStar||function(e,t){for(var r in e)"default"===r||Object.prototype.hasOwnProperty.call(t,r)||n(t,e,r)};Object.defineProperty(t,"__esModule",{value:!0}),i(r(343),t)},function(e,t,r){"use strict";var n=this&&this.__createBinding||(Object.create?function(e,t,r,n){void 0===n&&(n=r),Object.defineProperty(e,n,{enumerable:!0,get:function(){return t[r]}})}:function(e,t,r,n){void 0===n&&(n=r),e[n]=t[r]}),i=this&&this.__exportStar||function(e,t){for(var r in e)"default"===r||Object.prototype.hasOwnProperty.call(t,r)||n(t,e,r)};Object.defineProperty(t,"__esModule",{value:!0}),i(r(345),t)},function(e,t,r){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.JsonLdParser=void 0;const n=r(140),i=r(8),a=r(2),s=r(347),o=r(159),c=r(352),u=r(54),l=r(353),d=r(354),p=r(355),h=r(356),f=r(357),m=r(358),g=r(359),y=r(360),b=r(361),_=r(26),v=r(80);class w extends a.Transform{constructor(e){super({readableObjectMode:!0}),e=e||{},this.options=e,this.parsingContext=new b.ParsingContext(Object.assign({parser:this},e)),this.util=new _.Util({dataFactory:e.dataFactory,parsingContext:this.parsingContext}),this.jsonParser=new n,this.contextJobs=[],this.typeJobs=[],this.contextAwaitingJobs=[],this.lastDepth=0,this.lastKeys=[],this.lastOnValueJob=Promise.resolve(),this.attachJsonParserListeners()}static fromHttpResponse(e,t,r,n){let a,s;if("application/ld+json"!==t){if("application/json"!==t&&!t.endsWith("+json"))throw new i.ErrorCoded("Unsupported JSON-LD media type "+t,i.ERROR_CODES.LOADING_DOCUMENT_FAILED);if(r&&r.has("Link")&&r.forEach((t,r)=>{if("link"===r){const r=v.parse(t);for(const t of r.get("rel","http://www.w3.org/ns/json-ld#context")){if(a)throw new i.ErrorCoded("Multiple JSON-LD context link headers were found on "+e,i.ERROR_CODES.MULTIPLE_CONTEXT_LINK_HEADERS);a=t.uri}}}),!a)throw new i.ErrorCoded(`Missing context link header for media type ${t} on ${e}`,i.ERROR_CODES.LOADING_DOCUMENT_FAILED)}if(r&&r.has("Content-Type")){const e=r.get("Content-Type"),t=/; *profile=([^"]*)/.exec(e);t&&"http://www.w3.org/ns/json-ld#streaming"===t[1]&&(s=!0)}return new w(Object.assign({baseIRI:e,context:a,streamingProfile:s},n||{}))}import(e){const t=new a.PassThrough({readableObjectMode:!0});e.on("error",e=>r.emit("error",e)),e.on("data",e=>t.push(e)),e.on("end",()=>t.push(null));const r=t.pipe(new w(this.options));return r}_transform(e,t,r){this.jsonParser.write(e),this.lastOnValueJob.then(()=>r(),e=>r(e))}async newOnValueJob(e,t,r,n){let a=!0;if(n&&r1&&(l=this.parsingContext.validationStack[this.parsingContext.validationStack.length-1].property);for(let t=Math.max(1,this.parsingContext.validationStack.length-1);t=0?this.parsingContext.idStack[e-r-1]:[await this.util.getGraphContainerValue(t,e)];if(a)for(const t of a){this.parsingContext.emittedStack[e]=!0;for(const r of n)r.reverse?this.parsingContext.emitQuad(e,this.util.dataFactory.quad(r.object,r.predicate,i,t)):this.parsingContext.emitQuad(e,this.util.dataFactory.quad(i,r.predicate,r.object,t))}else{const r=this.parsingContext.getUnidentifiedGraphBufferSafe(e-await this.util.getDepthOffsetGraph(e,t)-1);for(const e of n)e.reverse?r.push({object:i,predicate:e.predicate,subject:e.object}):r.push({object:e.object,predicate:e.predicate,subject:i})}}this.parsingContext.unidentifiedValuesBuffer.splice(e,1),this.parsingContext.literalStack.splice(e,1),this.parsingContext.jsonLiteralStack.splice(e,1)}const i=this.parsingContext.unidentifiedGraphsBuffer[e];if(i){for(const t of r){const r=1!==e||"BlankNode"!==t.termType||this.parsingContext.topLevelProperties?t:this.util.getDefaultGraph();this.parsingContext.emittedStack[e]=!0;for(const t of i)this.parsingContext.emitQuad(e,this.util.dataFactory.quad(t.subject,t.predicate,t.object,r))}this.parsingContext.unidentifiedGraphsBuffer.splice(e,1)}}async validateKey(e,t,r){for(const n of w.ENTRY_HANDLERS)if(await n.validate(this.parsingContext,this.util,e,t,r))return{valid:!0,property:r||n.isPropertyHandler()};return{valid:!1,property:!1}}attachJsonParserListeners(){this.jsonParser.onValue=e=>{const t=this.jsonParser.stack.length,r=new Array(t+1).fill(0).map((e,r)=>r===t?this.jsonParser.key:this.jsonParser.stack[r].key);if(!this.isParsingContextInner(t)){const n=()=>this.newOnValueJob(r,e,t,!0);if(this.parsingContext.streamingProfile||this.parsingContext.contextTree.getContext(r.slice(0,-1)))this.lastOnValueJob=this.lastOnValueJob.then(n);else if("@context"===r[t]){let e=this.contextJobs[t];e||(e=this.contextJobs[t]=[]),e.push(n)}else"@type"===r[t]||"number"==typeof r[t]&&"@type"===r[t-1]?this.typeJobs.push({job:n,keys:r.slice(0,r.length-1)}):this.contextAwaitingJobs.push({job:n,keys:r});this.parsingContext.streamingProfile||0!==t||(this.lastOnValueJob=this.lastOnValueJob.then(()=>this.executeBufferedJobs()))}},this.jsonParser.onError=e=>{this.emit("error",e)}}isParsingContextInner(e){for(let t=e;t>0;t--)if("@context"===this.jsonParser.stack[t-1].key)return!0;return!1}async executeBufferedJobs(){for(const e of this.contextJobs)if(e)for(const t of e)await t();this.parsingContext.unaliasedKeywordCacheStack.splice(0);for(const e of this.contextAwaitingJobs){if(this.typeJobs.length>0){const t=[],r=[];for(let n=0;ne.keys.length-t.keys.length);for(const e of n)await e.job();const i=r.sort().reverse();for(const e of i)this.typeJobs.splice(e,1)}await e.job()}}}t.JsonLdParser=w,w.DEFAULT_PROCESSING_MODE="1.1",w.ENTRY_HANDLERS=[new s.EntryHandlerArrayValue,new l.EntryHandlerKeywordContext,new p.EntryHandlerKeywordId,new h.EntryHandlerKeywordIncluded,new d.EntryHandlerKeywordGraph,new f.EntryHandlerKeywordNest,new m.EntryHandlerKeywordType,new y.EntryHandlerKeywordValue,new o.EntryHandlerContainer,new g.EntryHandlerKeywordUnknownFallback,new u.EntryHandlerPredicate,new c.EntryHandlerInvalidFallback]},function(e,t,r){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.EntryHandlerContainer=void 0;const n=r(348),i=r(349),a=r(350),s=r(351),o=r(26);class c{static isSimpleGraphContainer(e){return"@graph"in e&&("@set"in e&&2===Object.keys(e).length||1===Object.keys(e).length)}static isComplexGraphContainer(e){return"@graph"in e&&("@set"in e&&Object.keys(e).length>2||!("@set"in e)&&Object.keys(e).length>1)}static getContainerGraphIndex(e,t,r){let n=c.isSimpleGraphContainer(e),i="";for(let e=t;e=0;e--)if("number"!=typeof t[e]){const r=o.Util.getContextValue(a,"@container",t[e],!1);if(r&&c.isSimpleGraphContainer(r))return{containers:r,depth:e+1,fallback:!1};const s=o.Util.getContextValue(a,"@container",t[e-1],!1);if(s){const t="@graph"in s;for(const r in c.CONTAINER_HANDLERS)if(s[r])return t?c.CONTAINER_HANDLERS[r].canCombineWithGraph()?{containers:s,depth:e,fallback:!1}:n:i?n:{containers:s,depth:e,fallback:!1};return n}if(i)return n;i=!0}return n}static async isBufferableContainerHandler(e,t,r){const n=await c.getContainerHandler(e,t,r);return!n.fallback&&!("@graph"in n.containers)}isPropertyHandler(){return!1}isStackProcessor(){return!0}async validate(e,t,r,n,i){return!!await this.test(e,t,null,r,n)}async test(e,t,r,n,i){const a=o.Util.getContextValueContainer(await e.getContext(n,2),n[i-1]);for(const e in c.CONTAINER_HANDLERS)if(a[e])return{containers:a,handler:c.CONTAINER_HANDLERS[e]};return null}async handle(e,t,r,n,i,a,s){return s.handler.handle(s.containers,e,t,n,i,a)}}t.EntryHandlerContainer=c,c.CONTAINER_HANDLERS={"@id":new n.ContainerHandlerIdentifier,"@index":new i.ContainerHandlerIndex,"@language":new a.ContainerHandlerLanguage,"@type":new s.ContainerHandlerType}},function(e,t,r){"use strict";var n=this&&this.__createBinding||(Object.create?function(e,t,r,n){void 0===n&&(n=r),Object.defineProperty(e,n,{enumerable:!0,get:function(){return t[r]}})}:function(e,t,r,n){void 0===n&&(n=r),e[n]=t[r]}),i=this&&this.__exportStar||function(e,t){for(var r in e)"default"===r||Object.prototype.hasOwnProperty.call(t,r)||n(t,e,r)};Object.defineProperty(t,"__esModule",{value:!0}),i(r(161),t),i(r(367),t)},function(e,t,r){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.ActorRdfDereferenceHttpParseBase=void 0;const n=r(25),i=r(364),a=r(366),s=r(21);class o extends i.ActorRdfDereferenceMediaMappings{constructor(e){super(e)}async test(e){if(!/^https?:/u.test(e.url))throw new Error(`Cannot retrieve ${e.url} because it is not an HTTP(S) URL.`);return!0}async run(e){var t;const{mediaTypes:r}=await this.mediatorRdfParseMediatypes.mediate({context:e.context,mediaTypes:!0}),i=this.mediaTypesToAcceptString(r,this.getMaxAcceptHeaderLength()),c=new a.Headers({Accept:i});for(const t in e.headers)c.append(t,e.headers[t]);const u={context:e.context,init:{headers:c,method:e.method},input:e.url};let l;try{l=await this.mediatorHttp.mediate(u)}catch(t){return this.handleDereferenceError(e,t)}const d=s.resolve(l.url,e.url),p={};if(l.headers.forEach((e,t)=>p[t]=e),200!==l.status){const t=new Error(`Could not retrieve ${e.url} (${l.status}: ${l.statusText||"unknown error"})`);return l.body&&await l.body.cancel(),this.handleDereferenceError(e,t)}const h=n.ActorHttp.toNodeReadable(l.body);let f=o.REGEX_MEDIATYPE.exec(null!==(t=l.headers.get("content-type"))&&void 0!==t?t:"")[0];f&&"text/plain"!==f||(f=this.getMediaTypeFromExtension(l.url));const m={baseIRI:d,headers:l.headers,input:h};let g;try{g=(await this.mediatorRdfParseHandle.mediate({context:e.context,handle:m,handleMediaType:f})).handle}catch(t){return this.handleDereferenceError(e,t)}return{url:d,quads:this.handleDereferenceStreamErrors(e,g.quads),triples:g.triples,headers:p}}mediaTypesToAcceptString(e,t){t-=10;const r=[],n=Object.keys(e).map(t=>({mediaType:t,priority:e[t]})).sort((e,t)=>t.priority-e.priority);let i=0;for(const e of n){const n=e.mediaType+(1!==e.priority?";q="+e.priority.toFixed(3).replace(/0*$/u,""):"");if(i+n.length>t){r.push("*/*;q=0.1");break}r.push(n),i+=n.length}return 0===r.length?"*/*":r.join(",")}}t.ActorRdfDereferenceHttpParseBase=o,o.REGEX_MEDIATYPE=/^[^ ;]*/u},function(e,t,r){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.ActorRdfDereference=t.KEY_CONTEXT_LENIENT=void 0;const n=r(2),i=r(0);t.KEY_CONTEXT_LENIENT="@comunica/actor-init-sparql:lenient";class a extends i.Actor{constructor(e){super(e)}isHardError(e){return!e.context||!e.context.get(t.KEY_CONTEXT_LENIENT)}handleDereferenceStreamErrors(e,t){return this.isHardError(e)||(t.on("error",r=>{this.logError(e.context,r.message,()=>({url:e.url})),t.push(null)}),t=t.pipe(new n.PassThrough({objectMode:!0}))),t}async handleDereferenceError(e,t){if(this.isHardError(e))throw t;{this.logError(e.context,t.message);const r=new n.Readable;return r.push(null),{url:e.url,quads:r}}}}t.ActorRdfDereference=a},function(e,t,r){"use strict";var n=this&&this.__createBinding||(Object.create?function(e,t,r,n){void 0===n&&(n=r),Object.defineProperty(e,n,{enumerable:!0,get:function(){return t[r]}})}:function(e,t,r,n){void 0===n&&(n=r),e[n]=t[r]}),i=this&&this.__exportStar||function(e,t){for(var r in e)"default"===r||Object.prototype.hasOwnProperty.call(t,r)||n(t,e,r)};Object.defineProperty(t,"__esModule",{value:!0}),i(r(368),t)},function(e,t,r){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.AsyncIteratorJsonBindings=void 0;const n=r(25),i=r(1),a=r(3),s=r(70);class o extends a.BufferedIterator{constructor(e,t,r,n){super({autoStart:!1,maxBufferSize:1/0}),this.initialized=!1,this.endpoint=e,this.query=t,this.context=r,this.mediatorHttp=n}_read(e,t){this.initialized?super._read(e,t):(this.initialized=!0,this.fetchBindingsStream(this.endpoint,this.query,this.context).then(r=>{const n=new s.SparqlJsonParser({prefixVariableQuestionMark:!0}).parseJsonResultsStream(r);r.on("error",e=>n.emit("error",e)),n.on("error",e=>this.emit("error",e)),n.on("data",e=>this._push(i.Bindings(e))),n.on("end",()=>{this.close()}),super._read(e,t)}).catch(e=>this.emit("error",e)))}async fetchBindingsStream(e,t,r){const i=`${e}?query=${encodeURIComponent(t)}`,a=new Headers;a.append("Accept","application/sparql-results+json");const s={context:r,input:i,init:{headers:a}},o=await this.mediatorHttp.mediate(s),c=n.ActorHttp.toNodeReadable(o.body);if(!o.ok)throw new Error(`Invalid SPARQL endpoint (${e}) response: ${o.statusText} (${o.status})`);return c}}t.AsyncIteratorJsonBindings=o},function(e,t,r){"use strict";var n=this&&this.__createBinding||(Object.create?function(e,t,r,n){void 0===n&&(n=r),Object.defineProperty(e,n,{enumerable:!0,get:function(){return t[r]}})}:function(e,t,r,n){void 0===n&&(n=r),e[n]=t[r]}),i=this&&this.__exportStar||function(e,t){for(var r in e)"default"===r||Object.prototype.hasOwnProperty.call(t,r)||n(t,e,r)};Object.defineProperty(t,"__esModule",{value:!0}),i(r(372),t)},function(e,t,r){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.SparqlXmlBindingsTransformer=void 0;const n=r(2);class i extends n.Transform{constructor(e){super({objectMode:!0}),this.parser=e}_transform(e,t,r){let n;try{n=this.parser.parseXmlBindings(e)}catch(e){return r(e)}r(null,n)}}t.SparqlXmlBindingsTransformer=i},function(e,t,r){"use strict";var n=this&&this.__createBinding||(Object.create?function(e,t,r,n){void 0===n&&(n=r),Object.defineProperty(e,n,{enumerable:!0,get:function(){return t[r]}})}:function(e,t,r,n){void 0===n&&(n=r),e[n]=t[r]}),i=this&&this.__exportStar||function(e,t){for(var r in e)"default"===r||Object.prototype.hasOwnProperty.call(t,r)||n(t,e,r)};Object.defineProperty(t,"__esModule",{value:!0}),i(r(389),t)},function(e,t,r){"use strict";var n=this&&this.__createBinding||(Object.create?function(e,t,r,n){void 0===n&&(n=r),Object.defineProperty(e,n,{enumerable:!0,get:function(){return t[r]}})}:function(e,t,r,n){void 0===n&&(n=r),e[n]=t[r]}),i=this&&this.__exportStar||function(e,t){for(var r in e)"default"===r||Object.prototype.hasOwnProperty.call(t,r)||n(t,e,r)};Object.defineProperty(t,"__esModule",{value:!0}),i(r(390),t),i(r(169),t)},function(e,t,r){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.FederatedQuadSource=void 0;const n=r(22),i=r(170),a=r(3),s=r(6),o=r(18),c=r(7),u=new s.DataFactory;class l{constructor(e,t,r,i){if(this.mediatorResolveQuadPattern=e,this.sources=t.get(n.KEY_CONTEXT_SOURCES),this.contextDefault=t.delete(n.KEY_CONTEXT_SOURCES),this.emptyPatterns=r,this.sourceIds=new Map,this.skipEmptyPatterns=i,this.algebraFactory=new c.Factory,this.skipEmptyPatterns)for(const e of this.sources)this.emptyPatterns.has(e)||this.emptyPatterns.set(e,[])}static isTermBound(e){return"Variable"!==e.termType}static isSubPatternOf(e,t){return(!l.isTermBound(t.subject)||t.subject.equals(e.subject))&&(!l.isTermBound(t.predicate)||t.predicate.equals(e.predicate))&&(!l.isTermBound(t.object)||t.object.equals(e.object))&&(!l.isTermBound(t.graph)||t.graph.equals(e.graph))}static skolemizeTerm(e,t){return"BlankNode"===e.termType?new i.BlankNodeScoped(`bc_${t}_${e.value}`,u.namedNode(`${l.SKOLEM_PREFIX}${t}:${e.value}`)):e}static skolemizeQuad(e,t){return o.mapTerms(e,e=>l.skolemizeTerm(e,t))}static deskolemizeTerm(e,t){if("BlankNode"===e.termType&&"skolemized"in e&&(e=e.skolemized),"NamedNode"===e.termType&&e.value.startsWith(l.SKOLEM_PREFIX)){const r=e.value.indexOf(":",l.SKOLEM_PREFIX.length);if(e.value.slice(l.SKOLEM_PREFIX.length,r)===t){const t=e.value.slice(r+1,e.value.length);return u.blankNode(t)}return null}return e}isSourceEmpty(e,t){if(!this.skipEmptyPatterns)return!1;const r=this.emptyPatterns.get(e);if(r)for(const e of r)if(l.isSubPatternOf(t,e))return!0;return!1}getSourceId(e){let t=this.sourceIds.get(e);return void 0===t&&(t=""+this.sourceIds.size,this.sourceIds.set(e,t)),t}match(e,t,r,i){const s={totalItems:0};let o=this.sources.length;const c=(e,t,r,n)=>{this.skipEmptyPatterns&&!e&&r&&!this.isSourceEmpty(t,r)&&this.emptyPatterns.get(t).push(r),o||(n&&1===this.sources.length?d.setProperty("metadata",n):d.setProperty("metadata",s))},u=Promise.all(this.sources.map(async u=>{const d=this.getSourceId(u),p=l.deskolemizeTerm(e,d),h=l.deskolemizeTerm(t,d),f=l.deskolemizeTerm(r,d),m=l.deskolemizeTerm(i,d);let g,y,b=n.getDataSourceContext(u,this.contextDefault);b=b.set(n.KEY_CONTEXT_SOURCE,{type:n.getDataSourceType(u),value:n.getDataSourceValue(u)}),p&&h&&f&&m&&!this.isSourceEmpty(u,g=this.algebraFactory.createPattern(p,h,f,m))?y=await this.mediatorResolveQuadPattern.mediate({pattern:g,context:b}):(y={data:new a.ArrayIterator([],{autoStart:!1})},y.data.setProperty("metadata",{totalItems:0})),y.data.getProperty("metadata",e=>{!e.totalItems&&0!==e.totalItems||!Number.isFinite(e.totalItems)?(s.totalItems=1/0,o=0,c(1/0,u,g,e)):(s.totalItems+=e.totalItems,o--,c(e.totalItems,u,g,e))});let _=y.data.map(e=>l.skolemizeQuad(e,d));return"Variable"===i.termType&&(_=_.filter(e=>"DefaultGraph"!==e.graph.termType)),_})),d=new a.TransformIterator(async()=>new a.UnionIterator(await u),{autoStart:!1});return 0===this.sources.length&&d.setProperty("metadata",s),d}}t.FederatedQuadSource=l,l.SKOLEM_PREFIX="urn:comunica_skolem:source_"},function(e,t,r){"use strict";var n=this&&this.__createBinding||(Object.create?function(e,t,r,n){void 0===n&&(n=r),Object.defineProperty(e,n,{enumerable:!0,get:function(){return t[r]}})}:function(e,t,r,n){void 0===n&&(n=r),e[n]=t[r]}),i=this&&this.__exportStar||function(e,t){for(var r in e)"default"===r||Object.prototype.hasOwnProperty.call(t,r)||n(t,e,r)};Object.defineProperty(t,"__esModule",{value:!0}),i(r(391),t)},function(e,t,r){"use strict";var n=this&&this.__createBinding||(Object.create?function(e,t,r,n){void 0===n&&(n=r),Object.defineProperty(e,n,{enumerable:!0,get:function(){return t[r]}})}:function(e,t,r,n){void 0===n&&(n=r),e[n]=t[r]}),i=this&&this.__exportStar||function(e,t){for(var r in e)"default"===r||Object.prototype.hasOwnProperty.call(t,r)||n(t,e,r)};Object.defineProperty(t,"__esModule",{value:!0}),i(r(392),t)},function(e,t,r){"use strict";var n=this&&this.__createBinding||(Object.create?function(e,t,r,n){void 0===n&&(n=r),Object.defineProperty(e,n,{enumerable:!0,get:function(){return t[r]}})}:function(e,t,r,n){void 0===n&&(n=r),e[n]=t[r]}),i=this&&this.__exportStar||function(e,t){for(var r in e)"default"===r||Object.prototype.hasOwnProperty.call(t,r)||n(t,e,r)};Object.defineProperty(t,"__esModule",{value:!0}),i(r(393),t)},function(e,t,r){"use strict";var n=this&&this.__createBinding||(Object.create?function(e,t,r,n){void 0===n&&(n=r),Object.defineProperty(e,n,{enumerable:!0,get:function(){return t[r]}})}:function(e,t,r,n){void 0===n&&(n=r),e[n]=t[r]}),i=this&&this.__exportStar||function(e,t){for(var r in e)"default"===r||Object.prototype.hasOwnProperty.call(t,r)||n(t,e,r)};Object.defineProperty(t,"__esModule",{value:!0}),i(r(395),t),i(r(174),t)},function(e,t,r){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.MediatedQuadSource=void 0;const n=r(398);t.MediatedQuadSource=class{constructor(e,t,r,n,i){this.cacheSize=e,this.context=t,this.firstUrl=r,this.forceSourceType=n,this.mediators=i}match(e,t,r,i){const a=new n.MediatedLinkedRdfSourcesAsyncRdfIterator(this.cacheSize,this.context,this.forceSourceType,e,t,r,i,this.firstUrl,this.mediators);return this.sourcesState?a.setSourcesState(this.sourcesState):(a.setSourcesState(),this.sourcesState=a.sourcesState),a}}},function(e,t,r){"use strict";var n=this&&this.__createBinding||(Object.create?function(e,t,r,n){void 0===n&&(n=r),Object.defineProperty(e,n,{enumerable:!0,get:function(){return t[r]}})}:function(e,t,r,n){void 0===n&&(n=r),e[n]=t[r]}),i=this&&this.__exportStar||function(e,t){for(var r in e)"default"===r||Object.prototype.hasOwnProperty.call(t,r)||n(t,e,r)};Object.defineProperty(t,"__esModule",{value:!0}),i(r(400),t)},function(e,t,r){"use strict";var n=this&&this.__createBinding||(Object.create?function(e,t,r,n){void 0===n&&(n=r),Object.defineProperty(e,n,{enumerable:!0,get:function(){return t[r]}})}:function(e,t,r,n){void 0===n&&(n=r),e[n]=t[r]}),i=this&&this.__exportStar||function(e,t){for(var r in e)"default"===r||Object.prototype.hasOwnProperty.call(t,r)||n(t,e,r)};Object.defineProperty(t,"__esModule",{value:!0}),i(r(401),t)},function(e,t,r){"use strict";var n=this&&this.__createBinding||(Object.create?function(e,t,r,n){void 0===n&&(n=r),Object.defineProperty(e,n,{enumerable:!0,get:function(){return t[r]}})}:function(e,t,r,n){void 0===n&&(n=r),e[n]=t[r]}),i=this&&this.__exportStar||function(e,t){for(var r in e)"default"===r||Object.prototype.hasOwnProperty.call(t,r)||n(t,e,r)};Object.defineProperty(t,"__esModule",{value:!0}),i(r(402),t)},function(e,t,r){"use strict";var n=this&&this.__createBinding||(Object.create?function(e,t,r,n){void 0===n&&(n=r),Object.defineProperty(e,n,{enumerable:!0,get:function(){return t[r]}})}:function(e,t,r,n){void 0===n&&(n=r),e[n]=t[r]}),i=this&&this.__exportStar||function(e,t){for(var r in e)"default"===r||Object.prototype.hasOwnProperty.call(t,r)||n(t,e,r)};Object.defineProperty(t,"__esModule",{value:!0}),i(r(403),t)},function(e,t,r){"use strict";var n=this&&this.__createBinding||(Object.create?function(e,t,r,n){void 0===n&&(n=r),Object.defineProperty(e,n,{enumerable:!0,get:function(){return t[r]}})}:function(e,t,r,n){void 0===n&&(n=r),e[n]=t[r]}),i=this&&this.__exportStar||function(e,t){for(var r in e)"default"===r||Object.prototype.hasOwnProperty.call(t,r)||n(t,e,r)};Object.defineProperty(t,"__esModule",{value:!0}),i(r(404),t)},function(e,t,r){"use strict";var n=this&&this.__createBinding||(Object.create?function(e,t,r,n){void 0===n&&(n=r),Object.defineProperty(e,n,{enumerable:!0,get:function(){return t[r]}})}:function(e,t,r,n){void 0===n&&(n=r),e[n]=t[r]}),i=this&&this.__exportStar||function(e,t){for(var r in e)"default"===r||Object.prototype.hasOwnProperty.call(t,r)||n(t,e,r)};Object.defineProperty(t,"__esModule",{value:!0}),i(r(405),t)},function(e,t,r){"use strict";var n=this&&this.__createBinding||(Object.create?function(e,t,r,n){void 0===n&&(n=r),Object.defineProperty(e,n,{enumerable:!0,get:function(){return t[r]}})}:function(e,t,r,n){void 0===n&&(n=r),e[n]=t[r]}),i=this&&this.__exportStar||function(e,t){for(var r in e)"default"===r||Object.prototype.hasOwnProperty.call(t,r)||n(t,e,r)};Object.defineProperty(t,"__esModule",{value:!0}),i(r(407),t)},function(e,t,r){"use strict";var n=this&&this.__createBinding||(Object.create?function(e,t,r,n){void 0===n&&(n=r),Object.defineProperty(e,n,{enumerable:!0,get:function(){return t[r]}})}:function(e,t,r,n){void 0===n&&(n=r),e[n]=t[r]}),i=this&&this.__exportStar||function(e,t){for(var r in e)"default"===r||Object.prototype.hasOwnProperty.call(t,r)||n(t,e,r)};Object.defineProperty(t,"__esModule",{value:!0}),i(r(409),t)},function(e,t,r){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.AbstractFilterHash=void 0;const n=r(411),i=r(1),a=r(5);class s extends i.ActorQueryOperationTypedMediated{constructor(e,t){if(super(e,t),!s.doesHashAlgorithmExist(this.hashAlgorithm))throw new Error("The given hash algorithm is not present in this version of Node: "+this.hashAlgorithm);if(!s.doesDigestAlgorithmExist(this.digestAlgorithm))throw new Error("The given digest algorithm is not present in this version of Node: "+this.digestAlgorithm)}static doesHashAlgorithmExist(e){return n.getHashes().includes(e)}static doesDigestAlgorithmExist(e){return["latin1","hex","base64"].includes(e)}static hash(e,t,i){const s=n.createHash(e);return s.update(r(59)(i.map(e=>a.termToString(e)))),s.digest(t)}}t.AbstractFilterHash=s},function(e,t,r){"use strict";var n=this&&this.__createBinding||(Object.create?function(e,t,r,n){void 0===n&&(n=r),Object.defineProperty(e,n,{enumerable:!0,get:function(){return t[r]}})}:function(e,t,r,n){void 0===n&&(n=r),e[n]=t[r]}),i=this&&this.__exportStar||function(e,t){for(var r in e)"default"===r||Object.prototype.hasOwnProperty.call(t,r)||n(t,e,r)};Object.defineProperty(t,"__esModule",{value:!0}),i(r(412),t)},function(e,t,r){"use strict";var n=r(15).Buffer,i=r(2).Transform;function a(e){i.call(this),this._block=n.allocUnsafe(e),this._blockSize=e,this._blockOffset=0,this._length=[0,0,0,0],this._finalized=!1}r(11)(a,i),a.prototype._transform=function(e,t,r){var n=null;try{this.update(e,t)}catch(e){n=e}r(n)},a.prototype._flush=function(e){var t=null;try{this.push(this.digest())}catch(e){t=e}e(t)},a.prototype.update=function(e,t){if(function(e,t){if(!n.isBuffer(e)&&"string"!=typeof e)throw new TypeError(t+" must be a string or a buffer")}(e,"Data"),this._finalized)throw new Error("Digest already called");n.isBuffer(e)||(e=n.from(e,t));for(var r=this._block,i=0;this._blockOffset+e.length-i>=this._blockSize;){for(var a=this._blockOffset;a0;++s)this._length[s]+=o,(o=this._length[s]/4294967296|0)>0&&(this._length[s]-=4294967296*o);return this},a.prototype._update=function(){throw new Error("_update is not implemented")},a.prototype.digest=function(e){if(this._finalized)throw new Error("Digest already called");this._finalized=!0;var t=this._digest();void 0!==e&&(t=t.toString(e)),this._block.fill(0),this._blockOffset=0;for(var r=0;r<4;++r)this._length[r]=0;return t},a.prototype._digest=function(){throw new Error("_digest is not implemented")},e.exports=a},function(e,t,r){var n=r(11),i=r(41),a=r(15).Buffer,s=[1116352408,1899447441,3049323471,3921009573,961987163,1508970993,2453635748,2870763221,3624381080,310598401,607225278,1426881987,1925078388,2162078206,2614888103,3248222580,3835390401,4022224774,264347078,604807628,770255983,1249150122,1555081692,1996064986,2554220882,2821834349,2952996808,3210313671,3336571891,3584528711,113926993,338241895,666307205,773529912,1294757372,1396182291,1695183700,1986661051,2177026350,2456956037,2730485921,2820302411,3259730800,3345764771,3516065817,3600352804,4094571909,275423344,430227734,506948616,659060556,883997877,958139571,1322822218,1537002063,1747873779,1955562222,2024104815,2227730452,2361852424,2428436474,2756734187,3204031479,3329325298],o=new Array(64);function c(){this.init(),this._w=o,i.call(this,64,56)}function u(e,t,r){return r^e&(t^r)}function l(e,t,r){return e&t|r&(e|t)}function d(e){return(e>>>2|e<<30)^(e>>>13|e<<19)^(e>>>22|e<<10)}function p(e){return(e>>>6|e<<26)^(e>>>11|e<<21)^(e>>>25|e<<7)}function h(e){return(e>>>7|e<<25)^(e>>>18|e<<14)^e>>>3}n(c,i),c.prototype.init=function(){return this._a=1779033703,this._b=3144134277,this._c=1013904242,this._d=2773480762,this._e=1359893119,this._f=2600822924,this._g=528734635,this._h=1541459225,this},c.prototype._update=function(e){for(var t,r=this._w,n=0|this._a,i=0|this._b,a=0|this._c,o=0|this._d,c=0|this._e,f=0|this._f,m=0|this._g,g=0|this._h,y=0;y<16;++y)r[y]=e.readInt32BE(4*y);for(;y<64;++y)r[y]=0|(((t=r[y-2])>>>17|t<<15)^(t>>>19|t<<13)^t>>>10)+r[y-7]+h(r[y-15])+r[y-16];for(var b=0;b<64;++b){var _=g+p(c)+u(c,f,m)+s[b]+r[b]|0,v=d(n)+l(n,i,a)|0;g=m,m=f,f=c,c=o+_|0,o=a,a=i,i=n,n=_+v|0}this._a=n+this._a|0,this._b=i+this._b|0,this._c=a+this._c|0,this._d=o+this._d|0,this._e=c+this._e|0,this._f=f+this._f|0,this._g=m+this._g|0,this._h=g+this._h|0},c.prototype._hash=function(){var e=a.allocUnsafe(32);return e.writeInt32BE(this._a,0),e.writeInt32BE(this._b,4),e.writeInt32BE(this._c,8),e.writeInt32BE(this._d,12),e.writeInt32BE(this._e,16),e.writeInt32BE(this._f,20),e.writeInt32BE(this._g,24),e.writeInt32BE(this._h,28),e},e.exports=c},function(e,t,r){var n=r(11),i=r(41),a=r(15).Buffer,s=[1116352408,3609767458,1899447441,602891725,3049323471,3964484399,3921009573,2173295548,961987163,4081628472,1508970993,3053834265,2453635748,2937671579,2870763221,3664609560,3624381080,2734883394,310598401,1164996542,607225278,1323610764,1426881987,3590304994,1925078388,4068182383,2162078206,991336113,2614888103,633803317,3248222580,3479774868,3835390401,2666613458,4022224774,944711139,264347078,2341262773,604807628,2007800933,770255983,1495990901,1249150122,1856431235,1555081692,3175218132,1996064986,2198950837,2554220882,3999719339,2821834349,766784016,2952996808,2566594879,3210313671,3203337956,3336571891,1034457026,3584528711,2466948901,113926993,3758326383,338241895,168717936,666307205,1188179964,773529912,1546045734,1294757372,1522805485,1396182291,2643833823,1695183700,2343527390,1986661051,1014477480,2177026350,1206759142,2456956037,344077627,2730485921,1290863460,2820302411,3158454273,3259730800,3505952657,3345764771,106217008,3516065817,3606008344,3600352804,1432725776,4094571909,1467031594,275423344,851169720,430227734,3100823752,506948616,1363258195,659060556,3750685593,883997877,3785050280,958139571,3318307427,1322822218,3812723403,1537002063,2003034995,1747873779,3602036899,1955562222,1575990012,2024104815,1125592928,2227730452,2716904306,2361852424,442776044,2428436474,593698344,2756734187,3733110249,3204031479,2999351573,3329325298,3815920427,3391569614,3928383900,3515267271,566280711,3940187606,3454069534,4118630271,4000239992,116418474,1914138554,174292421,2731055270,289380356,3203993006,460393269,320620315,685471733,587496836,852142971,1086792851,1017036298,365543100,1126000580,2618297676,1288033470,3409855158,1501505948,4234509866,1607167915,987167468,1816402316,1246189591],o=new Array(160);function c(){this.init(),this._w=o,i.call(this,128,112)}function u(e,t,r){return r^e&(t^r)}function l(e,t,r){return e&t|r&(e|t)}function d(e,t){return(e>>>28|t<<4)^(t>>>2|e<<30)^(t>>>7|e<<25)}function p(e,t){return(e>>>14|t<<18)^(e>>>18|t<<14)^(t>>>9|e<<23)}function h(e,t){return(e>>>1|t<<31)^(e>>>8|t<<24)^e>>>7}function f(e,t){return(e>>>1|t<<31)^(e>>>8|t<<24)^(e>>>7|t<<25)}function m(e,t){return(e>>>19|t<<13)^(t>>>29|e<<3)^e>>>6}function g(e,t){return(e>>>19|t<<13)^(t>>>29|e<<3)^(e>>>6|t<<26)}function y(e,t){return e>>>0>>0?1:0}n(c,i),c.prototype.init=function(){return this._ah=1779033703,this._bh=3144134277,this._ch=1013904242,this._dh=2773480762,this._eh=1359893119,this._fh=2600822924,this._gh=528734635,this._hh=1541459225,this._al=4089235720,this._bl=2227873595,this._cl=4271175723,this._dl=1595750129,this._el=2917565137,this._fl=725511199,this._gl=4215389547,this._hl=327033209,this},c.prototype._update=function(e){for(var t=this._w,r=0|this._ah,n=0|this._bh,i=0|this._ch,a=0|this._dh,o=0|this._eh,c=0|this._fh,b=0|this._gh,_=0|this._hh,v=0|this._al,w=0|this._bl,S=0|this._cl,E=0|this._dl,T=0|this._el,O=0|this._fl,x=0|this._gl,A=0|this._hl,R=0;R<32;R+=2)t[R]=e.readInt32BE(4*R),t[R+1]=e.readInt32BE(4*R+4);for(;R<160;R+=2){var I=t[R-30],P=t[R-30+1],N=h(I,P),C=f(P,I),j=m(I=t[R-4],P=t[R-4+1]),D=g(P,I),k=t[R-14],L=t[R-14+1],M=t[R-32],F=t[R-32+1],q=C+L|0,B=N+k+y(q,C)|0;B=(B=B+j+y(q=q+D|0,D)|0)+M+y(q=q+F|0,F)|0,t[R]=B,t[R+1]=q}for(var U=0;U<160;U+=2){B=t[U],q=t[U+1];var V=l(r,n,i),Q=l(v,w,S),H=d(r,v),G=d(v,r),z=p(o,T),X=p(T,o),$=s[U],Y=s[U+1],J=u(o,c,b),W=u(T,O,x),K=A+X|0,Z=_+z+y(K,A)|0;Z=(Z=(Z=Z+J+y(K=K+W|0,W)|0)+$+y(K=K+Y|0,Y)|0)+B+y(K=K+q|0,q)|0;var ee=G+Q|0,te=H+V+y(ee,G)|0;_=b,A=x,b=c,x=O,c=o,O=T,o=a+Z+y(T=E+K|0,E)|0,a=i,E=S,i=n,S=w,n=r,w=v,r=Z+te+y(v=K+ee|0,K)|0}this._al=this._al+v|0,this._bl=this._bl+w|0,this._cl=this._cl+S|0,this._dl=this._dl+E|0,this._el=this._el+T|0,this._fl=this._fl+O|0,this._gl=this._gl+x|0,this._hl=this._hl+A|0,this._ah=this._ah+r+y(this._al,v)|0,this._bh=this._bh+n+y(this._bl,w)|0,this._ch=this._ch+i+y(this._cl,S)|0,this._dh=this._dh+a+y(this._dl,E)|0,this._eh=this._eh+o+y(this._el,T)|0,this._fh=this._fh+c+y(this._fl,O)|0,this._gh=this._gh+b+y(this._gl,x)|0,this._hh=this._hh+_+y(this._hl,A)|0},c.prototype._hash=function(){var e=a.allocUnsafe(64);function t(t,r,n){e.writeInt32BE(t,n),e.writeInt32BE(r,n+4)}return t(this._ah,this._al,0),t(this._bh,this._bl,8),t(this._ch,this._cl,16),t(this._dh,this._dl,24),t(this._eh,this._el,32),t(this._fh,this._fl,40),t(this._gh,this._gl,48),t(this._hh,this._hl,56),e},e.exports=c},function(e,t,r){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.UnsupportedOperation=t.SyncRecursiveEvaluator=t.AsyncRecursiveEvaluator=void 0;const n=r(40),i=r(19),a=r(39),s={term:(e,t)=>e,variable(e,t){const r=t.get(e.name);if(!r)throw new i.UnboundVariableError(e.name,t);return a.transformRDFTermUnsafe(r)}};t.AsyncRecursiveEvaluator=class{constructor(e){this.context=e,this.subEvaluators={[n.ExpressionType.Term]:s.term,[n.ExpressionType.Variable]:s.variable,[n.ExpressionType.Operator]:this.evalOperator,[n.ExpressionType.SpecialOperator]:this.evalSpecialOperator,[n.ExpressionType.Named]:this.evalNamed,[n.ExpressionType.Existence]:this.evalExistence,[n.ExpressionType.Aggregate]:this.evalAggregate}}async evaluate(e,t){const r=this.subEvaluators[e.expressionType];if(!r)throw new i.InvalidExpressionType(e);return r.bind(this)(e,t)}async evalOperator(e,t){const r=e.args.map(e=>this.evaluate(e,t)),n=await Promise.all(r);return e.apply(n)}async evalSpecialOperator(e,t){const r=this.evaluate.bind(this),n={args:e.args,mapping:t,evaluate:r,context:{now:this.context.now,baseIRI:this.context.baseIRI,bnode:this.context.bnode}};return e.applyAsync(n)}async evalNamed(e,t){const r=e.args.map(e=>this.evaluate(e,t)),n=await Promise.all(r);return e.apply(n)}async evalExistence(e,t){if(!this.context.exists)throw new i.NoExistenceHook;return new n.BooleanLiteral(await this.context.exists(e.expression,t))}async evalAggregate(e,t){if(!this.context.aggregate)throw new i.NoExistenceHook;return a.transformRDFTermUnsafe(await this.context.aggregate(e.expression))}};t.SyncRecursiveEvaluator=class{constructor(e){this.context=e,this.subEvaluators={[n.ExpressionType.Term]:s.term,[n.ExpressionType.Variable]:s.variable,[n.ExpressionType.Operator]:this.evalOperator,[n.ExpressionType.SpecialOperator]:this.evalSpecialOperator,[n.ExpressionType.Named]:this.evalNamed,[n.ExpressionType.Existence]:this.evalExistence,[n.ExpressionType.Aggregate]:this.evalAggregate}}evaluate(e,t){const r=this.subEvaluators[e.expressionType];if(!r)throw new i.InvalidExpressionType(e);return r.bind(this)(e,t)}evalOperator(e,t){const r=e.args.map(e=>this.evaluate(e,t));return e.apply(r)}evalSpecialOperator(e,t){const r=this.evaluate.bind(this),n={args:e.args,mapping:t,evaluate:r,context:{now:this.context.now,baseIRI:this.context.baseIRI,bnode:this.context.bnode}};return e.applySync(n)}evalNamed(e,t){const r=e.args.map(e=>this.evaluate(e,t));return e.apply(r)}evalExistence(e,t){if(!this.context.exists)throw new i.NoExistenceHook;return new n.BooleanLiteral(this.context.exists(e.expression,t))}evalAggregate(e,t){if(!this.context.aggregate)throw new i.NoAggregator;return a.transformRDFTermUnsafe(this.context.aggregate(e.expression))}};class o extends Error{constructor(e){super(`Operation '${e}' is unsupported in SimpleEvaluator`)}}t.UnsupportedOperation=o},function(e,t,r){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.SyncEvaluator=void 0;const n=r(39),i=r(188);t.SyncEvaluator=class{constructor(e,t={}){this.algExpr=e,this.config=t,this.expr=n.transformAlgebra(e);const r={now:t.now||new Date(Date.now()),baseIRI:t.baseIRI||void 0,exists:t.exists,aggregate:t.aggregate};this.evaluator=new i.SyncRecursiveEvaluator(r)}evaluate(e){return this.evaluator.evaluate(this.expr,e).toRDF()}evaluateAsEBV(e){return this.evaluator.evaluate(this.expr,e).coerceEBV()}evaluateAsInternal(e){return this.evaluator.evaluate(this.expr,e)}}},function(e,t,r){"use strict";var n=this&&this.__createBinding||(Object.create?function(e,t,r,n){void 0===n&&(n=r),Object.defineProperty(e,n,{enumerable:!0,get:function(){return t[r]}})}:function(e,t,r,n){void 0===n&&(n=r),e[n]=t[r]}),i=this&&this.__exportStar||function(e,t){for(var r in e)"default"===r||Object.prototype.hasOwnProperty.call(t,r)||n(t,e,r)};Object.defineProperty(t,"__esModule",{value:!0}),i(r(437),t)},function(e,t,r){"use strict";var n=this&&this.__createBinding||(Object.create?function(e,t,r,n){void 0===n&&(n=r),Object.defineProperty(e,n,{enumerable:!0,get:function(){return t[r]}})}:function(e,t,r,n){void 0===n&&(n=r),e[n]=t[r]}),i=this&&this.__exportStar||function(e,t){for(var r in e)"default"===r||Object.prototype.hasOwnProperty.call(t,r)||n(t,e,r)};Object.defineProperty(t,"__esModule",{value:!0}),i(r(438),t)},function(e,t,r){"use strict";var n=this&&this.__createBinding||(Object.create?function(e,t,r,n){void 0===n&&(n=r),Object.defineProperty(e,n,{enumerable:!0,get:function(){return t[r]}})}:function(e,t,r,n){void 0===n&&(n=r),e[n]=t[r]}),i=this&&this.__exportStar||function(e,t){for(var r in e)"default"===r||Object.prototype.hasOwnProperty.call(t,r)||n(t,e,r)};Object.defineProperty(t,"__esModule",{value:!0}),i(r(439),t)},function(e,t,r){"use strict";var n=this&&this.__createBinding||(Object.create?function(e,t,r,n){void 0===n&&(n=r),Object.defineProperty(e,n,{enumerable:!0,get:function(){return t[r]}})}:function(e,t,r,n){void 0===n&&(n=r),e[n]=t[r]}),i=this&&this.__exportStar||function(e,t){for(var r in e)"default"===r||Object.prototype.hasOwnProperty.call(t,r)||n(t,e,r)};Object.defineProperty(t,"__esModule",{value:!0}),i(r(440),t)},function(e,t,r){"use strict";var n=this&&this.__createBinding||(Object.create?function(e,t,r,n){void 0===n&&(n=r),Object.defineProperty(e,n,{enumerable:!0,get:function(){return t[r]}})}:function(e,t,r,n){void 0===n&&(n=r),e[n]=t[r]}),i=this&&this.__exportStar||function(e,t){for(var r in e)"default"===r||Object.prototype.hasOwnProperty.call(t,r)||n(t,e,r)};Object.defineProperty(t,"__esModule",{value:!0}),i(r(442),t)},function(e,t,r){"use strict";var n=this&&this.__createBinding||(Object.create?function(e,t,r,n){void 0===n&&(n=r),Object.defineProperty(e,n,{enumerable:!0,get:function(){return t[r]}})}:function(e,t,r,n){void 0===n&&(n=r),e[n]=t[r]}),i=this&&this.__exportStar||function(e,t){for(var r in e)"default"===r||Object.prototype.hasOwnProperty.call(t,r)||n(t,e,r)};Object.defineProperty(t,"__esModule",{value:!0}),i(r(443),t)},function(e,t,r){"use strict";var n=this&&this.__createBinding||(Object.create?function(e,t,r,n){void 0===n&&(n=r),Object.defineProperty(e,n,{enumerable:!0,get:function(){return t[r]}})}:function(e,t,r,n){void 0===n&&(n=r),e[n]=t[r]}),i=this&&this.__exportStar||function(e,t){for(var r in e)"default"===r||Object.prototype.hasOwnProperty.call(t,r)||n(t,e,r)};Object.defineProperty(t,"__esModule",{value:!0}),i(r(444),t)},function(e,t,r){"use strict";var n=this&&this.__createBinding||(Object.create?function(e,t,r,n){void 0===n&&(n=r),Object.defineProperty(e,n,{enumerable:!0,get:function(){return t[r]}})}:function(e,t,r,n){void 0===n&&(n=r),e[n]=t[r]}),i=this&&this.__exportStar||function(e,t){for(var r in e)"default"===r||Object.prototype.hasOwnProperty.call(t,r)||n(t,e,r)};Object.defineProperty(t,"__esModule",{value:!0}),i(r(446),t)},function(e,t,r){"use strict";var n=this&&this.__createBinding||(Object.create?function(e,t,r,n){void 0===n&&(n=r),Object.defineProperty(e,n,{enumerable:!0,get:function(){return t[r]}})}:function(e,t,r,n){void 0===n&&(n=r),e[n]=t[r]}),i=this&&this.__exportStar||function(e,t){for(var r in e)"default"===r||Object.prototype.hasOwnProperty.call(t,r)||n(t,e,r)};Object.defineProperty(t,"__esModule",{value:!0}),i(r(447),t)},function(e,t,r){"use strict";var n=this&&this.__createBinding||(Object.create?function(e,t,r,n){void 0===n&&(n=r),Object.defineProperty(e,n,{enumerable:!0,get:function(){return t[r]}})}:function(e,t,r,n){void 0===n&&(n=r),e[n]=t[r]}),i=this&&this.__exportStar||function(e,t){for(var r in e)"default"===r||Object.prototype.hasOwnProperty.call(t,r)||n(t,e,r)};Object.defineProperty(t,"__esModule",{value:!0}),t.evaluateQuery=t.newEngine=t.bindingsStreamToGraphQl=void 0,i(r(449),t);var a=r(200);function s(){return r(454)}Object.defineProperty(t,"bindingsStreamToGraphQl",{enumerable:!0,get:function(){return a.bindingsStreamToGraphQl}}),t.newEngine=s,t.evaluateQuery=function(e,t){return s().query(e,t)}},function(e,t,r){"use strict";var n=this&&this.__createBinding||(Object.create?function(e,t,r,n){void 0===n&&(n=r),Object.defineProperty(e,n,{enumerable:!0,get:function(){return t[r]}})}:function(e,t,r,n){void 0===n&&(n=r),e[n]=t[r]}),i=this&&this.__exportStar||function(e,t){for(var r in e)"default"===r||Object.prototype.hasOwnProperty.call(t,r)||n(t,e,r)};Object.defineProperty(t,"__esModule",{value:!0}),t.bindingsStreamToGraphQl=void 0,i(r(201),t);const a=r(201),{bindingsStreamToGraphQl:s}=a.ActorSparqlSerializeTree;t.bindingsStreamToGraphQl=s},function(e,t,r){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.ActorSparqlSerializeTree=void 0;const n=r(2),i=r(20),a=r(0),s=r(137);class o extends i.ActorSparqlSerializeFixedMediaTypes{constructor(e){super(e)}static bindingsStreamToGraphQl(e,t,r){const n=a.ensureActionContext(t);return new Promise((t,i)=>{const a=[],o=new s.Converter(r),c={singularizeVariables:n.get("@comunica/actor-init-sparql:singularizeVariables")||{}};e.on("error",i),e.on("data",e=>{const t=e.toJS(),r={};for(const e in t)r[e.slice(1)]=t[e];a.push(r)}),e.on("end",()=>{t(o.bindingsToTree(a,c))})})}async testHandleChecked(e){if("bindings"!==e.type)throw new Error("This actor can only handle bindings streams.");return!0}async runHandle(e,t){const r=new n.Readable;r._read=()=>{};const i=e.bindingsStream;return i.on("error",e=>r.emit("error",e)),o.bindingsStreamToGraphQl(i,e.context,{materializeRdfJsTerms:!0}).then(e=>{r.push(JSON.stringify(e,null," ")),r.push(null)}).catch(e=>r.emit("error",e)),{data:r}}}t.ActorSparqlSerializeTree=o},function(e,t,r){"use strict";var n=r(203),i=r(460),a=r(463);function s(e){return e&&e.rel}function o(e,t){return t.rel.split(/\s+/).forEach((function(r){e[r]=a(t,{rel:r})})),e}function c(e,t){var r=t.match(/\s*(.+)\s*=\s*"?([^"]+)"?/);return r&&(e[r[1]]=r[2]),e}function u(e){try{var t=e.match(/]*)>(.*)/),r=t[1],s=t[2].split(";"),o=i.parse(r),u=n.parse(o.query);s.shift();var l=s.reduce(c,{});return(l=a(u,l)).url=r,l}catch(e){return null}}e.exports=function(e){return e?e.split(/,\s*{const c=t.get(o.termToString(i));return h.has(o.termToString(c))?new a.EmptyIterator:(h.add(o.termToString(c)),new a.TransformIterator(async()=>{const t=new a.BufferedIterator;return await this.getObjectsPredicateStar(e,r,c,s,{},t,{count:0}),t.transform({transform(e,t,r){r(n.Bindings({[p]:e,[o.termToString(i)]:c})),t()}})},{maxBufferSize:128}))},autoStart:!1})}async getObjectsPredicateStarEval(e,t,r,i,s){if("Variable"===i.termType)return this.predicateStarGraphVariable(e,t,r,i,s);const c=new a.BufferedIterator;return await this.getObjectsPredicateStar(e,r,i,s,{},c,{count:0}),c.transform({transform(e,r,i){i(n.Bindings({[o.termToString(t)]:e})),r()}})}async getObjectsPredicateStar(e,t,r,i,a,s,c){const u=o.termToString(e);if(a[u])return;s._push(e),a[u]=e,c.count++;const d=this.generateVariable(),p=o.termToString(d),h=l.FACTORY.createPath(e,t,d,r),f=n.ActorQueryOperation.getSafeBindings(await this.mediatorQueryOperation.mediate({operation:h,context:i}));f.bindingsStream.on("data",async e=>{const n=e.get(p);await this.getObjectsPredicateStar(n,t,r,i,a,s,c)}),f.bindingsStream.on("end",()=>{0==--c.count&&s.close()})}async getSubjectAndObjectBindingsPredicateStar(e,t,r,i,a,s,c,u,d,p,h){const f=o.termToString(i)+o.termToString(s);if(d[f])return;if(h.count++,d[f]=!0,p._push(n.Bindings({[e]:r,[t]:i})),f in u){const n=await u[f];for(const i of n)await this.getSubjectAndObjectBindingsPredicateStar(e,t,r,i,a,s,c,u,d,p,h);return void(0==--h.count&&p.close())}const m=new Promise(async(f,m)=>{const g=[],y=this.generateVariable(),b=o.termToString(y),_=l.FACTORY.createPath(i,a,y,s),v=n.ActorQueryOperation.getSafeBindings(await this.mediatorQueryOperation.mediate({operation:_,context:c}));v.bindingsStream.on("data",async n=>{const i=n.get(b);g.push(i),await this.getSubjectAndObjectBindingsPredicateStar(e,t,r,i,a,s,c,u,d,p,h)}),v.bindingsStream.on("error",m),v.bindingsStream.on("end",()=>{0==--h.count&&p.close(),f(g)})});u[f]=m}}t.ActorAbstractPath=l,l.FACTORY=new c.Factory,l.isPathArbitraryLengthDistinctKey="isPathArbitraryLengthDistinct"},function(e,t,r){"use strict";var n=this&&this.__createBinding||(Object.create?function(e,t,r,n){void 0===n&&(n=r),Object.defineProperty(e,n,{enumerable:!0,get:function(){return t[r]}})}:function(e,t,r,n){void 0===n&&(n=r),e[n]=t[r]}),i=this&&this.__exportStar||function(e,t){for(var r in e)"default"===r||Object.prototype.hasOwnProperty.call(t,r)||n(t,e,r)};Object.defineProperty(t,"__esModule",{value:!0}),i(r(500),t)},function(e,t,r){"use strict";var n=this&&this.__createBinding||(Object.create?function(e,t,r,n){void 0===n&&(n=r),Object.defineProperty(e,n,{enumerable:!0,get:function(){return t[r]}})}:function(e,t,r,n){void 0===n&&(n=r),e[n]=t[r]}),i=this&&this.__exportStar||function(e,t){for(var r in e)"default"===r||Object.prototype.hasOwnProperty.call(t,r)||n(t,e,r)};Object.defineProperty(t,"__esModule",{value:!0}),i(r(501),t)},function(e,t,r){"use strict";var n=this&&this.__createBinding||(Object.create?function(e,t,r,n){void 0===n&&(n=r),Object.defineProperty(e,n,{enumerable:!0,get:function(){return t[r]}})}:function(e,t,r,n){void 0===n&&(n=r),e[n]=t[r]}),i=this&&this.__exportStar||function(e,t){for(var r in e)"default"===r||Object.prototype.hasOwnProperty.call(t,r)||n(t,e,r)};Object.defineProperty(t,"__esModule",{value:!0}),i(r(502),t)},function(e,t,r){"use strict";var n=this&&this.__createBinding||(Object.create?function(e,t,r,n){void 0===n&&(n=r),Object.defineProperty(e,n,{enumerable:!0,get:function(){return t[r]}})}:function(e,t,r,n){void 0===n&&(n=r),e[n]=t[r]}),i=this&&this.__exportStar||function(e,t){for(var r in e)"default"===r||Object.prototype.hasOwnProperty.call(t,r)||n(t,e,r)};Object.defineProperty(t,"__esModule",{value:!0}),i(r(503),t)},function(e,t,r){"use strict";var n=this&&this.__createBinding||(Object.create?function(e,t,r,n){void 0===n&&(n=r),Object.defineProperty(e,n,{enumerable:!0,get:function(){return t[r]}})}:function(e,t,r,n){void 0===n&&(n=r),e[n]=t[r]}),i=this&&this.__exportStar||function(e,t){for(var r in e)"default"===r||Object.prototype.hasOwnProperty.call(t,r)||n(t,e,r)};Object.defineProperty(t,"__esModule",{value:!0}),i(r(504),t)},function(e,t,r){"use strict";var n=this&&this.__createBinding||(Object.create?function(e,t,r,n){void 0===n&&(n=r),Object.defineProperty(e,n,{enumerable:!0,get:function(){return t[r]}})}:function(e,t,r,n){void 0===n&&(n=r),e[n]=t[r]}),i=this&&this.__exportStar||function(e,t){for(var r in e)"default"===r||Object.prototype.hasOwnProperty.call(t,r)||n(t,e,r)};Object.defineProperty(t,"__esModule",{value:!0}),i(r(505),t)},function(e,t,r){"use strict";var n=this&&this.__createBinding||(Object.create?function(e,t,r,n){void 0===n&&(n=r),Object.defineProperty(e,n,{enumerable:!0,get:function(){return t[r]}})}:function(e,t,r,n){void 0===n&&(n=r),e[n]=t[r]}),i=this&&this.__exportStar||function(e,t){for(var r in e)"default"===r||Object.prototype.hasOwnProperty.call(t,r)||n(t,e,r)};Object.defineProperty(t,"__esModule",{value:!0}),i(r(506),t)},function(e,t,r){"use strict";r.r(t),r.d(t,"v1",(function(){return m})),r.d(t,"v3",(function(){return O})),r.d(t,"v4",(function(){return x})),r.d(t,"v5",(function(){return I})),r.d(t,"NIL",(function(){return P})),r.d(t,"version",(function(){return N})),r.d(t,"validate",(function(){return o})),r.d(t,"stringify",(function(){return p})),r.d(t,"parse",(function(){return g}));var n="undefined"!=typeof crypto&&crypto.getRandomValues&&crypto.getRandomValues.bind(crypto)||"undefined"!=typeof msCrypto&&"function"==typeof msCrypto.getRandomValues&&msCrypto.getRandomValues.bind(msCrypto),i=new Uint8Array(16);function a(){if(!n)throw new Error("crypto.getRandomValues() not supported. See https://github.com/uuidjs/uuid#getrandomvalues-not-supported");return n(i)}var s=/^(?:[0-9a-f]{8}-[0-9a-f]{4}-[1-5][0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}|00000000-0000-0000-0000-000000000000)$/i;for(var o=function(e){return"string"==typeof e&&s.test(e)},c=[],u=0;u<256;++u)c.push((u+256).toString(16).substr(1));var l,d,p=function(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:0,r=(c[e[t+0]]+c[e[t+1]]+c[e[t+2]]+c[e[t+3]]+"-"+c[e[t+4]]+c[e[t+5]]+"-"+c[e[t+6]]+c[e[t+7]]+"-"+c[e[t+8]]+c[e[t+9]]+"-"+c[e[t+10]]+c[e[t+11]]+c[e[t+12]]+c[e[t+13]]+c[e[t+14]]+c[e[t+15]]).toLowerCase();if(!o(r))throw TypeError("Stringified UUID is invalid");return r},h=0,f=0;var m=function(e,t,r){var n=t&&r||0,i=t||new Array(16),s=(e=e||{}).node||l,o=void 0!==e.clockseq?e.clockseq:d;if(null==s||null==o){var c=e.random||(e.rng||a)();null==s&&(s=l=[1|c[0],c[1],c[2],c[3],c[4],c[5]]),null==o&&(o=d=16383&(c[6]<<8|c[7]))}var u=void 0!==e.msecs?e.msecs:Date.now(),m=void 0!==e.nsecs?e.nsecs:f+1,g=u-h+(m-f)/1e4;if(g<0&&void 0===e.clockseq&&(o=o+1&16383),(g<0||u>h)&&void 0===e.nsecs&&(m=0),m>=1e4)throw new Error("uuid.v1(): Can't create more than 10M uuids/sec");h=u,f=m,d=o;var y=(1e4*(268435455&(u+=122192928e5))+m)%4294967296;i[n++]=y>>>24&255,i[n++]=y>>>16&255,i[n++]=y>>>8&255,i[n++]=255&y;var b=u/4294967296*1e4&268435455;i[n++]=b>>>8&255,i[n++]=255&b,i[n++]=b>>>24&15|16,i[n++]=b>>>16&255,i[n++]=o>>>8|128,i[n++]=255&o;for(var _=0;_<6;++_)i[n+_]=s[_];return t||p(i)};var g=function(e){if(!o(e))throw TypeError("Invalid UUID");var t,r=new Uint8Array(16);return r[0]=(t=parseInt(e.slice(0,8),16))>>>24,r[1]=t>>>16&255,r[2]=t>>>8&255,r[3]=255&t,r[4]=(t=parseInt(e.slice(9,13),16))>>>8,r[5]=255&t,r[6]=(t=parseInt(e.slice(14,18),16))>>>8,r[7]=255&t,r[8]=(t=parseInt(e.slice(19,23),16))>>>8,r[9]=255&t,r[10]=(t=parseInt(e.slice(24,36),16))/1099511627776&255,r[11]=t/4294967296&255,r[12]=t>>>24&255,r[13]=t>>>16&255,r[14]=t>>>8&255,r[15]=255&t,r};var y=function(e,t,r){function n(e,n,i,a){if("string"==typeof e&&(e=function(e){e=unescape(encodeURIComponent(e));for(var t=[],r=0;r>>9<<4)+1}function _(e,t){var r=(65535&e)+(65535&t);return(e>>16)+(t>>16)+(r>>16)<<16|65535&r}function v(e,t,r,n,i,a){return _((s=_(_(t,e),_(n,a)))<<(o=i)|s>>>32-o,r);var s,o}function w(e,t,r,n,i,a,s){return v(t&r|~t&n,e,t,i,a,s)}function S(e,t,r,n,i,a,s){return v(t&n|r&~n,e,t,i,a,s)}function E(e,t,r,n,i,a,s){return v(t^r^n,e,t,i,a,s)}function T(e,t,r,n,i,a,s){return v(r^(t|~n),e,t,i,a,s)}var O=y("v3",48,(function(e){if("string"==typeof e){var t=unescape(encodeURIComponent(e));e=new Uint8Array(t.length);for(var r=0;r>5]>>>n%32&255,a=parseInt("0123456789abcdef".charAt(i>>>4&15)+"0123456789abcdef".charAt(15&i),16);t.push(a)}return t}(function(e,t){e[t>>5]|=128<>5]|=(255&e[n/8])<>>32-t}var I=y("v5",80,(function(e){var t=[1518500249,1859775393,2400959708,3395469782],r=[1732584193,4023233417,2562383102,271733878,3285377520];if("string"==typeof e){var n=unescape(encodeURIComponent(e));e=[];for(var i=0;i>>0;_=b,b=y,y=R(g,30)>>>0,g=m,m=S}r[0]=r[0]+m>>>0,r[1]=r[1]+g>>>0,r[2]=r[2]+y>>>0,r[3]=r[3]+b>>>0,r[4]=r[4]+_>>>0}return[r[0]>>24&255,r[0]>>16&255,r[0]>>8&255,255&r[0],r[1]>>24&255,r[1]>>16&255,r[1]>>8&255,255&r[1],r[2]>>24&255,r[2]>>16&255,r[2]>>8&255,255&r[2],r[3]>>24&255,r[3]>>16&255,r[3]>>8&255,255&r[3],r[4]>>24&255,r[4]>>16&255,r[4]>>8&255,255&r[4]]})),P="00000000-0000-0000-0000-000000000000";var N=function(e){if(!o(e))throw TypeError("Invalid UUID");return parseInt(e.substr(14,1),16)}},function(e,t,r){const n=new(r(84).LoggerVoid)({}),i=new(r(0).Bus)({name:"https://linkedsoftwaredependencies.org/bundles/npm/@comunica/bus-init/Bus/Init"}),a=new(r(0).Bus)({name:"https://linkedsoftwaredependencies.org/bundles/npm/@comunica/bus-rdf-parse/Bus/RdfParse"}),s=new(r(0).Bus)({name:"https://linkedsoftwaredependencies.org/bundles/npm/@comunica/bus-http/Bus/Http"}),o=new(r(0).Bus)({name:"https://linkedsoftwaredependencies.org/bundles/npm/@comunica/bus-rdf-parse-html/Bus/RdfParseHtml"}),c=new(r(0).Bus)({name:"https://linkedsoftwaredependencies.org/bundles/npm/@comunica/bus-rdf-dereference/Bus/RdfDereference"}),u=new(r(0).Bus)({name:"https://linkedsoftwaredependencies.org/bundles/npm/@comunica/bus-rdf-join/Bus/RdfJoin"}),l=new(r(0).Bus)({name:"https://linkedsoftwaredependencies.org/bundles/npm/@comunica/bus-rdf-resolve-quad-pattern/Bus/RdfResolveQuadPattern"}),d=new(r(0).Bus)({name:"https://linkedsoftwaredependencies.org/bundles/npm/@comunica/bus-rdf-metadata/Bus/RdfMetadata"}),p=new(r(0).Bus)({name:"https://linkedsoftwaredependencies.org/bundles/npm/@comunica/bus-rdf-metadata-extract/Bus/RdfMetadataExtract"}),h=new(r(0).Bus)({name:"https://linkedsoftwaredependencies.org/bundles/npm/@comunica/bus-rdf-resolve-hypermedia/Bus/RdfResolveHypermedia"}),f=new(r(0).Bus)({name:"https://linkedsoftwaredependencies.org/bundles/npm/@comunica/bus-rdf-resolve-hypermedia-links/Bus/RdfResolveHypermediaLinks"}),m=new(r(0).Bus)({name:"https://linkedsoftwaredependencies.org/bundles/npm/@comunica/bus-http-invalidate/Bus/HttpInvalidate"}),g=new(r(0).Bus)({name:"https://linkedsoftwaredependencies.org/bundles/npm/@comunica/bus-sparql-parse/Bus/SparqlParse"}),y=new(r(0).Bus)({name:"https://linkedsoftwaredependencies.org/bundles/npm/@comunica/bus-optimize-query-operation/Bus/OptimizeQueryOperation"}),b=new(r(0).Bus)({name:"https://linkedsoftwaredependencies.org/bundles/npm/@comunica/bus-sparql-serialize/Bus/SparqlSerialize"}),_=new(r(0).Bus)({name:"https://linkedsoftwaredependencies.org/bundles/npm/@comunica/bus-context-preprocess/Bus/ContextPreprocess"}),v=new(r(0).BusIndexed)({actorIdentifierFields:["operationName"],actionIdentifierFields:["operation","type"],name:"https://linkedsoftwaredependencies.org/bundles/npm/@comunica/bus-query-operation/Bus/QueryOperation"}),w=new(r(87).ActorRdfParseN3)({mediaTypes:{"application/n-quads":"1.0","application/trig":"0.95","application/n-triples":"0.8","text/turtle":"0.6","text/n3":"0.35"},mediaTypeFormats:{"application/n-quads":"http://www.w3.org/ns/formats/N-Quads","application/trig":"http://www.w3.org/ns/formats/TriG","application/n-triples":"http://www.w3.org/ns/formats/N-Triples","text/turtle":"http://www.w3.org/ns/formats/Turtle","text/n3":"http://www.w3.org/ns/formats/N3"},priorityScale:"1",name:"https://linkedsoftwaredependencies.org/bundles/npm/@comunica/actor-init-sparql/^1.0.0/config/sets/rdf-parsers.json#myRdfParserN3",bus:a}),S=new(r(95).ActorRdfParseRdfXml)({mediaTypes:{"application/rdf+xml":"1.0"},mediaTypeFormats:{"application/rdf+xml":"http://www.w3.org/ns/formats/RDF_XML"},priorityScale:"5.0E-1",name:"https://linkedsoftwaredependencies.org/bundles/npm/@comunica/actor-init-sparql/^1.0.0/config/sets/rdf-parsers.json#myRdfParserRdfXml",bus:a}),E=new(r(102).ActorRdfParseXmlRdfa)({mediaTypes:{"application/xml":"1.0","text/xml":"1.0","image/svg+xml":"1.0"},mediaTypeFormats:{"application/xml":"http://www.w3.org/ns/formats/RDFa","text/xml":"http://www.w3.org/ns/formats/RDFa","image/svg+xml":"http://www.w3.org/ns/formats/RDFa"},priorityScale:"3.0E-1",name:"https://linkedsoftwaredependencies.org/bundles/npm/@comunica/actor-init-sparql/^1.0.0/config/sets/rdf-parsers.json#myRdfParserXmlRdfa",bus:a}),T=new(r(13).MediatorCombineUnion)({field:"mediaTypes",name:"https://linkedsoftwaredependencies.org/bundles/npm/@comunica/actor-init-sparql/^1.0.0/config/sets/rdf-parsers.json#mediatorRdfParseMediatypes",bus:a}),O=new(r(10).MediatorRace)({name:"https://linkedsoftwaredependencies.org/bundles/npm/@comunica/actor-init-sparql/^1.0.0/config/sets/rdf-parsers.json#mediatorRdfParseHandle",bus:a}),x=new(r(13).MediatorCombineUnion)({field:"mediaTypes",name:"https://linkedsoftwaredependencies.org/bundles/npm/@comunica/actor-init-sparql/^1.0.0/config/sets/rdf-dereference.json#mediatorRdfParseMediatypes",bus:a}),A=new(r(10).MediatorRace)({name:"https://linkedsoftwaredependencies.org/bundles/npm/@comunica/actor-init-sparql/^1.0.0/config/sets/rdf-dereference.json#mediatorRdfParseHandle",bus:a}),R=new(r(36).MediatorNumber)({field:"time",type:"https://linkedsoftwaredependencies.org/bundles/npm/@comunica/mediator-number/Mediator/Number/type/TypeMin",ignoreErrors:!0,name:"https://linkedsoftwaredependencies.org/bundles/npm/@comunica/actor-init-sparql/^1.0.0/config/sets/http.json#mediatorHttp",bus:s}),I=new(r(274).ActorHttpSolidAuthFetch)({name:"https://linkedsoftwaredependencies.org/bundles/npm/@comunica/actor-init-sparql/^1.0.0/config/sets/http.json#myHttpFetcher",bus:s}),P=new(r(118).ActorRdfParseHtml)({busRdfParseHtml:o,mediaTypes:{"text/html":"1.0","application/xhtml+xml":"0.9"},mediaTypeFormats:{"text/html":"http://www.w3.org/ns/formats/HTML","application/xhtml+xml":"http://www.w3.org/ns/formats/HTML"},priorityScale:"2.0E-1",name:"https://linkedsoftwaredependencies.org/bundles/npm/@comunica/actor-init-sparql/^1.0.0/config/sets/rdf-parsers.json#myRdfParserHtml",bus:a}),N=new(r(119).ActorRdfParseHtmlRdfa)({name:"https://linkedsoftwaredependencies.org/bundles/npm/@comunica/actor-init-sparql/^1.0.0/config/sets/rdf-parsers.json#myRdfParserHtmlRdfa",bus:o}),C=new(r(10).MediatorRace)({name:"https://linkedsoftwaredependencies.org/bundles/npm/@comunica/actor-init-sparql/^1.0.0/config/sets/resolve-hypermedia.json#mediatorRdfDereference",bus:c}),j=new(r(10).MediatorRace)({name:"https://linkedsoftwaredependencies.org/bundles/npm/@comunica/actor-init-sparql/^1.0.0/config/sets/sparql-queryoperators.json#mediatorRdfJoin",bus:u}),D=new(r(121).ActorRdfJoinSymmetricHash)({name:"https://linkedsoftwaredependencies.org/bundles/npm/@comunica/actor-init-sparql/^1.0.0/config/sets/join.json#myRdfJoinActorSymmetricHash",bus:u}),k=new(r(128).ActorRdfJoinNestedLoop)({name:"https://linkedsoftwaredependencies.org/bundles/npm/@comunica/actor-init-sparql/^1.0.0/config/sets/join.json#myRdfJoinActorNestedLoop",bus:u}),L=new(r(67).ActorRdfResolveQuadPatternRdfJsSource)({name:"https://linkedsoftwaredependencies.org/bundles/npm/@comunica/actor-init-sparql/^1.0.0/config/sets/resolve-rdfjs.json#myRdfRdfJsSourceQuadPatternResolver",bus:l}),M=new(r(10).MediatorRace)({name:"https://linkedsoftwaredependencies.org/bundles/npm/@comunica/actor-init-sparql/^1.0.0/config/sets/sparql-queryoperators.json#mediatorResolveQuadPattern",bus:l}),F=new(r(10).MediatorRace)({name:"https://linkedsoftwaredependencies.org/bundles/npm/@comunica/actor-init-sparql/^1.0.0/config/sets/resolve-hypermedia.json#mediatorMetadata",bus:d}),q=new(r(131).ActorRdfMetadataPrimaryTopic)({metadataToData:!1,dataToMetadataOnInvalidMetadataGraph:!0,name:"https://linkedsoftwaredependencies.org/bundles/npm/@comunica/actor-init-sparql/^1.0.0/config/sets/resolve-hypermedia.json#myRdfMetadataPrimaryTopic",bus:d}),B=new(r(134).ActorRdfMetadataAll)({name:"https://linkedsoftwaredependencies.org/bundles/npm/@comunica/actor-init-sparql/^1.0.0/config/sets/resolve-hypermedia.json#myRdfMetadataAll",bus:d}),U=new(r(13).MediatorCombineUnion)({field:"metadata",name:"https://linkedsoftwaredependencies.org/bundles/npm/@comunica/actor-init-sparql/^1.0.0/config/sets/resolve-hypermedia.json#mediatorMetadataExtract",bus:p}),V=new(r(135).ActorRdfMetadataExtractHydraControls)({name:"https://linkedsoftwaredependencies.org/bundles/npm/@comunica/actor-init-sparql/^1.0.0/config/sets/resolve-hypermedia.json#myRdfMetadataExtractHydraControls",bus:p}),Q=new(r(144).ActorRdfMetadataExtractHydraCount)({predicates:["http://www.w3.org/ns/hydra/core#totalItems","http://rdfs.org/ns/void#triples"],name:"https://linkedsoftwaredependencies.org/bundles/npm/@comunica/actor-init-sparql/^1.0.0/config/sets/resolve-hypermedia.json#myRdfMetadataExtractHydraCount",bus:p}),H=new(r(145).ActorRdfMetadataExtractSparqlService)({name:"https://linkedsoftwaredependencies.org/bundles/npm/@comunica/actor-init-sparql/^1.0.0/config/sets/resolve-sparql.json#myRdfMetadataExtractSparqlService",bus:p}),G=new(r(146).ActorRdfResolveHypermediaNone)({name:"https://linkedsoftwaredependencies.org/bundles/npm/@comunica/actor-init-sparql/^1.0.0/config/sets/resolve-hypermedia.json#myHypermediaNoneResolver",bus:h}),z=new(r(36).MediatorNumber)({field:"filterFactor",type:"https://linkedsoftwaredependencies.org/bundles/npm/@comunica/mediator-number/Mediator/Number/type/TypeMax",ignoreErrors:!0,name:"https://linkedsoftwaredependencies.org/bundles/npm/@comunica/actor-init-sparql/^1.0.0/config/sets/resolve-hypermedia.json#mediatorRdfResolveHypermedia",bus:h}),X=new(r(10).MediatorRace)({name:"https://linkedsoftwaredependencies.org/bundles/npm/@comunica/actor-init-sparql/^1.0.0/config/sets/resolve-hypermedia.json#mediatorRdfResolveHypermediaLinks",bus:f}),$=new(r(147).ActorRdfResolveHypermediaLinksNext)({name:"https://linkedsoftwaredependencies.org/bundles/npm/@comunica/actor-init-sparql/^1.0.0/config/sets/resolve-hypermedia.json#myHypermediaLinksNext",bus:f}),Y=new(r(148).ActorHttpInvalidateListenable)({name:"https://linkedsoftwaredependencies.org/bundles/npm/@comunica/actor-rdf-resolve-quad-pattern-hypermedia/Actor/RdfResolveQuadPattern/Hypermedia/httpInvalidator#default",bus:m}),J=new(r(150).MediatorAll)({name:"https://linkedsoftwaredependencies.org/bundles/npm/@comunica/actor-init-sparql/^1.0.0/config/sets/sparql-init.json#mediatorHttpInvalidate",bus:m}),W=new(r(151).ActorSparqlParseAlgebra)({prefixes:{rdf:"http://www.w3.org/1999/02/22-rdf-syntax-ns#",rdfs:"http://www.w3.org/2000/01/rdf-schema#",owl:"http://www.w3.org/2002/07/owl#",xsd:"http://www.w3.org/2001/XMLSchema#",dc:"http://purl.org/dc/terms/",dcterms:"http://purl.org/dc/terms/",dc11:"http://purl.org/dc/elements/1.1/",foaf:"http://xmlns.com/foaf/0.1/",geo:"http://www.w3.org/2003/01/geo/wgs84_pos#",dbpedia:"http://dbpedia.org/resource/","dbpedia-owl":"http://dbpedia.org/ontology/",dbpprop:"http://dbpedia.org/property/",schema:"http://schema.org/",skos:"http://www.w3.org/2008/05/skos#"},name:"https://linkedsoftwaredependencies.org/bundles/npm/@comunica/actor-init-sparql/^1.0.0/config/sets/sparql-parsers.json#mySparqlParser",bus:g}),K=new(r(10).MediatorRace)({name:"https://linkedsoftwaredependencies.org/bundles/npm/@comunica/actor-init-sparql/^1.0.0/config/sets/sparql-init.json#mediatorSparqlParse",bus:g}),Z=new(r(53).MediatorCombinePipeline)({name:"https://linkedsoftwaredependencies.org/bundles/npm/@comunica/actor-init-sparql/^1.0.0/config/sets/sparql-init.json#mediatorOptimizeQueryOperation",bus:y}),ee=new(r(153).ActorOptimizeQueryOperationJoinBgp)({name:"https://linkedsoftwaredependencies.org/bundles/npm/@comunica/actor-init-sparql/^1.0.0/config/sets/sparql-optimize.json#myJoinBgpOptimizer",bus:y}),te=new(r(10).MediatorRace)({name:"https://linkedsoftwaredependencies.org/bundles/npm/@comunica/actor-init-sparql/^1.0.0/config/sets/sparql-init.json#mediatorSparqlSerialize",bus:b}),re=new(r(13).MediatorCombineUnion)({field:"mediaTypes",name:"_:b0bnode259",bus:b}),ne=new(r(13).MediatorCombineUnion)({field:"mediaTypeFormats",name:"_:b1bnode259",bus:b}),ie=new(r(53).MediatorCombinePipeline)({name:"https://linkedsoftwaredependencies.org/bundles/npm/@comunica/actor-init-sparql/^1.0.0/config/sets/sparql-init.json#mediatorContextPreprocess",bus:_}),ae=new(r(36).MediatorNumber)({field:"httpRequests",type:"https://linkedsoftwaredependencies.org/bundles/npm/@comunica/mediator-number/Mediator/Number/type/TypeMin",ignoreErrors:!0,name:"https://linkedsoftwaredependencies.org/bundles/npm/@comunica/actor-init-sparql/^1.0.0/config/sets/sparql-queryoperators.json#mediatorQueryOperation",bus:v}),se=new(r(154).ActorQueryOperationBgpEmpty)({name:"https://linkedsoftwaredependencies.org/bundles/npm/@comunica/actor-init-sparql/^1.0.0/config/sets/sparql-queryoperators.json#myEmptyBgpQueryOperator",bus:v}),oe=new(r(155).ActorQueryOperationValues)({name:"https://linkedsoftwaredependencies.org/bundles/npm/@comunica/actor-init-sparql/^1.0.0/config/sets/sparql-queryoperators.json#myValuesQueryOperator",bus:v}),ce=new(r(156).ActorRdfParseHtmlScript)({mediatorRdfParseMediatypes:T,mediatorRdfParseHandle:O,name:"https://linkedsoftwaredependencies.org/bundles/npm/@comunica/actor-init-sparql/^1.0.0/config/sets/rdf-parsers.json#myRdfParserHtmlScript",bus:o}),ue=new(r(157).ActorRdfParseJsonLd)({mediatorHttp:R,mediaTypes:{"application/ld+json":"1.0","application/json":"0.5"},mediaTypeFormats:{"application/ld+json":"http://www.w3.org/ns/formats/JSON-LD","application/json":"http://www.w3.org/ns/formats/JSON-LD"},priorityScale:"9.0E-1",name:"https://linkedsoftwaredependencies.org/bundles/npm/@comunica/actor-init-sparql/^1.0.0/config/sets/rdf-parsers.json#myRdfParserJsonLd",bus:a}),le=new(r(160).ActorRdfDereferenceHttpParse)({mediatorHttp:R,mediatorRdfParseMediatypes:x,mediatorRdfParseHandle:A,maxAcceptHeaderLength:1024,maxAcceptHeaderLengthBrowser:128,mediaMappings:{ttl:"text/turtle",turtle:"text/turtle",nt:"application/n-triples",ntriples:"application/n-triples",nq:"application/n-quads",nquads:"application/n-quads",rdf:"application/rdf+xml",rdfxml:"application/rdf+xml",owl:"application/rdf+xml",n3:"text/n3",trig:"application/trig",jsonld:"application/ld+json",json:"application/json",html:"text/html",htm:"text/html",xhtml:"application/xhtml+xml",xht:"application/xhtml+xml",xml:"application/xml",svg:"image/svg+xml",svgz:"image/svg+xml"},name:"https://linkedsoftwaredependencies.org/bundles/npm/@comunica/actor-init-sparql/^1.0.0/config/sets/rdf-dereference.json#myRdfDereferencer",bus:c}),de=new(r(163).ActorRdfResolveHypermediaSparql)({mediatorHttp:R,checkUrlSuffix:!0,name:"https://linkedsoftwaredependencies.org/bundles/npm/@comunica/actor-init-sparql/^1.0.0/config/sets/resolve-sparql.json#mySparqlQuadPatternResolver",bus:h}),pe=new(r(165).ActorQueryOperationSparqlEndpoint)({mediatorHttp:R,name:"https://linkedsoftwaredependencies.org/bundles/npm/@comunica/actor-init-sparql/^1.0.0/config/sets/resolve-sparql.json#mySparqlEndpointResolver",bus:v}),he=new(r(167).ActorRdfJoinMultiSmallest)({mediatorJoin:j,name:"https://linkedsoftwaredependencies.org/bundles/npm/@comunica/actor-init-sparql/^1.0.0/config/sets/join.json#myRdfJoinMultiActor",bus:u}),fe=new(r(168).ActorRdfResolveQuadPatternFederated)({mediatorResolveQuadPattern:M,skipEmptyPatterns:!1,name:"https://linkedsoftwaredependencies.org/bundles/npm/@comunica/actor-init-sparql/^1.0.0/config/sets/resolve-federated.json#myFederatedQuadPatternResolver",bus:l}),me=new(r(171).ActorQueryOperationQuadpattern)({mediatorResolveQuadPattern:M,name:"https://linkedsoftwaredependencies.org/bundles/npm/@comunica/actor-init-sparql/^1.0.0/config/sets/sparql-queryoperators.json#myQuadPatternQueryOperator",bus:v}),ge=new(r(172).ActorRdfResolveHypermediaQpf)({mediatorMetadata:F,mediatorMetadataExtract:U,mediatorRdfDereference:C,subjectUri:"http://www.w3.org/1999/02/22-rdf-syntax-ns#subject",predicateUri:"http://www.w3.org/1999/02/22-rdf-syntax-ns#predicate",objectUri:"http://www.w3.org/1999/02/22-rdf-syntax-ns#object",graphUri:"http://www.w3.org/ns/sparql-service-description#graph",name:"https://linkedsoftwaredependencies.org/bundles/npm/@comunica/actor-init-sparql/^1.0.0/config/sets/resolve-hypermedia.json#myHypermediaQpfResolver",bus:h}),ye=new(r(173).ActorRdfResolveQuadPatternHypermedia)({mediatorRdfDereference:C,mediatorMetadata:F,mediatorMetadataExtract:U,mediatorRdfResolveHypermedia:z,mediatorRdfResolveHypermediaLinks:X,cacheSize:100,httpInvalidator:Y,name:"https://linkedsoftwaredependencies.org/bundles/npm/@comunica/actor-init-sparql/^1.0.0/config/sets/resolve-hypermedia.json#myQuadPatternHypermediaResolver",bus:l}),be=new(r(175).ActorQueryOperationAsk)({mediatorQueryOperation:ae,name:"https://linkedsoftwaredependencies.org/bundles/npm/@comunica/actor-init-sparql/^1.0.0/config/sets/sparql-queryoperators.json#myAskQueryOperator",bus:v}),_e=new(r(176).ActorQueryOperationService)({forceSparqlEndpoint:!1,mediatorQueryOperation:ae,name:"https://linkedsoftwaredependencies.org/bundles/npm/@comunica/actor-init-sparql/^1.0.0/config/sets/sparql-queryoperators.json#myServiceQueryOperator",bus:v}),ve=new(r(177).ActorQueryOperationSlice)({mediatorQueryOperation:ae,name:"https://linkedsoftwaredependencies.org/bundles/npm/@comunica/actor-init-sparql/^1.0.0/config/sets/sparql-queryoperators.json#mySliceQueryOperator",bus:v}),we=new(r(178).ActorQueryOperationBgpSingle)({mediatorQueryOperation:ae,name:"https://linkedsoftwaredependencies.org/bundles/npm/@comunica/actor-init-sparql/^1.0.0/config/sets/sparql-queryoperators.json#mySingleBgpQueryOperator",bus:v}),Se=new(r(179).ActorQueryOperationBgpLeftDeepSmallest)({mediatorQueryOperation:ae,name:"https://linkedsoftwaredependencies.org/bundles/npm/@comunica/actor-init-sparql/^1.0.0/config/sets/sparql-queryoperators.json#myLeftDeepSmallestBgpQueryOperator",bus:v}),Ee=new(r(180).ActorQueryOperationConstruct)({mediatorQueryOperation:ae,name:"https://linkedsoftwaredependencies.org/bundles/npm/@comunica/actor-init-sparql/^1.0.0/config/sets/sparql-queryoperators.json#myConstructQueryOperator",bus:v}),Te=new(r(181).ActorQueryOperationDescribeSubject)({mediatorQueryOperation:ae,name:"https://linkedsoftwaredependencies.org/bundles/npm/@comunica/actor-init-sparql/^1.0.0/config/sets/sparql-queryoperators.json#myDescribeQueryOperator",bus:v}),Oe=new(r(182).ActorQueryOperationDistinctHash)({hashAlgorithm:"sha1",digestAlgorithm:"base64",mediatorQueryOperation:ae,name:"https://linkedsoftwaredependencies.org/bundles/npm/@comunica/actor-init-sparql/^1.0.0/config/sets/sparql-queryoperators.json#myDistinctQueryOperator",bus:v}),xe=new(r(184).ActorQueryOperationExtend)({mediatorQueryOperation:ae,name:"https://linkedsoftwaredependencies.org/bundles/npm/@comunica/actor-init-sparql/^1.0.0/config/sets/sparql-queryoperators.json#myExtendQueryOperator",bus:v}),Ae=new(r(190).ActorQueryOperationReducedHash)({hashAlgorithm:"sha1",digestAlgorithm:"base64",cacheSize:100,mediatorQueryOperation:ae,name:"https://linkedsoftwaredependencies.org/bundles/npm/@comunica/actor-init-sparql/^1.0.0/config/sets/sparql-queryoperators.json#myReducedQueryOperator",bus:v}),Re=new(r(191).ActorQueryOperationFilterSparqlee)({mediatorQueryOperation:ae,name:"https://linkedsoftwaredependencies.org/bundles/npm/@comunica/actor-init-sparql/^1.0.0/config/sets/sparql-queryoperators.json#myFilterQueryOperator",bus:v}),Ie=new(r(192).ActorQueryOperationFromQuad)({mediatorQueryOperation:ae,name:"https://linkedsoftwaredependencies.org/bundles/npm/@comunica/actor-init-sparql/^1.0.0/config/sets/sparql-queryoperators.json#myFromQueryOperator",bus:v}),Pe=new(r(193).ActorQueryOperationGroup)({mediatorQueryOperation:ae,name:"https://linkedsoftwaredependencies.org/bundles/npm/@comunica/actor-init-sparql/^1.0.0/config/sets/sparql-queryoperators.json#myGroupQueryOperator",bus:v}),Ne=new(r(194).ActorQueryOperationJoin)({mediatorJoin:j,mediatorQueryOperation:ae,name:"https://linkedsoftwaredependencies.org/bundles/npm/@comunica/actor-init-sparql/^1.0.0/config/sets/sparql-queryoperators.json#myJoinQueryOperator",bus:v}),Ce=new(r(195).ActorQueryOperationLeftJoinLeftDeep)({mediatorQueryOperation:ae,name:"https://linkedsoftwaredependencies.org/bundles/npm/@comunica/actor-init-sparql/^1.0.0/config/sets/sparql-queryoperators.json#myLeftJoinQueryOperator",bus:v}),je=new(r(196).ActorQueryOperationOrderBySparqlee)({mediatorQueryOperation:ae,name:"https://linkedsoftwaredependencies.org/bundles/npm/@comunica/actor-init-sparql/^1.0.0/config/sets/sparql-queryoperators.json#myOrderByQueryOperator",bus:v}),De=new(r(197).ActorQueryOperationProject)({mediatorQueryOperation:ae,name:"https://linkedsoftwaredependencies.org/bundles/npm/@comunica/actor-init-sparql/^1.0.0/config/sets/sparql-queryoperators.json#myProjectQueryOperator",bus:v}),ke=new(r(74).ActorQueryOperationUnion)({mediatorQueryOperation:ae,name:"https://linkedsoftwaredependencies.org/bundles/npm/@comunica/actor-init-sparql/^1.0.0/config/sets/sparql-queryoperators.json#myUnionQueryOperator",bus:v}),Le=new(r(198).ActorQueryOperationMinus)({mediatorQueryOperation:ae,name:"https://linkedsoftwaredependencies.org/bundles/npm/@comunica/actor-init-sparql/^1.0.0/config/sets/sparql-queryoperators.json#myMinusQueryOperator",bus:v}),Me=new(r(199).ActorInitSparql)({mediatorOptimizeQueryOperation:Z,mediatorQueryOperation:ae,mediatorSparqlParse:K,mediatorSparqlSerialize:te,mediatorSparqlSerializeMediaTypeCombiner:re,mediatorSparqlSerializeMediaTypeFormatCombiner:ne,mediatorContextPreprocess:ie,mediatorHttpInvalidate:J,logger:n,contextKeyShortcuts:{source:"@comunica/bus-rdf-resolve-quad-pattern:source",sources:"@comunica/bus-rdf-resolve-quad-pattern:sources",initialBindings:"@comunica/actor-init-sparql:initialBindings",queryFormat:"@comunica/actor-init-sparql:queryFormat",baseIRI:"@comunica/actor-init-sparql:baseIRI",log:"@comunica/core:log",datetime:"@comunica/actor-http-memento:datetime",queryTimestamp:"@comunica/actor-init-sparql:queryTimestamp",httpProxyHandler:"@comunica/actor-http-proxy:httpProxyHandler",lenient:"@comunica/actor-init-sparql:lenient",httpIncludeCredentials:"@comunica/bus-http:include-credentials",httpAuth:"@comunica/bus-http:auth"},name:"urn:comunica:sparqlinit",bus:i});new(r(205).ActorQueryOperationPathAlt)({mediatorQueryOperation:ae,name:"https://linkedsoftwaredependencies.org/bundles/npm/@comunica/actor-init-sparql/^1.0.0/config/sets/sparql-queryoperator-path.json#myAltPathOperator",bus:v}),new(r(207).ActorQueryOperationPathInv)({mediatorQueryOperation:ae,name:"https://linkedsoftwaredependencies.org/bundles/npm/@comunica/actor-init-sparql/^1.0.0/config/sets/sparql-queryoperator-path.json#myInvPathOperator",bus:v}),new(r(208).ActorQueryOperationPathLink)({mediatorQueryOperation:ae,name:"https://linkedsoftwaredependencies.org/bundles/npm/@comunica/actor-init-sparql/^1.0.0/config/sets/sparql-queryoperator-path.json#myLinkPathOperator",bus:v}),new(r(209).ActorQueryOperationPathNps)({mediatorQueryOperation:ae,name:"https://linkedsoftwaredependencies.org/bundles/npm/@comunica/actor-init-sparql/^1.0.0/config/sets/sparql-queryoperator-path.json#myNpsPathOperator",bus:v}),new(r(210).ActorQueryOperationPathOneOrMore)({mediatorQueryOperation:ae,name:"https://linkedsoftwaredependencies.org/bundles/npm/@comunica/actor-init-sparql/^1.0.0/config/sets/sparql-queryoperator-path.json#myOneOrMorePathOperator",bus:v}),new(r(211).ActorQueryOperationPathSeq)({mediatorJoin:j,mediatorQueryOperation:ae,name:"https://linkedsoftwaredependencies.org/bundles/npm/@comunica/actor-init-sparql/^1.0.0/config/sets/sparql-queryoperator-path.json#mySeqPathOperator",bus:v}),new(r(212).ActorQueryOperationPathZeroOrMore)({mediatorQueryOperation:ae,name:"https://linkedsoftwaredependencies.org/bundles/npm/@comunica/actor-init-sparql/^1.0.0/config/sets/sparql-queryoperator-path.json#myZeroOrMorePathOperator",bus:v}),new(r(213).ActorQueryOperationPathZeroOrOne)({mediatorQueryOperation:ae,name:"https://linkedsoftwaredependencies.org/bundles/npm/@comunica/actor-init-sparql/^1.0.0/config/sets/sparql-queryoperator-path.json#myZeroOrOnePathOperator",bus:v});e.exports=Me},function(e,t){ +/*! queue-microtask. MIT License. Feross Aboukhadijeh */ +let r;e.exports="function"==typeof queueMicrotask?queueMicrotask:e=>(r||(r=Promise.resolve())).then(e).catch(e=>setTimeout(()=>{throw e},0))},function(e,t,r){"use strict";function n(e){const t=[];let r=0;for(;re.join("")).join("/")}function i(e,t){let r=t+1;t>=0?"/"===e[t+1]&&"/"===e[t+2]&&(r=t+3):"/"===e[0]&&"/"===e[1]&&(r=2);const i=e.indexOf("/",r);if(i<0)return e;return e.substr(0,i)+n(e.substr(i))}function a(e){return!e||"#"===e||"?"===e||"/"===e}Object.defineProperty(t,"__esModule",{value:!0}),t.resolve=function(e,t){const r=(t=t||"").indexOf("#");if(r>0&&(t=t.substr(0,r)),!e.length){if(t.indexOf(":")<0)throw new Error(`Found invalid baseIRI '${t}' for value '${e}'`);return t}if(e.startsWith("?")){const r=t.indexOf("?");return r>0&&(t=t.substr(0,r)),t+e}if(e.startsWith("#"))return t+e;if(!t.length){const t=e.indexOf(":");if(t<0)throw new Error(`Found invalid relative IRI '${e}' for a missing baseIRI`);return i(e,t)}const a=e.indexOf(":");if(a>=0)return i(e,a);const s=t.indexOf(":");if(s<0)throw new Error(`Found invalid baseIRI '${t}' for value '${e}'`);const o=t.substr(0,s+1);if(0===e.indexOf("//"))return o+i(e,a);let c;if(t.indexOf("//",s)===s+1){if(c=t.indexOf("/",s+3),c<0)return t.length>s+3?t+"/"+i(e,a):o+i(e,a)}else if(c=t.indexOf("/",s+1),c<0)return o+i(e,a);if(0===e.indexOf("/"))return t.substr(0,c)+n(e);let u=t.substr(c);const l=u.lastIndexOf("/");return l>=0&&l0?s-4:s;for(r=0;r>16&255,c[l++]=t>>8&255,c[l++]=255&t;2===o&&(t=i[e.charCodeAt(r)]<<2|i[e.charCodeAt(r+1)]>>4,c[l++]=255&t);1===o&&(t=i[e.charCodeAt(r)]<<10|i[e.charCodeAt(r+1)]<<4|i[e.charCodeAt(r+2)]>>2,c[l++]=t>>8&255,c[l++]=255&t);return c},t.fromByteArray=function(e){for(var t,r=e.length,i=r%3,a=[],s=0,o=r-i;so?o:s+16383));1===i?(t=e[r-1],a.push(n[t>>2]+n[t<<4&63]+"==")):2===i&&(t=(e[r-2]<<8)+e[r-1],a.push(n[t>>10]+n[t>>4&63]+n[t<<2&63]+"="));return a.join("")};for(var n=[],i=[],a="undefined"!=typeof Uint8Array?Uint8Array:Array,s="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/",o=0,c=s.length;o0)throw new Error("Invalid string. Length must be a multiple of 4");var r=e.indexOf("=");return-1===r&&(r=t),[r,r===t?0:4-r%4]}function l(e,t,r){for(var i,a,s=[],o=t;o>18&63]+n[a>>12&63]+n[a>>6&63]+n[63&a]);return s.join("")}i["-".charCodeAt(0)]=62,i["_".charCodeAt(0)]=63},function(e,t){t.read=function(e,t,r,n,i){var a,s,o=8*i-n-1,c=(1<>1,l=-7,d=r?i-1:0,p=r?-1:1,h=e[t+d];for(d+=p,a=h&(1<<-l)-1,h>>=-l,l+=o;l>0;a=256*a+e[t+d],d+=p,l-=8);for(s=a&(1<<-l)-1,a>>=-l,l+=n;l>0;s=256*s+e[t+d],d+=p,l-=8);if(0===a)a=1-u;else{if(a===c)return s?NaN:1/0*(h?-1:1);s+=Math.pow(2,n),a-=u}return(h?-1:1)*s*Math.pow(2,a-n)},t.write=function(e,t,r,n,i,a){var s,o,c,u=8*a-i-1,l=(1<>1,p=23===i?Math.pow(2,-24)-Math.pow(2,-77):0,h=n?0:a-1,f=n?1:-1,m=t<0||0===t&&1/t<0?1:0;for(t=Math.abs(t),isNaN(t)||t===1/0?(o=isNaN(t)?1:0,s=l):(s=Math.floor(Math.log(t)/Math.LN2),t*(c=Math.pow(2,-s))<1&&(s--,c*=2),(t+=s+d>=1?p/c:p*Math.pow(2,1-d))*c>=2&&(s++,c/=2),s+d>=l?(o=0,s=l):s+d>=1?(o=(t*c-1)*Math.pow(2,i),s+=d):(o=t*Math.pow(2,d-1)*Math.pow(2,i),s=0));i>=8;e[r+h]=255&o,h+=f,o/=256,i-=8);for(s=s<0;e[r+h]=255&s,h+=f,s/=256,u-=8);e[r+h-f]|=128*m}},function(e,t){var r={}.toString;e.exports=Array.isArray||function(e){return"[object Array]"==r.call(e)}},function(e,t,r){"use strict";Object.defineProperty(t,"__esModule",{value:!0})},function(e,t,r){"use strict";Object.defineProperty(t,"__esModule",{value:!0})},function(e,t,r){var n=r(224),i=r(82),a=r(225),s=r(83),o=r(226),c=r(227);function u(){}u.namedNode=function(e){return new s(e)},u.blankNode=function(e){return new n(e)},u.literal=function(e,t){return"string"==typeof t?-1===t.indexOf(":")?new a(e,t):new a(e,null,u.namedNode(t)):new a(e,null,t)},u.defaultGraph=function(){return u.defaultGraphInstance},u.variable=function(e){return new c(e)},u.triple=function(e,t,r){return u.quad(e,t,r)},u.quad=function(e,t,r,n){return new o(e,t,r,n||u.defaultGraphInstance)},u.defaultGraphInstance=new i,e.exports=u},function(e,t){function r(e){this.value=e||"b"+ ++r.nextId}r.prototype.equals=function(e){return!!e&&e.termType===this.termType&&e.value===this.value},r.prototype.termType="BlankNode",r.nextId=0,e.exports=r},function(e,t,r){var n=r(83);function i(e,t,r){this.value=e,this.datatype=i.stringDatatype,this.language="",t?(this.language=t,this.datatype=i.langStringDatatype):r&&(this.datatype=r)}i.prototype.equals=function(e){return!!e&&e.termType===this.termType&&e.value===this.value&&e.language===this.language&&e.datatype.equals(this.datatype)},i.prototype.termType="Literal",i.langStringDatatype=new n("http://www.w3.org/1999/02/22-rdf-syntax-ns#langString"),i.stringDatatype=new n("http://www.w3.org/2001/XMLSchema#string"),e.exports=i},function(e,t,r){var n=r(82);function i(e,t,r,i){this.subject=e,this.predicate=t,this.object=r,this.graph=i||new n}i.prototype.equals=function(e){return!!e&&("Quad"===e.termType||!e.termType)&&e.subject.equals(this.subject)&&e.predicate.equals(this.predicate)&&e.object.equals(this.object)&&e.graph.equals(this.graph)},i.prototype.termType="Quad",i.prototype.value="",e.exports=i},function(e,t){function r(e){this.value=e}r.prototype.equals=function(e){return!!e&&e.termType===this.termType&&e.value===this.value},r.prototype.termType="Variable",e.exports=r},function(e,t,r){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.LoggerVoid=void 0;const n=r(0);class i extends n.Logger{debug(){}error(){}fatal(){}info(){}trace(){}warn(){}}t.LoggerVoid=i},function(e,t){const r=Promise.resolve(null);window.setImmediate=function(e,...t){r.then(0===t.length?e:()=>e(...t))}},function(e,t,r){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.BusIndexed=void 0;const n=r(85);class i extends n.Bus{constructor(e){super(e),this.actorsIndex={}}subscribe(e){const t=this.getActorIdentifier(e)||"_undefined_";let r=this.actorsIndex[t];r||(r=this.actorsIndex[t]=[]),r.push(e),super.subscribe(e)}unsubscribe(e){const t=this.getActorIdentifier(e)||"_undefined_",r=this.actorsIndex[t];if(r){const n=r.indexOf(e);n>=0&&r.splice(n,1),0===r.length&&delete this.actorsIndex[t]}return super.unsubscribe(e)}publish(e){const t=this.getActionIdentifier(e);if(t){return(this.actorsIndex[t]||[]).concat(this.actorsIndex._undefined_||[]).map(t=>({actor:t,reply:t.test(e)}))}return super.publish(e)}getActorIdentifier(e){return this.actorIdentifierFields.reduce((e,t)=>e[t],e)}getActionIdentifier(e){return this.actionIdentifierFields.reduce((e,t)=>e[t],e)}}t.BusIndexed=i},function(e,t,r){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.ActionObserver=void 0;t.ActionObserver=class{constructor(e){Object.assign(this,e)}}},function(e,t,r){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.ensureActionContext=t.ActionContext=t.Actor=void 0;const n=r(23),i=r(86);class a{constructor(e){this.beforeActors=[],Object.assign(this,e),this.bus.subscribe(this),this.beforeActors.length>0&&this.bus.addDependencies(this,this.beforeActors)}static getContextLogger(e){return e&&e.get(i.KEY_CONTEXT_LOG)}runObservable(e){const t=this.run(e);return this.bus.onRun(this,e,t),t}async initialize(){return!0}async deinitialize(){return!0}getDefaultLogData(e,t){const r=t?t():{};return r.actor=this.name,r}logTrace(e,t,r){const n=a.getContextLogger(e);n&&n.trace(t,this.getDefaultLogData(e,r))}logDebug(e,t,r){const n=a.getContextLogger(e);n&&n.debug(t,this.getDefaultLogData(e,r))}logInfo(e,t,r){const n=a.getContextLogger(e);n&&n.info(t,this.getDefaultLogData(e,r))}logWarn(e,t,r){const n=a.getContextLogger(e);n&&n.warn(t,this.getDefaultLogData(e,r))}logError(e,t,r){const n=a.getContextLogger(e);n&&n.error(t,this.getDefaultLogData(e,r))}logFatal(e,t,r){const n=a.getContextLogger(e);n&&n.fatal(t,this.getDefaultLogData(e,r))}}function s(e){return n.Map(e)}t.Actor=a,t.ActionContext=s,t.ensureActionContext=function(e){return n.Map.isMap(e)?e:s(e)}},function(e,t,r){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.Mediator=void 0;t.Mediator=class{constructor(e){Object.assign(this,e)}publish(e){const t=this.bus.publish(e);if(0===t.length)throw new Error("No actors are able to reply to a message in the bus "+this.bus.name);return t}async mediateActor(e){return await this.mediateWith(e,this.publish(e))}async mediate(e){return(await this.mediateActor(e)).runObservable(e)}}},function(e,t,r){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.ActorRdfParseN3=void 0;const n=r(47),i=r(42);class a extends n.ActorRdfParseFixedMediaTypes{constructor(e){super(e)}async runHandle(e,t,r){e.input.on("error",e=>n.emit("error",e));const n=e.input.pipe(new i.StreamParser({baseIRI:e.baseIRI}));return{quads:n,triples:"text/turtle"===t||"application/n-triples"===t||"text/n3"===t}}}t.ActorRdfParseN3=a},function(e,t,r){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.ActorRdfParse=void 0;const n=r(32);class i extends n.ActorAbstractMediaTyped{constructor(e){super(e)}}t.ActorRdfParse=i},function(e,t,r){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.ActorAbstractMediaTypedFixed=void 0;const n=r(88);class i extends n.ActorAbstractMediaTyped{constructor(e){super(e);const t=this.priorityScale||0===this.priorityScale?this.priorityScale:1;this.mediaTypes&&Object.entries(this.mediaTypes).forEach(([e,r],n)=>{this.mediaTypes[e]=t*r}),this.mediaTypes=Object.freeze(this.mediaTypes),this.mediaTypeFormats=Object.freeze(this.mediaTypeFormats)}async testHandle(e,t,r){if(!(t in this.mediaTypes))throw new Error("Unrecognized media type: "+t);return await this.testHandleChecked(e,r)}async testMediaType(e){return!0}async getMediaTypes(e){return this.mediaTypes}async testMediaTypeFormats(e){return!0}async getMediaTypeFormats(e){return this.mediaTypeFormats}}t.ActorAbstractMediaTypedFixed=i},function(e,t,r){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.ActorRdfParseFixedMediaTypes=void 0;const n=r(32);class i extends n.ActorAbstractMediaTypedFixed{constructor(e){super(e)}async testHandleChecked(e){return!0}}t.ActorRdfParseFixedMediaTypes=i},function(e,t){},function(e,t,r){"use strict";function n(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),r.push.apply(r,n)}return r}function i(e,t,r){return t in e?Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[t]=r,e}function a(e,t){for(var r=0;r0?this.tail.next=t:this.head=t,this.tail=t,++this.length}},{key:"unshift",value:function(e){var t={data:e,next:this.head};0===this.length&&(this.tail=t),this.head=t,++this.length}},{key:"shift",value:function(){if(0!==this.length){var e=this.head.data;return 1===this.length?this.head=this.tail=null:this.head=this.head.next,--this.length,e}}},{key:"clear",value:function(){this.head=this.tail=null,this.length=0}},{key:"join",value:function(e){if(0===this.length)return"";for(var t=this.head,r=""+t.data;t=t.next;)r+=e+t.data;return r}},{key:"concat",value:function(e){if(0===this.length)return s.alloc(0);for(var t,r,n,i=s.allocUnsafe(e>>>0),a=this.head,o=0;a;)t=a.data,r=i,n=o,s.prototype.copy.call(t,r,n),o+=a.data.length,a=a.next;return i}},{key:"consume",value:function(e,t){var r;return ei.length?i.length:e;if(a===i.length?n+=i:n+=i.slice(0,e),0==(e-=a)){a===i.length?(++r,t.next?this.head=t.next:this.head=this.tail=null):(this.head=t,t.data=i.slice(a));break}++r}return this.length-=r,n}},{key:"_getBuffer",value:function(e){var t=s.allocUnsafe(e),r=this.head,n=1;for(r.data.copy(t),e-=r.data.length;r=r.next;){var i=r.data,a=e>i.length?i.length:e;if(i.copy(t,t.length-e,0,a),0==(e-=a)){a===i.length?(++n,r.next?this.head=r.next:this.head=this.tail=null):(this.head=r,r.data=i.slice(a));break}++n}return this.length-=n,t}},{key:c,value:function(e,t){return o(this,function(e){for(var t=1;t0,(function(e){n||(n=e),e&&s.forEach(u),a||(s.forEach(u),i(n))}))}));return t.reduce(l)}},function(e,t,r){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.ActorRdfParseRdfXml=void 0;const n=r(47),i=r(247);class a extends n.ActorRdfParseFixedMediaTypes{constructor(e){super(e)}async runHandle(e,t,r){e.input.on("error",e=>n.emit("error",e));const n=e.input.pipe(new i.RdfXmlParser({baseIRI:e.baseIRI}));return{quads:n,triples:!0}}}t.ActorRdfParseRdfXml=a},function(e,t,r){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),function(e){for(var r in e)t.hasOwnProperty(r)||(t[r]=e[r])}(r(248))},function(e,t,r){"use strict";Object.defineProperty(t,"__esModule",{value:!0});const n=r(21),i=r(96),a=r(2),s=r(249),o=r(6);class c extends a.Transform{constructor(e){super({readableObjectMode:!0}),this.activeTagStack=[],this.nodeIds={},e&&(Object.assign(this,e),this.options=e),this.dataFactory||(this.dataFactory=new o.DataFactory),this.baseIRI||(this.baseIRI=""),this.defaultGraph||(this.defaultGraph=this.dataFactory.defaultGraph()),this.saxStream=i.createStream(this.strict,{xmlns:!1,position:this.trackPosition}),this.strict||(this.saxStream._parser.looseCase="toString"),this.attachSaxListeners()}static parseNamespace(e,t){const r={};let n=!1;for(const t in e.attributes)t.startsWith("xmlns")&&(5===t.length?(n=!0,r[""]=e.attributes[t]):":"===t.charAt(5)&&(n=!0,r[t.substr(6)]=e.attributes[t]));const i=t&&t.ns?t.ns:[c.DEFAULT_NS];return n?i.concat([r]):i}static expandPrefixedTerm(e,t,r){const n=e.indexOf(":");let i,a;n>=0?(i=e.substr(0,n),a=e.substr(n+1)):(i="",a=e);let o=null,c=null;for(let e=t.length-1;e>=0;e--){const r=t[e][i];if(r){o=r;break}c||(c=t[e][""])}if(!o){if(i&&"xmlns"!==i)throw new s.ParseError(r,`The prefix '${i}' in term '${e}' was not bound.`);o=c||""}return{prefix:i,local:a,uri:o}}static isValidIri(e){return c.IRI_REGEX.test(e)}import(e){const t=new a.PassThrough({readableObjectMode:!0});e.on("error",e=>r.emit("error",e)),e.on("data",e=>t.push(e)),e.on("end",()=>t.push(null));const r=t.pipe(new c(this.options));return r}_transform(e,t,r){try{this.saxStream.write(e,t)}catch(e){return r(e)}r()}newParseError(e){return new s.ParseError(this,e)}valueToUri(e,t){return this.uriToNamedNode(n.resolve(e,t.baseIRI))}uriToNamedNode(e){if(!c.isValidIri(e))throw this.newParseError("Invalid URI: "+e);return this.dataFactory.namedNode(e)}validateNcname(e){if(!c.NCNAME_MATCHER.test(e))throw this.newParseError("Not a valid NCName: "+e)}attachSaxListeners(){this.saxStream.on("error",e=>this.emit("error",e)),this.saxStream.on("opentag",this.onTag.bind(this)),this.saxStream.on("text",this.onText.bind(this)),this.saxStream.on("closetag",this.onCloseTag.bind(this)),this.saxStream.on("doctype",this.onDoctype.bind(this))}onTag(e){const t=this.activeTagStack.length?this.activeTagStack[this.activeTagStack.length-1]:null;let r=u.RESOURCE;if(t&&(t.hadChildren=!0,r=t.childrenParseType),t&&t.childrenStringTags){const r=e.name;let n="";for(const t in e.attributes)n+=` ${t}="${e.attributes[t]}"`;const i=`<${`${r}${n}`}>`;t.childrenStringTags.push(i);const a={childrenStringTags:t.childrenStringTags};return a.childrenStringEmitClosingTag=``,void this.activeTagStack.push(a)}const n={};t?(n.language=t.language,n.baseIRI=t.baseIRI):n.baseIRI=this.baseIRI,this.activeTagStack.push(n),n.ns=c.parseNamespace(e,t),r===u.RESOURCE?this.onTagResource(e,n,t,!t):this.onTagProperty(e,n,t)}onTagResource(e,t,r,i){const a=c.expandPrefixedTerm(e.name,t.ns,this);t.childrenParseType=u.PROPERTY;let s=!0;if(a.uri===c.RDF){if(!i&&c.FORBIDDEN_NODE_ELEMENTS.indexOf(a.local)>=0)throw this.newParseError("Illegal node element name: "+a.local);switch(a.local){case"RDF":t.childrenParseType=u.RESOURCE;case"Description":s=!1}}const o=[],l=[];let d=null,p=!1,h=!1,f=null;for(const i in e.attributes){const a=e.attributes[i],s=c.expandPrefixedTerm(i,t.ns,this);if(r&&s.uri===c.RDF)switch(s.local){case"about":if(d)throw this.newParseError(`Only one of rdf:about, rdf:nodeID and rdf:ID can be present, while ${a} and ${d} where found.`);d=a;continue;case"ID":if(d)throw this.newParseError(`Only one of rdf:about, rdf:nodeID and rdf:ID can be present, while ${a} and ${d} where found.`);this.validateNcname(a),d="#"+a,p=!0;continue;case"nodeID":if(d)throw this.newParseError(`Only one of rdf:about, rdf:nodeID and rdf:ID can be present, while ${a} and ${d} where found.`);this.validateNcname(a),d=a,h=!0;continue;case"bagID":throw this.newParseError("rdf:bagID is not supported.");case"type":f=a;continue;case"aboutEach":throw this.newParseError("rdf:aboutEach is not supported.");case"aboutEachPrefix":throw this.newParseError("rdf:aboutEachPrefix is not supported.");case"li":throw this.newParseError("rdf:li on node elements are not supported.")}else if(s.uri===c.XML){if("lang"===s.local){t.language=""===a?null:a.toLowerCase();continue}if("base"===s.local){t.baseIRI=n.resolve(a,t.baseIRI);continue}}"xml"!==s.prefix&&s.uri&&(o.push(this.uriToNamedNode(s.uri+s.local)),l.push(a))}if(null!==d&&(t.subject=h?this.dataFactory.blankNode(d):this.valueToUri(d,t),p&&this.claimNodeId(t.subject)),t.subject||(t.subject=this.dataFactory.blankNode()),s){const e=this.uriToNamedNode(a.uri+a.local);this.emitTriple(t.subject,this.dataFactory.namedNode(c.RDF+"type"),e,r?r.reifiedStatementId:null)}if(r){if(r.predicate)if(r.childrenCollectionSubject){const e=this.dataFactory.blankNode();this.emitTriple(r.childrenCollectionSubject,r.childrenCollectionPredicate,e,r.reifiedStatementId),this.emitTriple(e,this.dataFactory.namedNode(c.RDF+"first"),t.subject,t.reifiedStatementId),r.childrenCollectionSubject=e,r.childrenCollectionPredicate=this.dataFactory.namedNode(c.RDF+"rest")}else{this.emitTriple(r.subject,r.predicate,t.subject,r.reifiedStatementId);for(let e=0;e=0)throw this.newParseError("Illegal property element name: "+n.local);t.predicateSubPredicates=[],t.predicateSubObjects=[];let i=!1,a=!1,s=null,o=!0;const l=[],d=[];for(const r in e.attributes){const n=e.attributes[r],p=c.expandPrefixedTerm(r,t.ns,this);if(p.uri===c.RDF)switch(p.local){case"resource":if(s)throw this.newParseError(`Found both rdf:resource (${n}) and rdf:nodeID (${s}).`);if(i)throw this.newParseError(`rdf:parseType is not allowed on property elements with rdf:resource (${n})`);t.hadChildren=!0,s=n,o=!1;continue;case"datatype":if(a)throw this.newParseError(`Found both non-rdf:* property attributes and rdf:datatype (${n}).`);if(i)throw this.newParseError(`rdf:parseType is not allowed on property elements with rdf:datatype (${n})`);t.datatype=this.valueToUri(n,t);continue;case"nodeID":if(a)throw this.newParseError(`Found both non-rdf:* property attributes and rdf:nodeID (${n}).`);if(t.hadChildren)throw this.newParseError(`Found both rdf:resource and rdf:nodeID (${n}).`);if(i)throw this.newParseError(`rdf:parseType is not allowed on property elements with rdf:nodeID (${n})`);this.validateNcname(n),t.hadChildren=!0,s=n,o=!0;continue;case"bagID":throw this.newParseError("rdf:bagID is not supported.");case"parseType":if(a)throw this.newParseError("rdf:parseType is not allowed when non-rdf:* property attributes are present");if(t.datatype)throw this.newParseError(`rdf:parseType is not allowed on property elements with rdf:datatype (${t.datatype.value})`);if(s)throw this.newParseError(`rdf:parseType is not allowed on property elements with rdf:nodeID or rdf:resource (${s})`);if("Resource"===n){i=!0,t.childrenParseType=u.PROPERTY;const e=this.dataFactory.blankNode();this.emitTriple(t.subject,t.predicate,e,t.reifiedStatementId),t.subject=e,t.predicate=null}else"Collection"===n?(i=!0,t.hadChildren=!0,t.childrenCollectionSubject=t.subject,t.childrenCollectionPredicate=t.predicate,o=!1):"Literal"===n&&(i=!0,t.childrenTagsToString=!0,t.childrenStringTags=[]);continue;case"ID":this.validateNcname(n),t.reifiedStatementId=this.valueToUri("#"+n,t),this.claimNodeId(t.reifiedStatementId);continue}else if(p.uri===c.XML&&"lang"===p.local){t.language=""===n?null:n.toLowerCase();continue}if("xml"!==p.prefix&&"xmlns"!==p.prefix&&p.uri){if(i||t.datatype)throw this.newParseError("Found illegal rdf:* properties on property element with attribute: "+n);t.hadChildren=!0,a=!0,l.push(this.uriToNamedNode(p.uri+p.local)),d.push(this.dataFactory.literal(n,t.datatype||t.language))}}if(null!==s){const e=t.subject;t.subject=o?this.dataFactory.blankNode(s):this.valueToUri(s,t),this.emitTriple(e,t.predicate,t.subject,t.reifiedStatementId);for(let e=0;e/g,(e,t,r)=>(this.saxStream._parser.ENTITIES[t]=r,""))}}var u;t.RdfXmlParser=c,c.IRI_REGEX=/^([A-Za-z][A-Za-z0-9+-.]*):[^ "<>{}|\\\[\]`]*$/,c.MIME_TYPE="application/rdf+xml",c.RDF="http://www.w3.org/1999/02/22-rdf-syntax-ns#",c.XML="http://www.w3.org/XML/1998/namespace",c.XMLNS="http://www.w3.org/2000/xmlns/",c.DEFAULT_NS={xml:c.XML},c.FORBIDDEN_NODE_ELEMENTS=["RDF","ID","about","bagID","parseType","resource","nodeID","li","aboutEach","aboutEachPrefix"],c.FORBIDDEN_PROPERTY_ELEMENTS=["Description","RDF","ID","about","bagID","parseType","resource","nodeID","aboutEach","aboutEachPrefix"],c.NCNAME_MATCHER=/^([A-Za-z\xC0-\xD6\xD8-\xF6\u{F8}-\u{2FF}\u{370}-\u{37D}\u{37F}-\u{1FFF}\u{200C}-\u{200D}\u{2070}-\u{218F}\u{2C00}-\u{2FEF}\u{3001}-\u{D7FF}\u{F900}-\u{FDCF}\u{FDF0}-\u{FFFD}\u{10000}-\u{EFFFF}_])([A-Za-z\xC0-\xD6\xD8-\xF6\u{F8}-\u{2FF}\u{370}-\u{37D}\u{37F}-\u{1FFF}\u{200C}-\u{200D}\u{2070}-\u{218F}\u{2C00}-\u{2FEF}\u{3001}-\u{D7FF}\u{F900}-\u{FDCF}\u{FDF0}-\u{FFFD}\u{10000}-\u{EFFFF}_\-.0-9#xB7\u{0300}-\u{036F}\u{203F}-\u{2040}])*$/u,function(e){e[e.RESOURCE=0]="RESOURCE",e[e.PROPERTY=1]="PROPERTY"}(u=t.ParseType||(t.ParseType={}))},function(e,t,r){"use strict";Object.defineProperty(t,"__esModule",{value:!0});class n extends Error{constructor(e,t){const r=e.saxStream._parser;super(e.trackPosition?`Line ${r.line+1} column ${r.column+1}: ${t}`:t)}}t.ParseError=n},function(e,t,r){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.DataFactory=void 0;const n=r(97),i=r(98),a=r(99),s=r(61),o=r(100),c=r(101);t.DataFactory=class{constructor(){this.blankNodeCounter=0}namedNode(e){return new s.NamedNode(e)}blankNode(e){return new n.BlankNode(e||"df_"+this.blankNodeCounter++)}literal(e,t){return new a.Literal(e,t)}variable(e){return new c.Variable(e)}defaultGraph(){return i.DefaultGraph.INSTANCE}quad(e,t,r,n){return new o.Quad(e,t,r,n||this.defaultGraph())}fromTerm(e){switch(e.termType){case"NamedNode":return this.namedNode(e.value);case"BlankNode":return this.blankNode(e.value);case"Literal":return e.language?this.literal(e.value,e.language):e.datatype.equals(a.Literal.XSD_STRING)?this.literal(e.value):this.literal(e.value,this.fromTerm(e.datatype));case"Variable":return this.variable(e.value);case"DefaultGraph":return this.defaultGraph();case"Quad":return this.quad(this.fromTerm(e.subject),this.fromTerm(e.predicate),this.fromTerm(e.object),this.fromTerm(e.graph))}}fromQuad(e){return this.fromTerm(e)}resetBlankNodeCounter(){this.blankNodeCounter=0}}},function(e,t,r){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.ActorRdfParseXmlRdfa=void 0;const n=r(47),i=r(103);class a extends n.ActorRdfParseFixedMediaTypes{constructor(e){super(e)}async runHandle(e,t,r){var n;const a=null!==(n=e.headers&&e.headers.get("content-language"))&&void 0!==n?n:void 0;e.input.on("error",e=>s.emit("error",e));const s=e.input.pipe(new i.RdfaParser({baseIRI:e.baseIRI,profile:"xml",language:a}));return{quads:s,triples:!0}}}t.ActorRdfParseXmlRdfa=a},function(e,t,r){"use strict";Object.defineProperty(t,"__esModule",{value:!0})},function(e,t,r){"use strict";Object.defineProperty(t,"__esModule",{value:!0})},function(e,t,r){"use strict";Object.defineProperty(t,"__esModule",{value:!0})},function(e,t,r){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.RdfaParser=void 0;const n=r(104),i=r(2),a=r(269),s=r(270),o=r(65),c=r(115);class u extends i.Transform{constructor(e){super({readableObjectMode:!0}),this.activeTagStack=[],e=e||{},this.options=e,this.util=new c.Util(e.dataFactory,e.baseIRI),this.defaultGraph=e.defaultGraph||this.util.dataFactory.defaultGraph();const t=e.contentType?c.Util.contentTypeToProfile(e.contentType):e.profile||"";this.features=e.features||o.RDFA_FEATURES[t],this.htmlParseListener=e.htmlParseListener,this.rdfaPatterns=this.features.copyRdfaPatterns?{}:null,this.pendingRdfaPatternCopies=this.features.copyRdfaPatterns?{}:null,this.parser=this.initializeParser("xml"===t),this.activeTagStack.push({incompleteTriples:[],inlist:!1,language:e.language,listMapping:{},listMappingLocal:{},name:"",prefixesAll:Object.assign(Object.assign({},s["@context"]),this.features.xhtmlInitialContext?a["@context"]:{}),prefixesCustom:{},skipElement:!1,vocab:e.vocab})}import(e){const t=new i.PassThrough({readableObjectMode:!0});e.on("error",e=>r.emit("error",e)),e.on("data",e=>t.push(e)),e.on("end",()=>t.push(null));const r=t.pipe(new u(this.options));return r}_transform(e,t,r){this.parser.write(e),r()}_flush(e){this.parser.end(),e()}onTagOpen(e,t){let r=this.activeTagStack.length-1;for(;r>0&&this.activeTagStack[r].skipElement;)r--;let n=this.activeTagStack[r];r!==this.activeTagStack.length-1&&(n=Object.assign(Object.assign({},n),{language:this.activeTagStack[this.activeTagStack.length-1].language,prefixesAll:this.activeTagStack[this.activeTagStack.length-1].prefixesAll,prefixesCustom:this.activeTagStack[this.activeTagStack.length-1].prefixesCustom,vocab:this.activeTagStack[this.activeTagStack.length-1].vocab}));const i={collectChildTags:n.collectChildTags,incompleteTriples:[],inlist:"inlist"in t,listMapping:[],listMappingLocal:n.listMapping,localBaseIRI:n.localBaseIRI,name:e,prefixesAll:null,prefixesCustom:null,skipElement:!1};if(this.activeTagStack.push(i),i.collectChildTags){for(const e of Object.keys(n.prefixesCustom).sort()){const r=n.prefixesCustom[e],i=""===e?"xmlns":"xmlns:"+e;i in t||(t[i]=r)}const r=Object.keys(t).map(e=>`${e}="${t[e]}"`).join(" ");if(i.text=[`<${e}${r?" "+r:""}>`],this.features.skipHandlingXmlLiteralChildren)return}let a,s,o,u=!0,l=!0;if(this.features.onlyAllowUriRelRevIfProperty&&("property"in t&&"rel"in t&&(u=!1,t.rel.indexOf(":")<0&&delete t.rel),"property"in t&&"rev"in t&&(l=!1,t.rev.indexOf(":")<0&&delete t.rev)),this.features.copyRdfaPatterns){if(n.collectedPatternTag){const r={attributes:t,children:[],name:e,referenced:!1,rootPattern:!1,text:[]};return n.collectedPatternTag.children.push(r),void(i.collectedPatternTag=r)}if("rdfa:Pattern"===t.typeof)return void(i.collectedPatternTag={attributes:t,children:[],name:e,parentTag:n,referenced:!1,rootPattern:!0,text:[]});if("rdfa:copy"===t.property){const e=t.resource||t.href||t.src;return void(this.rdfaPatterns[e]?this.emitPatternCopy(n,this.rdfaPatterns[e],e):(this.pendingRdfaPatternCopies[e]||(this.pendingRdfaPatternCopies[e]=[]),this.pendingRdfaPatternCopies[e].push(n)))}}if(this.features.baseTag&&"base"===e&&t.href&&(this.util.baseIRI=this.util.getBaseIRI(t.href)),this.features.xmlBase&&t["xml:base"]&&(i.localBaseIRI=this.util.getBaseIRI(t["xml:base"])),this.features.timeTag&&"time"===e&&!t.datatype&&(i.interpretObjectAsTime=!0),"vocab"in t?t.vocab?(i.vocab=t.vocab,this.emitTriple(this.util.getBaseIriTerm(i),this.util.dataFactory.namedNode(c.Util.RDFA+"usesVocabulary"),this.util.dataFactory.namedNode(i.vocab))):i.vocab=this.activeTagStack[0].vocab:i.vocab=n.vocab,i.prefixesCustom=c.Util.parsePrefixes(t,n.prefixesCustom,this.features.xmlnsPrefixMappings),i.prefixesAll=Object.keys(i.prefixesCustom).length>0?Object.assign(Object.assign({},n.prefixesAll),i.prefixesCustom):n.prefixesAll,this.features.roleAttribute&&t.role){const e=t.id?this.util.createIri("#"+t.id,i,!1,!1,!1):this.util.createBlankNode(),r=i.vocab;i.vocab="http://www.w3.org/1999/xhtml/vocab#";for(const r of this.util.createVocabIris(t.role,i,!0,!1))this.emitTriple(e,this.util.dataFactory.namedNode("http://www.w3.org/1999/xhtml/vocab#role"),r);i.vocab=r}"xml:lang"in t||this.features.langAttribute&&"lang"in t?i.language=t["xml:lang"]||t.lang:i.language=n.language;const d=2===this.activeTagStack.length;if("rel"in t||"rev"in t?("about"in t?(a=this.util.createIri(t.about,i,!1,!0,!0),i.explicitNewSubject=!!a,"typeof"in t&&(o=a)):d?a=!0:n.object&&(a=n.object),"resource"in t&&(s=this.util.createIri(t.resource,i,!1,!0,!0)),s||("href"in t||"src"in t?s=this.util.createIri(t.href||t.src,i,!1,!1,!0):!("typeof"in t)||"about"in t||this.isInheritSubjectInHeadBody(e)||(s=this.util.createBlankNode())),"typeof"in t&&!("about"in t)&&(o=this.isInheritSubjectInHeadBody(e)?a:s)):!("property"in t)||"content"in t||"datatype"in t?(("about"in t||"resource"in t)&&(a=this.util.createIri(t.about||t.resource,i,!1,!0,!0),i.explicitNewSubject=!!a),a||!("href"in t)&&!("src"in t)||(a=this.util.createIri(t.href||t.src,i,!1,!1,!0),i.explicitNewSubject=!!a),a||(d?a=!0:this.isInheritSubjectInHeadBody(e)?a=n.object:"typeof"in t?(a=this.util.createBlankNode(),i.explicitNewSubject=!0):n.object&&(a=n.object,"property"in t||(i.skipElement=!0))),"typeof"in t&&(o=a)):("about"in t?(a=this.util.createIri(t.about,i,!1,!0,!0),i.explicitNewSubject=!!a):d?a=!0:n.object&&(a=n.object),"typeof"in t&&("about"in t&&(o=this.util.createIri(t.about,i,!1,!0,!0)),!o&&d&&(o=!0),!o&&"resource"in t&&(o=this.util.createIri(t.resource,i,!1,!0,!0)),o||!("href"in t)&&!("src"in t)||(o=this.util.createIri(t.href||t.src,i,!1,!1,!0)),!o&&this.isInheritSubjectInHeadBody(e)&&(o=a),o||(o=this.util.createBlankNode()),s=o)),o)for(const e of this.util.createVocabIris(t.typeof,i,!0,!0))this.emitTriple(this.util.getResourceOrBaseIri(o,i),this.util.dataFactory.namedNode(c.Util.RDF+"type"),e);if(a&&(i.listMapping={}),s){if("rel"in t&&"inlist"in t)for(const e of this.util.createVocabIris(t.rel,i,u,!1))this.addListMapping(i,a,e,s);if(!("rel"in t)||!("inlist"in t)){if("rel"in t)for(const e of this.util.createVocabIris(t.rel,i,u,!1))this.emitTriple(this.util.getResourceOrBaseIri(a,i),e,this.util.getResourceOrBaseIri(s,i));if("rev"in t)for(const e of this.util.createVocabIris(t.rev,i,l,!1))this.emitTriple(this.util.getResourceOrBaseIri(s,i),e,this.util.getResourceOrBaseIri(a,i))}}if(!s){if("rel"in t)if("inlist"in t)for(const e of this.util.createVocabIris(t.rel,i,u,!1))this.addListMapping(i,a,e,null),i.incompleteTriples.push({predicate:e,reverse:!1,list:!0});else for(const e of this.util.createVocabIris(t.rel,i,u,!1))i.incompleteTriples.push({predicate:e,reverse:!1});if("rev"in t)for(const e of this.util.createVocabIris(t.rev,i,l,!1))i.incompleteTriples.push({predicate:e,reverse:!0});i.incompleteTriples.length>0&&(s=this.util.createBlankNode())}if("property"in t){let e;if(i.predicates=this.util.createVocabIris(t.property,i,!0,!1),"datatype"in t?(i.datatype=this.util.createIri(t.datatype,i,!0,!0,!1),i.datatype&&(i.datatype.value===c.Util.RDF+"XMLLiteral"||this.features.htmlDatatype&&i.datatype.value===c.Util.RDF+"HTML")&&(i.collectChildTags=!0)):("rev"in t||"rel"in t||"content"in t||("resource"in t&&(e=this.util.createIri(t.resource,i,!1,!0,!0)),!e&&"href"in t&&(e=this.util.createIri(t.href,i,!1,!1,!0)),!e&&"src"in t&&(e=this.util.createIri(t.src,i,!1,!1,!0))),"typeof"in t&&!("about"in t)&&(e=o)),"content"in t){const e=this.util.createLiteral(t.content,i);if("inlist"in t)for(const t of i.predicates)this.addListMapping(i,a,t,e);else{const t=this.util.getResourceOrBaseIri(a,i);for(const r of i.predicates)this.emitTriple(t,r,e)}i.predicates=null}else if(this.features.datetimeAttribute&&"datetime"in t){i.interpretObjectAsTime=!0;const e=this.util.createLiteral(t.datetime,i);if("inlist"in t)for(const t of i.predicates)this.addListMapping(i,a,t,e);else{const t=this.util.getResourceOrBaseIri(a,i);for(const r of i.predicates)this.emitTriple(t,r,e)}i.predicates=null}else if(e){const r=this.util.getResourceOrBaseIri(e,i);if("inlist"in t)for(const e of i.predicates)this.addListMapping(i,a,e,r);else{const e=this.util.getResourceOrBaseIri(a,i);for(const t of i.predicates)this.emitTriple(e,t,r)}i.predicates=null}}let p=!1;if(!i.skipElement&&a&&n.incompleteTriples.length>0){p=!0;const e=this.util.getResourceOrBaseIri(n.subject,i),t=this.util.getResourceOrBaseIri(a,i);for(const r of n.incompleteTriples)if(r.reverse)this.emitTriple(t,r.predicate,e);else if(r.list){let e=null;for(let t=this.activeTagStack.length-1;t>=0;t--)if(this.activeTagStack[t].inlist){e=this.activeTagStack[t];break}this.addListMapping(e,a,r.predicate,t)}else this.emitTriple(e,r.predicate,t)}!p&&n.incompleteTriples.length>0&&(i.incompleteTriples=i.incompleteTriples.concat(n.incompleteTriples)),i.subject=a||n.subject,i.object=s||a}onText(e){const t=this.activeTagStack[this.activeTagStack.length-1];this.features.copyRdfaPatterns&&t.collectedPatternTag?t.collectedPatternTag.text.push(e):(t.text||(t.text=[]),t.text.push(e))}onTagClose(){const e=this.activeTagStack[this.activeTagStack.length-1],t=this.activeTagStack[this.activeTagStack.length-2];if(!(e.collectChildTags&&t.collectChildTags&&this.features.skipHandlingXmlLiteralChildren)){if(this.features.copyRdfaPatterns&&e.collectedPatternTag&&e.collectedPatternTag.rootPattern){const t=e.collectedPatternTag.attributes.resource;if(delete e.collectedPatternTag.attributes.resource,delete e.collectedPatternTag.attributes.typeof,this.rdfaPatterns[t]=e.collectedPatternTag,this.pendingRdfaPatternCopies[t]){for(const r of this.pendingRdfaPatternCopies[t])this.emitPatternCopy(r,e.collectedPatternTag,t);delete this.pendingRdfaPatternCopies[t]}return void this.activeTagStack.pop()}if(e.predicates){const r=this.util.getResourceOrBaseIri(e.subject,e);let n=e.text||[];e.collectChildTags&&t.collectChildTags&&(n=n.slice(1));const i=this.util.createLiteral(n.join(""),e);if(e.inlist)for(const t of e.predicates)this.addListMapping(e,r,t,i);else for(const t of e.predicates)this.emitTriple(r,t,i);t.predicates||(e.text=null)}if(e.object&&Object.keys(e.listMapping).length>0){const t=this.util.getResourceOrBaseIri(e.object,e);for(const r in e.listMapping){const n=this.util.dataFactory.namedNode(r),i=e.listMapping[r];if(i.length>0){const r=i.map(()=>this.util.createBlankNode());for(let t=0;t`),e.text&&t&&(t.text?t.text=t.text.concat(e.text):t.text=e.text)}onEnd(){if(this.features.copyRdfaPatterns){this.features.copyRdfaPatterns=!1;for(const e in this.rdfaPatterns){const t=this.rdfaPatterns[e];t.referenced||(t.attributes.typeof="rdfa:Pattern",t.attributes.resource=e,this.emitPatternCopy(t.parentTag,t,e),t.referenced=!1,delete t.attributes.typeof,delete t.attributes.resource)}for(const e in this.pendingRdfaPatternCopies)for(const t of this.pendingRdfaPatternCopies[e])this.activeTagStack.push(t),this.onTagOpen("link",{property:"rdfa:copy",href:e}),this.onTagClose(),this.activeTagStack.pop();this.features.copyRdfaPatterns=!0}}isInheritSubjectInHeadBody(e){return this.features.inheritSubjectInHeadBody&&("head"===e||"body"===e)}addListMapping(e,t,r,n){if(e.explicitNewSubject){const i=this.util.createBlankNode();this.emitTriple(this.util.getResourceOrBaseIri(t,e),r,i),this.emitTriple(i,this.util.dataFactory.namedNode(c.Util.RDF+"first"),this.util.getResourceOrBaseIri(n,e)),this.emitTriple(i,this.util.dataFactory.namedNode(c.Util.RDF+"rest"),this.util.dataFactory.namedNode(c.Util.RDF+"nil"))}else{let t=e.listMappingLocal[r.value];t||(e.listMappingLocal[r.value]=t=[]),n&&t.push(n)}}emitTriple(e,t,r){"NamedNode"===e.termType&&e.value.indexOf(":")<0||"NamedNode"===t.termType&&t.value.indexOf(":")<0||"NamedNode"===r.termType&&r.value.indexOf(":")<0||this.push(this.util.dataFactory.quad(e,t,r,this.defaultGraph))}emitPatternCopy(e,t,r){if(this.activeTagStack.push(e),t.referenced=!0,t.constructedBlankNodes){let e=0;this.util.blankNodeFactory=()=>t.constructedBlankNodes[e++]}else t.constructedBlankNodes=[],this.util.blankNodeFactory=()=>{const e=this.util.dataFactory.blankNode();return t.constructedBlankNodes.push(e),e};this.emitPatternCopyAbsolute(t,!0,r),this.util.blankNodeFactory=null,this.activeTagStack.pop()}emitPatternCopyAbsolute(e,t,r){if(t||"rdfa:copy"!==e.attributes.property||e.attributes.href!==r){this.onTagOpen(e.name,e.attributes);for(const t of e.text)this.onText(t);for(const t of e.children)this.emitPatternCopyAbsolute(t,!1,r);this.onTagClose()}}initializeParser(e){return new n.Parser({onclosetag:()=>{try{this.onTagClose(),this.htmlParseListener&&this.htmlParseListener.onTagClose()}catch(e){this.emit("error",e)}},onend:()=>{try{this.onEnd(),this.htmlParseListener&&this.htmlParseListener.onEnd()}catch(e){this.emit("error",e)}},onopentag:(e,t)=>{try{this.onTagOpen(e,t),this.htmlParseListener&&this.htmlParseListener.onTagOpen(e,t)}catch(e){this.emit("error",e)}},ontext:e=>{try{this.onText(e),this.htmlParseListener&&this.htmlParseListener.onText(e)}catch(e){this.emit("error",e)}}},{decodeEntities:!0,recognizeSelfClosing:!0,xmlMode:e})}}t.RdfaParser=u},function(e){e.exports=JSON.parse('{"0":65533,"128":8364,"130":8218,"131":402,"132":8222,"133":8230,"134":8224,"135":8225,"136":710,"137":8240,"138":352,"139":8249,"140":338,"142":381,"145":8216,"146":8217,"147":8220,"148":8221,"149":8226,"150":8211,"151":8212,"152":732,"153":8482,"154":353,"155":8250,"156":339,"158":382,"159":376}')},function(e,t,r){"use strict";var n,i=this&&this.__extends||(n=function(e,t){return(n=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(e,t){e.__proto__=t}||function(e,t){for(var r in t)Object.prototype.hasOwnProperty.call(t,r)&&(e[r]=t[r])})(e,t)},function(e,t){function r(){this.constructor=e}n(e,t),e.prototype=null===t?Object.create(t):(r.prototype=t.prototype,new r)});Object.defineProperty(t,"__esModule",{value:!0}),t.Element=t.NodeWithChildren=t.ProcessingInstruction=t.Comment=t.Text=t.DataNode=t.Node=void 0;var a=new Map([["tag",1],["script",1],["style",1],["directive",1],["text",3],["cdata",4],["comment",8]]),s=function(){function e(e){this.type=e,this.parent=null,this.prev=null,this.next=null,this.startIndex=null,this.endIndex=null}return Object.defineProperty(e.prototype,"nodeType",{get:function(){var e;return null!==(e=a.get(this.type))&&void 0!==e?e:1},enumerable:!1,configurable:!0}),Object.defineProperty(e.prototype,"parentNode",{get:function(){return this.parent},set:function(e){this.parent=e},enumerable:!1,configurable:!0}),Object.defineProperty(e.prototype,"previousSibling",{get:function(){return this.prev},set:function(e){this.prev=e},enumerable:!1,configurable:!0}),Object.defineProperty(e.prototype,"nextSibling",{get:function(){return this.next},set:function(e){this.next=e},enumerable:!1,configurable:!0}),e}();t.Node=s;var o=function(e){function t(t,r){var n=e.call(this,t)||this;return n.data=r,n}return i(t,e),Object.defineProperty(t.prototype,"nodeValue",{get:function(){return this.data},set:function(e){this.data=e},enumerable:!1,configurable:!0}),t}(s);t.DataNode=o;var c=function(e){function t(t){return e.call(this,"text",t)||this}return i(t,e),t}(o);t.Text=c;var u=function(e){function t(t){return e.call(this,"comment",t)||this}return i(t,e),t}(o);t.Comment=u;var l=function(e){function t(t,r){var n=e.call(this,"directive",r)||this;return n.name=t,n}return i(t,e),t}(o);t.ProcessingInstruction=l;var d=function(e){function t(t,r){var n=e.call(this,t)||this;return n.children=r,n}return i(t,e),Object.defineProperty(t.prototype,"firstChild",{get:function(){var e;return null!==(e=this.children[0])&&void 0!==e?e:null},enumerable:!1,configurable:!0}),Object.defineProperty(t.prototype,"lastChild",{get:function(){return this.children.length>0?this.children[this.children.length-1]:null},enumerable:!1,configurable:!0}),Object.defineProperty(t.prototype,"childNodes",{get:function(){return this.children},set:function(e){this.children=e},enumerable:!1,configurable:!0}),t}(s);t.NodeWithChildren=d;var p=function(e){function t(t,r){var n=e.call(this,"script"===t?"script":"style"===t?"style":"tag",[])||this;return n.name=t,n.attribs=r,n.attribs=r,n}return i(t,e),Object.defineProperty(t.prototype,"tagName",{get:function(){return this.name},set:function(e){this.name=e},enumerable:!1,configurable:!0}),Object.defineProperty(t.prototype,"attributes",{get:function(){var e=this;return Object.keys(this.attribs).map((function(t){return{name:t,value:e.attribs[t]}}))},enumerable:!1,configurable:!0}),t}(d);t.Element=p},function(e,t,r){"use strict";var n=this&&this.__importDefault||function(e){return e&&e.__esModule?e:{default:e}};Object.defineProperty(t,"__esModule",{value:!0}),t.getText=t.getInnerHTML=t.getOuterHTML=void 0;var i=r(35),a=n(r(259));function s(e,t){return a.default(e,t)}t.getOuterHTML=s,t.getInnerHTML=function(e,t){return i.hasChildren(e)?e.children.map((function(e){return s(e,t)})).join(""):""},t.getText=function e(t){return Array.isArray(t)?t.map(e).join(""):i.isTag(t)?"br"===t.name?"\n":e(t.children):i.isCDATA(t)?e(t.children):i.isText(t)?t.data:""}},function(e,t,r){"use strict";var n=this&&this.__assign||function(){return(n=Object.assign||function(e){for(var t,r=1,n=arguments.length;r";case o.Comment:return function(e){return"\x3c!--"+e.data+"--\x3e"}(e);case o.CDATA:return function(e){return""}(e);default:return o.isTag(e)?function(e,t){var r;"foreign"===t.xmlMode&&(e.name=null!==(r=u.elementNames.get(e.name))&&void 0!==r?r:e.name,e.parent&&f.has(e.parent.name)&&(t=n(n({},t),{xmlMode:!1})));!t.xmlMode&&m.has(e.name)&&(t=n(n({},t),{xmlMode:"foreign"}));var i="<"+e.name,a=function(e,t){if(e)return Object.keys(e).map((function(r){var n,i,a=null!==(n=e[r])&&void 0!==n?n:"";return"foreign"===t.xmlMode&&(r=null!==(i=u.attributeNames.get(r))&&void 0!==i?i:r),t.emptyAttrs||t.xmlMode||""!==a?r+'="'+(t.decodeEntities?c.encodeXML(a):a.replace(/"/g,"""))+'"':r})).join(" ")}(e.attribs,t);a&&(i+=" "+a);0===e.children.length&&(t.xmlMode?!1!==t.selfClosingTags:t.selfClosingTags&&d.has(e.name))?(t.xmlMode||(i+=" "),i+="/>"):(i+=">",e.children.length>0&&(i+=p(e.children,t)),!t.xmlMode&&d.has(e.name)||(i+=""));return i}(e,t):function(e,t){var r=e.data||"";!t.decodeEntities||e.parent&&l.has(e.parent.name)||(r=c.encodeXML(r));return r}(e,t)}}t.default=p;var f=new Set(["mi","mo","mn","ms","mtext","annotation-xml","foreignObject","desc","title"]),m=new Set(["svg","math"])},function(e,t,r){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.encode=t.decodeStrict=t.decode=void 0;var n=r(112),i=r(113);t.decode=function(e,t){return(!t||t<=0?n.decodeXML:n.decodeHTML)(e)},t.decodeStrict=function(e,t){return(!t||t<=0?n.decodeXML:n.decodeHTMLStrict)(e)},t.encode=function(e,t){return(!t||t<=0?i.encodeXML:i.encodeHTML)(e)};var a=r(113);Object.defineProperty(t,"encodeXML",{enumerable:!0,get:function(){return a.encodeXML}}),Object.defineProperty(t,"encodeHTML",{enumerable:!0,get:function(){return a.encodeHTML}}),Object.defineProperty(t,"escape",{enumerable:!0,get:function(){return a.escape}}),Object.defineProperty(t,"encodeHTML4",{enumerable:!0,get:function(){return a.encodeHTML}}),Object.defineProperty(t,"encodeHTML5",{enumerable:!0,get:function(){return a.encodeHTML}});var s=r(112);Object.defineProperty(t,"decodeXML",{enumerable:!0,get:function(){return s.decodeXML}}),Object.defineProperty(t,"decodeHTML",{enumerable:!0,get:function(){return s.decodeHTML}}),Object.defineProperty(t,"decodeHTMLStrict",{enumerable:!0,get:function(){return s.decodeHTMLStrict}}),Object.defineProperty(t,"decodeHTML4",{enumerable:!0,get:function(){return s.decodeHTML}}),Object.defineProperty(t,"decodeHTML5",{enumerable:!0,get:function(){return s.decodeHTML}}),Object.defineProperty(t,"decodeHTML4Strict",{enumerable:!0,get:function(){return s.decodeHTMLStrict}}),Object.defineProperty(t,"decodeHTML5Strict",{enumerable:!0,get:function(){return s.decodeHTMLStrict}}),Object.defineProperty(t,"decodeXMLStrict",{enumerable:!0,get:function(){return s.decodeXML}})},function(e,t,r){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.attributeNames=t.elementNames=void 0,t.elementNames=new Map([["altglyph","altGlyph"],["altglyphdef","altGlyphDef"],["altglyphitem","altGlyphItem"],["animatecolor","animateColor"],["animatemotion","animateMotion"],["animatetransform","animateTransform"],["clippath","clipPath"],["feblend","feBlend"],["fecolormatrix","feColorMatrix"],["fecomponenttransfer","feComponentTransfer"],["fecomposite","feComposite"],["feconvolvematrix","feConvolveMatrix"],["fediffuselighting","feDiffuseLighting"],["fedisplacementmap","feDisplacementMap"],["fedistantlight","feDistantLight"],["fedropshadow","feDropShadow"],["feflood","feFlood"],["fefunca","feFuncA"],["fefuncb","feFuncB"],["fefuncg","feFuncG"],["fefuncr","feFuncR"],["fegaussianblur","feGaussianBlur"],["feimage","feImage"],["femerge","feMerge"],["femergenode","feMergeNode"],["femorphology","feMorphology"],["feoffset","feOffset"],["fepointlight","fePointLight"],["fespecularlighting","feSpecularLighting"],["fespotlight","feSpotLight"],["fetile","feTile"],["feturbulence","feTurbulence"],["foreignobject","foreignObject"],["glyphref","glyphRef"],["lineargradient","linearGradient"],["radialgradient","radialGradient"],["textpath","textPath"]]),t.attributeNames=new Map([["definitionurl","definitionURL"],["attributename","attributeName"],["attributetype","attributeType"],["basefrequency","baseFrequency"],["baseprofile","baseProfile"],["calcmode","calcMode"],["clippathunits","clipPathUnits"],["diffuseconstant","diffuseConstant"],["edgemode","edgeMode"],["filterunits","filterUnits"],["glyphref","glyphRef"],["gradienttransform","gradientTransform"],["gradientunits","gradientUnits"],["kernelmatrix","kernelMatrix"],["kernelunitlength","kernelUnitLength"],["keypoints","keyPoints"],["keysplines","keySplines"],["keytimes","keyTimes"],["lengthadjust","lengthAdjust"],["limitingconeangle","limitingConeAngle"],["markerheight","markerHeight"],["markerunits","markerUnits"],["markerwidth","markerWidth"],["maskcontentunits","maskContentUnits"],["maskunits","maskUnits"],["numoctaves","numOctaves"],["pathlength","pathLength"],["patterncontentunits","patternContentUnits"],["patterntransform","patternTransform"],["patternunits","patternUnits"],["pointsatx","pointsAtX"],["pointsaty","pointsAtY"],["pointsatz","pointsAtZ"],["preservealpha","preserveAlpha"],["preserveaspectratio","preserveAspectRatio"],["primitiveunits","primitiveUnits"],["refx","refX"],["refy","refY"],["repeatcount","repeatCount"],["repeatdur","repeatDur"],["requiredextensions","requiredExtensions"],["requiredfeatures","requiredFeatures"],["specularconstant","specularConstant"],["specularexponent","specularExponent"],["spreadmethod","spreadMethod"],["startoffset","startOffset"],["stddeviation","stdDeviation"],["stitchtiles","stitchTiles"],["surfacescale","surfaceScale"],["systemlanguage","systemLanguage"],["tablevalues","tableValues"],["targetx","targetX"],["targety","targetY"],["textlength","textLength"],["viewbox","viewBox"],["viewtarget","viewTarget"],["xchannelselector","xChannelSelector"],["ychannelselector","yChannelSelector"],["zoomandpan","zoomAndPan"]])},function(e,t,r){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.nextElementSibling=t.getName=t.hasAttrib=t.getAttributeValue=t.getSiblings=t.getParent=t.getChildren=void 0;var n=r(35),i=[];function a(e){var t;return null!==(t=e.children)&&void 0!==t?t:i}function s(e){return e.parent||null}t.getChildren=a,t.getParent=s,t.getSiblings=function(e){var t=s(e);if(null!=t)return a(t);for(var r=[e],n=e.prev,i=e.next;null!=n;)r.unshift(n),n=n.prev;for(;null!=i;)r.push(i),i=i.next;return r},t.getAttributeValue=function(e,t){var r;return null===(r=e.attribs)||void 0===r?void 0:r[t]},t.hasAttrib=function(e,t){return null!=e.attribs&&Object.prototype.hasOwnProperty.call(e.attribs,t)&&null!=e.attribs[t]},t.getName=function(e){return e.name},t.nextElementSibling=function(e){for(var t=e.next;null!==t&&!n.isTag(t);)t=t.next;return t}},function(e,t,r){"use strict";function n(e){if(e.prev&&(e.prev.next=e.next),e.next&&(e.next.prev=e.prev),e.parent){var t=e.parent.children;t.splice(t.lastIndexOf(e),1)}}Object.defineProperty(t,"__esModule",{value:!0}),t.prepend=t.append=t.appendChild=t.replaceElement=t.removeElement=void 0,t.removeElement=n,t.replaceElement=function(e,t){var r=t.prev=e.prev;r&&(r.next=t);var n=t.next=e.next;n&&(n.prev=t);var i=t.parent=e.parent;if(i){var a=i.children;a[a.lastIndexOf(e)]=t}},t.appendChild=function(e,t){if(n(t),t.parent=e,1!==e.children.push(t)){var r=e.children[e.children.length-2];r.next=t,t.prev=r,t.next=null}},t.append=function(e,t){n(t);var r=e.parent,i=e.next;if(t.next=i,t.prev=e,e.next=t,t.parent=r,i){if(i.prev=t,r){var a=r.children;a.splice(a.lastIndexOf(i),0,t)}}else r&&r.children.push(t)},t.prepend=function(e,t){var r=e.parent;if(r){var n=r.children;n.splice(n.lastIndexOf(e),0,t)}e.prev&&(e.prev.next=t),t.parent=r,t.prev=e.prev,t.next=e,e.prev=t}},function(e,t,r){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.getElementsByTagType=t.getElementsByTagName=t.getElementById=t.getElements=t.testElement=void 0;var n=r(114),i=r(35);function a(e){return"text"===e.type}var s={tag_name:function(e){return"function"==typeof e?function(t){return i.isTag(t)&&e(t.name)}:"*"===e?i.isTag:function(t){return i.isTag(t)&&t.name===e}},tag_type:function(e){return"function"==typeof e?function(t){return e(t.type)}:function(t){return t.type===e}},tag_contains:function(e){return"function"==typeof e?function(t){return a(t)&&e(t.data)}:function(t){return a(t)&&t.data===e}}};function o(e,t){return"function"==typeof t?function(r){return i.isTag(r)&&t(r.attribs[e])}:function(r){return i.isTag(r)&&r.attribs[e]===t}}function c(e,t){return function(r){return e(r)||t(r)}}function u(e){var t=Object.keys(e).map((function(t){var r=e[t];return t in s?s[t](r):o(t,r)}));return 0===t.length?null:t.reduce(c)}t.testElement=function(e,t){var r=u(e);return!r||r(t)},t.getElements=function(e,t,r,i){void 0===i&&(i=1/0);var a=u(e);return a?n.filter(a,t,r,i):[]},t.getElementById=function(e,t,r){return void 0===r&&(r=!0),Array.isArray(t)||(t=[t]),n.findOne(o("id",e),t,r)},t.getElementsByTagName=function(e,t,r,i){return void 0===i&&(i=1/0),n.filter(s.tag_name(e),t,r,i)},t.getElementsByTagType=function(e,t,r,i){return void 0===r&&(r=!0),void 0===i&&(i=1/0),n.filter(s.tag_type(e),t,r,i)}},function(e,t,r){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.uniqueSort=t.compareDocumentPosition=t.removeSubsets=void 0;var n=r(35);function i(e,t){var r=[],i=[];if(e===t)return 0;for(var a=n.hasChildren(e)?e:e.parent;a;)r.unshift(a),a=a.parent;for(a=n.hasChildren(t)?t:t.parent;a;)i.unshift(a),a=a.parent;for(var s=Math.min(r.length,i.length),o=0;ou.indexOf(d)?c===t?20:4:c===e?10:2}t.removeSubsets=function(e){for(var t=e.length;--t>=0;){var r=e[t];if(t>0&&e.lastIndexOf(r,t-1)>=0)e.splice(t,1);else for(var n=r.parent;n;n=n.parent)if(e.includes(n)){e.splice(t,1);break}}return e},t.compareDocumentPosition=i,t.uniqueSort=function(e){return(e=e.filter((function(e,t,r){return!r.includes(e,t+1)}))).sort((function(e,t){var r=i(e,t);return 2&r?-1:4&r?1:0})),e}},function(e,t){},function(e,t,r){"use strict";var n,i=this&&this.__extends||(n=function(e,t){return(n=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(e,t){e.__proto__=t}||function(e,t){for(var r in t)t.hasOwnProperty(r)&&(e[r]=t[r])})(e,t)},function(e,t){function r(){this.constructor=e}n(e,t),e.prototype=null===t?Object.create(t):(r.prototype=t.prototype,new r)}),a=this&&this.__importDefault||function(e){return e&&e.__esModule?e:{default:e}};Object.defineProperty(t,"__esModule",{value:!0});var s=function(e){function t(t){void 0===t&&(t={});var r=e.call(this,(function(e){for(var t,n=[],i=1;ie));const r=await Promise.all(t.map(t=>t.actor.runObservable(e)));return this.combiner(r)}mediateWith(){throw new Error("Method not supported.")}createCombiner(){return e=>{const t={};return t[this.field]={},[{}].concat(e.map(e=>e[this.field])).forEach((e,r,n)=>{t[this.field]=Object.assign(Object.assign({},e),t[this.field])}),t}}}t.MediatorCombineUnion=i},function(e,t,r){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.MediatorRace=void 0;const n=r(0);class i extends n.Mediator{constructor(e){super(e)}mediateWith(e,t){return new Promise((e,r)=>{const n=[];for(const i of t)i.reply.then(()=>{e(i.actor)}).catch(e=>{n.push(e),n.length===t.length&&r(new Error(`${this.name} mediated over all rejecting actors:\n${n.map(e=>e.message).join("\n")}`))})})}}t.MediatorRace=i},function(e,t,r){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.MediatorNumber=void 0;const n=r(0);class i extends n.Mediator{constructor(e){super(e),this.indexPicker=this.createIndexPicker()}createIndexPicker(){switch(this.type){case i.MIN:return e=>e.reduce((e,t,r)=>{const n=this.getOrDefault(t[this.field],1/0);return null!==n&&(Number.isNaN(e[0])||e[0]>n)?[n,r]:e},[Number.NaN,-1])[1];case i.MAX:return e=>e.reduce((e,t,r)=>{const n=this.getOrDefault(t[this.field],-1/0);return null!==n&&(Number.isNaN(e[0])||e[0]e);const n=[];if(this.ignoreErrors){const e={};e[this.field]=null,r=r.map(t=>t.catch(t=>(n.push(t),e)))}const i=await Promise.all(r),a=this.indexPicker(i);if(a<0)throw new Error(`All actors rejected their test in ${this.name}\n${n.map(e=>e.message).join("\n")}`);return t[a].actor}}t.MediatorNumber=i,i.MIN="https://linkedsoftwaredependencies.org/bundles/npm/@comunica/mediator-number/Mediator/Number/type/TypeMin",i.MAX="https://linkedsoftwaredependencies.org/bundles/npm/@comunica/mediator-number/Mediator/Number/type/TypeMax"},function(e,t,r){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),function(e){for(var r in e)t.hasOwnProperty(r)||(t[r]=e[r])}(r(275))},function(e,t,r){"use strict";Object.defineProperty(t,"__esModule",{value:!0});const n=r(25),i=r(29);class a extends n.ActorHttp{constructor(e){super(e)}async test(e){return{time:1/0}}run(e){return i.fetch(e.input,e.init)}}t.ActorHttpSolidAuthFetch=a},function(e,t,r){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.KEY_CONTEXT_AUTH=t.KEY_CONTEXT_INCLUDE_CREDENTIALS=t.ActorHttp=void 0;const n=r(0);class i extends n.Actor{constructor(e){super(e)}static toNodeReadable(e){return r(277)(e)?e:r(116).toNodeReadable(e)}static headersToHash(e){const t={};return e.forEach((e,r)=>{t[r]=e}),t}}t.ActorHttp=i,t.KEY_CONTEXT_INCLUDE_CREDENTIALS="@comunica/bus-http:include-credentials",t.KEY_CONTEXT_AUTH="@comunica/bus-http:auth"},function(e,t,r){"use strict";const n=e=>null!==e&&"object"==typeof e&&"function"==typeof e.pipe;n.writable=e=>n(e)&&!1!==e.writable&&"function"==typeof e._write&&"object"==typeof e._writableState,n.readable=e=>n(e)&&!1!==e.readable&&"function"==typeof e._read&&"object"==typeof e._readableState,n.duplex=e=>n.writable(e)&&n.readable(e),n.transform=e=>n.duplex(e)&&"function"==typeof e._transform&&"object"==typeof e._transformState,e.exports=n},function(e,t,r){"use strict";var n=e.exports=function(e){return null!==e&&"object"==typeof e&&"function"==typeof e.pipe};n.writable=function(e){return n(e)&&!1!==e.writable&&"function"==typeof e._write&&"object"==typeof e._writableState},n.readable=function(e){return n(e)&&!1!==e.readable&&"function"==typeof e._read&&"object"==typeof e._readableState},n.duplex=function(e){return n.writable(e)&&n.readable(e)},n.transform=function(e){return n.duplex(e)&&"function"==typeof e._transform&&"object"==typeof e._transformState}},function(e,t,r){"use strict";(function(t){const n=r(2).Readable,i=r(117).ReadableStream;t.ReadableStream=t.ReadableStream||i;const a=r(280);class s extends n{constructor(e,t){super(t),this._webStream=e,this._reader=e.getReader(),this._reading=!1}_read(e){if(this._reading)return;this._reading=!0;const t=()=>{this._reader.read().then(r=>(this._doneReading&&(this._reading=!1,this._reader.releaseLock(),this._doneReading()),r.done?(this.push(null),this._reading=!1,void this._reader.releaseLock()):this.push(r.value)?t(e):(this._reading=!1,void this._reader.releaseLock())))};t()}_destroy(e,t){if(this._reading){new Promise(e=>{this._doneReading=e}).then(()=>this._handleDestroy(e,t))}else this._handleDestroy(e,t)}_handleDestroy(e,t){this._webStream.cancel(),super._destroy(e,t)}}e.exports={readable:{nodeToWeb:a,arrayToWeb:function(e){return new i({start(t){for(var r=0;r{i._read=()=>{};let t=1;function n(e){i.emit("error",e)}function s(){0==--t&&i.push(null)}const o={baseIRI:e.baseIRI,context:r,emit:function(e){i.emit("data",e)},end:s,error:n,headers:e.headers};Promise.all(this.busRdfParseHtml.publish(o)).then(async r=>{t+=r.length;const i=[];for(const e of r){const{htmlParseListener:t}=await e.actor.run(o);i.push(t)}const c=new a.Parser({onclosetag(){try{for(const e of i)e.onTagClose()}catch(e){n(e)}},onend(){try{for(const e of i)e.onEnd()}catch(e){n(e)}s()},onopentag(e,t){try{for(const r of i)r.onTagOpen(e,t)}catch(e){n(e)}},ontext(e){try{for(const t of i)t.onText(e)}catch(e){n(e)}}},{decodeEntities:!0,recognizeSelfClosing:!0,xmlMode:!1});e.input.on("error",n),e.input.pipe(c)}).catch(n)},{quads:i}}}t.ActorRdfParseHtml=s},function(e,t,r){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.ActorRdfParseHtmlRdfa=void 0;const n=r(120),i=r(103);class a extends n.ActorRdfParseHtml{constructor(e){super(e)}async test(e){return!0}async run(e){var t;const r=e.headers?e.headers.get("content-type"):null,n=null!==(t=e.headers&&e.headers.get("content-language"))&&void 0!==t?t:void 0,a=r&&r.includes("xml")?"xhtml":"html",s=new i.RdfaParser({baseIRI:e.baseIRI,profile:a,language:n});s.on("error",e.error),s.on("data",e.emit);const o=s.onEnd;return s.onEnd=()=>{o.call(s),e.end()},{htmlParseListener:s}}}t.ActorRdfParseHtmlRdfa=a},function(e,t,r){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.ActorRdfParseHtml=void 0;const n=r(0);class i extends n.Actor{constructor(e){super(e)}}t.ActorRdfParseHtml=i},function(e,t,r){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.ActorRdfJoinSymmetricHash=void 0;const n=r(1),i=r(52),a=r(127);class s extends i.ActorRdfJoin{constructor(e){super(e,2)}static hash(e,t){return t.filter(t=>e.has(t)).map(t=>e.get(t).value).join("")}async getOutput(e){const t=i.ActorRdfJoin.overlappingVariables(e);return{type:"bindings",bindingsStream:new a.SymmetricHashJoin(e.entries[0].bindingsStream,e.entries[1].bindingsStream,e=>s.hash(e,t),i.ActorRdfJoin.join),variables:i.ActorRdfJoin.joinVariables(e),canContainUndefs:!1}}async getIterations(e){return(await n.getMetadata(e.entries[0])).totalItems+(await n.getMetadata(e.entries[1])).totalItems}}t.ActorRdfJoinSymmetricHash=s},function(e,t,r){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.stringQuadToQuad=t.quadToStringQuad=t.stringToTerm=t.getLiteralLanguage=t.getLiteralType=t.getLiteralValue=t.termToString=void 0;const n=new(r(6).DataFactory);function i(e){if(e)switch(e.termType){case"NamedNode":return e.value;case"BlankNode":return"_:"+e.value;case"Literal":const t=e;return'"'+t.value+'"'+(t.datatype&&"http://www.w3.org/2001/XMLSchema#string"!==t.datatype.value&&"http://www.w3.org/1999/02/22-rdf-syntax-ns#langString"!==t.datatype.value?"^^"+t.datatype.value:"")+(t.language?"@"+t.language:"");case"Quad":return`<<${i(e.subject)} ${i(e.predicate)} ${i(e.object)}${"DefaultGraph"===e.graph.termType?"":" "+i(e.graph)}>>`;case"Variable":return"?"+e.value;case"DefaultGraph":return e.value}}function a(e){const t=/^"([^]*)"/.exec(e);if(!t)throw new Error(e+" is not a literal");return t[1]}function s(e){const t=/^"[^]*"(?:\^\^([^"]+)|(@)[^@"]+)?$/.exec(e);if(!t)throw new Error(e+" is not a literal");return t[1]||(t[2]?"http://www.w3.org/1999/02/22-rdf-syntax-ns#langString":"http://www.w3.org/2001/XMLSchema#string")}function o(e){const t=/^"[^]*"(?:@([^@"]+)|\^\^[^"]+)?$/.exec(e);if(!t)throw new Error(e+" is not a literal");return t[1]?t[1].toLowerCase():""}function c(e,t){if(t=t||n,!e||!e.length)return t.defaultGraph();switch(e[0]){case"_":return t.blankNode(e.substr(2));case"?":if(!t.variable)throw new Error("Missing 'variable()' method on the given DataFactory");return t.variable(e.substr(1));case'"':const r=o(e),n=t.namedNode(s(e));return t.literal(a(e),r||n);case"<":default:if(e.startsWith("<<")&&e.endsWith(">>")){const r=e.slice(2,-2),n=[];let i=0,a=0;for(let t=0;t"===s){if(0===i)throw new Error("Found closing tag without opening tag in "+e);i--}" "===s&&0===i&&(n.push(r.slice(a,t)),a=t+1)}if(0!==i)throw new Error("Found opening tag without closing tag in "+e);if(n.push(r.slice(a,r.length)),3!==n.length&&4!==n.length)throw new Error("Nested quad syntax error "+e);return t.quad(c(n[0]),c(n[1]),c(n[2]),n[3]?c(n[3]):void 0)}return t.namedNode(e)}}t.termToString=i,t.getLiteralValue=a,t.getLiteralType=s,t.getLiteralLanguage=o,t.stringToTerm=c,t.quadToStringQuad=function(e){return{subject:i(e.subject),predicate:i(e.predicate),object:i(e.object),graph:i(e.graph)}},t.stringQuadToQuad=function(e,t){return(t=t||n).quad(c(e.subject,t),c(e.predicate,t),c(e.object,t),c(e.graph,t))}},function(e,t,r){"use strict";Object.defineProperty(t,"__esModule",{value:!0});const n=r(50),i=r(51),a=r(66),s=r(291),o=r(5),c=r(37).Parser,u=n.types;let l,d=new Set,p=0,h=!1;function f(e,t,r){if(d=new Set,p=0,h=t,"query"!==e.type&&"update"!==e.type)throw new Error("Translate only works on complete query or update objects.");let n,i=new Set(Object.keys(function e(t){let r={};if(m(t))r[o.termToString(t)]=!0,d.add(t);else if(n=t,null!==n&&"object"==typeof n)if("bind"===t.type)e(t.expression),Object.assign(r,e(t.variable));else if("SELECT"===t.queryType){let n=e(t.where);for(let i of t.variables)a.default.isWildcard(i)?Object.assign(r,n):i.variable?Object.assign(r,e(i.variable)):Object.assign(r,e(i));if(t.group)for(let n of t.group)Object.assign(r,e(n))}else for(let n of Object.keys(t))Object.assign(r,e(t[n]));var n;return r}(e)).map(l.createTerm.bind(l)));if("query"===e.type){n=g({type:"group",patterns:e.where||[]}),n=function(e,t,r){let n=[],i={};if(e.variables=x(e.variables,i),e.having=x(e.having,i),e.order=x(e.order,i),e.group||Object.keys(i).length>0){let r=Object.keys(i).map(e=>function(e,t){if("aggregate"!==e.type||!e.aggregation)throw new Error("Unexpected input: "+JSON.stringify(e));let r=y(e);return r.variable=t,r}(i[e],l.createTerm(e))),n=[];if(e.group)for(let r of e.group)if(r.expression.type){const e=r.variable?r.variable:v();t=l.createExtend(t,e,y(r.expression)),n.push(e)}else n.push(r.expression);t=l.createGroup(t,n,r)}if(e.having)for(let r of e.having)t=l.createFilter(t,y(r));e.values&&(t=l.createJoin(t,O(e)));let s=new Set;if("SELECT"===e.queryType||"DESCRIBE"===e.queryType)if(e.variables.some(e=>e&&a.default.isWildcard(e)))s=r;else for(let t of e.variables)m(t)||!t.variable?s.add(t):t.variable&&(s.add(t.variable),n.push(t));for(let e of n)t=l.createExtend(t,e.variable,y(e.expression));e.order&&(t=l.createOrderBy(t,e.order.map(e=>{let t=y(e.expression);return e.descending&&(t=l.createOperatorExpression(u.DESC,[t])),t})));"SELECT"===e.queryType&&(t=l.createProject(t,Array.from(s)));e.distinct&&(t=l.createDistinct(t));e.reduced&&(t=l.createReduced(t));"CONSTRUCT"===e.queryType?t=l.createConstruct(t,e.template.map(w)):"ASK"===e.queryType?t=l.createAsk(t):"DESCRIBE"===e.queryType&&(t=l.createDescribe(t,Array.from(s)));(e.offset||e.limit)&&(t=l.createSlice(t,e.offset,e.limit));e.from&&(t=l.createFrom(t,e.from.default,e.from.named));return t}(e,n,i)}else"update"===e.type&&(n=1===(s=e).updates.length?A(s.updates[0]):l.createCompositeUpdate(s.updates.map(A)));var s;return r&&(n=function e(t,r){const n={},i=Array.from(r).reduce((e,t)=>(e[t.value]=!0,e),{});return a.default.mapOperation(t,{path:(e,t)=>({result:t.createPath(s(e.subject),e.predicate,s(e.object),s(e.graph)),recurse:!1}),pattern:(e,t)=>({result:t.createPattern(s(e.subject),s(e.predicate),s(e.object),s(e.graph)),recurse:!1}),construct:t=>({result:l.createConstruct(e(t.input,r),t.template),recurse:!1})});function s(e){if("BlankNode"===e.termType){let t=n[e.value];return t||(t=a.default.createUniqueVariable(e.value,i,l.dataFactory),i[t.value]=!0,n[e.value]=t),t}return e}}(n,i)),n}function m(e){return e&&"Variable"===e.termType}function g(e){let t,r=[],n=[];if(e.patterns)for(let t of e.patterns)("filter"===t.type?r:n).push(t);if("bgp"===e.type)return function(e){let t=[],r=[];for(let n of e.triples)if("path"===n.predicate.type){let e=b(n);for(let n of e)n.type===u.PATH?(t.length>0&&r.push(l.createBgp(t)),t=[],r.push(n)):t.push(n)}else t.push(w(n));t.length>0&&r.push(l.createBgp(t));return 1===r.length?r[0]:r.reduce((e,t)=>l.createJoin(e,t))}(e);if("union"===e.type)t=n.map(e=>("group"!==e.type&&(e={type:"group",patterns:[e]}),g(e))).reduce((e,t)=>l.createUnion(e,t));else{if("graph"===e.type)return function(e){e.type="group";let t=g(e);t=h?function e(t,r,n){if(t.type===u.BGP)t.patterns=t.patterns.map(e=>(n&&(e.subject.equals(r)&&(e.subject=n),e.predicate.equals(r)&&(e.predicate=n),e.object.equals(r)&&(e.object=n)),e.graph=r,e));else if(t.type===u.PATH){const e=t;n&&(e.subject.equals(r)&&(e.subject=n),e.object.equals(r)&&(e.object=n)),t.graph=r}else if(t.type!==u.PROJECT||n)if(t.type!==u.EXTEND||n)for(let i of Object.keys(t))Array.isArray(t[i])?t[i]=t[i].map(t=>e(t,r,n)):S.indexOf(t[i].type)>=0?t[i]=e(t[i],r,n):n&&m(t[i])&&t[i].equals(r)&&(t[i]=n);else{const i=t;i.variable.equals(r)&&(n=v()),i.input=e(i.input,r,n)}else{const i=t;i.variables.some(e=>e.equals(r))||(n=v()),i.input=e(i.input,r,n)}return t}(t,e.name):l.createGraph(t,e.name);return t}(e);if("group"===e.type)t=n.reduce(E,l.createBgp([]));else if("values"===e.type)t=O(e);else{if("query"!==e.type)throw new Error("Unexpected type: "+e.type);t=f(e,h,!1)}}if(r.length>0){let e=r.map(e=>y(e.expression));e.length>0&&(t=l.createFilter(t,e.reduce((e,t)=>l.createOperatorExpression("&&",[e,t]))))}return t}function y(e){if(a.default.isTerm(e)||"Quad"===e.termType)return l.createTermExpression(e);if(a.default.isWildcard(e))return l.createWildcardExpression();if(e.aggregation)return l.createAggregateExpression(e.aggregation,y(e.expression),e.distinct,e.separator);if(e.function)return l.createNamedExpression(e.function,e.args.map(y));if(e.operator)return"exists"===e.operator||"notexists"===e.operator?l.createExistenceExpression("notexists"===e.operator,g(e.args[0])):("in"!==e.operator&&"notin"!==e.operator||(e.args=[e.args[0]].concat(e.args[1])),l.createOperatorExpression(e.operator,e.args.map(y)));throw new Error("Unknown expression: "+JSON.stringify(e))}function b(e){return function e(t,r,n){if(r.type===u.LINK)return[l.createPattern(t,r.iri,n)];if(r.type===u.INV)return e(n,r.path,t);if(r.type===u.SEQ){let i=v(),a=e(t,r.left,i),s=e(i,r.right,n);return a.concat(s)}return[l.createPath(t,r,n)]}(e.subject,_(e.predicate),e.object)}function _(e){if(a.default.isTerm(e)&&"NamedNode"===e.termType)return l.createLink(e);if("^"===e.pathType)return l.createInv(_(e.items[0]));if("!"===e.pathType){let t,r=[],n=[];t="path"===e.items[0].type&&"|"===e.items[0].pathType?e.items[0].items:e.items;for(let e of t)if(a.default.isTerm(e))r.push(e);else{if("^"!==e.pathType)throw new Error("Unexpected item: "+JSON.stringify(e));n.push(e.items[0])}let i=l.createNps(r),s=l.createInv(l.createNps(n));return 0===n.length?i:0===r.length?s:l.createAlt(i,s)}if("/"===e.pathType)return e.items.map(_).reduce((e,t)=>l.createSeq(e,t));if("|"===e.pathType)return e.items.map(_).reduce((e,t)=>l.createAlt(e,t));if("*"===e.pathType)return l.createZeroOrMorePath(_(e.items[0]));if("+"===e.pathType)return l.createOneOrMorePath(_(e.items[0]));if("?"===e.pathType)return l.createZeroOrOnePath(_(e.items[0]));throw new Error("Unable to translate path expression "+JSON.stringify(e))}function v(){let e="?var"+p++;return d.has(e)?v():(d.add(e),l.createTerm(e))}function w(e){return l.createPattern(e.subject,e.predicate,e.object,e.graph)}t.default=function(e,t){if(t=t||{},l=new i.default(t.dataFactory),"string"==typeof e){let r=new c(t);r._resetBlanks(),e=r.parse(e)}return f(e,t.quads,t.blankToVariable)};let S=Object.keys(u).map(e=>u[e]);function E(e,t){if("optional"===t.type){let r=g({type:"group",patterns:t.patterns});if(r.type===u.FILTER){let t=r;e=l.createLeftJoin(e,t.input,t.expression)}else e=l.createLeftJoin(e,r)}else if("minus"===t.type){let r=g({type:"group",patterns:t.patterns});e=l.createMinus(e,r)}else if("bind"===t.type)e=l.createExtend(e,t.variable,y(t.expression));else if("service"===t.type){t.type="group",e=T(e,l.createService(g(t),t.name,t.silent))}else{e=T(e,g(t))}return e}function T(e,t){return e.type===u.BGP&&t.type===u.BGP?e=l.createBgp([].concat(e.patterns,t.patterns)):e.type===u.BGP&&0===e.patterns.length?e=t:t.type===u.BGP&&0===t.patterns.length||(e=l.createJoin(e,t)),e}function O(e){let t=(0===e.values.length?[]:Object.keys(e.values[0])).map(l.createTerm.bind(l)),r=e.values.map(e=>{let t=Object.keys(e);t=t.filter(t=>void 0!==e[t]);let r={};for(let n of t)r[n]=e[n];return r});return l.createValues(t,r)}function x(e,t){if(!e)return e;if("aggregate"===e.type){let r,n=!1;for(let i of Object.keys(t))if(s(t[i],e)){r=l.createTerm(i),n=!0;break}return n||(r=v(),t[o.termToString(r)]=e),r}return e.expression?e.expression=x(e.expression,t):e.args?x(e.args,t):Array.isArray(e)&&e.forEach((r,n)=>e[n]=x(r,t)),e}function A(e){if("insertdelete"===e.updateType||"deletewhere"===e.updateType||"delete"===e.updateType||"insert"===e.updateType)return function(e){if(!h)throw new Error("INSERT/DELETE operations are only supported with quads option enabled");let t,r=[],n=[];e.delete&&(r=a.default.flatten(e.delete.map(t=>R(t,e.graph))));e.insert&&(n=a.default.flatten(e.insert.map(t=>R(t,e.graph))));e.where&&e.where.length>0&&(t=g({type:"group",patterns:e.where}),e.using?t=l.createFrom(t,e.using.default,e.using.named):e.graph&&(t=l.createFrom(t,[e.graph],[])));return l.createDeleteInsert(r.length>0?r.map(w):void 0,n.length>0?n.map(w):void 0,t)}(e);if("load"===e.type)return function(e){return l.createLoad(e.source,e.destination,e.silent)}(e);if("clear"===e.type||"create"===e.type||"drop"===e.type)return function(e){let t;t=e.graph.all?"ALL":e.graph.default?"DEFAULT":e.graph.named?"NAMED":e.graph.name;switch(e.type){case"clear":return l.createClear(t,e.silent);case"create":return l.createCreate(t,e.silent);case"drop":return l.createDrop(t,e.silent)}}(e);if("add"===e.type||"copy"===e.type||"move"===e.type)return function(e){const t=e.source.default?"DEFAULT":e.source.name,r=e.destination.default?"DEFAULT":e.destination.name;switch(e.type){case"copy":return l.createCopy(t,r,e.silent);case"move":return l.createMove(t,r,e.silent);case"add":return l.createAdd(t,r,e.silent)}}(e);throw new Error("Unknown update type "+e.updateType)}function R(e,t){let r=t;"graph"===e.type&&(r=e.name);let n=e.triples;return r&&(n=n.map(e=>Object.assign(e,{graph:r}))),n}},function(e,t,r){(function(e,n){var i=function(){var e=function(e,t,r,n){for(r=r||{},n=e.length;n--;r[e[n]]=t);return r},t=[6,12,15,28,41,50,55,107,117,120,122,123,132,133,138,320,321,322,323,324],n=[2,208],i=[107,117,120,122,123,132,133,138,320,321,322,323,324],a=[1,20],s=[1,29],o=[6,90],c=[45,46,58],u=[45,58],l=[1,58],d=[1,60],p=[1,56],h=[1,59],f=[1,65],m=[1,66],g=[26,34,35],y=[13,16,310],b=[119,141,318,325],_=[13,16,119,141,310],v=[1,88],w=[1,92],S=[1,94],E=[119,141,318,319,325],T=[13,16,119,141,310,319],O=[1,100],x=[2,250],A=[1,99],R=[13,16,34,35,87,93,224,229,243,244,297,298,299,300,301,302,303,304,305,306,307,308,309,310],I=[6,45,46,58,68,75,78,86,88,90],P=[6,13,16,34,45,46,58,68,75,78,86,88,90,310],N=[6,13,16,26,34,35,37,38,45,46,48,58,68,75,78,86,87,88,90,93,100,116,119,132,133,135,140,167,168,170,173,174,191,195,217,222,224,225,229,233,243,244,248,252,256,271,276,293,297,298,299,300,301,302,303,304,305,306,307,308,309,310,326,328,329,331,332,333,334,335,336,337,338],C=[34,35,45,46,58],j=[13,16,34,35,87,273,274,275,277,279,280,282,283,286,288,297,298,299,300,301,302,303,304,305,306,307,308,309,310,338,339,340,341,342,343],D=[2,451],k=[1,123],L=[1,117],M=[1,124],F=[1,125],q=[6,13,16,34,35,46,48,87,90,93,119,167,168,170,173,174,224,229,243,244,297,298,299,300,301,302,303,304,305,306,307,308,309,310,326],B=[2,309],U=[1,142],V=[1,140],Q=[6,191],H=[2,326],G=[2,314],z=[45,135],X=[6,48,78,86,88,90],$=[2,254],Y=[1,156],J=[1,158],W=[6,48,75,78,86,88,90],K=[2,252],Z=[1,164],ee=[1,176],te=[1,174],re=[1,184],ne=[1,182],ie=[1,175],ae=[1,180],se=[1,181],oe=[1,185],ce=[1,186],ue=[1,189],le=[1,190],de=[1,191],pe=[1,192],he=[1,193],fe=[1,194],me=[1,195],ge=[1,196],ye=[1,197],be=[1,198],_e=[1,199],ve=[6,68,75,78,86,88,90],we=[37,38,191,248,276],Se=[37,38,191,248,252,276],Ee=[37,38,191,248,252,256,271,276,293,304,305,306,307,308,309,332,333,334,335,336,337,338],Te=[26,37,38,191,248,252,256,271,276,293,304,305,306,307,308,309,329,332,333,334,335,336,337,338],Oe=[1,229],xe=[1,230],Ae=[1,232],Re=[1,233],Ie=[1,234],Pe=[1,235],Ne=[1,237],Ce=[1,238],je=[2,458],De=[1,240],ke=[1,241],Le=[1,242],Me=[1,248],Fe=[1,243],qe=[1,244],Be=[1,245],Ue=[1,246],Ve=[1,247],Qe=[13,16,48,87,100,229,297,298,299,300,301,302,303,304,305,306,307,308,309,310],He=[48,93],Ge=[34,38],ze=[6,116,191],Xe=[48,119],$e=[6,48,86,88,90],Ye=[2,338],Je=[2,330],We=[1,293],Ke=[1,295],Ze=[48,119,326],et=[13,16,34,195,310],tt=[13,16,34,35,38,46,48,87,90,93,119,167,168,170,173,174,191,195,217,222,224,225,229,233,243,244,276,297,298,299,300,301,302,303,304,305,306,307,308,309,310,326],rt=[13,16,26,34,35,37,38,46,48,87,90,93,100,119,167,168,170,173,174,191,195,217,222,224,225,229,233,243,244,248,252,256,271,276,293,297,298,299,300,301,302,303,304,305,306,307,308,309,310,326,329,332,333,334,335,336,337,338],nt=[13,16,26,34,35,37,38,46,48,87,90,93,100,119,167,168,170,173,174,191,195,217,222,224,225,229,233,243,244,248,252,256,271,276,293,295,296,297,298,299,300,301,302,303,304,305,306,307,308,309,310,326,329,332,333,334,335,336,337,338],it=[13,16,34,35,87,217,271,273,274,275,277,279,280,282,283,286,288,297,298,299,300,301,302,303,304,305,306,307,308,309,310,332,338,339,340,341,342,343],at=[1,329],st=[1,330],ot=[1,332],ct=[1,331],ut=[6,13,16,26,34,35,37,38,46,48,75,78,81,83,86,87,88,90,93,119,167,168,170,173,174,191,224,229,243,244,248,252,256,271,273,274,275,276,277,279,280,282,283,286,288,293,297,298,299,300,301,302,303,304,305,306,307,308,309,310,326,329,332,333,334,335,336,337,338,339,340,341,342,343],lt=[1,340],dt=[1,339],pt=[35,93],ht=[1,353],ft=[1,354],mt=[1,367],gt=[6,48,90],yt=[6,13,16,35,48,78,86,88,90,273,274,275,277,279,280,282,283,286,288,310,338,339,340,341,342,343],bt=[6,13,16,34,35,46,48,78,81,83,86,87,88,90,93,119,167,168,170,173,174,224,229,243,244,273,274,275,277,279,280,282,283,286,288,297,298,299,300,301,302,303,304,305,306,307,308,309,310,326,338,339,340,341,342,343],_t=[46,48,90,119,167,168,170,173,174],vt=[1,386],wt=[1,387],St=[1,393],Et=[1,392],Tt=[48,119,191,225,326],Ot=[2,370],xt=[13,16,34,35,38,87,93,224,229,243,244,297,298,299,300,301,302,303,304,305,306,307,308,309,310],At=[13,16,34,35,38,46,48,87,90,93,119,167,168,170,173,174,191,224,225,229,243,244,276,297,298,299,300,301,302,303,304,305,306,307,308,309,310,326],Rt=[13,16,26,34,35,87,217,271,273,274,275,277,279,280,282,283,286,288,297,298,299,300,301,302,303,304,305,306,307,308,309,310,332,338,339,340,341,342,343],It=[13,16,38,48,87,100,229,297,298,299,300,301,302,303,304,305,306,307,308,309,310],Pt=[35,48],Nt=[2,329],Ct=[1,451],jt=[1,448],Dt=[1,449],kt=[6,13,16,26,34,35,37,38,46,48,68,75,78,81,83,86,87,88,90,93,119,167,168,170,173,174,191,224,229,243,244,248,252,256,271,273,274,275,276,277,279,280,282,283,286,288,293,297,298,299,300,301,302,303,304,305,306,307,308,309,310,326,327,329,332,333,334,335,336,337,338,339,340,341,342,343],Lt=[13,16,35,195,217,222,310],Mt=[2,384],Ft=[1,469],qt=[46,48,90,119,167,168,170,173,174,326],Bt=[13,16,34,35,195,217,222,310],Ut=[6,13,16,34,35,48,75,78,86,88,90,273,274,275,277,279,280,282,283,286,288,310,338,339,340,341,342,343],Vt=[13,16,34,35,38,46,48,87,90,93,119,167,168,170,173,174,191,195,224,225,229,243,244,276,297,298,299,300,301,302,303,304,305,306,307,308,309,310,326],Qt=[6,13,16,34,35,48,81,83,86,88,90,273,274,275,277,279,280,282,283,286,288,310,338,339,340,341,342,343],Ht=[13,16,34,35,46,48,87,90,93,119,167,168,170,173,174,224,229,243,244,297,298,299,300,301,302,303,304,305,306,307,308,309,310],Gt=[13,16,34,310],zt=[13,16,34,35,46,48,87,90,93,119,167,168,170,173,174,224,229,243,244,297,298,299,300,301,302,303,304,305,306,307,308,309,310,326],Xt=[2,341],$t=[46,48,90,119,167,168,170,173,174,191,225,326],Yt=[13,16,34,35,37,38,46,48,87,90,93,119,167,168,170,173,174,191,195,217,222,224,225,229,233,243,244,276,297,298,299,300,301,302,303,304,305,306,307,308,309,310,326],Jt=[2,336],Wt=[13,16,35,195,217,310],Kt=[13,16,34,35,38,46,48,87,90,93,119,167,168,170,173,174,191,195,217,222,224,225,229,243,244,276,297,298,299,300,301,302,303,304,305,306,307,308,309,310,326],Zt=[13,16,38,87,100,229,297,298,299,300,301,302,303,304,305,306,307,308,309,310],er=[13,16,34,38,48,87,100,195,229,233,297,298,299,300,301,302,303,304,305,306,307,308,309,310],tr=[13,16,34,35,48,87,93,119,224,229,243,244,297,298,299,300,301,302,303,304,305,306,307,308,309,310],rr=[13,16,34,35,38,87,93,224,229,243,244,297,298,299,300,301,302,303,304,305,306,307,308,309,310,328,329],nr=[13,16,26,34,35,38,87,93,224,229,243,244,297,298,299,300,301,302,303,304,305,306,307,308,309,310,328,329,331,332],ir=[1,630],ar=[1,631],sr=[2,324],or=[13,16,38,195,222,310],cr={trace:function(){},yy:{},symbols_:{error:2,QueryOrUpdate:3,Prologue:4,QueryOrUpdate_group0:5,EOF:6,Prologue_repetition0:7,Query:8,Query_group0:9,Query_option0:10,BaseDecl:11,BASE:12,IRIREF:13,PrefixDecl:14,PREFIX:15,PNAME_NS:16,SelectQuery:17,SelectClauseWildcard:18,SelectQuery_repetition0:19,WhereClause:20,SolutionModifierNoGroup:21,SelectClauseVars:22,SelectQuery_repetition1:23,SolutionModifier:24,SelectClauseBase:25,"*":26,SelectClauseVars_repetition_plus0:27,SELECT:28,SelectClauseBase_option0:29,SubSelect:30,SubSelect_option0:31,SubSelect_option1:32,SelectClauseItem:33,VAR:34,"(":35,Expression:36,AS:37,")":38,VarTriple:39,ConstructQuery:40,CONSTRUCT:41,ConstructTemplate:42,ConstructQuery_repetition0:43,ConstructQuery_repetition1:44,WHERE:45,"{":46,ConstructQuery_option0:47,"}":48,DescribeQuery:49,DESCRIBE:50,DescribeQuery_group0:51,DescribeQuery_repetition0:52,DescribeQuery_option0:53,AskQuery:54,ASK:55,AskQuery_repetition0:56,DatasetClause:57,FROM:58,DatasetClause_option0:59,iri:60,WhereClause_option0:61,GroupGraphPattern:62,SolutionModifier_option0:63,SolutionModifierNoGroup_option0:64,SolutionModifierNoGroup_option1:65,SolutionModifierNoGroup_option2:66,GroupClause:67,GROUP:68,BY:69,GroupClause_repetition_plus0:70,GroupCondition:71,BuiltInCall:72,FunctionCall:73,HavingClause:74,HAVING:75,HavingClause_repetition_plus0:76,OrderClause:77,ORDER:78,OrderClause_repetition_plus0:79,OrderCondition:80,ASC:81,BrackettedExpression:82,DESC:83,Constraint:84,LimitOffsetClauses:85,LIMIT:86,INTEGER:87,OFFSET:88,ValuesClause:89,VALUES:90,InlineData:91,InlineData_repetition0:92,NIL:93,InlineData_repetition1:94,InlineData_repetition_plus2:95,InlineData_repetition3:96,DataBlockValue:97,Literal:98,ConstTriple:99,UNDEF:100,DataBlockValueList:101,DataBlockValueList_repetition_plus0:102,Update:103,Update_repetition0:104,Update1:105,Update_option0:106,LOAD:107,Update1_option0:108,Update1_option1:109,Update1_group0:110,Update1_option2:111,GraphRefAll:112,Update1_group1:113,Update1_option3:114,GraphOrDefault:115,TO:116,CREATE:117,Update1_option4:118,GRAPH:119,INSERTDATA:120,QuadPattern:121,DELETEDATA:122,DELETEWHERE:123,Update1_option5:124,InsertClause:125,Update1_option6:126,Update1_repetition0:127,Update1_option7:128,DeleteClause:129,Update1_option8:130,Update1_repetition1:131,DELETE:132,INSERT:133,UsingClause:134,USING:135,UsingClause_option0:136,WithClause:137,WITH:138,IntoGraphClause:139,INTO:140,DEFAULT:141,GraphOrDefault_option0:142,GraphRefAll_group0:143,QuadPattern_option0:144,QuadPattern_repetition0:145,QuadsNotTriples:146,QuadsNotTriples_group0:147,QuadsNotTriples_option0:148,QuadsNotTriples_option1:149,QuadsNotTriples_option2:150,TriplesTemplate:151,TriplesTemplate_repetition0:152,TriplesSameSubject:153,TriplesTemplate_option0:154,GroupGraphPatternSub:155,GroupGraphPatternSub_option0:156,GroupGraphPatternSub_repetition0:157,GroupGraphPatternSubTail:158,GraphPatternNotTriples:159,GroupGraphPatternSubTail_option0:160,GroupGraphPatternSubTail_option1:161,TriplesBlock:162,TriplesBlock_repetition0:163,TriplesSameSubjectPath:164,TriplesBlock_option0:165,GraphPatternNotTriples_repetition0:166,OPTIONAL:167,MINUS:168,GraphPatternNotTriples_group0:169,SERVICE:170,GraphPatternNotTriples_option0:171,GraphPatternNotTriples_group1:172,FILTER:173,BIND:174,FunctionCall_option0:175,FunctionCall_repetition0:176,ExpressionList:177,ExpressionList_repetition0:178,ConstructTemplate_option0:179,ConstructTriples:180,ConstructTriples_repetition0:181,ConstructTriples_option0:182,TriplesSameSubject_group0:183,PropertyListNotEmpty:184,TriplesNode:185,PropertyList:186,PropertyList_option0:187,VerbObjectList:188,PropertyListNotEmpty_repetition0:189,SemiOptionalVerbObjectList:190,";":191,SemiOptionalVerbObjectList_option0:192,Verb:193,ObjectList:194,a:195,ObjectList_repetition0:196,GraphNode:197,TriplesSameSubjectPath_group0:198,PropertyListPathNotEmpty:199,TriplesNodePath:200,TriplesSameSubjectPath_option0:201,PropertyListPathNotEmpty_group0:202,PropertyListPathNotEmpty_repetition0:203,GraphNodePath:204,PropertyListPathNotEmpty_repetition1:205,PropertyListPathNotEmptyTail:206,PropertyListPathNotEmptyTail_group0:207,Path:208,Path_repetition0:209,PathSequence:210,PathSequence_repetition0:211,PathEltOrInverse:212,PathElt:213,PathPrimary:214,PathElt_option0:215,PathEltOrInverse_option0:216,"!":217,PathNegatedPropertySet:218,PathOneInPropertySet:219,PathNegatedPropertySet_repetition0:220,PathNegatedPropertySet_option0:221,"^":222,TriplesNode_repetition_plus0:223,"[":224,"]":225,TriplesNodePath_repetition_plus0:226,GraphNode_group0:227,GraphNodePath_group0:228,"<<":229,VarTriple_group0:230,VarTriple_group1:231,VarTriple_group2:232,">>":233,VarTriple_group3:234,VarTriple_group4:235,ConstTriple_group0:236,ConstTriple_group1:237,ConstTriple_group2:238,ConstTriple_group3:239,ConstTriple_group4:240,VarOrTerm:241,Term:242,BLANK_NODE_LABEL:243,ANON:244,ConditionalAndExpression:245,Expression_repetition0:246,ExpressionTail:247,"||":248,RelationalExpression:249,ConditionalAndExpression_repetition0:250,ConditionalAndExpressionTail:251,"&&":252,AdditiveExpression:253,RelationalExpression_group0:254,RelationalExpression_option0:255,IN:256,MultiplicativeExpression:257,AdditiveExpression_repetition0:258,AdditiveExpressionTail:259,AdditiveExpressionTail_group0:260,NumericLiteralPositive:261,AdditiveExpressionTail_repetition0:262,NumericLiteralNegative:263,AdditiveExpressionTail_repetition1:264,UnaryExpression:265,MultiplicativeExpression_repetition0:266,MultiplicativeExpressionTail:267,MultiplicativeExpressionTail_group0:268,UnaryExpression_option0:269,PrimaryExpression:270,"-":271,Aggregate:272,FUNC_ARITY0:273,FUNC_ARITY1:274,FUNC_ARITY2:275,",":276,IF:277,BuiltInCall_group0:278,BOUND:279,BNODE:280,BuiltInCall_option0:281,EXISTS:282,COUNT:283,Aggregate_option0:284,Aggregate_group0:285,FUNC_AGGREGATE:286,Aggregate_option1:287,GROUP_CONCAT:288,Aggregate_option2:289,Aggregate_option3:290,GroupConcatSeparator:291,SEPARATOR:292,"=":293,String:294,LANGTAG:295,"^^":296,DECIMAL:297,DOUBLE:298,BOOLEAN:299,STRING_LITERAL1:300,STRING_LITERAL2:301,STRING_LITERAL_LONG1:302,STRING_LITERAL_LONG2:303,INTEGER_POSITIVE:304,DECIMAL_POSITIVE:305,DOUBLE_POSITIVE:306,INTEGER_NEGATIVE:307,DECIMAL_NEGATIVE:308,DOUBLE_NEGATIVE:309,PNAME_LN:310,QueryOrUpdate_group0_option0:311,Prologue_repetition0_group0:312,SelectClauseBase_option0_group0:313,DISTINCT:314,REDUCED:315,DescribeQuery_group0_repetition_plus0_group0:316,DescribeQuery_group0_repetition_plus0:317,NAMED:318,SILENT:319,CLEAR:320,DROP:321,ADD:322,MOVE:323,COPY:324,ALL:325,".":326,UNION:327,"|":328,"/":329,PathElt_option0_group0:330,"?":331,"+":332,"!=":333,"<":334,">":335,"<=":336,">=":337,NOT:338,CONCAT:339,COALESCE:340,SUBSTR:341,REGEX:342,REPLACE:343,$accept:0,$end:1},terminals_:{2:"error",6:"EOF",12:"BASE",13:"IRIREF",15:"PREFIX",16:"PNAME_NS",26:"*",28:"SELECT",34:"VAR",35:"(",37:"AS",38:")",41:"CONSTRUCT",45:"WHERE",46:"{",48:"}",50:"DESCRIBE",55:"ASK",58:"FROM",68:"GROUP",69:"BY",75:"HAVING",78:"ORDER",81:"ASC",83:"DESC",86:"LIMIT",87:"INTEGER",88:"OFFSET",90:"VALUES",93:"NIL",100:"UNDEF",107:"LOAD",116:"TO",117:"CREATE",119:"GRAPH",120:"INSERTDATA",122:"DELETEDATA",123:"DELETEWHERE",132:"DELETE",133:"INSERT",135:"USING",138:"WITH",140:"INTO",141:"DEFAULT",167:"OPTIONAL",168:"MINUS",170:"SERVICE",173:"FILTER",174:"BIND",191:";",195:"a",217:"!",222:"^",224:"[",225:"]",229:"<<",233:">>",243:"BLANK_NODE_LABEL",244:"ANON",248:"||",252:"&&",256:"IN",271:"-",273:"FUNC_ARITY0",274:"FUNC_ARITY1",275:"FUNC_ARITY2",276:",",277:"IF",279:"BOUND",280:"BNODE",282:"EXISTS",283:"COUNT",286:"FUNC_AGGREGATE",288:"GROUP_CONCAT",292:"SEPARATOR",293:"=",295:"LANGTAG",296:"^^",297:"DECIMAL",298:"DOUBLE",299:"BOOLEAN",300:"STRING_LITERAL1",301:"STRING_LITERAL2",302:"STRING_LITERAL_LONG1",303:"STRING_LITERAL_LONG2",304:"INTEGER_POSITIVE",305:"DECIMAL_POSITIVE",306:"DOUBLE_POSITIVE",307:"INTEGER_NEGATIVE",308:"DECIMAL_NEGATIVE",309:"DOUBLE_NEGATIVE",310:"PNAME_LN",314:"DISTINCT",315:"REDUCED",318:"NAMED",319:"SILENT",320:"CLEAR",321:"DROP",322:"ADD",323:"MOVE",324:"COPY",325:"ALL",326:".",327:"UNION",328:"|",329:"/",331:"?",332:"+",333:"!=",334:"<",335:">",336:"<=",337:">=",338:"NOT",339:"CONCAT",340:"COALESCE",341:"SUBSTR",342:"REGEX",343:"REPLACE"},productions_:[0,[3,3],[4,1],[8,2],[11,2],[14,3],[17,4],[17,4],[18,2],[22,2],[25,2],[30,4],[30,4],[33,1],[33,5],[33,5],[40,5],[40,7],[49,5],[54,4],[57,3],[20,2],[24,2],[21,3],[67,3],[71,1],[71,1],[71,3],[71,5],[71,1],[74,2],[77,3],[80,2],[80,2],[80,1],[80,1],[85,2],[85,2],[85,4],[85,4],[89,2],[91,4],[91,4],[91,6],[97,1],[97,1],[97,1],[97,1],[101,3],[103,3],[105,4],[105,3],[105,5],[105,4],[105,2],[105,2],[105,2],[105,6],[105,6],[129,2],[125,2],[134,3],[137,2],[139,3],[115,1],[115,2],[112,2],[112,1],[121,4],[146,7],[151,3],[62,3],[62,3],[155,2],[158,3],[162,3],[159,2],[159,2],[159,2],[159,3],[159,4],[159,2],[159,6],[159,6],[159,1],[84,1],[84,1],[84,1],[73,2],[73,6],[177,1],[177,4],[42,3],[180,3],[153,2],[153,2],[186,1],[184,2],[190,2],[188,2],[193,1],[193,1],[193,1],[194,2],[164,2],[164,2],[199,4],[206,1],[206,3],[208,2],[210,2],[213,2],[212,2],[214,1],[214,1],[214,2],[214,3],[218,1],[218,1],[218,4],[219,1],[219,1],[219,2],[219,2],[185,3],[185,3],[200,3],[200,3],[197,1],[197,1],[204,1],[204,1],[39,9],[39,5],[99,9],[99,5],[241,1],[241,1],[242,1],[242,1],[242,1],[242,1],[242,1],[36,2],[247,2],[245,2],[251,2],[249,1],[249,3],[249,4],[253,2],[259,2],[259,2],[259,2],[257,2],[267,2],[265,2],[265,2],[265,2],[270,1],[270,1],[270,1],[270,1],[270,1],[270,1],[82,3],[72,1],[72,2],[72,4],[72,6],[72,8],[72,2],[72,4],[72,2],[72,4],[72,3],[272,5],[272,5],[272,6],[291,4],[98,1],[98,2],[98,3],[98,1],[98,1],[98,1],[98,1],[98,1],[98,1],[294,1],[294,1],[294,1],[294,1],[261,1],[261,1],[261,1],[263,1],[263,1],[263,1],[60,1],[60,1],[60,1],[311,0],[311,1],[5,1],[5,1],[312,1],[312,1],[7,0],[7,2],[9,1],[9,1],[9,1],[9,1],[10,0],[10,1],[19,0],[19,2],[23,0],[23,2],[27,1],[27,2],[313,1],[313,1],[29,0],[29,1],[31,0],[31,1],[32,0],[32,1],[43,0],[43,2],[44,0],[44,2],[47,0],[47,1],[316,1],[316,1],[317,1],[317,2],[51,1],[51,1],[52,0],[52,2],[53,0],[53,1],[56,0],[56,2],[59,0],[59,1],[61,0],[61,1],[63,0],[63,1],[64,0],[64,1],[65,0],[65,1],[66,0],[66,1],[70,1],[70,2],[76,1],[76,2],[79,1],[79,2],[92,0],[92,2],[94,0],[94,2],[95,1],[95,2],[96,0],[96,2],[102,1],[102,2],[104,0],[104,4],[106,0],[106,2],[108,0],[108,1],[109,0],[109,1],[110,1],[110,1],[111,0],[111,1],[113,1],[113,1],[113,1],[114,0],[114,1],[118,0],[118,1],[124,0],[124,1],[126,0],[126,1],[127,0],[127,2],[128,0],[128,1],[130,0],[130,1],[131,0],[131,2],[136,0],[136,1],[142,0],[142,1],[143,1],[143,1],[143,1],[144,0],[144,1],[145,0],[145,2],[147,1],[147,1],[148,0],[148,1],[149,0],[149,1],[150,0],[150,1],[152,0],[152,3],[154,0],[154,1],[156,0],[156,1],[157,0],[157,2],[160,0],[160,1],[161,0],[161,1],[163,0],[163,3],[165,0],[165,1],[166,0],[166,3],[169,1],[169,1],[171,0],[171,1],[172,1],[172,1],[175,0],[175,1],[176,0],[176,3],[178,0],[178,3],[179,0],[179,1],[181,0],[181,3],[182,0],[182,1],[183,1],[183,1],[187,0],[187,1],[189,0],[189,2],[192,0],[192,1],[196,0],[196,3],[198,1],[198,1],[201,0],[201,1],[202,1],[202,1],[203,0],[203,3],[205,0],[205,2],[207,1],[207,1],[209,0],[209,3],[211,0],[211,3],[330,1],[330,1],[330,1],[215,0],[215,1],[216,0],[216,1],[220,0],[220,3],[221,0],[221,1],[223,1],[223,2],[226,1],[226,2],[227,1],[227,1],[228,1],[228,1],[230,1],[230,1],[231,1],[231,1],[232,1],[232,1],[234,1],[234,1],[235,1],[235,1],[236,1],[236,1],[237,1],[237,1],[238,1],[238,1],[239,1],[239,1],[240,1],[240,1],[246,0],[246,2],[250,0],[250,2],[254,1],[254,1],[254,1],[254,1],[254,1],[254,1],[255,0],[255,1],[258,0],[258,2],[260,1],[260,1],[262,0],[262,2],[264,0],[264,2],[266,0],[266,2],[268,1],[268,1],[269,0],[269,1],[278,1],[278,1],[278,1],[278,1],[278,1],[281,0],[281,1],[284,0],[284,1],[285,1],[285,1],[287,0],[287,1],[289,0],[289,1],[290,0],[290,1]],performAction:function(e,t,r,n,i,a,s){var o,c,u,l,d=a.length-1;switch(i){case 1:return a[d-1]=a[d-1]||{},Kr.base&&(a[d-1].base=Kr.base),Kr.base=br=_r=vr="",a[d-1].prefixes=Kr.prefixes,Kr.prefixes=null,a[d-1];case 3:this.$=Tr(a[d-1],a[d],{type:"query"});break;case 4:Kr.base=xr(a[d]),br=_r=vr="";break;case 5:Kr.prefixes||(Kr.prefixes={}),a[d-1]=a[d-1].substr(0,a[d-1].length-1),a[d]=xr(a[d]),Kr.prefixes[a[d-1]]=a[d];break;case 6:this.$=Tr(a[d-3],Cr(a[d-2]),a[d-1],a[d]);break;case 7:if(Xr(a[d-3].variables.map(e=>Gr(e.expression))).some(e=>"count"===e.aggregation)||a[d].group)for(const e of a[d-3].variables)if("Variable"===e.termType){if(!a[d].group||!a[d].group.map(e=>Hr(e)).includes(Hr(e)))throw Error("Projection of ungrouped variable (?"+Hr(e)+")")}else if(0===Gr(e.expression).length){const t=zr(e.expression);for(const e of t)if(!a[d].group.map(e=>Hr(e)).includes(Hr(e)))throw Error("Use of ungrouped variable in projection of operation (?"+Hr(e)+")")}const e=a[d-1].where.filter(e=>"query"===e.type);if(e.length>0){const t=a[d-3].variables.filter(e=>e.variable&&e.variable.value).map(e=>e.variable.value),r=Xr(e.map(e=>e.variables)).map(e=>e.value||e.variable.value);for(const e of t)if(r.indexOf(e)>=0)throw Error("Target id of 'AS' (?"+e+") already used in subquery")}this.$=Tr(a[d-3],Cr(a[d-2]),a[d-1],a[d]);break;case 8:this.$=Tr(a[d-1],{variables:[new ur]});break;case 9:const t=function(e){const t=e.slice().sort(),r=[];for(let e=0;ee.value||e.variable.value));if(t.length>0)throw Error("Two or more of the resulting columns have the same name (?"+t[0]+")");this.$=Tr(a[d-1],{variables:a[d]});break;case 10:this.$=Tr({queryType:"SELECT"},a[d]&&(a[d-1]=wr(a[d]),a[d]={},a[d][a[d-1]]=!0,a[d]));break;case 11:case 12:this.$=Tr(a[d-3],a[d-2],a[d-1],a[d],{type:"query"});break;case 13:case 100:case 136:case 164:this.$=Ar(a[d]);break;case 14:case 28:this.$=Ir(a[d-3],{variable:Ar(a[d-1])});break;case 15:this.$=Jr(Ir(a[d-3],{variable:Ar(a[d-1])}));break;case 16:this.$=Tr({queryType:"CONSTRUCT",template:a[d-3]},Cr(a[d-2]),a[d-1],a[d]);break;case 17:this.$=Tr({queryType:"CONSTRUCT",template:a[d-2]=a[d-2]?a[d-2].triples:[]},Cr(a[d-5]),{where:[{type:"bgp",triples:Er([],a[d-2])}]},a[d]);break;case 18:this.$=Tr({queryType:"DESCRIBE",variables:"*"===a[d-3]?[new ur]:a[d-3].map(Ar)},Cr(a[d-2]),a[d-1],a[d]);break;case 19:this.$=Tr({queryType:"ASK"},Cr(a[d-2]),a[d-1],a[d]);break;case 20:case 61:this.$={iri:a[d],named:!!a[d-1]};break;case 21:this.$={where:a[d].patterns};break;case 22:this.$=Tr(a[d-1],a[d]);break;case 23:this.$=Tr(a[d-2],a[d-1],a[d]);break;case 24:this.$={group:a[d]};break;case 25:case 26:case 32:case 34:this.$=Ir(a[d]);break;case 27:this.$=Ir(a[d-1]);break;case 29:case 35:this.$=Ir(Ar(a[d]));break;case 30:this.$={having:a[d]};break;case 31:this.$={order:a[d]};break;case 33:this.$=Ir(a[d],{descending:!0});break;case 36:this.$={limit:jr(a[d])};break;case 37:this.$={offset:jr(a[d])};break;case 38:this.$={limit:jr(a[d-2]),offset:jr(a[d])};break;case 39:this.$={limit:jr(a[d]),offset:jr(a[d-2])};break;case 40:this.$={type:"values",values:a[d]};break;case 41:this.$=a[d-1].map((function(e){var t={};return t[a[d-3]]=e,t}));break;case 42:this.$=a[d-1].map((function(){return{}}));break;case 43:var p=a[d-4].length;a[d-4]=a[d-4].map(Ar),this.$=a[d-1].map((function(e){if(e.length!==p)throw Error("Inconsistent VALUES length");for(var t={},r=0;r"bind"===e.type)){const t=a[d-1].indexOf(e),r=new Set;for(const e of a[d-1].slice(0,t))"group"!==e.type&&"bgp"!==e.type||Yr(e).forEach(e=>r.add(e));if(r.has(e.variable.value))throw Error("Variable used to bind is already bound (?"+e.variable.value+")")}this.$={type:"group",patterns:a[d-1]};break;case 73:this.$=a[d-1]?Or([a[d-1]],a[d]):Or(a[d]);break;case 74:this.$=a[d]?[a[d-2],a[d]]:a[d-2];break;case 76:a[d-1].length?this.$={type:"union",patterns:Or(a[d-1].map(Dr),[Dr(a[d])])}:this.$=a[d];break;case 77:this.$=Tr(a[d],{type:"optional"});break;case 78:this.$=Tr(a[d],{type:"minus"});break;case 79:this.$=Tr(a[d],{type:"graph",name:Ar(a[d-1])});break;case 80:this.$=Tr(a[d],{type:"service",name:Ar(a[d-1]),silent:!!a[d-2]});break;case 81:this.$={type:"filter",expression:a[d]};break;case 82:this.$={type:"bind",variable:Ar(a[d-1]),expression:a[d-3]};break;case 83:this.$=Jr({type:"bind",variable:Ar(a[d-1]),expression:a[d-3]});break;case 88:this.$={type:"functionCall",function:a[d-1],args:[]};break;case 89:this.$={type:"functionCall",function:a[d-5],args:Sr(a[d-2],a[d-1]),distinct:!!a[d-3]};break;case 90:case 107:case 118:case 208:case 216:case 218:case 230:case 232:case 242:case 246:case 266:case 268:case 272:case 276:case 299:case 305:case 316:case 326:case 332:case 338:case 342:case 352:case 354:case 358:case 366:case 370:case 378:case 380:case 384:case 386:case 395:case 427:case 429:case 439:case 443:case 445:case 447:this.$=[];break;case 91:this.$=Sr(a[d-2],a[d-1]);break;case 93:this.$=Or(a[d-2],[a[d-1]]);break;case 94:case 104:this.$=a[d].map((function(e){return Tr(Lr(a[d-1]),e)}));break;case 95:this.$=Er(a[d].map((function(e){return Tr(Lr(a[d-1].entity),e)})),a[d-1].triples);break;case 97:this.$=Or([a[d-1]],a[d]);break;case 98:this.$=Or(a[d]);break;case 99:this.$=Qr(a[d-1],a[d]);break;case 102:case 114:case 121:this.$=Kr.factory.namedNode(dr);break;case 103:this.$=Sr(a[d-1],a[d]);break;case 105:this.$=a[d]?Er(a[d].map((function(e){return Tr(Lr(a[d-1].entity),e)})),a[d-1].triples):a[d-1].triples;break;case 106:this.$=Qr(Ar(a[d-3]),Sr(a[d-2],a[d-1]),a[d]);break;case 108:this.$=Qr(Ar(a[d-1]),a[d]);break;case 109:this.$=a[d-1].length?Pr("|",Sr(a[d-1],a[d])):a[d];break;case 110:this.$=a[d-1].length?Pr("/",Sr(a[d-1],a[d])):a[d];break;case 111:this.$=a[d]?Pr(a[d],[a[d-1]]):a[d-1];break;case 112:this.$=a[d-1]?Pr(a[d-1],[a[d]]):a[d];break;case 115:case 122:this.$=Pr(a[d-1],[a[d]]);break;case 119:this.$=Pr("|",Sr(a[d-2],a[d-1]));break;case 123:this.$=Pr(a[d-1],[Kr.factory.namedNode(dr)]);break;case 124:case 126:this.$=function(e){var t=Mr(),r=t,n=[],i=[];e.forEach((function(e){n.push(e.entity),Er(i,e.triples)}));for(var a=0,s=0,o=n.length,c=Array(2*o);al&&x.push("'"+this.terminals_[E]+"'");I=h.showPosition?"Parse error on line "+(o+1)+":\n"+h.showPosition()+"\nExpecting "+x.join(", ")+", got '"+(this.terminals_[b]||b)+"'":"Parse error on line "+(o+1)+": Unexpected "+(b==d?"end of input":"'"+(this.terminals_[b]||b)+"'"),this.parseError(I,{text:h.match,token:this.terminals_[b]||b,line:h.yylineno,loc:g,expected:x})}if(w[0]instanceof Array&&w.length>1)throw new Error("Parse Error: multiple actions possible at state: "+v+", token: "+b);switch(w[0]){case 1:r.push(b),n.push(h.yytext),i.push(h.yylloc),r.push(w[1]),b=null,_?(b=_,_=null):(c=h.yyleng,s=h.yytext,o=h.yylineno,g=h.yylloc,u>0&&u--);break;case 2:if(T=this.productions_[w[1]][1],R.$=n[n.length-T],R._$={first_line:i[i.length-(T||1)].first_line,last_line:i[i.length-1].last_line,first_column:i[i.length-(T||1)].first_column,last_column:i[i.length-1].last_column},y&&(R._$.range=[i[i.length-(T||1)].range[0],i[i.length-1].range[1]]),void 0!==(S=this.performAction.apply(R,[s,c,o,f.yy,w[1],n,i].concat(p))))return S;T&&(r=r.slice(0,-1*T*2),n=n.slice(0,-1*T),i=i.slice(0,-1*T)),r.push(this.productions_[w[1]][0]),n.push(R.$),i.push(R._$),O=a[r[r.length-2]][r[r.length-1]],r.push(O);break;case 3:return!0}}return!0}},ur=r(125).Wildcard,lr="http://www.w3.org/1999/02/22-rdf-syntax-ns#",dr=lr+"type",pr=lr+"nil",hr="http://www.w3.org/2001/XMLSchema#",fr=hr+"integer",mr=hr+"decimal",gr=hr+"double",yr=hr+"boolean",br="",_r="",vr="";function wr(e){return e.toLowerCase()}function Sr(e,t){return e.push(t),e}function Er(e,t){return e.push.apply(e,t),e}function Tr(e){e||(e={});for(var t,r=1,n=arguments.length;r>10),56320+(1023&i))}var a=Br[n];if(!a)throw new Error;return a}))}catch(e){return""}return e}function Qr(e,t,r){var n=[],i=[];return t.forEach((function(t){n.push(Lr(null,e,t.entity)),Er(i,t.triples)})),Or(n,r||[],i)}function Hr(e){return e.variable?e.variable.value:e.value||e.expression.value}function Gr(e){if(!e)return[];if("aggregate"===e.type)return[e];if("operation"===e.type){const t=[];for(const r of e.args)t.push(...Gr(r));return t}return[]}function zr(e){const t=new Set,r=function(e){e&&("Variable"===e.termType?t.add(e):"operation"===e.type&&e.args.forEach(r))};return r(e),t}function Xr(e,t=1,r=[]){for(const n of e)t>0&&n instanceof Array?Xr(n,t-1,r):r.push(n);return r}function $r(e){return"Variable"===e.termType}function Yr(e){if(e.triples){const t=[];for(const r of e.triples)$r(r.subject)&&t.push(r.subject.value),$r(r.predicate)&&t.push(r.predicate.value),$r(r.object)&&t.push(r.object.value);return t}if(e.patterns){const t=[];for(const r of e.patterns)t.push(...Yr(r));return t}return[]}function Jr(e){if(!Kr.sparqlStar)throw new Error("SPARQL* support is not enabled");return e}var Wr={EOF:1,parseError:function(e,t){if(!this.yy.parser)throw new Error(e);this.yy.parser.parseError(e,t)},setInput:function(e,t){return this.yy=t||this.yy||{},this._input=e,this._more=this._backtrack=this.done=!1,this.yylineno=this.yyleng=0,this.yytext=this.matched=this.match="",this.conditionStack=["INITIAL"],this.yylloc={first_line:1,first_column:0,last_line:1,last_column:0},this.options.ranges&&(this.yylloc.range=[0,0]),this.offset=0,this},input:function(){var e=this._input[0];return this.yytext+=e,this.yyleng++,this.offset++,this.match+=e,this.matched+=e,e.match(/(?:\r\n?|\n).*/g)?(this.yylineno++,this.yylloc.last_line++):this.yylloc.last_column++,this.options.ranges&&this.yylloc.range[1]++,this._input=this._input.slice(1),e},unput:function(e){var t=e.length,r=e.split(/(?:\r\n?|\n)/g);this._input=e+this._input,this.yytext=this.yytext.substr(0,this.yytext.length-t),this.offset-=t;var n=this.match.split(/(?:\r\n?|\n)/g);this.match=this.match.substr(0,this.match.length-1),this.matched=this.matched.substr(0,this.matched.length-1),r.length-1&&(this.yylineno-=r.length-1);var i=this.yylloc.range;return this.yylloc={first_line:this.yylloc.first_line,last_line:this.yylineno+1,first_column:this.yylloc.first_column,last_column:r?(r.length===n.length?this.yylloc.first_column:0)+n[n.length-r.length].length-r[0].length:this.yylloc.first_column-t},this.options.ranges&&(this.yylloc.range=[i[0],i[0]+this.yyleng-t]),this.yyleng=this.yytext.length,this},more:function(){return this._more=!0,this},reject:function(){return this.options.backtrack_lexer?(this._backtrack=!0,this):this.parseError("Lexical error on line "+(this.yylineno+1)+". You can only invoke reject() in the lexer when the lexer is of the backtracking persuasion (options.backtrack_lexer = true).\n"+this.showPosition(),{text:"",token:null,line:this.yylineno})},less:function(e){this.unput(this.match.slice(e))},pastInput:function(){var e=this.matched.substr(0,this.matched.length-this.match.length);return(e.length>20?"...":"")+e.substr(-20).replace(/\n/g,"")},upcomingInput:function(){var e=this.match;return e.length<20&&(e+=this._input.substr(0,20-e.length)),(e.substr(0,20)+(e.length>20?"...":"")).replace(/\n/g,"")},showPosition:function(){var e=this.pastInput(),t=new Array(e.length+1).join("-");return e+this.upcomingInput()+"\n"+t+"^"},test_match:function(e,t){var r,n,i;if(this.options.backtrack_lexer&&(i={yylineno:this.yylineno,yylloc:{first_line:this.yylloc.first_line,last_line:this.last_line,first_column:this.yylloc.first_column,last_column:this.yylloc.last_column},yytext:this.yytext,match:this.match,matches:this.matches,matched:this.matched,yyleng:this.yyleng,offset:this.offset,_more:this._more,_input:this._input,yy:this.yy,conditionStack:this.conditionStack.slice(0),done:this.done},this.options.ranges&&(i.yylloc.range=this.yylloc.range.slice(0))),(n=e[0].match(/(?:\r\n?|\n).*/g))&&(this.yylineno+=n.length),this.yylloc={first_line:this.yylloc.last_line,last_line:this.yylineno+1,first_column:this.yylloc.last_column,last_column:n?n[n.length-1].length-n[n.length-1].match(/\r?\n?/)[0].length:this.yylloc.last_column+e[0].length},this.yytext+=e[0],this.match+=e[0],this.matches=e,this.yyleng=this.yytext.length,this.options.ranges&&(this.yylloc.range=[this.offset,this.offset+=this.yyleng]),this._more=!1,this._backtrack=!1,this._input=this._input.slice(e[0].length),this.matched+=e[0],r=this.performAction.call(this,this.yy,this,t,this.conditionStack[this.conditionStack.length-1]),this.done&&this._input&&(this.done=!1),r)return r;if(this._backtrack){for(var a in i)this[a]=i[a];return!1}return!1},next:function(){if(this.done)return this.EOF;var e,t,r,n;this._input||(this.done=!0),this._more||(this.yytext="",this.match="");for(var i=this._currentRules(),a=0;at[0].length)){if(t=r,n=a,this.options.backtrack_lexer){if(!1!==(e=this.test_match(r,i[a])))return e;if(this._backtrack){t=!1;continue}return!1}if(!this.options.flex)break}return t?!1!==(e=this.test_match(t,i[n]))&&e:""===this._input?this.EOF:this.parseError("Lexical error on line "+(this.yylineno+1)+". Unrecognized text.\n"+this.showPosition(),{text:"",token:null,line:this.yylineno})},lex:function(){var e=this.next();return e||this.lex()},begin:function(e){this.conditionStack.push(e)},popState:function(){return this.conditionStack.length-1>0?this.conditionStack.pop():this.conditionStack[0]},_currentRules:function(){return this.conditionStack.length&&this.conditionStack[this.conditionStack.length-1]?this.conditions[this.conditionStack[this.conditionStack.length-1]].rules:this.conditions.INITIAL.rules},topState:function(e){return(e=this.conditionStack.length-1-Math.abs(e||0))>=0?this.conditionStack[e]:"INITIAL"},pushState:function(e){this.begin(e)},stateStackSize:function(){return this.conditionStack.length},options:{flex:!0,"case-insensitive":!0},performAction:function(e,t,r,n){switch(r){case 0:break;case 1:return 12;case 2:return 15;case 3:return 28;case 4:return 314;case 5:return 315;case 6:return 35;case 7:return 37;case 8:return 38;case 9:return 26;case 10:return 41;case 11:return 45;case 12:return 46;case 13:return 48;case 14:return 50;case 15:return 55;case 16:return 58;case 17:return 318;case 18:return 68;case 19:return 69;case 20:return 75;case 21:return 78;case 22:return 81;case 23:return 83;case 24:return 86;case 25:return 88;case 26:return 90;case 27:return 191;case 28:return 107;case 29:return 319;case 30:return 140;case 31:return 320;case 32:return 321;case 33:return 117;case 34:return 322;case 35:return 116;case 36:return 323;case 37:return 324;case 38:return 120;case 39:return 122;case 40:return 123;case 41:return 138;case 42:return 132;case 43:return 133;case 44:return 135;case 45:return 141;case 46:return 119;case 47:return 325;case 48:return 326;case 49:return 167;case 50:return 170;case 51:return 174;case 52:return 100;case 53:return 168;case 54:return 327;case 55:return 173;case 56:return 229;case 57:return 233;case 58:return 276;case 59:return 195;case 60:return 328;case 61:return 329;case 62:return 222;case 63:return 331;case 64:return 332;case 65:return 217;case 66:return 224;case 67:return 225;case 68:return 248;case 69:return 252;case 70:return 293;case 71:return 333;case 72:return 334;case 73:return 335;case 74:return 336;case 75:return 337;case 76:return 256;case 77:return 338;case 78:return 271;case 79:return 279;case 80:return 280;case 81:return 273;case 82:return 274;case 83:return 275;case 84:return 339;case 85:return 340;case 86:return 277;case 87:return 342;case 88:return 341;case 89:return 343;case 90:return 282;case 91:return 283;case 92:return 286;case 93:return 288;case 94:return 292;case 95:return 296;case 96:return 299;case 97:return 13;case 98:return 16;case 99:return 310;case 100:return 243;case 101:return 34;case 102:return 295;case 103:return 87;case 104:return 297;case 105:return 298;case 106:return 304;case 107:return 305;case 108:return 306;case 109:return 307;case 110:return 308;case 111:return 309;case 112:return"EXPONENT";case 113:return 300;case 114:return 301;case 115:return 302;case 116:return 303;case 117:return 93;case 118:return 244;case 119:return 6;case 120:return"INVALID";case 121:console.log(t.yytext)}},rules:[/^(?:\s+|#[^\n\r]*)/i,/^(?:BASE)/i,/^(?:PREFIX)/i,/^(?:SELECT)/i,/^(?:DISTINCT)/i,/^(?:REDUCED)/i,/^(?:\()/i,/^(?:AS)/i,/^(?:\))/i,/^(?:\*)/i,/^(?:CONSTRUCT)/i,/^(?:WHERE)/i,/^(?:\{)/i,/^(?:\})/i,/^(?:DESCRIBE)/i,/^(?:ASK)/i,/^(?:FROM)/i,/^(?:NAMED)/i,/^(?:GROUP)/i,/^(?:BY)/i,/^(?:HAVING)/i,/^(?:ORDER)/i,/^(?:ASC)/i,/^(?:DESC)/i,/^(?:LIMIT)/i,/^(?:OFFSET)/i,/^(?:VALUES)/i,/^(?:;)/i,/^(?:LOAD)/i,/^(?:SILENT)/i,/^(?:INTO)/i,/^(?:CLEAR)/i,/^(?:DROP)/i,/^(?:CREATE)/i,/^(?:ADD)/i,/^(?:TO)/i,/^(?:MOVE)/i,/^(?:COPY)/i,/^(?:INSERT\s+DATA)/i,/^(?:DELETE\s+DATA)/i,/^(?:DELETE\s+WHERE)/i,/^(?:WITH)/i,/^(?:DELETE)/i,/^(?:INSERT)/i,/^(?:USING)/i,/^(?:DEFAULT)/i,/^(?:GRAPH)/i,/^(?:ALL)/i,/^(?:\.)/i,/^(?:OPTIONAL)/i,/^(?:SERVICE)/i,/^(?:BIND)/i,/^(?:UNDEF)/i,/^(?:MINUS)/i,/^(?:UNION)/i,/^(?:FILTER)/i,/^(?:<<)/i,/^(?:>>)/i,/^(?:,)/i,/^(?:a)/i,/^(?:\|)/i,/^(?:\/)/i,/^(?:\^)/i,/^(?:\?)/i,/^(?:\+)/i,/^(?:!)/i,/^(?:\[)/i,/^(?:\])/i,/^(?:\|\|)/i,/^(?:&&)/i,/^(?:=)/i,/^(?:!=)/i,/^(?:<)/i,/^(?:>)/i,/^(?:<=)/i,/^(?:>=)/i,/^(?:IN)/i,/^(?:NOT)/i,/^(?:-)/i,/^(?:BOUND)/i,/^(?:BNODE)/i,/^(?:(RAND|NOW|UUID|STRUUID))/i,/^(?:(LANG|DATATYPE|IRI|URI|ABS|CEIL|FLOOR|ROUND|STRLEN|STR|UCASE|LCASE|ENCODE_FOR_URI|YEAR|MONTH|DAY|HOURS|MINUTES|SECONDS|TIMEZONE|TZ|MD5|SHA1|SHA256|SHA384|SHA512|isIRI|isURI|isBLANK|isLITERAL|isNUMERIC))/i,/^(?:(LANGMATCHES|CONTAINS|STRSTARTS|STRENDS|STRBEFORE|STRAFTER|STRLANG|STRDT|sameTerm))/i,/^(?:CONCAT)/i,/^(?:COALESCE)/i,/^(?:IF)/i,/^(?:REGEX)/i,/^(?:SUBSTR)/i,/^(?:REPLACE)/i,/^(?:EXISTS)/i,/^(?:COUNT)/i,/^(?:SUM|MIN|MAX|AVG|SAMPLE)/i,/^(?:GROUP_CONCAT)/i,/^(?:SEPARATOR)/i,/^(?:\^\^)/i,/^(?:true|false)/i,/^(?:(<(?:[^<>\"\{\}\|\^`\\\u0000-\u0020])*>))/i,/^(?:((([A-Za-z\u00C0-\u00D6\u00D8-\u00F6\u00F8-\u02FF\u0370-\u037D\u037F-\u1FFF\u200C-\u200D\u2070-\u218F\u2C00-\u2FEF\u3001-\uD7FF\uF900-\uFDCF\uFDF0-\uFFFD]|[\uD800-\uDB7F][\uDC00-\uDFFF])(?:(?:(((?:([A-Za-z\u00C0-\u00D6\u00D8-\u00F6\u00F8-\u02FF\u0370-\u037D\u037F-\u1FFF\u200C-\u200D\u2070-\u218F\u2C00-\u2FEF\u3001-\uD7FF\uF900-\uFDCF\uFDF0-\uFFFD]|[\uD800-\uDB7F][\uDC00-\uDFFF])|_))|-|[0-9]|\u00B7|[\u0300-\u036F\u203F-\u2040])|\.)*(((?:([A-Za-z\u00C0-\u00D6\u00D8-\u00F6\u00F8-\u02FF\u0370-\u037D\u037F-\u1FFF\u200C-\u200D\u2070-\u218F\u2C00-\u2FEF\u3001-\uD7FF\uF900-\uFDCF\uFDF0-\uFFFD]|[\uD800-\uDB7F][\uDC00-\uDFFF])|_))|-|[0-9]|\u00B7|[\u0300-\u036F\u203F-\u2040]))?)?:))/i,/^(?:(((([A-Za-z\u00C0-\u00D6\u00D8-\u00F6\u00F8-\u02FF\u0370-\u037D\u037F-\u1FFF\u200C-\u200D\u2070-\u218F\u2C00-\u2FEF\u3001-\uD7FF\uF900-\uFDCF\uFDF0-\uFFFD]|[\uD800-\uDB7F][\uDC00-\uDFFF])(?:(?:(((?:([A-Za-z\u00C0-\u00D6\u00D8-\u00F6\u00F8-\u02FF\u0370-\u037D\u037F-\u1FFF\u200C-\u200D\u2070-\u218F\u2C00-\u2FEF\u3001-\uD7FF\uF900-\uFDCF\uFDF0-\uFFFD]|[\uD800-\uDB7F][\uDC00-\uDFFF])|_))|-|[0-9]|\u00B7|[\u0300-\u036F\u203F-\u2040])|\.)*(((?:([A-Za-z\u00C0-\u00D6\u00D8-\u00F6\u00F8-\u02FF\u0370-\u037D\u037F-\u1FFF\u200C-\u200D\u2070-\u218F\u2C00-\u2FEF\u3001-\uD7FF\uF900-\uFDCF\uFDF0-\uFFFD]|[\uD800-\uDB7F][\uDC00-\uDFFF])|_))|-|[0-9]|\u00B7|[\u0300-\u036F\u203F-\u2040]))?)?:)((?:((?:([A-Za-z\u00C0-\u00D6\u00D8-\u00F6\u00F8-\u02FF\u0370-\u037D\u037F-\u1FFF\u200C-\u200D\u2070-\u218F\u2C00-\u2FEF\u3001-\uD7FF\uF900-\uFDCF\uFDF0-\uFFFD]|[\uD800-\uDB7F][\uDC00-\uDFFF])|_))|:|[0-9]|((%([0-9A-Fa-f])([0-9A-Fa-f]))|(\\(_|~|\.|-|!|\$|&|'|\(|\)|\*|\+|,|;|=|\/|\?|#|@|%))))(?:(?:(((?:([A-Za-z\u00C0-\u00D6\u00D8-\u00F6\u00F8-\u02FF\u0370-\u037D\u037F-\u1FFF\u200C-\u200D\u2070-\u218F\u2C00-\u2FEF\u3001-\uD7FF\uF900-\uFDCF\uFDF0-\uFFFD]|[\uD800-\uDB7F][\uDC00-\uDFFF])|_))|-|[0-9]|\u00B7|[\u0300-\u036F\u203F-\u2040])|\.|:|((%([0-9A-Fa-f])([0-9A-Fa-f]))|(\\(_|~|\.|-|!|\$|&|'|\(|\)|\*|\+|,|;|=|\/|\?|#|@|%))))*(?:(((?:([A-Za-z\u00C0-\u00D6\u00D8-\u00F6\u00F8-\u02FF\u0370-\u037D\u037F-\u1FFF\u200C-\u200D\u2070-\u218F\u2C00-\u2FEF\u3001-\uD7FF\uF900-\uFDCF\uFDF0-\uFFFD]|[\uD800-\uDB7F][\uDC00-\uDFFF])|_))|-|[0-9]|\u00B7|[\u0300-\u036F\u203F-\u2040])|:|((%([0-9A-Fa-f])([0-9A-Fa-f]))|(\\(_|~|\.|-|!|\$|&|'|\(|\)|\*|\+|,|;|=|\/|\?|#|@|%)))))?)))/i,/^(?:(_:(?:((?:([A-Za-z\u00C0-\u00D6\u00D8-\u00F6\u00F8-\u02FF\u0370-\u037D\u037F-\u1FFF\u200C-\u200D\u2070-\u218F\u2C00-\u2FEF\u3001-\uD7FF\uF900-\uFDCF\uFDF0-\uFFFD]|[\uD800-\uDB7F][\uDC00-\uDFFF])|_))|[0-9])(?:(?:(((?:([A-Za-z\u00C0-\u00D6\u00D8-\u00F6\u00F8-\u02FF\u0370-\u037D\u037F-\u1FFF\u200C-\u200D\u2070-\u218F\u2C00-\u2FEF\u3001-\uD7FF\uF900-\uFDCF\uFDF0-\uFFFD]|[\uD800-\uDB7F][\uDC00-\uDFFF])|_))|-|[0-9]|\u00B7|[\u0300-\u036F\u203F-\u2040])|\.)*(((?:([A-Za-z\u00C0-\u00D6\u00D8-\u00F6\u00F8-\u02FF\u0370-\u037D\u037F-\u1FFF\u200C-\u200D\u2070-\u218F\u2C00-\u2FEF\u3001-\uD7FF\uF900-\uFDCF\uFDF0-\uFFFD]|[\uD800-\uDB7F][\uDC00-\uDFFF])|_))|-|[0-9]|\u00B7|[\u0300-\u036F\u203F-\u2040]))?))/i,/^(?:([\?\$]((?:((?:([A-Za-z\u00C0-\u00D6\u00D8-\u00F6\u00F8-\u02FF\u0370-\u037D\u037F-\u1FFF\u200C-\u200D\u2070-\u218F\u2C00-\u2FEF\u3001-\uD7FF\uF900-\uFDCF\uFDF0-\uFFFD]|[\uD800-\uDB7F][\uDC00-\uDFFF])|_))|[0-9])(?:((?:([A-Za-z\u00C0-\u00D6\u00D8-\u00F6\u00F8-\u02FF\u0370-\u037D\u037F-\u1FFF\u200C-\u200D\u2070-\u218F\u2C00-\u2FEF\u3001-\uD7FF\uF900-\uFDCF\uFDF0-\uFFFD]|[\uD800-\uDB7F][\uDC00-\uDFFF])|_))|[0-9]|\u00B7|[\u0300-\u036F\u203F-\u2040])*)))/i,/^(?:(@[a-zA-Z]+(?:-[a-zA-Z0-9]+)*))/i,/^(?:([0-9]+))/i,/^(?:([0-9]*\.[0-9]+))/i,/^(?:([0-9]+\.[0-9]*([eE][+-]?[0-9]+)|\.([0-9])+([eE][+-]?[0-9]+)|([0-9])+([eE][+-]?[0-9]+)))/i,/^(?:(\+([0-9]+)))/i,/^(?:(\+([0-9]*\.[0-9]+)))/i,/^(?:(\+([0-9]+\.[0-9]*([eE][+-]?[0-9]+)|\.([0-9])+([eE][+-]?[0-9]+)|([0-9])+([eE][+-]?[0-9]+))))/i,/^(?:(-([0-9]+)))/i,/^(?:(-([0-9]*\.[0-9]+)))/i,/^(?:(-([0-9]+\.[0-9]*([eE][+-]?[0-9]+)|\.([0-9])+([eE][+-]?[0-9]+)|([0-9])+([eE][+-]?[0-9]+))))/i,/^(?:([eE][+-]?[0-9]+))/i,/^(?:('(?:(?:[^\u0027\u005C\u000A\u000D])|(\\[tbnrf\\\"']|\\u([0-9A-Fa-f])([0-9A-Fa-f])([0-9A-Fa-f])([0-9A-Fa-f])|\\U([0-9A-Fa-f])([0-9A-Fa-f])([0-9A-Fa-f])([0-9A-Fa-f])([0-9A-Fa-f])([0-9A-Fa-f])([0-9A-Fa-f])([0-9A-Fa-f])))*'))/i,/^(?:("(?:(?:[^\u0022\u005C\u000A\u000D])|(\\[tbnrf\\\"']|\\u([0-9A-Fa-f])([0-9A-Fa-f])([0-9A-Fa-f])([0-9A-Fa-f])|\\U([0-9A-Fa-f])([0-9A-Fa-f])([0-9A-Fa-f])([0-9A-Fa-f])([0-9A-Fa-f])([0-9A-Fa-f])([0-9A-Fa-f])([0-9A-Fa-f])))*"))/i,/^(?:('''(?:(?:'|'')?(?:[^'\\]|(\\[tbnrf\\\"']|\\u([0-9A-Fa-f])([0-9A-Fa-f])([0-9A-Fa-f])([0-9A-Fa-f])|\\U([0-9A-Fa-f])([0-9A-Fa-f])([0-9A-Fa-f])([0-9A-Fa-f])([0-9A-Fa-f])([0-9A-Fa-f])([0-9A-Fa-f])([0-9A-Fa-f]))))*'''))/i,/^(?:("""(?:(?:"|"")?(?:[^\"\\]|(\\[tbnrf\\\"']|\\u([0-9A-Fa-f])([0-9A-Fa-f])([0-9A-Fa-f])([0-9A-Fa-f])|\\U([0-9A-Fa-f])([0-9A-Fa-f])([0-9A-Fa-f])([0-9A-Fa-f])([0-9A-Fa-f])([0-9A-Fa-f])([0-9A-Fa-f])([0-9A-Fa-f]))))*"""))/i,/^(?:(\((\u0020|\u0009|\u000D|\u000A)*\)))/i,/^(?:(\[(\u0020|\u0009|\u000D|\u000A)*\]))/i,/^(?:$)/i,/^(?:.)/i,/^(?:.)/i],conditions:{INITIAL:{rules:[0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31,32,33,34,35,36,37,38,39,40,41,42,43,44,45,46,47,48,49,50,51,52,53,54,55,56,57,58,59,60,61,62,63,64,65,66,67,68,69,70,71,72,73,74,75,76,77,78,79,80,81,82,83,84,85,86,87,88,89,90,91,92,93,94,95,96,97,98,99,100,101,102,103,104,105,106,107,108,109,110,111,112,113,114,115,116,117,118,119,120,121],inclusive:!0}}};function Kr(){this.yy={}}return cr.lexer=Wr,Kr.prototype=cr,cr.Parser=Kr,new Kr}();t.parser=i,t.Parser=i.Parser,t.parse=function(){return i.parse.apply(i,arguments)},t.main=function(n){n[1]||(console.log("Usage: "+n[0]+" FILE"),e.exit(1));var i=r(288).readFileSync(r(289).normalize(n[1]),"utf8");return t.parser.parse(i)},r.c[r.s]===n&&t.main(e.argv.slice(1))}).call(this,r(12),r(124)(e))},function(e,t){},function(e,t){},function(e,t){function r(e){this._options=e=e||{};var t=e.prefixes||{};this._prefixByIri={};var r=[];for(var n in t){var i=t[n];o(i)&&(this._prefixByIri[i]=n,r.push(i))}var a=r.join("|").replace(/[\]\/\(\)\*\+\?\.\\\$]/g,"\\$&");this._prefixRegex=new RegExp("^("+a+")([a-zA-Z][\\-_a-zA-Z0-9]*)$"),this._usedPrefixes={},this._sparqlStar=e.sparqlStar,this._indent=o(e.indent)?e.indent:" ",this._newline=o(e.newline)?e.newline:"\n"}r.prototype.toQuery=function(e){var t="";return e.queryType&&(t+=e.queryType.toUpperCase()+" "),e.reduced&&(t+="REDUCED "),e.distinct&&(t+="DISTINCT "),e.variables?t+=l(e.variables,void 0,(function(e){return c(e)?this.toEntity(e):"("+this.toExpression(e.expression)+" AS "+s(e.variable)+")"}),this)+" ":e.template&&(t+=this.group(e.template,!0)+this._newline),e.from&&(t+=this.graphs("FROM ",e.from.default)+this.graphs("FROM NAMED ",e.from.named)),e.where&&(t+="WHERE "+this.group(e.where,!0)+this._newline),e.updates&&(t+=l(e.updates,";"+this._newline,this.toUpdate,this)),e.group&&(t+="GROUP BY "+l(e.group,void 0,(function(e){var t=o(e.expression)?e.expression:"("+this.toExpression(e.expression)+")";return e.variable?"("+t+" AS "+s(e.variable)+")":t}),this)+this._newline),e.having&&(t+="HAVING ("+l(e.having,void 0,this.toExpression,this)+")"+this._newline),e.order&&(t+="ORDER BY "+l(e.order,void 0,(function(e){var t="("+this.toExpression(e.expression)+")";return e.descending?"DESC "+t:t}),this)+this._newline),e.offset&&(t+="OFFSET "+e.offset+this._newline),e.limit&&(t+="LIMIT "+e.limit+this._newline),e.values&&(t+=this.values(e)),(t=this.baseAndPrefixes(e)+t).trim()},r.prototype.baseAndPrefixes=function(e){var t=e.base?"BASE <"+e.base+">"+this._newline:"",r="";for(var n in e.prefixes)(this._options.allPrefixes||this._usedPrefixes[n])&&(r+="PREFIX "+n+": <"+e.prefixes[n]+">"+this._newline);return t+r},r.prototype.toPattern=function(e){var t=e.type||e instanceof Array&&"array"||(e.subject&&e.predicate&&e.object?"triple":"");if(!(t in this))throw new Error("Unknown entry type: "+t);return this[t](e)},r.prototype.triple=function(e){return this.toEntity(e.subject)+" "+this.toEntity(e.predicate)+" "+this.toEntity(e.object)+"."},r.prototype.array=function(e){return l(e,this._newline,this.toPattern,this)},r.prototype.bgp=function(e){return this.encodeTriples(e.triples)},r.prototype.encodeTriples=function(e){if(!e.length)return"";for(var t=[],r=void 0,n=void 0,i=0;i":case">=":case"<=":case"&&":case"||":case"=":case"!=":case"+":case"-":case"*":case"/":return(c(r[0])?this.toEntity(r[0]):"("+this.toExpression(r[0])+")")+" "+t+" "+(c(r[1])?this.toEntity(r[1]):"("+this.toExpression(r[1])+")");case"!":return"!("+this.toExpression(r[0])+")";case"notin":t="NOT IN";case"in":return this.toExpression(r[0])+" "+t+"("+(o(r[1])?r[1]:l(r[1],", ",this.toExpression,this))+")";case"notexists":t="NOT EXISTS";case"exists":return t+" "+this.group(r[0],!0);default:return t+"("+l(r,", ",this.toExpression,this)+")"}default:throw new Error("Unknown expression type: "+e.type)}},r.prototype.toEntity=function(e){if(c(e))switch(e.termType){case"Wildcard":return"*";case"Variable":return s(e);case"BlankNode":return"_:"+e.value;case"Literal":var t=e.value||"",r=e.language||"",a=e.datatype;if(e='"'+t.replace(n,i)+'"',r)e+="@"+r;else if(a){if("http://www.w3.org/2001/XMLSchema#integer"===a.value&&/^\d+$/.test(t))return t+" ";if("http://www.w3.org/2001/XMLSchema#string"===a.value)return e;e+="^^"+this.encodeIRI(a.value)}return e;case"Quad":if(!this._sparqlStar)throw new Error("SPARQL* support is not enabled");return e.graph&&"DefaultGraph"!==e.graph.termType?"<< GRAPH "+this.toEntity(e.graph)+" { "+this.toEntity(e.subject)+" "+this.toEntity(e.predicate)+" "+this.toEntity(e.object)+" } >>":"<< "+this.toEntity(e.subject)+" "+this.toEntity(e.predicate)+" "+this.toEntity(e.object)+" >>";default:return this.encodeIRI(e.value)}else{var o=e.items.map(this.toEntity,this),u=e.pathType;switch(u){case"^":case"!":return u+o[0];case"*":case"+":case"?":return"("+o[0]+u+")";default:return"("+o.join(u)+")"}}};var n=/["\\\t\n\r\b\f]/g,i=function(e){return a[e]},a={"\\":"\\\\",'"':'\\"',"\t":"\\t","\n":"\\n","\r":"\\r","\b":"\\b","\f":"\\f"};function s(e){return"?"+e.value}function o(e){return"string"==typeof e}function c(e){return"string"==typeof e.termType}function u(e,t){if(!e||!c(e))return!1;if(!t||!c(t))return!1;if(e.termType!==t.termType)return!1;switch(e.termType){case"Literal":return e.value===t.value&&e.language===t.language&&u(e.datatype,t.datatype);case"Quad":return u(e.subject,t.subject)&&u(e.predicate,t.predicate)&&u(e.object,t.object)&&u(e.graph,t.graph);default:return e.value===t.value}}function l(e,t,r,n){return e.map(r,n).join(o(t)?t:" ")}r.prototype.encodeIRI=function(e){var t=this._prefixRegex.exec(e);if(t){var r=this._prefixByIri[t[1]];return this._usedPrefixes[r]=!0,r+":"+t[2]}return"<"+e+">"},r.prototype.toUpdate=function(e){switch(e.type||e.updateType){case"load":return"LOAD"+(e.source?" "+this.toEntity(e.source):"")+(e.destination?" INTO GRAPH "+this.toEntity(e.destination):"");case"insert":return"INSERT DATA "+this.group(e.insert,!0);case"delete":return"DELETE DATA "+this.group(e.delete,!0);case"deletewhere":return"DELETE WHERE "+this.group(e.delete,!0);case"insertdelete":return(e.graph?"WITH "+this.toEntity(e.graph)+this._newline:"")+(e.delete.length?"DELETE "+this.group(e.delete,!0)+this._newline:"")+(e.insert.length?"INSERT "+this.group(e.insert,!0)+this._newline:"")+(e.using?this.graphs("USING ",e.using.default):"")+(e.using?this.graphs("USING NAMED ",e.using.named):"")+"WHERE "+this.group(e.where,!0);case"add":case"copy":case"move":return e.type.toUpperCase()+(e.source.default?" DEFAULT ":" ")+"TO "+this.toEntity(e.destination.name);case"create":case"clear":case"drop":return e.type.toUpperCase()+(e.silent?" SILENT ":" ")+(e.graph.default?"DEFAULT":e.graph.named?"NAMED":e.graph.all?"ALL":"GRAPH "+this.toEntity(e.graph.name));default:throw new Error("Unknown update query type: "+e.type)}},r.prototype.indent=function(e){return e.replace(/^/gm,this._indent)},e.exports=function(e={}){return{stringify:function(t){var n=Object.create(e);return n.prefixes=t.prefixes,new r(n).toQuery(t)},createGenerator:function(){return new r(e)}}}},function(e,t,r){"use strict";e.exports=function e(t,r){if(t===r)return!0;if(t&&r&&"object"==typeof t&&"object"==typeof r){if(t.constructor!==r.constructor)return!1;var n,i,a;if(Array.isArray(t)){if((n=t.length)!=r.length)return!1;for(i=n;0!=i--;)if(!e(t[i],r[i]))return!1;return!0}if(t.constructor===RegExp)return t.source===r.source&&t.flags===r.flags;if(t.valueOf!==Object.prototype.valueOf)return t.valueOf()===r.valueOf();if(t.toString!==Object.prototype.toString)return t.toString()===r.toString();if((n=(a=Object.keys(t)).length)!==Object.keys(r).length)return!1;for(i=n;0!=i--;)if(!Object.prototype.hasOwnProperty.call(r,a[i]))return!1;for(i=n;0!=i--;){var s=a[i];if(!e(t[s],r[s]))return!1}return!0}return t!=t&&r!=r}},function(e,t,r){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.toSparqlJs=t.toSparql=void 0;const n=r(50),i=r(51),a=r(66),s=r(5),o=r(37).Generator,c=r(37).Wildcard,u=n.types,l=n.expressionTypes;let d;const p=new i.default;function h(e){f();let t=m(e=function(e){return x(e,{})}(e));return"group"===t.type?t.patterns[0]:t}function f(){d={project:!1,extend:[],group:[],aggregates:[],order:[]}}function m(e){switch(e.type!==u.EXTEND&&e.type!==u.ORDER_BY&&e.type!==u.GRAPH&&(d.project=!1),e.type){case u.EXPRESSION:return g(e);case u.ASK:return S(e,u.ASK);case u.BGP:return function(e){let t=e.patterns.map(v);return 0===t.length?null:{type:"bgp",triples:t}}(e);case u.CONSTRUCT:return function(e){return{type:"query",prefixes:{},queryType:"CONSTRUCT",template:e.template.map(v),where:a.default.flatten([m(e.input)])}}(e);case u.DESCRIBE:return S(e,u.DESCRIBE);case u.DISTINCT:return function(e){let t=m(e.input);return t.patterns[0].distinct=!0,t}(e);case u.EXTEND:return function(e){if(d.project)return d.extend.push(e),m(e.input);return a.default.flatten([m(e.input),{type:"bind",variable:e.variable,expression:g(e.expression)}])}(e);case u.FROM:return function(e){let t=m(e.input);return t.patterns[0].from={default:e.default,named:e.named},t}(e);case u.FILTER:return function(e){return{type:"group",patterns:a.default.flatten([m(e.input),{type:"filter",expression:g(e.expression)}])}}(e);case u.GRAPH:return function(e){return{type:"graph",patterns:a.default.flatten([m(e.input)]),name:e.name}}(e);case u.GROUP:return function(e){let t=m(e.input),r=e.aggregates.map(_);return d.aggregates.push(...r),d.group.push(...e.variables),t}(e);case u.JOIN:return function(e){return a.default.flatten([m(e.left),m(e.right)])}(e);case u.LEFT_JOIN:return function(e){let t={type:"optional",patterns:[m(e.right)]};e.expression&&t.patterns.push({type:"filter",expression:g(e.expression)});return t.patterns=a.default.flatten(t.patterns),a.default.flatten([m(e.left),t])}(e);case u.MINUS:return function(e){let t=m(e.right);"group"===t.type&&(t=t.patterns);return a.default.flatten([m(e.left),{type:"minus",patterns:t}])}(e);case u.ORDER_BY:return function(e){return d.order.push(...e.expressions),m(e.input)}(e);case u.PATH:return function(e){return{type:"bgp",triples:[{subject:e.subject,predicate:y(e.predicate),object:e.object}]}}(e);case u.PATTERN:return v(e);case u.PROJECT:return S(e,u.PROJECT);case u.REDUCED:return function(e){let t=m(e.input);return t.patterns[0].reduced=!0,t}(e);case u.SERVICE:return function(e){let t=m(e.input);"group"===t.type&&(t=t.patterns);Array.isArray(t)||(t=[t]);return{type:"service",name:e.name,silent:e.silent,patterns:t}}(e);case u.SLICE:return function(e){let t=m(e.input),r=t;t.type&&"group"===t.type&&(r=t.patterns[0]);0!==e.start&&(r.offset=e.start);void 0!==e.length&&(r.limit=e.length);return t}(e);case u.UNION:return function(e){return{type:"union",patterns:a.default.flatten([m(e.left),m(e.right)])}}(e);case u.VALUES:return function(e){return{type:"values",values:e.bindings.map(t=>{let r={};for(let n of e.variables){let e="?"+n.value;t[e]?r[e]=t[e]:r[e]=void 0}return r})}}(e);case u.COMPOSITE_UPDATE:return function(e){return{prefixes:{},type:"update",updates:e.updates.map(e=>m(e).updates[0])}}(e);case u.DELETE_INSERT:return function(e){let t=e.where,r=void 0;if(t&&t.type===u.FROM){let n=e.where;t=n.input,r={default:n.default,named:n.named}}const n=[{updateType:"insertdelete",delete:O(e.delete),insert:O(e.insert)}];r&&(n[0].using=r);if(!t||t.type===u.BGP&&0===t.patterns.length)n[0].where=[];else{const e={};let r=m(x(t,e));"group"===r.type?n[0].where=r.patterns:n[0].where=[r];const i=Object.keys(e);if(i.length>0){if(1!==i.length)throw new Error("This is unexpected and might indicate an error in graph handling for updates.");""!==e[i[0]].graph.value&&(n[0].where=[{type:"graph",patterns:n[0].where,name:e[i[0]].graph}])}}e.delete||e.where?e.insert||e.where||(delete n[0].insert,delete n[0].where,e.delete.some(e=>"Variable"===e.subject.termType||"Variable"===e.predicate.termType||"Variable"===e.object.termType)?n[0].updateType="deletewhere":n[0].updateType="delete"):(n[0].updateType="insert",delete n[0].delete,delete n[0].where);return{prefixes:{},type:"update",updates:n}}(e);case u.LOAD:return function(e){const t=[{type:"load",silent:Boolean(e.silent),source:e.source}];e.destination&&(t[0].destination=e.destination);return{prefixes:{},type:"update",updates:t}}(e);case u.CLEAR:return function(e){return E(e,"clear")}(e);case u.CREATE:return function(e){return E(e,"create")}(e);case u.DROP:return function(e){return E(e,"drop")}(e);case u.ADD:return function(e){return T(e,"add")}(e);case u.MOVE:return function(e){return T(e,"move")}(e);case u.COPY:return function(e){return T(e,"copy")}(e)}throw new Error("Unknown Operation type "+e.type)}function g(e){switch(e.expressionType){case l.AGGREGATE:return function(e){let t={expression:g(e.expression),type:"aggregate",aggregation:e.aggregator,distinct:e.distinct};e.separator&&(t.separator=e.separator);return t}(e);case l.EXISTENCE:return function(e){return{type:"operation",operator:e.not?"notexists":"exists",args:a.default.flatten([m(e.input)])}}(e);case l.NAMED:return function(e){return{type:"functionCall",function:e.name,args:e.args.map(g)}}(e);case l.OPERATOR:return function(e){if("desc"===e.operator){let t={expression:g(e.args[0]),descending:!0};return t}let t={type:"operation",operator:e.operator,args:e.args.map(g)};"in"!==t.operator&&"notin"!==t.operator||(t.args=[t.args[0]].concat([t.args.slice(1)]));return t}(e);case l.TERM:return function(e){return e.term}(e);case l.WILDCARD:return function(e){return e.wildcard}(e)}throw new Error("Unknown Expression Operation type "+e.expressionType)}function y(e){switch(e.type){case u.ALT:return function(e){let t=y(e.left),r=y(e.right);if("!"===t.pathType&&"!"===r.pathType)return{type:"path",pathType:"!",items:[{type:"path",pathType:"|",items:[].concat(t.items,r.items)}]};return{type:"path",pathType:"|",items:[t,r]}}(e);case u.INV:return function(e){if(e.path.type===u.NPS){let t=e.path.iris.map(e=>({type:"path",pathType:"^",items:[e]}));return t.length<=1?{type:"path",pathType:"!",items:t}:{type:"path",pathType:"!",items:[{type:"path",pathType:"|",items:t}]}}return{type:"path",pathType:"^",items:[y(e.path)]}}(e);case u.LINK:return function(e){return e.iri}(e);case u.NPS:return function(e){return e.iris.length<=1?{type:"path",pathType:"!",items:e.iris}:{type:"path",pathType:"!",items:[{type:"path",pathType:"|",items:e.iris}]}}(e);case u.ONE_OR_MORE_PATH:return function(e){return{type:"path",pathType:"+",items:[y(e.path)]}}(e);case u.SEQ:return function(e){return{type:"path",pathType:"/",items:[y(e.left),y(e.right)]}}(e);case u.ZERO_OR_MORE_PATH:return function(e){return{type:"path",pathType:"*",items:[y(e.path)]}}(e);case u.ZERO_OR_ONE_PATH:return function(e){return{type:"path",pathType:"?",items:[y(e.path)]}}(e)}throw new Error("Unknown Path type "+e.type)}function b(e){return s.termToString(e)}function _(e){return e}function v(e){return{subject:e.subject,predicate:e.predicate,object:e.object}}function w(e,t){let r=a.default.isTerm(e)?b(e):e;if("string"==typeof r){if(t[r])return t[r]}else if(Array.isArray(e))e=e.map(e=>w(e,t));else for(let r of Object.keys(e))e[r]=w(e[r],t);return e}function S(e,t){let r={type:"query",prefixes:{}};t===u.PROJECT?(r.queryType="SELECT",r.variables=e.variables):t===u.ASK?r.queryType="ASK":t===u.DESCRIBE&&(r.queryType="DESCRIBE",r.variables=e.terms);let n=d.extend,i=d.group,s=d.aggregates,o=d.order;f(),d.project=!0;let l=a.default.flatten([m(e.input)]);1===l.length&&"group"===l[0].type&&(l=l[0].patterns),r.where=l;let p={};for(let e of d.aggregates)p[b(e.variable)]=g(e);let h={};for(let e=d.extend.length-1;e>=0;--e){let t=d.extend[e];h[b(t.variable)]=w(g(t.expression),p)}if(d.group.length>0&&(r.group=d.group.map(e=>{let t=b(e);if(h[t]){let r=h[t];return delete h[t],{variable:e,expression:r}}return{expression:e}})),d.order.length>0&&(r.order=d.order.map(m).map(e=>e.descending?e:{expression:e})),r.variables&&(r.variables=r.variables.map(e=>{let t=b(e);return h[t]?{variable:e,expression:h[t]}:e}),0===r.variables.length&&(r.variables=[new c])),r.where.length>0&&"filter"===r.where[r.where.length-1].type){let e=r.where[r.where.length-1];(function e(t,r){return a.default.isTerm(t)?r.indexOf(b(t))>=0:Array.isArray(t)?t.some(t=>e(t,r)):t===Object(t)?Object.keys(t).some(n=>e(t[n],r)):r.indexOf(t)>=0})(e,Object.keys(p))&&(r.having=a.default.flatten([w(e.expression,p)]),r.where.splice(-1))}return d.extend=n,d.group=i,d.aggregates=s,d.order=o,r={type:"group",patterns:[r]},r}function E(e,t){const r=[{type:t,silent:Boolean(e.silent)}];return"DEFAULT"===e.source?r[0].graph={default:!0}:"NAMED"===e.source?r[0].graph={named:!0}:"ALL"===e.source?r[0].graph={all:!0}:r[0].graph={type:"graph",name:e.source},{prefixes:{},type:"update",updates:r}}function T(e,t){const r=[{type:t,silent:Boolean(e.silent)}];return r[0].source="DEFAULT"===e.source?{type:"graph",default:!0}:{type:"graph",name:e.source},r[0].destination="DEFAULT"===e.destination?{type:"graph",default:!0}:{type:"graph",name:e.destination},{prefixes:{},type:"update",updates:r}}function O(e){if(!e)return[];const t={};return e.forEach(e=>{const r=e.graph.value;t[r]||(t[r]=[]),t[r].push(e)}),Object.keys(t).map(e=>""===e?{type:"bgp",triples:t[e].map(v)}:{type:"graph",triples:t[e].map(v),name:t[e][0].graph})}function x(e,t){if(Array.isArray(e))return e.map(e=>x(e,t));if(!e.type)return e;if(e.type===u.DELETE_INSERT)return e;if((e.type===u.PATTERN||e.type===u.PATH)&&e.graph)return t[e.graph.value]||(t[e.graph.value]={graph:e.graph,values:[]}),t[e.graph.value].values.push(e),e;const r={},n={},i={};for(let t of Object.keys(e)){const a={};r[t]=x(e[t],a);const s=Object.keys(a);if(s.length>1){let e=A(a[s[0]].values);for(let t=1;tdelete a[e]),e}if(1===s.length){const e=a[s[0]].graph;n[t]=e,i[e.value]=e}}const a=Object.keys(i);if(a.length>0)if(1===a.length&&e.type!==u.PROJECT)t[a[0]]={graph:i[a[0]],values:[r]};else for(let e of Object.keys(n))n[e].value.length>0&&(r[e]=p.createGraph(r[e],n[e]));return r}function A(e){const t=p.createBgp(e),r=e[0].graph;return 0===r.value.length?t:p.createGraph(t,r)}t.toSparql=function(e,t={}){return new o(t).stringify(h(e))},t.toSparqlJs=h},function(e,t,r){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.ActorQueryOperationTypedMediated=void 0;const n=r(126);class i extends n.ActorQueryOperationTyped{constructor(e,t){super(e,t)}}t.ActorQueryOperationTypedMediated=i},function(e,t,r){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.ActorRdfJoin=void 0;const n=r(0),i=r(3);class a extends n.Actor{constructor(e,t,r,n){super(e),this.limitEntries=null!=t?t:1/0,this.limitEntriesMin=null!=r&&r,this.canHandleUndefs=null!=n&&n}static overlappingVariables(e){const t=e.entries.map(e=>e.variables);let r=t[0];for(const e of t.slice(1))r=r.filter(t=>e.includes(t));return r}static joinVariables(e){const t=e.entries.map(e=>e.variables).reduce((e,t)=>[...e,...t],[]);return[...new Set(t)]}static join(...e){try{return e.reduce((e,t)=>e.mergeWith((e,t)=>{if(!e.equals(t))throw new Error("Join failure");return e},t))}catch(e){return null}}static async iteratorsHaveMetadata(e,t){return Promise.all(e.entries.map(async e=>{if(!e.metadata)throw new Error("Missing metadata");const r=await e.metadata();if(!(t in r))throw new Error("Missing metadata value")})).then(()=>!0).catch(()=>!1)}async test(e){if(e.entries.length<=1)return{iterations:0};if(this.limitEntriesMin?e.entries.lengththis.limitEntries)throw new Error(`${this.name} requires ${this.limitEntries} sources at ${this.limitEntriesMin?"least":"most"}. The input contained ${e.entries.length}.`);for(const t of e.entries)if("bindings"!==t.type)throw new Error(`Invalid type of a join entry: Expected 'bindings' but got '${t.type}'`);if(!this.canHandleUndefs)for(const t of e.entries)if(t.canContainUndefs)throw new Error(`Actor ${this.name} can not join streams containing undefs`);return await a.iteratorsHaveMetadata(e,"totalItems")?{iterations:await this.getIterations(e)}:{iterations:1/0}}async run(e){if(0===e.entries.length)return{bindingsStream:new i.ArrayIterator([],{autoStart:!1}),metadata:()=>Promise.resolve({totalItems:0}),type:"bindings",variables:[],canContainUndefs:!1};if(1===e.entries.length)return e.entries[0];const t=this.getOutput(e);function r(){return Promise.all(e.entries.map(e=>e.metadata())).then(e=>e.reduce((e,t)=>e*t.totalItems,1))}if(await a.iteratorsHaveMetadata(e,"totalItems")){const e=await t;if(e.metadata){const t=e.metadata;e.metadata=()=>t().then(async e=>("totalItems"in e||(e.totalItems=await r()),e))}else e.metadata=()=>r().then(e=>({totalItems:e}));return e}return t}}t.ActorRdfJoin=a},function(e,t,r){let n=r(3),i=n.MultiTransformIterator,a=n.SimpleTransformIterator;e.exports=class extends i{constructor(e,t,r){super(e),this.funRight=t,this.funJoin=r}_createTransformer(e){return new a(this.funRight(e),{transform:(t,r)=>{let n=this.funJoin(e,t);null!==n&&this._push(n),r()}})}}},function(e,t,r){let n=r(3).AsyncIterator;e.exports=class extends n{constructor(e,t,r,n){super(),this.addedDataListener=!1,this.left=e,this.right=t,this.funHash=r,this.funJoin=n,this.leftMap=new Map,this.match=null,this.matches=[],this.matchIdx=0,this.readable=!1,this.left.on("end",function(){if(this.leftMap.size<=0)return this.close();this.readable=!0,this.right.on("readable",()=>this.readable=!0),this.right.on("end",()=>{this.hasResults()||this._end()})}.bind(this)),this.on("newListener",e=>{"data"!==e||this.addedDataListener||(this.addedDataListener=!0,this._addDataListener())})}hasResults(){return!this.right.ended||this.matchIdxthis.right.close())}close(){super.close(),this.right.close()}_createTransformer(e){return new a(this.right.clone(),{transform:(t,r)=>{let n=this.funJoin(e,t);null!==n&&this._push(n),r()}})}}},function(e,t,r){let n=r(3).AsyncIterator;e.exports=class extends n{constructor(e,t,r,n){super(),this.left=e,this.right=t,this.funHash=r,this.funJoin=n,this.usedLeft=!1,this.leftMap=new Map,this.rightMap=new Map,this.on("end",()=>this._cleanup()),this.match=null,this.matches=[],this.matchIdx=0,(this.left.readable||this.right.readable)&&(this.readable=!0),this.left.on("readable",()=>this.readable=!0),this.right.on("readable",()=>this.readable=!0),this.left.on("end",()=>{this.hasResults()||this._end()}),this.right.on("end",()=>{this.hasResults()||this._end()})}hasResults(){return!this.left.ended||!this.right.ended||this.matchIdxthis.emit("readable")),t.on("end",()=>this._removeStream(t));0===this.streams.length&&this.close(),this.idx=this.streams.length-1}_removeStream(e){let t=this.streams.indexOf(e);t<0||(this.streams.splice(t,1),this.idx>=this.streams.length&&--this.idx,0===this.streams.length&&this._end())}close(){super.close();for(let e of this.streams)e.close()}read(){for(let e=0;ee||t.canContainUndefs,!1)}}async getIterations(e){return(await n.getMetadata(e.entries[0])).totalItems*(await n.getMetadata(e.entries[1])).totalItems}}t.ActorRdfJoinNestedLoop=s},function(e,t,r){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.ActorRdfResolveQuadPatternRdfJsSource=void 0;const n=r(22),i=r(130);class a extends n.ActorRdfResolveQuadPatternSource{constructor(e){super(e)}async test(e){if(!this.hasContextSingleSourceOfType("rdfjsSource",e.context))throw new Error(this.name+" requires a single source with an rdfjsSource to be present in the context.");const t=this.getContextSource(e.context);if(!t||"string"==typeof t||!("match"in t)&&!t.value.match)throw new Error(this.name+" received an invalid rdfjsSource.");return!0}async getSource(e){const t=this.getContextSource(e);return new i.RdfJsQuadSource("match"in t?t:t.value)}}t.ActorRdfResolveQuadPatternRdfJsSource=a},function(e,t,r){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.ActorRdfResolveQuadPatternSource=void 0;const n=r(129);class i extends n.ActorRdfResolveQuadPattern{constructor(e){super(e)}async test(e){return!0}async run(e){const t=await this.getSource(e.context,e.pattern);return await this.getOutput(t,e.pattern,e.context)}async getOutput(e,t,r){return{data:e.match(t.subject,t.predicate,t.object,t.graph)}}}t.ActorRdfResolveQuadPatternSource=i},function(e,t,r){"use strict";Object.defineProperty(t,"__esModule",{value:!0})},function(e,t,r){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.ActorRdfMetadataPrimaryTopic=void 0;const n=r(2),i=r(132);class a extends i.ActorRdfMetadata{constructor(e){super(e)}async test(e){if(e.triples)throw new Error("This actor only supports non-triple quad streams.");return!0}async run(e){const t=new n.Readable({objectMode:!0}),r=new n.Readable({objectMode:!0}),i=()=>{t._read=r._read=()=>{},e.quads.on("error",e=>{t.emit("error",e),r.emit("error",e)});const n={};let i;const a={};e.quads.on("data",t=>{"http://rdfs.org/ns/void#subset"===t.predicate.value&&t.object.value===e.url?i=t.subject.value:"http://xmlns.com/foaf/0.1/primaryTopic"===t.predicate.value&&(a[t.object.value]=t.subject.value);let r=n[t.graph.value];r||(r=n[t.graph.value]=[]),r.push(t)}),e.quads.on("end",()=>{const e=i?a[i]:void 0;for(const i in n)if(i===e){for(const e of n[i])r.push(e);if(this.metadataToData)for(const e of n[i])t.push(e)}else{for(const e of n[i])t.push(e);if(!e&&this.dataToMetadataOnInvalidMetadataGraph)for(const e of n[i])r.push(e)}t.push(null),r.push(null)})};return t._read=r._read=()=>{i()},{data:t,metadata:r}}}t.ActorRdfMetadataPrimaryTopic=a},function(e,t,r){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.ActorRdfMetadataQuadPredicate=void 0;const n=r(2),i=r(133);class a extends i.ActorRdfMetadata{constructor(e){super(e)}async run(e){const t=new n.Readable({objectMode:!0}),r=new n.Readable({objectMode:!0}),i=()=>{t._read=r._read=()=>{},e.quads.on("error",e=>{t.emit("error",e),r.emit("error",e)});const n={};e.quads.on("data",i=>{this.isMetadata(i,e.url,n)?r.push(i):t.push(i)}),e.quads.on("end",()=>{t.push(null),r.push(null)})};return t._read=r._read=()=>{i()},{data:t,metadata:r}}}t.ActorRdfMetadataQuadPredicate=a},function(e,t,r){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.ActorRdfMetadataAll=void 0;const n=r(2),i=r(132);class a extends i.ActorRdfMetadata{constructor(e){super(e)}async test(e){return!0}async run(e){const t=new n.Readable({objectMode:!0}),r=new n.Readable({objectMode:!0});return t._read=r._read=()=>{t._read=r._read=()=>{},e.quads.on("error",e=>{t.emit("error",e),r.emit("error",e)}),e.quads.on("data",e=>{t.push(e),r.push(e)}),e.quads.on("end",()=>{t.push(null),r.push(null)})},{data:t,metadata:r}}}t.ActorRdfMetadataAll=a},function(e,t,r){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.ActorRdfMetadataExtractHydraControls=void 0;const n=r(68),i=r(322);class a extends n.ActorRdfMetadataExtract{constructor(e){super(e),this.parsedUriTemplateCache={}}async test(e){return!0}getLinks(e,t){return a.LINK_TYPES.reduce((r,n)=>{const i=t[n]||t[n+"Page"],a=i&&i[e];return r[n]=a&&a.length>0?a[0]:null,r},{})}parseUriTemplateCached(e){const t=this.parsedUriTemplateCache[e];return t||(this.parsedUriTemplateCache[e]=i.parse(e))}getSearchForms(e){const t=e.search,r=[];if(t)for(const n in t)for(const i of t[n]){const t=(e.template||{})[i]||[];if(1!==t.length)throw new Error("Expected 1 hydra:template for "+i);const a=t[0],s=this.parseUriTemplateCached(a),o=((e.mapping||{})[i]||[]).reduce((t,r)=>{const n=((e.variable||{})[r]||[])[0],i=((e.property||{})[r]||[])[0];if(!n)throw new Error("Expected a hydra:variable for "+r);if(!i)throw new Error("Expected a hydra:property for "+r);return t[i]=n,t},{}),c=e=>s.expand(Object.keys(e).reduce((t,r)=>(t[o[r]]=e[r],t),{}));r.push({dataset:n,template:a,mappings:o,getUri:c})}return{values:r}}getHydraProperties(e){return new Promise((t,r)=>{e.on("error",r);const n={};e.on("data",e=>{if(e.predicate.value.startsWith(a.HYDRA)){const t=e.predicate.value.slice(a.HYDRA.length),r=n[t]||(n[t]={});(r[e.subject.value]||(r[e.subject.value]=[])).push(e.object.value)}}),e.on("end",()=>t(n))})}async run(e){const t={},r=await this.getHydraProperties(e.metadata);return Object.assign(t,this.getLinks(e.url,r)),t.searchForms=this.getSearchForms(r),{metadata:t}}}t.ActorRdfMetadataExtractHydraControls=a,a.HYDRA="http://www.w3.org/ns/hydra/core#",a.LINK_TYPES=["first","next","previous","last"]},function(e,t,r){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.ActorRdfMetadataExtractQuery=void 0;const n=r(309),i=r(141),a=r(136),s=r(142);class o extends a.ActorRdfMetadataExtract{constructor(e,t,r){super(r),this.graphqlClient=new n.Client({context:e,queryEngine:new s.GraphQlQueryEngine(this.queryEngine)}),this.sparqlOperation=this.graphqlClient.graphQlToSparql({query:t})}async queryData(e,t){const r=await i.storeStream(e),{data:n}=await this.graphqlClient.query(Object.assign(Object.assign({},await this.sparqlOperation),{queryEngineOptions:{source:{type:"rdfjsSource",value:r},initialBindings:t}}));return n}}t.ActorRdfMetadataExtractQuery=o},function(e,t,r){"use strict";var n=this&&this.__createBinding||(Object.create?function(e,t,r,n){void 0===n&&(n=r),Object.defineProperty(e,n,{enumerable:!0,get:function(){return t[r]}})}:function(e,t,r,n){void 0===n&&(n=r),e[n]=t[r]}),i=this&&this.__exportStar||function(e,t){for(var r in e)"default"===r||t.hasOwnProperty(r)||n(t,e,r)};Object.defineProperty(t,"__esModule",{value:!0}),i(r(310),t),i(r(320),t)},function(e,t,r){"use strict";var n=this&&this.__awaiter||function(e,t,r,n){return new(r||(r=Promise))((function(i,a){function s(e){try{c(n.next(e))}catch(e){a(e)}}function o(e){try{c(n.throw(e))}catch(e){a(e)}}function c(e){var t;e.done?i(e.value):(t=e.value,t instanceof r?t:new r((function(e){e(t)}))).then(s,o)}c((n=n.apply(e,t||[])).next())}))};Object.defineProperty(t,"__esModule",{value:!0}),t.Client=void 0;const i=r(69),a=r(8),s=r(137);t.Client=class{constructor(e){this.context=(e.contextParser||new a.ContextParser).parse(e.context,{baseIRI:e.baseIRI}),this.queryEngine=e.queryEngine,this.graphqlToSparqlConverter=e.graphqlToSparqlConverter||new i.Converter({dataFactory:e.dataFactory,requireContext:!0}),this.sparqlJsonToTreeConverter=e.sparqlJsonToTreeConverter||new s.Converter({dataFactory:e.dataFactory,materializeRdfJsTerms:!0})}query(e){return n(this,void 0,void 0,(function*(){const{sparqlAlgebra:t,singularizeVariables:r}="query"in e?yield this.graphQlToSparql({query:e.query,variables:e.variables}):e,n=yield this.queryEngine.query(t,e.queryEngineOptions);return{data:this.sparqlJsonToTreeConverter.sparqlJsonResultsToTree(n,{singularizeVariables:r})}}))}graphQlToSparql({query:e,variables:t}){return n(this,void 0,void 0,(function*(){const t={},r={singularizeVariables:t,variablesDict:{}};return{sparqlAlgebra:yield this.graphqlToSparqlConverter.graphqlToSparqlAlgebra(e,(yield this.context).getContextRaw(),r),singularizeVariables:t}}))}}},function(e,t,r){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.Converter=void 0;const n=r(312),i=r(70);class a{constructor(e){(e=e||{delimiter:"_"}).prefixVariableQuestionMark=!1,this.delimiter=e.delimiter||"_",this.parser=new i.SparqlJsonParser(e),this.materializeRdfJsTerms=e.materializeRdfJsTerms}static addValueToTree(e,t,r,n,i,s){const o=t[0],c=n?n+s+o:o,u=i.singularizeVariables[c];if(1===t.length)u?e[o]||(e[o]=r):(e[o]||(e[o]=[]),e[o].push(r));else{let n;u?(e[o]||(e[o]={}),n=e[o]):(e[o]||(e[o]=[{}]),n=e[o][0]),a.addValueToTree(n,t.slice(1),r,c,i,s)}}static mergeTrees(e,t){if(typeof e!=typeof t)throw new Error(`Two incompatible tree nodes were found: ${typeof e} and ${typeof t}`);if(Array.isArray(e)!==Array.isArray(t))throw new Error(`Two incompatible tree nodes were found: Array?${Array.isArray(e)} and Array?${Array.isArray(t)}`);if("object"==typeof e&&"object"==typeof t){if(e.termType&&t.termType)return e.equals(t)?{valid:!0,result:e}:{valid:!1,result:e};if(Array.isArray(e)&&Array.isArray(t)){if(e.length>0){const r=[];let n=!1;for(const i of e){const e=a.mergeTrees(i,t[0]);e.valid?(n=!0,r.push(e.result)):r.push(i)}if(n)return{valid:!0,result:r}}return{valid:!0,result:e.concat(t)}}{const r={};for(const e in t)r[e]=t[e];for(const t in e)if(r[t]){const n=a.mergeTrees(e[t],r[t]);if(!n.valid)return{valid:!1,result:e};r[t]=n.result}else r[t]=e[t];return{valid:!0,result:r}}}throw new Error(`Unmergable tree types: ${typeof e} and ${typeof t}`)}static materializeTree(e){if(e.termType)return n.getTermRaw(e);if(Array.isArray(e))return e.map(a.materializeTree);{const t={};for(const r in e)t[r]=a.materializeTree(e[r]);return t}}sparqlJsonResultsToTree(e,t){return this.bindingsToTree(this.parser.parseJsonResults(e),t||{singularizeVariables:{}})}bindingsToTree(e,t){const r=t&&t.singularizeVariables[""];let n=r?{}:[];for(const i of e){const e=r?{}:[{}];for(const n in i){const s=n.split(this.delimiter),o=i[n];a.addValueToTree(r?e:e[0],s,o,"",t,this.delimiter)}n=a.mergeTrees(n,e).result}return this.materializeRdfJsTerms&&(n=a.materializeTree(n)),n}}t.Converter=a},function(e,t,r){"use strict";function n(e){for(var r in e)t.hasOwnProperty(r)||(t[r]=e[r])}Object.defineProperty(t,"__esModule",{value:!0});const i=r(6),a=r(138),s=r(38);n(r(138)),n(r(38));const o=new i.DataFactory,c=new s.Translator;function u(e,t){return c.fromRdf(e,t)}c.registerHandler(new a.TypeHandlerString,a.TypeHandlerString.TYPES.map(e=>o.namedNode(e)),["string"]),c.registerHandler(new a.TypeHandlerBoolean,[a.TypeHandlerBoolean.TYPE].map(e=>o.namedNode(e)),["boolean"]),c.registerHandler(new a.TypeHandlerNumberDouble,a.TypeHandlerNumberDouble.TYPES.map(e=>o.namedNode(e)),["number"]),c.registerHandler(new a.TypeHandlerNumberInteger,a.TypeHandlerNumberInteger.TYPES.map(e=>o.namedNode(e)),["number"]),c.registerHandler(new a.TypeHandlerDate,a.TypeHandlerDate.TYPES.map(e=>o.namedNode(e)),["object"]),t.fromRdf=u,t.toRdf=function(e,t){return t&&"namedNode"in t&&(t={dataFactory:t}),(t=t||{})&&!t.dataFactory&&(t.dataFactory=o),c.toRdf(e,t)},t.getTermRaw=function(e,t){return"Literal"===e.termType?u(e,t):e.value},t.getSupportedRdfDatatypes=function(){return c.getSupportedRdfDatatypes()},t.getSupportedJavaScriptPrimitives=function(){return c.getSupportedJavaScriptPrimitives()}},function(e,t,r){"use strict";Object.defineProperty(t,"__esModule",{value:!0});const n=r(38);class i{fromRdf(e,t){switch(e.value){case"true":return!0;case"false":return!1;case"1":return!0;case"0":return!1}return t&&n.Translator.incorrectRdfDataType(e),!1}toRdf(e,{datatype:t,dataFactory:r}){return r.literal(e?"true":"false",t||r.namedNode(i.TYPE))}}t.TypeHandlerBoolean=i,i.TYPE="http://www.w3.org/2001/XMLSchema#boolean"},function(e,t,r){"use strict";Object.defineProperty(t,"__esModule",{value:!0});const n=r(38);class i{fromRdf(e,t){switch(t&&!e.value.match(i.VALIDATORS[e.datatype.value.substr(33,e.datatype.value.length)])&&n.Translator.incorrectRdfDataType(e),e.datatype.value){case"http://www.w3.org/2001/XMLSchema#gDay":return new Date(0,0,parseInt(e.value,10));case"http://www.w3.org/2001/XMLSchema#gMonthDay":const t=e.value.split("-");return new Date(0,parseInt(t[0],10)-1,parseInt(t[1],10));case"http://www.w3.org/2001/XMLSchema#gYear":return new Date(e.value+"-01-01");case"http://www.w3.org/2001/XMLSchema#gYearMonth":return new Date(e.value+"-01");default:return new Date(e.value)}}toRdf(e,{datatype:t,dataFactory:r}){if(t=t||r.namedNode(i.TYPES[0]),!(e instanceof Date))return null;const n=e;let a;switch(t.value){case"http://www.w3.org/2001/XMLSchema#gDay":a=String(n.getUTCDate());break;case"http://www.w3.org/2001/XMLSchema#gMonthDay":a=n.getUTCMonth()+1+"-"+n.getUTCDate();break;case"http://www.w3.org/2001/XMLSchema#gYear":a=String(n.getUTCFullYear());break;case"http://www.w3.org/2001/XMLSchema#gYearMonth":a=n.getUTCFullYear()+"-"+(n.getUTCMonth()+1);break;case"http://www.w3.org/2001/XMLSchema#date":a=n.toISOString().replace(/T.*$/,"");break;default:a=n.toISOString()}return r.literal(a,t)}}t.TypeHandlerDate=i,i.TYPES=["http://www.w3.org/2001/XMLSchema#dateTime","http://www.w3.org/2001/XMLSchema#date","http://www.w3.org/2001/XMLSchema#gDay","http://www.w3.org/2001/XMLSchema#gMonthDay","http://www.w3.org/2001/XMLSchema#gYear","http://www.w3.org/2001/XMLSchema#gYearMonth"],i.VALIDATORS={date:/^[0-9]+-[0-9][0-9]-[0-9][0-9]Z?$/,dateTime:/^[0-9]+-[0-9][0-9]-[0-9][0-9]T[0-9][0-9]:[0-9][0-9]:[0-9][0-9](\.[0-9][0-9][0-9])?((Z?)|([\+-][0-9][0-9]:[0-9][0-9]))$/,gDay:/^[0-9]+$/,gMonthDay:/^[0-9]+-[0-9][0-9]$/,gYear:/^[0-9]+$/,gYearMonth:/^[0-9]+-[0-9][0-9]$/}},function(e,t,r){"use strict";Object.defineProperty(t,"__esModule",{value:!0});const n=r(38);class i{fromRdf(e,t){const r=parseFloat(e.value);return t&&isNaN(r)&&n.Translator.incorrectRdfDataType(e),r}toRdf(e,{datatype:t,dataFactory:r}){return t=t||r.namedNode(i.TYPES[0]),isNaN(e)?r.literal("NaN",t):isFinite(e)?e%1==0?null:r.literal(e.toExponential(15).replace(/(\d)0*e\+?/,"$1E"),t):r.literal(e>0?"INF":"-INF",t)}}t.TypeHandlerNumberDouble=i,i.TYPES=["http://www.w3.org/2001/XMLSchema#double","http://www.w3.org/2001/XMLSchema#decimal","http://www.w3.org/2001/XMLSchema#float"]},function(e,t,r){"use strict";Object.defineProperty(t,"__esModule",{value:!0});const n=r(38);class i{fromRdf(e,t){const r=parseInt(e.value,10);return t&&(isNaN(r)||e.value.indexOf(".")>=0)&&n.Translator.incorrectRdfDataType(e),r}toRdf(e,{datatype:t,dataFactory:r}){return r.literal(String(e),t||(e<=i.MAX_INT&&e>=i.MIN_INT?r.namedNode(i.TYPES[0]):r.namedNode(i.TYPES[1])))}}t.TypeHandlerNumberInteger=i,i.TYPES=["http://www.w3.org/2001/XMLSchema#integer","http://www.w3.org/2001/XMLSchema#long","http://www.w3.org/2001/XMLSchema#int","http://www.w3.org/2001/XMLSchema#byte","http://www.w3.org/2001/XMLSchema#short","http://www.w3.org/2001/XMLSchema#negativeInteger","http://www.w3.org/2001/XMLSchema#nonNegativeInteger","http://www.w3.org/2001/XMLSchema#nonPositiveInteger","http://www.w3.org/2001/XMLSchema#positiveInteger","http://www.w3.org/2001/XMLSchema#unsignedByte","http://www.w3.org/2001/XMLSchema#unsignedInt","http://www.w3.org/2001/XMLSchema#unsignedLong","http://www.w3.org/2001/XMLSchema#unsignedShort"],i.MAX_INT=2147483647,i.MIN_INT=-2147483648},function(e,t,r){"use strict";Object.defineProperty(t,"__esModule",{value:!0});class n{fromRdf(e){return e.value}toRdf(e,{datatype:t,dataFactory:r}){return r.literal(e,t)}}t.TypeHandlerString=n,n.TYPES=["http://www.w3.org/2001/XMLSchema#string","http://www.w3.org/2001/XMLSchema#normalizedString","http://www.w3.org/2001/XMLSchema#anyURI","http://www.w3.org/2001/XMLSchema#base64Binary","http://www.w3.org/2001/XMLSchema#language","http://www.w3.org/2001/XMLSchema#Name","http://www.w3.org/2001/XMLSchema#NCName","http://www.w3.org/2001/XMLSchema#NMTOKEN","http://www.w3.org/2001/XMLSchema#token","http://www.w3.org/2001/XMLSchema#hexBinary","http://www.w3.org/1999/02/22-rdf-syntax-ns#langString","http://www.w3.org/2001/XMLSchema#time","http://www.w3.org/2001/XMLSchema#duration"]},function(e,t,r){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.SparqlJsonParser=void 0;const n=r(6),i=r(139);t.SparqlJsonParser=class{constructor(e){e=e||{},this.dataFactory=e.dataFactory||new n.DataFactory,this.prefixVariableQuestionMark=!!e.prefixVariableQuestionMark}parseJsonResults(e){return e.results.bindings.map(e=>this.parseJsonBindings(e))}parseJsonResultsStream(e){e.on("error",e=>n.emit("error",e));const t=[];e.pipe(r(71).parse("head.vars.*")).on("data",e=>t.push(this.dataFactory.variable(e))).on("end",()=>n.emit("variables",t));const n=e.pipe(r(71).parse("results.bindings.*")).pipe(new i.SparqlJsonBindingsTransformer(this));return n}parseJsonBindings(e){const t={};for(const r in e){const n=e[r];let i=null;switch(n.type){case"bnode":i=this.dataFactory.blankNode(n.value);break;case"literal":i=n["xml:lang"]?this.dataFactory.literal(n.value,n["xml:lang"]):n.datatype?this.dataFactory.literal(n.value,this.dataFactory.namedNode(n.datatype)):this.dataFactory.literal(n.value);break;case"typed-literal":i=this.dataFactory.literal(n.value,this.dataFactory.namedNode(n.datatype));break;default:i=this.dataFactory.namedNode(n.value)}t[this.prefixVariableQuestionMark?"?"+r:r]=i}return t}parseJsonBoolean(e){if("boolean"in e)return e.boolean;throw new Error("No valid ASK response was found.")}parseJsonBooleanStream(e){return new Promise((t,n)=>{e.on("error",n),e.pipe(r(71).parse("boolean")).on("data",t).on("end",()=>n(new Error("No valid ASK response was found.")))})}}},function(e,t,r){(function(t){var n=r(2);function i(e,r,i){e=e||function(e){this.queue(e)},r=r||function(){this.queue(null)};var a=!1,s=!1,o=[],c=!1,u=new n;function l(){for(;o.length&&!u.paused;){var e=o.shift();if(null===e)return u.emit("end");u.emit("data",e)}}function d(){u.writable=!1,r.call(u),!u.readable&&u.autoDestroy&&u.destroy()}return u.readable=u.writable=!0,u.paused=!1,u.autoDestroy=!(i&&!1===i.autoDestroy),u.write=function(t){return e.call(this,t),!u.paused},u.queue=u.push=function(e){return c||(null===e&&(c=!0),o.push(e),l()),u},u.on("end",(function(){u.readable=!1,!u.writable&&u.autoDestroy&&t.nextTick((function(){u.destroy()}))})),u.end=function(e){if(!a)return a=!0,arguments.length&&u.write(e),d(),u},u.destroy=function(){if(!s)return s=!0,a=!0,o.length=0,u.writable=u.readable=!1,u.emit("close"),u},u.pause=function(){if(!u.paused)return u.paused=!0,u},u.resume=function(){return u.paused&&(u.paused=!1,u.emit("resume")),l(),u.paused||u.emit("drain"),u},u}e.exports=i,i.through=i}).call(this,r(12))},function(e,t,r){"use strict";Object.defineProperty(t,"__esModule",{value:!0})},function(e,t,r){(function(t){!function(){var r;r="object"==typeof window&&window?window:t,e.exports?e.exports=r.Promise?r.Promise:s:r.Promise||(r.Promise=s);var n=r.setImmediate||function(e){setTimeout(e,1)};function i(e,t){return function(){e.apply(t,arguments)}}var a=Array.isArray||function(e){return"[object Array]"===Object.prototype.toString.call(e)};function s(e){if("object"!=typeof this)throw new TypeError("Promises must be constructed via new");if("function"!=typeof e)throw new TypeError("not a function");this._state=null,this._value=null,this._deferreds=[],p(e,i(c,this),i(u,this))}function o(e){var t=this;null!==this._state?n((function(){var r=t._state?e.onFulfilled:e.onRejected;if(null!==r){var n;try{n=r(t._value)}catch(t){return void e.reject(t)}e.resolve(n)}else(t._state?e.resolve:e.reject)(t._value)})):this._deferreds.push(e)}function c(e){try{if(e===this)throw new TypeError("A promise cannot be resolved with itself.");if(e&&("object"==typeof e||"function"==typeof e)){var t=e.then;if("function"==typeof t)return void p(i(t,e),i(c,this),i(u,this))}this._state=!0,this._value=e,l.call(this)}catch(e){u.call(this,e)}}function u(e){this._state=!1,this._value=e,l.call(this)}function l(){for(var e=0,t=this._deferreds.length;e="0"&&e<="9"}return{isAlpha:function(e){return e>="a"&&e<="z"||e>="A"&&e<="Z"},isDigit:e,isHexDigit:function(t){return e(t)||t>="a"&&t<="f"||t>="A"&&t<="F"}}}(),a=function(){var e=function(e){return unescape(encodeURIComponent(e))},t=function(e){return e<=127?1:194<=e&&e<=223?2:224<=e&&e<=239?3:240<=e&&e<=244?4:0},r=function(e){return 128<=e&&e<=191};function n(e,t){return"%"===e.charAt(t)&&i.isHexDigit(e.charAt(t+1))&&i.isHexDigit(e.charAt(t+2))}function a(e,t){return parseInt(e.substr(t,2),16)}return{encodeCharacter:function(t){var r,n,i="",a=e(t);for(n=0;n1?r+=n:r+=s.isReserved(n)||s.isUnreserved(n)?n:a.encodeCharacter(n);return r},encodeLiteralCharacter:function(e,t){var r=a.pctCharAt(e,t);return r.length>1||s.isReserved(r)||s.isUnreserved(r)?r:a.encodeCharacter(r)}}}(),c=function(){var e={};function t(t){e[t]={symbol:t,separator:"?"===t?"&":""===t||"+"===t||"#"===t?",":t,named:";"===t||"&"===t||"?"===t,ifEmpty:"&"===t||"?"===t?"=":"",first:"+"===t?"":t,encode:"+"===t||"#"===t?o.encodePassReserved:o.encode,toString:function(){return this.symbol}}}return t(""),t("+"),t("#"),t("."),t("/"),t(";"),t("?"),t("&"),{valueOf:function(t){return e[t]?e[t]:"=,!@|".indexOf(t)>=0?null:e[""]}}}();function u(e){var t;if(null==e)return!1;if(n.isArray(e))return e.length>0;if("string"==typeof e||"number"==typeof e||"boolean"==typeof e)return!0;for(t in e)if(e.hasOwnProperty(t)&&u(e[t]))return!0;return!1}var l=function(){function e(e){this.literal=o.encodeLiteral(e)}return e.prototype.expand=function(){return this.literal},e.prototype.toString=e.prototype.expand,e}(),d=function(){function e(e){var t,n,o=[],u=null,l=null,d=null,h="";function f(){var t=e.substring(l,n);if(0===t.length)throw new r({expressionText:e,message:"a varname must be specified",position:n});u={varname:t,exploded:!1,maxLength:null},l=null}function m(){if(d===n)throw new r({expressionText:e,message:"after a ':' you have to specify the length",position:n});u.maxLength=parseInt(e.substring(d,n),10),d=null}for(t=function(t){var i=c.valueOf(t);if(null===i)throw new r({expressionText:e,message:"illegal use of reserved operator",position:n,operator:t});return i}(e.charAt(0)),n=t.symbol.length,l=n;n=4)throw new r({expressionText:e,message:"A :prefix must have max 4 digits",position:n});continue}m()}if(":"!==h)if("*"!==h){if(","!==h)throw new r({expressionText:e,message:"illegal character",character:h,position:n});o.push(u),u=null,l=n+1}else{if(null===u)throw new r({expressionText:e,message:"exploded without varspec",position:n});if(u.exploded)throw new r({expressionText:e,message:"exploded twice",position:n});if(u.maxLength)throw new r({expressionText:e,message:"an explode (*) MUST NOT follow to a prefix",position:n});u.exploded=!0}else{if(null!==u.maxLength)throw new r({expressionText:e,message:"only one :maxLength is allowed per varspec",position:n});if(u.exploded)throw new r({expressionText:e,message:"an exploeded varspec MUST NOT be varspeced",position:n});d=n+1}}return null!==l&&f(),null!==d&&m(),o.push(u),new p(e,t,o)}return function(t){var n,i,a=[],s=null,o=0;for(n=0;n{e.metadata.on("error",r),e.metadata.on("data",e=>{this.predicates.includes(e.predicate.value)&&t({metadata:{totalItems:Number.parseInt(e.object.value,10)}})}),e.metadata.on("end",()=>{t({metadata:{totalItems:1/0}})})})}}t.ActorRdfMetadataExtractHydraCount=i},function(e,t,r){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.ActorRdfMetadataExtractSparqlService=void 0;const n=r(68),i=r(21);class a extends n.ActorRdfMetadataExtract{constructor(e){super(e)}async test(e){return!0}async run(e){return new Promise((t,r)=>{e.metadata.on("error",r);const n={};e.metadata.on("data",t=>{"http://www.w3.org/ns/sparql-service-description#endpoint"!==t.predicate.value||"BlankNode"!==t.subject.termType&&t.subject.value!==e.url?"http://www.w3.org/ns/sparql-service-description#defaultGraph"===t.predicate.value&&(n.defaultGraph=t.object.value):n.sparqlService="Literal"===t.object.termType?i.resolve(t.object.value,e.url):t.object.value}),e.metadata.on("end",()=>{t({metadata:n})})})}}t.ActorRdfMetadataExtractSparqlService=a},function(e,t,r){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.ActorRdfResolveHypermediaNone=void 0;const n=r(67),i=r(72),a=r(141);class s extends i.ActorRdfResolveHypermedia{constructor(e){super(e,"file")}async testMetadata(e){return{filterFactor:0}}async run(e){return this.logInfo(e.context,"Identified as file source: "+e.url),{source:new n.RdfJsQuadSource(await a.storeStream(e.quads))}}}t.ActorRdfResolveHypermediaNone=s},function(e,t,r){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.ActorRdfResolveHypermedia=void 0;const n=r(0);class i extends n.Actor{constructor(e,t){super(e),this.sourceType=t}async test(e){if(e.forceSourceType&&this.sourceType!==e.forceSourceType)throw new Error(`Actor ${this.name} is not able to handle source type ${e.forceSourceType}.`);return this.testMetadata(e)}}t.ActorRdfResolveHypermedia=i},function(e,t,r){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.ActorRdfResolveHypermediaLinksNext=void 0;const n=r(328);class i extends n.ActorRdfResolveHypermediaLinks{constructor(e){super(e)}async test(e){if(!e.metadata.next)throw new Error(`Actor ${this.name} requires a 'next' metadata entry.`);return!0}async run(e){return{urls:[e.metadata.next]}}}t.ActorRdfResolveHypermediaLinksNext=i},function(e,t,r){"use strict";var n=this&&this.__createBinding||(Object.create?function(e,t,r,n){void 0===n&&(n=r),Object.defineProperty(e,n,{enumerable:!0,get:function(){return t[r]}})}:function(e,t,r,n){void 0===n&&(n=r),e[n]=t[r]}),i=this&&this.__exportStar||function(e,t){for(var r in e)"default"===r||Object.prototype.hasOwnProperty.call(t,r)||n(t,e,r)};Object.defineProperty(t,"__esModule",{value:!0}),i(r(329),t)},function(e,t,r){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.ActorRdfResolveHypermediaLinks=void 0;const n=r(0);class i extends n.Actor{constructor(e){super(e)}}t.ActorRdfResolveHypermediaLinks=i},function(e,t,r){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.ActorHttpInvalidateListenable=void 0;const n=r(149);class i extends n.ActorHttpInvalidate{constructor(e){super(e),this.invalidateListeners=[]}addInvalidateListener(e){this.invalidateListeners.push(e)}async test(e){return!0}async run(e){for(const t of this.invalidateListeners)t(e);return!0}}t.ActorHttpInvalidateListenable=i},function(e,t,r){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.MediatorAll=void 0;const n=r(0);class i extends n.Mediator{constructor(e){super(e)}async mediate(e){const t=[];let r;try{r=this.publish(e)}catch(e){r=[]}for(const e of r)try{await e.reply,t.push(e.actor)}catch(e){}return(await Promise.all(t.map(t=>t.runObservable(e))))[0]}async mediateWith(){throw new Error("Unsupported operation: MediatorAll#mediateWith")}}t.MediatorAll=i},function(e,t,r){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.ActorSparqlParseAlgebra=void 0;const n=r(152),i=r(7),a=r(37);class s extends n.ActorSparqlParse{constructor(e){super(e),this.prefixes=Object.freeze(this.prefixes)}async test(e){if(e.queryFormat&&"sparql"!==e.queryFormat)throw new Error("This actor can only parse SPARQL queries");return!0}async run(e){const t=new a.Parser({prefixes:this.prefixes,baseIRI:e.baseIRI});t._resetBlanks();const r=t.parse(e.query);return{baseIRI:"query"===r.type?r.base:void 0,operation:i.translate(r,{quads:!0,prefixes:this.prefixes,blankToVariable:!0,baseIRI:e.baseIRI})}}}t.ActorSparqlParseAlgebra=s},function(e,t,r){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.ActorSparqlParse=void 0;const n=r(0);class i extends n.Actor{constructor(e){super(e)}}t.ActorSparqlParse=i},function(e,t,r){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.MediatorCombinePipeline=void 0;const n=r(0);class i extends n.Mediator{constructor(e){super(e)}async mediate(e){let t;try{t=this.publish(e)}catch(t){return e}await Promise.all(t.map(({reply:e})=>e));let r=e;for(const e of t.map(e=>e.actor))r=await e.runObservable(r);return r}mediateWith(){throw new Error("Method not supported.")}}t.MediatorCombinePipeline=i},function(e,t,r){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.ActorOptimizeQueryOperationJoinBgp=void 0;const n=r(336),i=r(7);class a extends n.ActorOptimizeQueryOperation{constructor(e){super(e)}async test(e){return!0}async run(e){return{operation:i.Util.mapOperation(e.operation,{join:(e,t)=>"bgp"===e.left.type&&"bgp"===e.right.type?{recurse:!1,result:t.createBgp(e.left.patterns.concat(e.right.patterns))}:{recurse:!1,result:e}})}}}t.ActorOptimizeQueryOperationJoinBgp=a},function(e,t,r){"use strict";var n=this&&this.__createBinding||(Object.create?function(e,t,r,n){void 0===n&&(n=r),Object.defineProperty(e,n,{enumerable:!0,get:function(){return t[r]}})}:function(e,t,r,n){void 0===n&&(n=r),e[n]=t[r]}),i=this&&this.__exportStar||function(e,t){for(var r in e)"default"===r||Object.prototype.hasOwnProperty.call(t,r)||n(t,e,r)};Object.defineProperty(t,"__esModule",{value:!0}),i(r(337),t)},function(e,t,r){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.ActorOptimizeQueryOperation=void 0;const n=r(0);class i extends n.Actor{constructor(e){super(e)}}t.ActorOptimizeQueryOperation=i},function(e,t,r){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.ActorQueryOperationBgpEmpty=void 0;const n=r(1),i=r(3),a=r(5),s=r(18);class o extends n.ActorQueryOperationTyped{constructor(e){super(e,"bgp")}static getVariables(e){return s.uniqTerms(e.map(e=>s.getTerms(e).filter(e=>"Variable"===e.termType)).reduce((e,t)=>e.concat(t),[])).map(e=>a.termToString(e))}async testOperation(e,t){if(e.patterns.length>0)throw new Error(`Actor ${this.name} can only operate on empty BGPs.`);return!0}async runOperation(e,t){return{bindingsStream:new i.SingletonIterator(n.Bindings({})),metadata:()=>Promise.resolve({totalItems:1}),type:"bindings",variables:o.getVariables(e.patterns),canContainUndefs:!1}}}t.ActorQueryOperationBgpEmpty=o},function(e,t,r){"use strict";Object.defineProperty(t,"__esModule",{value:!0});const n=new(r(6).DataFactory);function i(e,t){return t&&"DefaultGraph"===e.graph.termType?[e.subject,e.predicate,e.object]:[e.subject,e.predicate,e.object,e.graph]}function a(e,t){return!t||"Variable"===t.termType||"Quad"===t.termType&&"Quad"===e.termType&&o(e,t)||t.equals(e)}function s(e,t,r,n,i){return a(e.subject,t)&&a(e.predicate,r)&&a(e.object,n)&&a(e.graph,i)}function o(e,t){return s(e,t.subject,t.predicate,t.object,t.graph)}t.QUAD_TERM_NAMES=["subject","predicate","object","graph"],t.TRIPLE_TERM_NAMES=["subject","predicate","object"],t.getTerms=i,t.getTermsNested=function e(t,r){const n=[];for(const a of i(t,r))"Quad"===a.termType?e(a,r).forEach(e=>n.push(e)):n.push(a);return n},t.getNamedTerms=function(e){return[{key:"subject",value:e.subject},{key:"predicate",value:e.predicate},{key:"object",value:e.object},{key:"graph",value:e.graph}]},t.collectNamedTerms=function(e,t,r){const i={};return e.forEach(e=>i[e.key]=e.value),t&&(i.subject=i.subject||t("subject"),i.predicate=i.predicate||t("predicate"),i.object=i.object||t("object"),i.graph=i.graph||t("graph")),(r||n).quad(i.subject,i.predicate,i.object,i.graph)},t.forEachTerms=function(e,t){t(e.subject,"subject"),t(e.predicate,"predicate"),t(e.object,"object"),t(e.graph,"graph")},t.filterTerms=function(e,t){const r=[];return t(e.subject,"subject")&&r.push(e.subject),t(e.predicate,"predicate")&&r.push(e.predicate),t(e.object,"object")&&r.push(e.object),t(e.graph,"graph")&&r.push(e.graph),r},t.filterQuadTermNames=function(e,t){const r=[];return t(e.subject,"subject")&&r.push("subject"),t(e.predicate,"predicate")&&r.push("predicate"),t(e.object,"object")&&r.push("object"),t(e.graph,"graph")&&r.push("graph"),r},t.mapTerms=function(e,t,r){return(r||n).quad(t(e.subject,"subject"),t(e.predicate,"predicate"),t(e.object,"object"),t(e.graph,"graph"))},t.reduceTerms=function(e,t,r){let n=r;return n=t(n,e.subject,"subject"),n=t(n,e.predicate,"predicate"),n=t(n,e.object,"object"),t(n,e.graph,"graph")},t.everyTerms=function(e,t){return t(e.subject,"subject")&&t(e.predicate,"predicate")&&t(e.object,"object")&&t(e.graph,"graph")},t.someTerms=function(e,t){return t(e.subject,"subject")||t(e.predicate,"predicate")||t(e.object,"object")||t(e.graph,"graph")},t.matchTerm=a,t.matchPattern=s,t.matchPatternComplete=o},function(e,t,r){"use strict";function n(e,t){return e.filter(e=>e.termType===t)}Object.defineProperty(t,"__esModule",{value:!0}),t.TERM_TYPES=["NamedNode","BlankNode","Literal","Variable","DefaultGraph","Quad"],t.uniqTerms=function(e){return r(341)(e,(e,t)=>e.equals(t))},t.getTermsOfType=n,t.getNamedNodes=function(e){return n(e,"NamedNode")},t.getBlankNodes=function(e){return n(e,"BlankNode")},t.getLiterals=function(e){return n(e,"Literal")},t.getVariables=function(e){return n(e,"Variable")},t.getDefaultGraphs=function(e){return n(e,"DefaultGraph")},t.getQuads=function(e){return n(e,"Quad")}},function(e,t,r){(function(t){var r=/^\[object .+?Constructor\]$/,n="object"==typeof t&&t&&t.Object===Object&&t,i="object"==typeof self&&self&&self.Object===Object&&self,a=n||i||Function("return this")();function s(e,t){return!!(e?e.length:0)&&function(e,t,r){if(t!=t)return function(e,t,r,n){var i=e.length,a=r+(n?1:-1);for(;n?a--:++a-1}function o(e,t,r){for(var n=-1,i=e?e.length:0;++n-1},x.prototype.set=function(e,t){var r=this.__data__,n=I(r,e);return n<0?r.push([e,t]):r[n][1]=t,this},A.prototype.clear=function(){this.__data__={hash:new O,map:new(S||x),string:new O}},A.prototype.delete=function(e){return C(this,e).delete(e)},A.prototype.get=function(e){return C(this,e).get(e)},A.prototype.has=function(e){return C(this,e).has(e)},A.prototype.set=function(e,t){return C(this,e).set(e,t),this},R.prototype.add=R.prototype.push=function(e){return this.__data__.set(e,"__lodash_hash_undefined__"),this},R.prototype.has=function(e){return this.__data__.has(e)};var N=E&&1/l(new E([,-0]))[1]==1/0?function(e){return new E(e)}:function(){};function C(e,t){var r,n,i=e.__data__;return("string"==(n=typeof(r=t))||"number"==n||"symbol"==n||"boolean"==n?"__proto__"!==r:null===r)?i["string"==typeof t?"string":"hash"]:i.map}function j(e,t){var r=function(e,t){return null==e?void 0:e[t]}(e,t);return P(r)?r:void 0}function D(e){var t=typeof e;return!!e&&("object"==t||"function"==t)}e.exports=function(e,t){return e&&e.length?function(e,t,r){var n=-1,i=s,a=e.length,c=!0,d=[],p=d;if(r)c=!1,i=o;else if(a>=200){var h=t?null:N(e);if(h)return l(h);c=!1,i=u,p=new R}else p=t?[]:d;e:for(;++nn.Bindings(e))),s=e.variables.map(e=>a.termToString(e)),o=e.bindings.some(e=>s.some(t=>!(t in e)));return{type:"bindings",bindingsStream:r,metadata:()=>Promise.resolve({totalItems:e.bindings.length}),variables:s,canContainUndefs:o}}}t.ActorQueryOperationValues=s},function(e,t,r){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.ActorRdfParseHtmlScript=void 0;const n=r(120),i=r(344);class a extends n.ActorRdfParseHtml{constructor(e){super(e)}async test(e){return!0}async run(e){const t=(await this.mediatorRdfParseMediatypes.mediate({context:e.context,mediaTypes:!0})).mediaTypes;return{htmlParseListener:new i.HtmlScriptListener(this.mediatorRdfParseHandle,e.emit,e.error,e.end,t,e.context,e.baseIRI,e.headers)}}}t.ActorRdfParseHtmlScript=a},function(e,t,r){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.HtmlScriptListener=void 0;const n=r(2),i=r(0),a=r(21);class s{constructor(e,t,r,n,a,s,o,c){var u;this.textChunksJsonLd=[],this.endBarrier=1,this.passedScripts=0,this.isFinalJsonLdProcessing=!1,this.mediatorRdfParseHandle=e,this.cbQuad=t,this.cbError=r,this.cbEnd=n,this.supportedTypes=a,this.context=(s||i.ActionContext({})).set("@comunica/actor-rdf-parse-html-script:processing-html-script",!0),this.baseIRI=o,this.headers=c,this.onlyFirstScript=null!==(u=s&&!1===s.get("extractAllScripts"))&&void 0!==u&&u;const l=this.baseIRI.indexOf("#");this.targetScriptId=l>0?this.baseIRI.slice(l+1,this.baseIRI.length):null}static newErrorCoded(e,t){const r=new Error(e);return r.code=t,r}onEnd(){0==--this.endBarrier&&(this.textChunksJsonLd.length>0?(this.handleMediaType="application/ld+json",this.textChunks=this.textChunksJsonLd,this.textChunks.push("]"),this.textChunksJsonLd=[],this.isFinalJsonLdProcessing=!0,this.endBarrier++,this.onTagClose()):(0===this.passedScripts&&this.targetScriptId&&this.cbError(s.newErrorCoded(`Failed to find targeted script id "${this.targetScriptId}"`,"loading document failed")),this.cbEnd()),this.isFinalJsonLdProcessing=!1)}onTagClose(){if(this.handleMediaType)if(this.requiresCustomJsonLdHandling(this.handleMediaType)&&!this.isFinalJsonLdProcessing)this.handleMediaType=void 0,this.textChunks=void 0,this.onEnd();else{const e=new n.Readable({objectMode:!0});e._read=()=>{};const t=this.textChunks,r={context:this.context,handle:{baseIRI:this.baseIRI,input:e,headers:this.headers},handleMediaType:this.handleMediaType};this.mediatorRdfParseHandle.mediate(r).then(({handle:r})=>{r.quads.on("error",e=>this.cbError(s.newErrorCoded(e.message,"invalid script element"))).on("data",this.cbQuad).on("end",()=>this.onEnd());for(const r of t)e.push(r);e.push(null)}).catch(e=>{this.targetScriptId?this.cbError(s.newErrorCoded(e.message,"loading document failed")):this.onEnd()}),this.handleMediaType=void 0,this.textChunks=void 0}}onTagOpen(e,t){"base"===e&&t.href&&(this.baseIRI=a.resolve(t.href,this.baseIRI)),"script"!==e||this.targetScriptId&&t.id!==this.targetScriptId?this.handleMediaType=void 0:this.supportedTypes[t.type]?this.onlyFirstScript&&this.passedScripts>0?this.handleMediaType=void 0:(this.passedScripts++,this.handleMediaType=t.type,this.endBarrier++,this.requiresCustomJsonLdHandling(this.handleMediaType)?(this.textChunks=this.textChunksJsonLd,this.textChunks.push(0===this.textChunks.length?"[":",")):this.textChunks=[]):this.targetScriptId&&this.cbError(s.newErrorCoded(`Targeted script "${this.targetScriptId}" does not have a supported type`,"loading document failed"))}onText(e){this.handleMediaType&&this.textChunks.push(e)}requiresCustomJsonLdHandling(e){return!this.onlyFirstScript&&!this.targetScriptId&&"application/ld+json"===e}}t.HtmlScriptListener=s},function(e,t,r){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.ActorRdfParseJsonLd=void 0;const n=r(47),i=r(346),a=r(363);class s extends n.ActorRdfParseFixedMediaTypes{constructor(e){super(e)}async testHandle(e,t,r){if(r&&r.has("@comunica/actor-rdf-parse-html-script:processing-html-script")&&"application/ld+json"!==t)throw new Error("JSON-LD in script tags can only have media type 'application/ld+json'");if(!(t in this.mediaTypes)&&!t.endsWith("+json"))throw new Error("Unrecognized media type: "+t);return await this.testHandleChecked(e)}async runHandle(e,t,r){return{quads:i.JsonLdParser.fromHttpResponse(e.baseIRI,t,e.headers,{documentLoader:new a.DocumentLoaderMediated(this.mediatorHttp,r)}).import(e.input)}}}t.ActorRdfParseJsonLd=s},function(e,t,r){"use strict";var n=this&&this.__createBinding||(Object.create?function(e,t,r,n){void 0===n&&(n=r),Object.defineProperty(e,n,{enumerable:!0,get:function(){return t[r]}})}:function(e,t,r,n){void 0===n&&(n=r),e[n]=t[r]}),i=this&&this.__exportStar||function(e,t){for(var r in e)"default"===r||Object.prototype.hasOwnProperty.call(t,r)||n(t,e,r)};Object.defineProperty(t,"__esModule",{value:!0}),i(r(158),t)},function(e,t,r){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.EntryHandlerArrayValue=void 0;const n=r(26);t.EntryHandlerArrayValue=class{isPropertyHandler(){return!1}isStackProcessor(){return!0}async validate(e,t,r,n,i){return this.test(e,t,null,r,n)}async test(e,t,r,n,i){return"number"==typeof n[i]}async handle(e,t,r,i,a,s){let o=await t.unaliasKeywordParent(i,s);if("@list"===o){let r=null,n=0;for(let e=s-2;e>0;e--){const t=i[e];if("string"==typeof t||"number"==typeof t){n=e,r=t;break}}if(null!==r){const o=await t.valueToTerm(await e.getContext(i),r,a,s,i);for(const r of o)await this.handleListElement(e,t,r,a,s,i.slice(0,n),n);0===o.length&&await this.handleListElement(e,t,null,a,s,i.slice(0,n),n)}}else if("@set"===o)await e.newOnValueJob(i.slice(0,-2),a,s-2,!1);else if(void 0!==o&&"@type"!==o){for(let e=s-1;e>0;e--)if("number"!=typeof i[e]){o=await t.unaliasKeyword(i[e],i,e);break}const r=await e.getContext(i.slice(0,-1));if("@list"in n.Util.getContextValueContainer(r,o)){const r=await t.valueToTerm(await e.getContext(i),o,a,s,i);for(const n of r)await this.handleListElement(e,t,n,a,s,i.slice(0,-1),s-1);0===r.length&&await this.handleListElement(e,t,null,a,s,i.slice(0,-1),s-1)}else e.shiftStack(s,1),await e.newOnValueJob(i.slice(0,-1),a,s-1,!1),e.contextTree.removeContext(i.slice(0,-1))}}async handleListElement(e,t,r,n,i,a,s){let o=e.listPointerStack[i];if(null!==n&&null!==(await t.unaliasKeywords(n,a,i))["@value"]){if(o&&o.value){const r=t.dataFactory.blankNode();e.emitQuad(i,t.dataFactory.quad(o.value,t.rdfRest,r,t.getDefaultGraph())),o.value=r}else{const e=t.dataFactory.blankNode();o={value:e,listRootDepth:s,listId:e}}r&&e.emitQuad(i,t.dataFactory.quad(o.value,t.rdfFirst,r,t.getDefaultGraph()))}else o||(o={listRootDepth:s,listId:t.rdfNil});e.listPointerStack[i]=o}}},function(e,t,r){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.ContainerHandlerIdentifier=void 0;t.ContainerHandlerIdentifier=class{canCombineWithGraph(){return!0}async handle(e,t,r,n,i,a){let s;if(t.emittedStack[a+1]&&t.idStack[a+1])s=t.idStack[a+1][0];else{const e=null!==await r.getContainerKey(n[a],n,a)?await r.resourceToTerm(await t.getContext(n),n[a]):r.dataFactory.blankNode();if(!e)return void(t.emittedStack[a]=!1);s=e,t.idStack[a+1]=[s]}let o=t.idStack[a];o||(o=t.idStack[a]=[]),o.some(e=>e.equals(s))||o.push(s),await t.handlePendingContainerFlushBuffers()||(t.emittedStack[a]=!1)}}},function(e,t,r){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.ContainerHandlerIndex=void 0;const n=r(8),i=r(54),a=r(26);t.ContainerHandlerIndex=class{canCombineWithGraph(){return!0}async handle(e,t,r,s,o,c){if(!Array.isArray(o)){const u="@graph"in e,l=await t.getContext(s),d=s[c-1],p=a.Util.getContextValueIndex(l,d);if(p){if(n.Util.isPotentialKeyword(p))throw new n.ErrorCoded("Keywords can not be used as @index value, got: "+p,n.ERROR_CODES.INVALID_TERM_DEFINITION);if("string"!=typeof p)throw new n.ErrorCoded("@index values must be strings, got: "+p,n.ERROR_CODES.INVALID_TERM_DEFINITION);if("object"!=typeof o){if("@id"!==a.Util.getContextValueType(l,d))throw new n.ErrorCoded("Property-based index containers require nodes as values or strings with @type: @id, but got: "+o,n.ERROR_CODES.INVALID_VALUE_OBJECT);const e=r.resourceToTerm(l,o);e&&(t.idStack[c+1]=[e])}const e=r.createVocabOrBaseTerm(l,p);if(e){const n=await r.valueToTerm(l,p,await r.getContainerKey(s[c],s,c),c,s);if(u){const i=await r.getGraphContainerValue(s,c+1);for(const a of n)t.emitQuad(c,r.dataFactory.quad(i,e,a,r.getDefaultGraph()))}else for(const a of n)await i.EntryHandlerPredicate.handlePredicateObject(t,r,s,c+1,e,a,!1)}}const h=u?2:1;await t.newOnValueJob(s.slice(0,s.length-h),o,c-h,!0),await t.handlePendingContainerFlushBuffers()}t.emittedStack[c]=!1}}},function(e,t,r){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.ContainerHandlerLanguage=void 0;const n=r(8);t.ContainerHandlerLanguage=class{canCombineWithGraph(){return!1}async handle(e,t,r,i,a,s){const o=await r.getContainerKey(i[s],i,s);if(Array.isArray(a))a=a.map(e=>({"@value":e,"@language":o}));else{if("string"!=typeof a)throw new n.ErrorCoded(`Got invalid language map value, got '${JSON.stringify(a)}', but expected string`,n.ERROR_CODES.INVALID_LANGUAGE_MAP_VALUE);a={"@value":a,"@language":o}}await t.newOnValueJob(i.slice(0,i.length-1),a,s-1,!0),t.emittedStack[s]=!1}}},function(e,t,r){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.ContainerHandlerType=void 0;const n=r(54),i=r(26);t.ContainerHandlerType=class{canCombineWithGraph(){return!1}async handle(e,t,r,a,s,o){if(!Array.isArray(s)){if("string"==typeof s){const e=await t.getContext(a),n="@vocab"===i.Util.getContextValueType(e,a[o-1])?await r.createVocabOrBaseTerm(e,s):await r.resourceToTerm(e,s);if(n){const e={"@id":"NamedNode"===n.termType?n.value:s};await t.newOnValueJob(a.slice(0,a.length-1),e,o-1,!0),t.idStack[o+1]=[n]}}else{const e=!!t.idStack[o+1];e||delete t.idStack[o],await t.newOnValueJob(a.slice(0,a.length-1),s,o-1,!0),e||(t.idStack[o+1]=t.idStack[o])}const e=await r.getContainerKey(a[o],a,o),c=null!==e?r.createVocabOrBaseTerm(await t.getContext(a),e):null;c&&await n.EntryHandlerPredicate.handlePredicateObject(t,r,a,o+1,r.rdfType,c,!1),await t.handlePendingContainerFlushBuffers()}t.emittedStack[o]=!1}}},function(e,t,r){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.EntryHandlerInvalidFallback=void 0;t.EntryHandlerInvalidFallback=class{isPropertyHandler(){return!1}isStackProcessor(){return!0}async validate(e,t,r,n,i){return!1}async test(e,t,r,n,i){return!0}async handle(e,t,r,n,i,a){e.emittedStack[a]=!1}}},function(e,t,r){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.EntryHandlerKeywordContext=void 0;const n=r(8),i=r(27);class a extends i.EntryHandlerKeyword{constructor(){super("@context")}isStackProcessor(){return!1}async handle(e,t,r,i,a,s){e.streamingProfile&&(e.processingStack[s]||e.processingType[s]||void 0!==e.idStack[s])&&e.emitError(new n.ErrorCoded("Found an out-of-order context, while streaming is enabled.(disable `streamingProfile`)",n.ERROR_CODES.INVALID_STREAMING_KEY_ORDER));const o=e.getContext(i),c=e.parseContext(a,(await o).getContextRaw());e.contextTree.setContext(i.slice(0,-1),c),e.emitContext(a),await e.validateContext(await c)}}t.EntryHandlerKeywordContext=a},function(e,t,r){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.EntryHandlerKeywordGraph=void 0;const n=r(27);class i extends n.EntryHandlerKeyword{constructor(){super("@graph")}async handle(e,t,r,n,i,a){e.graphStack[a+1]=!0}}t.EntryHandlerKeywordGraph=i},function(e,t,r){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.EntryHandlerKeywordId=void 0;const n=r(8),i=r(27);class a extends i.EntryHandlerKeyword{constructor(){super("@id")}isStackProcessor(){return!1}async handle(e,t,r,i,a,s){"string"!=typeof a&&e.emitError(new n.ErrorCoded(`Found illegal @id '${a}'`,n.ERROR_CODES.INVALID_ID_VALUE));const o=await t.getPropertiesDepth(i,s);void 0!==e.idStack[o]&&(e.idStack[o][0].listHead?e.emitError(new n.ErrorCoded(`Found illegal neighbouring entries next to @list for key: '${i[s-1]}'`,n.ERROR_CODES.INVALID_SET_OR_LIST_OBJECT)):e.emitError(new n.ErrorCoded(`Found duplicate @ids '${e.idStack[o][0].value}' and '${a}'`,n.ERROR_CODES.COLLIDING_KEYWORDS))),e.idStack[o]=t.nullableTermToArray(await t.resourceToTerm(await e.getContext(i),a))}}t.EntryHandlerKeywordId=a},function(e,t,r){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.EntryHandlerKeywordIncluded=void 0;const n=r(8),i=r(27);class a extends i.EntryHandlerKeyword{constructor(){super("@included")}async handle(e,t,r,i,a,s){"object"!=typeof a&&e.emitError(new n.ErrorCoded(`Found illegal @included '${a}'`,n.ERROR_CODES.INVALID_INCLUDED_VALUE));const o=await t.unaliasKeywords(a,i,s,await e.getContext(i));"@value"in o&&e.emitError(new n.ErrorCoded(`Found an illegal @included @value node '${JSON.stringify(a)}'`,n.ERROR_CODES.INVALID_INCLUDED_VALUE)),"@list"in o&&e.emitError(new n.ErrorCoded(`Found an illegal @included @list node '${JSON.stringify(a)}'`,n.ERROR_CODES.INVALID_INCLUDED_VALUE)),e.emittedStack[s]=!1}}t.EntryHandlerKeywordIncluded=a},function(e,t,r){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.EntryHandlerKeywordNest=void 0;const n=r(8),i=r(27);class a extends i.EntryHandlerKeyword{constructor(){super("@nest")}async handle(e,t,r,i,a,s){"object"!=typeof a&&e.emitError(new n.ErrorCoded(`Found invalid @nest entry for '${r}': '${a}'`,n.ERROR_CODES.INVALID_NEST_VALUE)),"@value"in await t.unaliasKeywords(a,i,s,await e.getContext(i))&&e.emitError(new n.ErrorCoded(`Found an invalid @value node for '${r}'`,n.ERROR_CODES.INVALID_NEST_VALUE)),e.emittedStack[s]=!1}}t.EntryHandlerKeywordNest=a},function(e,t,r){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.EntryHandlerKeywordType=void 0;const n=r(8),i=r(26),a=r(54),s=r(27);class o extends s.EntryHandlerKeyword{constructor(){super("@type")}isStackProcessor(){return!1}async handle(e,t,r,s,o,c){const u=s[c],l=await e.getContext(s),d=t.rdfType,p=i.Util.isPropertyReverse(l,u,await t.unaliasKeywordParent(s,c)),h=Array.isArray(o)?o:[o];for(const r of h){"string"!=typeof r&&e.emitError(new n.ErrorCoded(`Found illegal @type '${r}'`,n.ERROR_CODES.INVALID_TYPE_VALUE));const i=t.createVocabOrBaseTerm(l,r);i&&await a.EntryHandlerPredicate.handlePredicateObject(e,t,s,c,d,i,p)}let f=Promise.resolve(l),m=!1;for(const t of h.sort()){const r=i.Util.getContextValue(l,"@context",t,null);r&&(m=!0,f=f.then(t=>e.parseContext(r,t.getContextRaw())))}!e.streamingProfile||!m&&e.streamingProfileAllowOutOfOrderPlainType||!e.processingStack[c]&&!e.idStack[c]||e.emitError(new n.ErrorCoded("Found an out-of-order type-scoped context, while streaming is enabled.(disable `streamingProfile`)",n.ERROR_CODES.INVALID_STREAMING_KEY_ORDER)),m&&(f=f.then(e=>("@propagate"in e.getContextRaw()||(e.getContextRaw()["@propagate"]=!1),!1===e.getContextRaw()["@propagate"]&&(e.getContextRaw()["@__propagateFallback"]=l.getContextRaw()),e)),e.contextTree.setContext(s.slice(0,s.length-1),f)),e.processingType[c]=!0}}t.EntryHandlerKeywordType=o},function(e,t,r){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.EntryHandlerKeywordUnknownFallback=void 0;const n=r(8);class i{isPropertyHandler(){return!1}isStackProcessor(){return!0}async validate(e,t,r,i,a){const s=await t.unaliasKeyword(r[i],r,i);return!!n.Util.isPotentialKeyword(s)&&!(!a&&"@list"===s)}async test(e,t,r,i,a){return n.Util.isPotentialKeyword(r)}async handle(e,t,r,a,s,o){const c=i.VALID_KEYWORDS_TYPES[r];void 0!==c?c&&typeof s!==c.type&&e.emitError(new n.ErrorCoded(`Invalid value type for '${r}' with value '${s}'`,c.errorCode)):e.strictValues&&e.emitError(new Error(`Unknown keyword '${r}' with value '${s}'`)),e.emittedStack[o]=!1}}t.EntryHandlerKeywordUnknownFallback=i,i.VALID_KEYWORDS_TYPES={"@index":{type:"string",errorCode:n.ERROR_CODES.INVALID_INDEX_VALUE},"@list":null,"@reverse":{type:"object",errorCode:n.ERROR_CODES.INVALID_REVERSE_VALUE},"@set":null,"@value":null}},function(e,t,r){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.EntryHandlerKeywordValue=void 0;const n=r(27);class i extends n.EntryHandlerKeyword{constructor(){super("@value")}async test(e,t,r,n,i){return"@value"===await t.unaliasKeyword(n[i],n.slice(0,n.length-1),i-1,!0)}async handle(e,t,r,n,i,a){e.literalStack[a]=!0,delete e.unidentifiedValuesBuffer[a],delete e.unidentifiedGraphsBuffer[a],e.emittedStack[a]=!1}}t.EntryHandlerKeywordValue=i},function(e,t,r){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.ParsingContext=void 0;const n=r(8),i=r(45),a=r(362),s=r(158);class o{constructor(e){this.contextParser=new n.ContextParser({documentLoader:e.documentLoader}),this.streamingProfile=!!e.streamingProfile,this.baseIRI=e.baseIRI,this.produceGeneralizedRdf=!!e.produceGeneralizedRdf,this.allowSubjectList=!!e.allowSubjectList,this.processingMode=e.processingMode||s.JsonLdParser.DEFAULT_PROCESSING_MODE,this.strictValues=!!e.strictValues,this.validateValueIndexes=!!e.validateValueIndexes,this.defaultGraph=e.defaultGraph,this.rdfDirection=e.rdfDirection,this.normalizeLanguageTags=e.normalizeLanguageTags,this.streamingProfileAllowOutOfOrderPlainType=e.streamingProfileAllowOutOfOrderPlainType,this.topLevelProperties=!1,this.activeProcessingMode=parseFloat(this.processingMode),this.processingStack=[],this.processingType=[],this.emittedStack=[],this.idStack=[],this.graphStack=[],this.graphContainerTermStack=[],this.listPointerStack=[],this.contextTree=new a.ContextTree,this.literalStack=[],this.validationStack=[],this.unaliasedKeywordCacheStack=[],this.jsonLiteralStack=[],this.unidentifiedValuesBuffer=[],this.unidentifiedGraphsBuffer=[],this.pendingContainerFlushBuffers=[],this.parser=e.parser,e.context?(this.rootContext=this.parseContext(e.context),this.rootContext.then(e=>this.validateContext(e))):this.rootContext=Promise.resolve(new n.JsonLdContextNormalized(this.baseIRI?{"@base":this.baseIRI,"@__baseDocument":!0}:{}))}async parseContext(e,t,r){return this.contextParser.parse(e,{baseIRI:this.baseIRI,ignoreProtection:r,normalizeLanguageTags:this.normalizeLanguageTags,parentContext:t,processingMode:this.activeProcessingMode})}validateContext(e){const t=e.getContextRaw()["@version"];if(t){if(this.activeProcessingMode&&t>this.activeProcessingMode)throw new i.ErrorCoded(`Unsupported JSON-LD version '${t}' under active processing mode ${this.activeProcessingMode}.`,i.ERROR_CODES.PROCESSING_MODE_CONFLICT);if(this.activeProcessingMode&&t0&&!1===i.context.getContextRaw()["@propagate"]&&i.depth!==t&&!r);return 0===i.depth&&!1===i.context.getContextRaw()["@propagate"]&&i.depth!==t&&(i.context=new n.JsonLdContextNormalized({})),i}async newOnValueJob(e,t,r,n){await this.parser.newOnValueJob(e,t,r,n)}async handlePendingContainerFlushBuffers(){if(this.pendingContainerFlushBuffers.length>0){for(const e of this.pendingContainerFlushBuffers)await this.parser.flushBuffer(e.depth,e.keys),this.parser.flushStacks(e.depth);return this.pendingContainerFlushBuffers.splice(0,this.pendingContainerFlushBuffers.length),!0}return!1}emitQuad(e,t){1===e&&(this.topLevelProperties=!0),this.parser.push(t)}emitError(e){this.parser.emit("error",e)}emitContext(e){this.parser.emit("context",e)}getUnidentifiedValueBufferSafe(e){let t=this.unidentifiedValuesBuffer[e];return t||(t=[],this.unidentifiedValuesBuffer[e]=t),t}getUnidentifiedGraphBufferSafe(e){let t=this.unidentifiedGraphsBuffer[e];return t||(t=[],this.unidentifiedGraphsBuffer[e]=t),t}getExpandOptions(){return o.EXPAND_OPTIONS[this.activeProcessingMode]}shiftStack(e,t){const r=this.idStack[e+t];if(r&&(this.idStack[e]=r,this.emittedStack[e]=!0,delete this.idStack[e+t]),this.pendingContainerFlushBuffers.length)for(const r of this.pendingContainerFlushBuffers)r.depth>=e+t&&(r.depth-=t,r.keys.splice(e,t));this.unidentifiedValuesBuffer[e+t]&&(this.unidentifiedValuesBuffer[e]=this.unidentifiedValuesBuffer[e+t],delete this.unidentifiedValuesBuffer[e+t])}}t.ParsingContext=o,o.EXPAND_OPTIONS={1:{allowPrefixForcing:!1,allowPrefixNonGenDelims:!1,allowVocabRelativeToBase:!1},1.1:{allowPrefixForcing:!0,allowPrefixNonGenDelims:!1,allowVocabRelativeToBase:!0}}},function(e,t,r){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.ContextTree=void 0;class n{constructor(){this.subTrees={}}getContext(e){if(e.length>0){const[t,...r]=e,n=this.subTrees[t];if(n){const e=n.getContext(r);if(e)return e.then(({context:e,depth:t})=>({context:e,depth:t+1}))}}return this.context?this.context.then(e=>({context:e,depth:0})):null}setContext(e,t){if(0===e.length)this.context=t;else{const[r,...i]=e;let a=this.subTrees[r];a||(a=this.subTrees[r]=new n),a.setContext(i,t)}}removeContext(e){this.setContext(e,null)}}t.ContextTree=n},function(e,t,r){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.DocumentLoaderMediated=void 0;const n=r(25),i=r(8),a=r(143);class s extends i.FetchDocumentLoader{constructor(e,t){super(s.createFetcher(e,t)),this.mediatorHttp=e,this.context=t}static createFetcher(e,t){return async(r,i)=>{const s=await e.mediate({input:r,init:i,context:t});return s.json=async()=>JSON.parse(await a(n.ActorHttp.toNodeReadable(s.body))),s}}}t.DocumentLoaderMediated=s},function(e,t,r){"use strict";var n=this&&this.__createBinding||(Object.create?function(e,t,r,n){void 0===n&&(n=r),Object.defineProperty(e,n,{enumerable:!0,get:function(){return t[r]}})}:function(e,t,r,n){void 0===n&&(n=r),e[n]=t[r]}),i=this&&this.__exportStar||function(e,t){for(var r in e)"default"===r||Object.prototype.hasOwnProperty.call(t,r)||n(t,e,r)};Object.defineProperty(t,"__esModule",{value:!0}),i(r(162),t),i(r(365),t)},function(e,t,r){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.ActorRdfDereferenceMediaMappings=void 0;const n=r(162);class i extends n.ActorRdfDereference{constructor(e){super(e)}getMediaTypeFromExtension(e){const t=e.lastIndexOf(".");if(t>=0){const r=e.slice(t);return this.mediaMappings[r.slice(1)]||""}return""}}t.ActorRdfDereferenceMediaMappings=i},function(e,t){var r=function(e){function t(){this.fetch=!1,this.DOMException=e.DOMException}return t.prototype=e,new t}("undefined"!=typeof self?self:this);!function(e){!function(t){var r="URLSearchParams"in e,n="Symbol"in e&&"iterator"in Symbol,i="FileReader"in e&&"Blob"in e&&function(){try{return new Blob,!0}catch(e){return!1}}(),a="FormData"in e,s="ArrayBuffer"in e;if(s)var o=["[object Int8Array]","[object Uint8Array]","[object Uint8ClampedArray]","[object Int16Array]","[object Uint16Array]","[object Int32Array]","[object Uint32Array]","[object Float32Array]","[object Float64Array]"],c=ArrayBuffer.isView||function(e){return e&&o.indexOf(Object.prototype.toString.call(e))>-1};function u(e){if("string"!=typeof e&&(e=String(e)),/[^a-z0-9\-#$%&'*+.^_`|~]/i.test(e))throw new TypeError("Invalid character in header field name");return e.toLowerCase()}function l(e){return"string"!=typeof e&&(e=String(e)),e}function d(e){var t={next:function(){var t=e.shift();return{done:void 0===t,value:t}}};return n&&(t[Symbol.iterator]=function(){return t}),t}function p(e){this.map={},e instanceof p?e.forEach((function(e,t){this.append(t,e)}),this):Array.isArray(e)?e.forEach((function(e){this.append(e[0],e[1])}),this):e&&Object.getOwnPropertyNames(e).forEach((function(t){this.append(t,e[t])}),this)}function h(e){if(e.bodyUsed)return Promise.reject(new TypeError("Already read"));e.bodyUsed=!0}function f(e){return new Promise((function(t,r){e.onload=function(){t(e.result)},e.onerror=function(){r(e.error)}}))}function m(e){var t=new FileReader,r=f(t);return t.readAsArrayBuffer(e),r}function g(e){if(e.slice)return e.slice(0);var t=new Uint8Array(e.byteLength);return t.set(new Uint8Array(e)),t.buffer}function y(){return this.bodyUsed=!1,this._initBody=function(e){var t;this._bodyInit=e,e?"string"==typeof e?this._bodyText=e:i&&Blob.prototype.isPrototypeOf(e)?this._bodyBlob=e:a&&FormData.prototype.isPrototypeOf(e)?this._bodyFormData=e:r&&URLSearchParams.prototype.isPrototypeOf(e)?this._bodyText=e.toString():s&&i&&((t=e)&&DataView.prototype.isPrototypeOf(t))?(this._bodyArrayBuffer=g(e.buffer),this._bodyInit=new Blob([this._bodyArrayBuffer])):s&&(ArrayBuffer.prototype.isPrototypeOf(e)||c(e))?this._bodyArrayBuffer=g(e):this._bodyText=e=Object.prototype.toString.call(e):this._bodyText="",this.headers.get("content-type")||("string"==typeof e?this.headers.set("content-type","text/plain;charset=UTF-8"):this._bodyBlob&&this._bodyBlob.type?this.headers.set("content-type",this._bodyBlob.type):r&&URLSearchParams.prototype.isPrototypeOf(e)&&this.headers.set("content-type","application/x-www-form-urlencoded;charset=UTF-8"))},i&&(this.blob=function(){var e=h(this);if(e)return e;if(this._bodyBlob)return Promise.resolve(this._bodyBlob);if(this._bodyArrayBuffer)return Promise.resolve(new Blob([this._bodyArrayBuffer]));if(this._bodyFormData)throw new Error("could not read FormData body as blob");return Promise.resolve(new Blob([this._bodyText]))},this.arrayBuffer=function(){return this._bodyArrayBuffer?h(this)||Promise.resolve(this._bodyArrayBuffer):this.blob().then(m)}),this.text=function(){var e,t,r,n=h(this);if(n)return n;if(this._bodyBlob)return e=this._bodyBlob,t=new FileReader,r=f(t),t.readAsText(e),r;if(this._bodyArrayBuffer)return Promise.resolve(function(e){for(var t=new Uint8Array(e),r=new Array(t.length),n=0;n-1?n:r),this.mode=t.mode||this.mode||null,this.signal=t.signal||this.signal,this.referrer=null,("GET"===this.method||"HEAD"===this.method)&&i)throw new TypeError("Body not allowed for GET or HEAD requests");this._initBody(i)}function v(e){var t=new FormData;return e.trim().split("&").forEach((function(e){if(e){var r=e.split("="),n=r.shift().replace(/\+/g," "),i=r.join("=").replace(/\+/g," ");t.append(decodeURIComponent(n),decodeURIComponent(i))}})),t}function w(e,t){t||(t={}),this.type="default",this.status=void 0===t.status?200:t.status,this.ok=this.status>=200&&this.status<300,this.statusText="statusText"in t?t.statusText:"OK",this.headers=new p(t.headers),this.url=t.url||"",this._initBody(e)}_.prototype.clone=function(){return new _(this,{body:this._bodyInit})},y.call(_.prototype),y.call(w.prototype),w.prototype.clone=function(){return new w(this._bodyInit,{status:this.status,statusText:this.statusText,headers:new p(this.headers),url:this.url})},w.error=function(){var e=new w(null,{status:0,statusText:""});return e.type="error",e};var S=[301,302,303,307,308];w.redirect=function(e,t){if(-1===S.indexOf(t))throw new RangeError("Invalid status code");return new w(null,{status:t,headers:{location:e}})},t.DOMException=e.DOMException;try{new t.DOMException}catch(e){t.DOMException=function(e,t){this.message=e,this.name=t;var r=Error(e);this.stack=r.stack},t.DOMException.prototype=Object.create(Error.prototype),t.DOMException.prototype.constructor=t.DOMException}function E(e,r){return new Promise((function(n,a){var s=new _(e,r);if(s.signal&&s.signal.aborted)return a(new t.DOMException("Aborted","AbortError"));var o=new XMLHttpRequest;function c(){o.abort()}o.onload=function(){var e,t,r={status:o.status,statusText:o.statusText,headers:(e=o.getAllResponseHeaders()||"",t=new p,e.replace(/\r?\n[\t ]+/g," ").split(/\r?\n/).forEach((function(e){var r=e.split(":"),n=r.shift().trim();if(n){var i=r.join(":").trim();t.append(n,i)}})),t)};r.url="responseURL"in o?o.responseURL:r.headers.get("X-Request-URL");var i="response"in o?o.response:o.responseText;n(new w(i,r))},o.onerror=function(){a(new TypeError("Network request failed"))},o.ontimeout=function(){a(new TypeError("Network request failed"))},o.onabort=function(){a(new t.DOMException("Aborted","AbortError"))},o.open(s.method,s.url,!0),"include"===s.credentials?o.withCredentials=!0:"omit"===s.credentials&&(o.withCredentials=!1),"responseType"in o&&i&&(o.responseType="blob"),s.headers.forEach((function(e,t){o.setRequestHeader(t,e)})),s.signal&&(s.signal.addEventListener("abort",c),o.onreadystatechange=function(){4===o.readyState&&s.signal.removeEventListener("abort",c)}),o.send(void 0===s._bodyInit?null:s._bodyInit)}))}E.polyfill=!0,e.fetch||(e.fetch=E,e.Headers=p,e.Request=_,e.Response=w),t.Headers=p,t.Request=_,t.Response=w,t.fetch=E}({})}(r),delete r.fetch.polyfill,(t=r.fetch).default=r.fetch,t.fetch=r.fetch,t.Headers=r.Headers,t.Request=r.Request,t.Response=r.Response,e.exports=t},function(e,t,r){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.ActorRdfDereferenceHttpParse=void 0;const n=r(161);class i extends n.ActorRdfDereferenceHttpParseBase{constructor(e){super(e)}getMaxAcceptHeaderLength(){return this.maxAcceptHeaderLengthBrowser}}t.ActorRdfDereferenceHttpParse=i},function(e,t,r){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.ActorRdfResolveHypermediaSparql=void 0;const n=r(72),i=r(369);class a extends n.ActorRdfResolveHypermedia{constructor(e){super(e,"sparql")}async testMetadata(e){if(!(e.forceSourceType||e.metadata.sparqlService||this.checkUrlSuffix&&e.url.endsWith("/sparql")))throw new Error(`Actor ${this.name} could not detect a SPARQL service description or URL ending on /sparql.`);return{filterFactor:1}}async run(e){this.logInfo(e.context,"Identified as sparql source: "+e.url);return{source:new i.RdfSourceSparql(e.metadata.sparqlService||e.url,e.context,this.mediatorHttp)}}}t.ActorRdfResolveHypermediaSparql=a},function(e,t,r){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.RdfSourceSparql=void 0;const n=r(370),i=r(18),a=r(7);class s{constructor(e,t,r){this.url=e,this.context=t,this.mediatorHttp=r}queryBindings(e,t,r){return new n.AsyncIteratorJsonBindings(e,t,r,this.mediatorHttp)}match(e,t,r,a){const o=n.ActorRdfResolveQuadPatternSparqlJson.replaceBlankNodes(s.FACTORY.createPattern(e,t,r,a)),c=n.ActorRdfResolveQuadPatternSparqlJson.patternToCountQuery(o),u=n.ActorRdfResolveQuadPatternSparqlJson.patternToSelectQuery(o);new Promise(e=>{const t=this.queryBindings(this.url,c,this.context);t.on("data",t=>{const r=t.get("?count");if(r){const t=Number.parseInt(r.value,10);return Number.isNaN(t)?e({totalItems:1/0}):e({totalItems:t})}return e({totalItems:1/0})}),t.on("error",()=>e({totalItems:1/0})),t.on("end",()=>e({totalItems:1/0}))}).then(e=>l.setProperty("metadata",e));const l=this.queryBindings(this.url,u,this.context).map(e=>i.mapTerms(o,t=>{if("Variable"===t.termType){const r=e.get("?"+t.value);return r||l.destroy(new Error(`The endpoint ${this.url} failed to provide a binding for ${t.value}.`)),r}return t}));return l}}t.RdfSourceSparql=s,s.FACTORY=new a.Factory},function(e,t,r){"use strict";var n=this&&this.__createBinding||(Object.create?function(e,t,r,n){void 0===n&&(n=r),Object.defineProperty(e,n,{enumerable:!0,get:function(){return t[r]}})}:function(e,t,r,n){void 0===n&&(n=r),e[n]=t[r]}),i=this&&this.__exportStar||function(e,t){for(var r in e)"default"===r||Object.prototype.hasOwnProperty.call(t,r)||n(t,e,r)};Object.defineProperty(t,"__esModule",{value:!0}),i(r(371),t),i(r(164),t)},function(e,t,r){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.ActorRdfResolveQuadPatternSparqlJson=void 0;const n=r(22),i=r(3),a=r(6),s=r(18),o=r(7),c=r(164),u=new a.DataFactory;class l extends n.ActorRdfResolveQuadPattern{constructor(e){super(e)}static replaceBlankNodes(e){const t=s.getVariables(s.getTerms(e)).map(e=>e.value),r={};let n=!1;const i=s.mapTerms(e,e=>{if("BlankNode"===e.termType){let i=e.value;if(r[i])i=r[i];else{if(t.includes(i)){let e=0;for(;t.includes(`${i}${e}`);)++e;i+=e}r[e.value]=i,t.push(i)}return n=!0,u.variable(i)}return e});return n?i:e}static patternToBgp(e){return l.FACTORY.createBgp([l.FACTORY.createPattern(e.subject,e.predicate,e.object,e.graph)])}static patternToSelectQuery(e){const t=s.getVariables(s.getTerms(e));return o.toSparql(l.FACTORY.createProject(l.patternToBgp(e),t))}static patternToCountQuery(e){return o.toSparql(l.FACTORY.createProject(l.FACTORY.createExtend(l.FACTORY.createGroup(l.patternToBgp(e),[],[l.FACTORY.createBoundAggregate(u.variable("var0"),"count",l.FACTORY.createWildcardExpression(),!1)]),u.variable("count"),l.FACTORY.createTermExpression(u.variable("var0"))),[u.variable("count")]))}async test(e){if(!this.hasContextSingleSourceOfType("sparql",e.context))throw new Error(this.name+" requires a single source with a 'sparql' endpoint to be present in the context.");return!0}async run(e){const t=this.getContextSourceUrl(this.getContextSource(e.context)),r=l.replaceBlankNodes(e.pattern),n=l.patternToSelectQuery(r),a=l.patternToCountQuery(r);this.queryBindings(t,a,e.context).then(e=>new Promise(t=>{e.on("data",e=>{const r=e.get("?count");if(r){const e=Number.parseInt(r.value,10);return Number.isNaN(e)?t({totalItems:1/0}):t({totalItems:e})}return t({totalItems:1/0})}),e.on("error",()=>t({totalItems:1/0})),e.on("end",()=>t({totalItems:1/0}))})).then(e=>o.setProperty("metadata",e)).catch(e=>{o.destroy(e),o.setProperty("metadata",{totalItems:1/0})});const o=new i.TransformIterator(async()=>(await this.queryBindings(t,n,e.context)).map(e=>s.mapTerms(r,r=>{if("Variable"===r.termType){const n=e.get("?"+r.value);return n||o.emit("error",new Error(`The endpoint ${t} failed to provide a binding for ${r.value}`)),n}return r})),{autoStart:!1});return{data:o}}async queryBindings(e,t,r){return new c.AsyncIteratorJsonBindings(e,t,r,this.mediatorHttp)}}t.ActorRdfResolveQuadPatternSparqlJson=l,l.FACTORY=new o.Factory},function(e,t,r){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.ActorQueryOperationSparqlEndpoint=void 0;const n=r(1),i=r(22),a=r(373),s=r(3),o=r(375),c=r(5),u=r(7);class l extends n.ActorQueryOperation{constructor(e){super(e),this.endpointFetcher=new o.SparqlEndpointFetcher({fetch:(e,t)=>this.mediatorHttp.mediate({input:e,init:t,context:this.lastContext}),prefixVariableQuestionMark:!0})}async test(e){if(!e.operation)throw new Error("Missing field 'operation' in a query operation action.");const t=await a.DataSourceUtils.getSingleSource(e.context);if(t&&"sparql"===i.getDataSourceType(t))return{httpRequests:1};throw new Error(this.name+" requires a single source with a 'sparql' endpoint to be present in the context.")}async run(e){const t=await a.DataSourceUtils.getSingleSource(e.context);if(!t)throw new Error("Illegal state: undefined sparql endpoint source.");const r=i.getDataSourceValue(t);let n,s,o;this.lastContext=e.context;try{n=u.toSparql(e.operation),s=this.endpointFetcher.getQueryType(n)}catch(e){}switch(s&&"UNKNOWN"!==s||(o=u.Util.inScopeVariables(e.operation),n=u.toSparql(l.FACTORY.createProject(e.operation,o)),s="SELECT"),s){case"SELECT":return o||(o=u.Util.inScopeVariables(e.operation)),this.executeQuery(r,n,!1,o);case"CONSTRUCT":return this.executeQuery(r,n,!0);case"ASK":return{type:"boolean",booleanResult:this.endpointFetcher.fetchAsk(r,n)}}}executeQuery(e,t,r,i){const a=r?this.endpointFetcher.fetchTriples(e,t):this.endpointFetcher.fetchBindings(e,t);let o=0;const u=s.wrap(a,{autoStart:!1,maxBufferSize:1/0}).map(e=>(o++,r?e:n.Bindings(e)));a.then(e=>e.on("end",()=>u.emit("metadata",{totalItems:o})),()=>{});const d=l.cachifyMetadata(()=>new Promise((e,t)=>{u._fillBuffer(),u.on("error",t),u.on("end",()=>t(new Error("No metadata was found"))),u.on("metadata",e)}));return r?{type:"quads",quadStream:u,metadata:d}:{type:"bindings",bindingsStream:u,metadata:d,variables:i.map(e=>c.termToString(e)),canContainUndefs:!0}}}t.ActorQueryOperationSparqlEndpoint=l,l.FACTORY=new u.Factory},function(e,t,r){"use strict";var n=this&&this.__createBinding||(Object.create?function(e,t,r,n){void 0===n&&(n=r),Object.defineProperty(e,n,{enumerable:!0,get:function(){return t[r]}})}:function(e,t,r,n){void 0===n&&(n=r),e[n]=t[r]}),i=this&&this.__exportStar||function(e,t){for(var r in e)"default"===r||Object.prototype.hasOwnProperty.call(t,r)||n(t,e,r)};Object.defineProperty(t,"__esModule",{value:!0}),i(r(374),t)},function(e,t,r){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.DataSourceUtils=void 0;const n=r(22);t.DataSourceUtils={async getSingleSource(e){if(e&&e.has(n.KEY_CONTEXT_SOURCE))return e.get(n.KEY_CONTEXT_SOURCE);if(e&&e.has(n.KEY_CONTEXT_SOURCES)){const t=e.get(n.KEY_CONTEXT_SOURCES);if(1===t.length)return t[0]}},async getSingleSourceType(e){const t=await this.getSingleSource(e);return t?n.getDataSourceType(t):void 0},async singleSourceHasType(e,t){const r=await this.getSingleSourceType(e);return!!r&&r===t}}},function(e,t,r){"use strict";var n=this&&this.__createBinding||(Object.create?function(e,t,r,n){void 0===n&&(n=r),Object.defineProperty(e,n,{enumerable:!0,get:function(){return t[r]}})}:function(e,t,r,n){void 0===n&&(n=r),e[n]=t[r]}),i=this&&this.__exportStar||function(e,t){for(var r in e)"default"===r||Object.prototype.hasOwnProperty.call(t,r)||n(t,e,r)};Object.defineProperty(t,"__esModule",{value:!0}),i(r(376),t)},function(e,t,r){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.SparqlEndpointFetcher=void 0,r(44);const n=r(37),i=r(70),a=r(377),s=r(42),o=r(388),c=r(116).toNodeReadable;class u{constructor(e){e=e||{},this.fetchCb=e.fetch,this.sparqlJsonParser=new i.SparqlJsonParser(e),this.sparqlXmlParser=new a.SparqlXmlParser(e),this.sparqlParsers={[u.CONTENTTYPE_SPARQL_JSON]:{parseBooleanStream:e=>this.sparqlJsonParser.parseJsonBooleanStream(e),parseResultsStream:e=>this.sparqlJsonParser.parseJsonResultsStream(e)},[u.CONTENTTYPE_SPARQL_XML]:{parseBooleanStream:e=>this.sparqlXmlParser.parseXmlBooleanStream(e),parseResultsStream:e=>this.sparqlXmlParser.parseXmlResultsStream(e)}}}getQueryType(e){const t=(new n.Parser).parse(e);return"query"===t.type?"DESCRIBE"===t.queryType?"CONSTRUCT":t.queryType:"UNKNOWN"}async fetchBindings(e,t){const[r,n]=await this.fetchRawStream(e,t,u.CONTENTTYPE_SPARQL),i=this.sparqlParsers[r];if(!i)throw new Error("Unknown SPARQL results content type: "+r);return i.parseResultsStream(n)}async fetchAsk(e,t){const[r,n]=await this.fetchRawStream(e,t,u.CONTENTTYPE_SPARQL),i=this.sparqlParsers[r];if(!i)throw new Error("Unknown SPARQL results content type: "+r);return i.parseBooleanStream(n)}async fetchTriples(e,t){return(await this.fetchRawStream(e,t,u.CONTENTTYPE_TURTLE))[1].pipe(new s.StreamParser({format:u.CONTENTTYPE_TURTLE}))}async fetchRawStream(e,t,r){const n=e+"?query="+encodeURIComponent(t),i=new Headers;i.append("Accept",r);const a=await(this.fetchCb||fetch)(n,{headers:i}),s=o(a.body)?a.body:c(a.body);let u=a.headers.get("Content-Type")||"";if(u.indexOf(";")>0&&(u=u.substr(0,u.indexOf(";"))),!a.ok)throw new Error("Invalid SPARQL endpoint ("+e+") response: "+a.statusText);return[u,s]}}t.SparqlEndpointFetcher=u,u.CONTENTTYPE_SPARQL_JSON="application/sparql-results+json",u.CONTENTTYPE_SPARQL_XML="application/sparql-results+xml",u.CONTENTTYPE_SPARQL=`${u.CONTENTTYPE_SPARQL_JSON};q=1.0,${u.CONTENTTYPE_SPARQL_XML};q=0.7`,u.CONTENTTYPE_TURTLE="text/turtle"},function(e,t,r){"use strict";var n=this&&this.__createBinding||(Object.create?function(e,t,r,n){void 0===n&&(n=r),Object.defineProperty(e,n,{enumerable:!0,get:function(){return t[r]}})}:function(e,t,r,n){void 0===n&&(n=r),e[n]=t[r]}),i=this&&this.__exportStar||function(e,t){for(var r in e)"default"===r||Object.prototype.hasOwnProperty.call(t,r)||n(t,e,r)};Object.defineProperty(t,"__esModule",{value:!0}),i(r(378),t),i(r(166),t)},function(e,t,r){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.SparqlXmlParser=void 0;const n=r(6),i=r(166),a=r(379);t.SparqlXmlParser=class{constructor(e){e=e||{},this.dataFactory=e.dataFactory||new n.DataFactory,this.prefixVariableQuestionMark=!!e.prefixVariableQuestionMark}parseXmlResultsStream(e){const t=[];e.pipe(a({strict:!0,tag:"variable"})).on("data",e=>t.push(this.dataFactory.variable(e.attribs.name))).on("error",()=>{}).on("finish",()=>r.emit("variables",t));const r=e.pipe(a({strict:!0,tag:"result"})).on("error",e=>r.emit("error",e)).pipe(new i.SparqlXmlBindingsTransformer(this));return e.on("error",e=>r.emit("error",e)),r}parseXmlBindings(e){const t={};if(e.children){const r=Array.isArray(e.children.binding)?e.children.binding:[e.children.binding];for(const e of r)if(e.attribs&&e.children){const r=e.attribs.name;let n=null;if(e.children.bnode)n=this.dataFactory.blankNode(e.children.bnode.value);else if(e.children.literal){const t=e.children.literal.value||"",r=e.children.literal.attribs;n=r&&r["xml:lang"]?this.dataFactory.literal(t,r["xml:lang"]):r&&r.datatype?this.dataFactory.literal(t,this.dataFactory.namedNode(r.datatype)):this.dataFactory.literal(t)}else n=this.dataFactory.namedNode(e.children.uri.value);t[this.prefixVariableQuestionMark?"?"+r:r]=n}}return t}parseXmlBooleanStream(e){return new Promise((t,r)=>{e.on("error",r),e.pipe(a({strict:!0,tag:"boolean"})).on("error",r).on("data",e=>t("true"===e.value)).on("end",()=>r(new Error("No valid ASK response was found.")))})}}},function(e,t,r){e.exports=r(380)},function(e,t,r){var n=r(2).Transform,i=r(381),a=r(96),s=r(384),o=r(385)("sax-stream");function c(e){if(!(this instanceof c))return new c(e);n.call(this,{highWaterMark:e.highWaterMark||350,objectMode:!0}),this.records=[],this.error=null,this.parser=this.createSaxParser(e)}e.exports=c,i.inherits(c,n),c.prototype.createSaxParser=function(e){var t,r=this,n=a.parser(e.strict||!1,function(e){return["trim","normalize","lowercase","xmlns","position","strictEntities","noscript"].reduce((function(t,r){return r in e&&(t[r]=e[r]),t}),{position:!1})}(e)),i=function(t){return t===e.tag},c=function(e,t){r.records.push(t)};return Array.isArray(e.tag)&&(i=function(t){return-1!==e.tag.indexOf(t)},c=function(e,t){r.records.push({tag:e,record:t})}),n.onopentag=function(e){o('Open "%s"',e.name),t?t=s.addChild(t,e.name):i(e.name)&&(t={}),t&&Object.keys(e.attributes).length&&(t.attribs=e.attributes)},n.onclosetag=function(e){o('Closed "%s"',e),i(e)&&!t.parent?(o("Emitting record",t),c(e,t),t=void 0):t&&(t=t.parent)},n.ontext=function(e){t&&s.addText(t,e)},n.oncdata=function(e){t&&s.concatText(t,e)},n.onerror=function(e){r.error=e},n.onend=function(){o("onend - flushing remaining items"),r.pushAll(r.callback),r.callback=null},n},c.prototype.pushAll=function(e){if(this.error)return e(this.error),void(this.error=null);o("pushing %d",this.records.length),this.records.forEach(this.push.bind(this)),this.records.length=0,e()},c.prototype._transform=function(e,t,r){this.parser.write(e.toString()),this.pushAll(r)},c.prototype._flush=function(e){this.callback=e,this.parser.close()}},function(e,t,r){(function(e){var n=Object.getOwnPropertyDescriptors||function(e){for(var t=Object.keys(e),r={},n=0;n=a)return e;switch(e){case"%s":return String(n[r++]);case"%d":return Number(n[r++]);case"%j":try{return JSON.stringify(n[r++])}catch(e){return"[Circular]"}default:return e}})),c=n[r];r=3&&(n.depth=arguments[2]),arguments.length>=4&&(n.colors=arguments[3]),f(r)?n.showHidden=r:r&&t._extend(n,r),b(n.showHidden)&&(n.showHidden=!1),b(n.depth)&&(n.depth=2),b(n.colors)&&(n.colors=!1),b(n.customInspect)&&(n.customInspect=!0),n.colors&&(n.stylize=c),l(n,e,n.depth)}function c(e,t){var r=o.styles[t];return r?"["+o.colors[r][0]+"m"+e+"["+o.colors[r][1]+"m":e}function u(e,t){return e}function l(e,r,n){if(e.customInspect&&r&&E(r.inspect)&&r.inspect!==t.inspect&&(!r.constructor||r.constructor.prototype!==r)){var i=r.inspect(n,e);return y(i)||(i=l(e,i,n)),i}var a=function(e,t){if(b(t))return e.stylize("undefined","undefined");if(y(t)){var r="'"+JSON.stringify(t).replace(/^"|"$/g,"").replace(/'/g,"\\'").replace(/\\"/g,'"')+"'";return e.stylize(r,"string")}if(g(t))return e.stylize(""+t,"number");if(f(t))return e.stylize(""+t,"boolean");if(m(t))return e.stylize("null","null")}(e,r);if(a)return a;var s=Object.keys(r),o=function(e){var t={};return e.forEach((function(e,r){t[e]=!0})),t}(s);if(e.showHidden&&(s=Object.getOwnPropertyNames(r)),S(r)&&(s.indexOf("message")>=0||s.indexOf("description")>=0))return d(r);if(0===s.length){if(E(r)){var c=r.name?": "+r.name:"";return e.stylize("[Function"+c+"]","special")}if(_(r))return e.stylize(RegExp.prototype.toString.call(r),"regexp");if(w(r))return e.stylize(Date.prototype.toString.call(r),"date");if(S(r))return d(r)}var u,v="",T=!1,O=["{","}"];(h(r)&&(T=!0,O=["[","]"]),E(r))&&(v=" [Function"+(r.name?": "+r.name:"")+"]");return _(r)&&(v=" "+RegExp.prototype.toString.call(r)),w(r)&&(v=" "+Date.prototype.toUTCString.call(r)),S(r)&&(v=" "+d(r)),0!==s.length||T&&0!=r.length?n<0?_(r)?e.stylize(RegExp.prototype.toString.call(r),"regexp"):e.stylize("[Object]","special"):(e.seen.push(r),u=T?function(e,t,r,n,i){for(var a=[],s=0,o=t.length;s=0&&0,e+t.replace(/\u001b\[\d\d?m/g,"").length+1}),0)>60)return r[0]+(""===t?"":t+"\n ")+" "+e.join(",\n ")+" "+r[1];return r[0]+t+" "+e.join(", ")+" "+r[1]}(u,v,O)):O[0]+v+O[1]}function d(e){return"["+Error.prototype.toString.call(e)+"]"}function p(e,t,r,n,i,a){var s,o,c;if((c=Object.getOwnPropertyDescriptor(t,i)||{value:t[i]}).get?o=c.set?e.stylize("[Getter/Setter]","special"):e.stylize("[Getter]","special"):c.set&&(o=e.stylize("[Setter]","special")),R(n,i)||(s="["+i+"]"),o||(e.seen.indexOf(c.value)<0?(o=m(r)?l(e,c.value,null):l(e,c.value,r-1)).indexOf("\n")>-1&&(o=a?o.split("\n").map((function(e){return" "+e})).join("\n").substr(2):"\n"+o.split("\n").map((function(e){return" "+e})).join("\n")):o=e.stylize("[Circular]","special")),b(s)){if(a&&i.match(/^\d+$/))return o;(s=JSON.stringify(""+i)).match(/^"([a-zA-Z_][a-zA-Z_0-9]*)"$/)?(s=s.substr(1,s.length-2),s=e.stylize(s,"name")):(s=s.replace(/'/g,"\\'").replace(/\\"/g,'"').replace(/(^"|"$)/g,"'"),s=e.stylize(s,"string"))}return s+": "+o}function h(e){return Array.isArray(e)}function f(e){return"boolean"==typeof e}function m(e){return null===e}function g(e){return"number"==typeof e}function y(e){return"string"==typeof e}function b(e){return void 0===e}function _(e){return v(e)&&"[object RegExp]"===T(e)}function v(e){return"object"==typeof e&&null!==e}function w(e){return v(e)&&"[object Date]"===T(e)}function S(e){return v(e)&&("[object Error]"===T(e)||e instanceof Error)}function E(e){return"function"==typeof e}function T(e){return Object.prototype.toString.call(e)}function O(e){return e<10?"0"+e.toString(10):e.toString(10)}t.debuglog=function(r){if(b(a)&&(a=e.env.NODE_DEBUG||""),r=r.toUpperCase(),!s[r])if(new RegExp("\\b"+r+"\\b","i").test(a)){var n=e.pid;s[r]=function(){var e=t.format.apply(t,arguments);console.error("%s %d: %s",r,n,e)}}else s[r]=function(){};return s[r]},t.inspect=o,o.colors={bold:[1,22],italic:[3,23],underline:[4,24],inverse:[7,27],white:[37,39],grey:[90,39],black:[30,39],blue:[34,39],cyan:[36,39],green:[32,39],magenta:[35,39],red:[31,39],yellow:[33,39]},o.styles={special:"cyan",number:"yellow",boolean:"yellow",undefined:"grey",null:"bold",string:"green",date:"magenta",regexp:"red"},t.isArray=h,t.isBoolean=f,t.isNull=m,t.isNullOrUndefined=function(e){return null==e},t.isNumber=g,t.isString=y,t.isSymbol=function(e){return"symbol"==typeof e},t.isUndefined=b,t.isRegExp=_,t.isObject=v,t.isDate=w,t.isError=S,t.isFunction=E,t.isPrimitive=function(e){return null===e||"boolean"==typeof e||"number"==typeof e||"string"==typeof e||"symbol"==typeof e||void 0===e},t.isBuffer=r(382);var x=["Jan","Feb","Mar","Apr","May","Jun","Jul","Aug","Sep","Oct","Nov","Dec"];function A(){var e=new Date,t=[O(e.getHours()),O(e.getMinutes()),O(e.getSeconds())].join(":");return[e.getDate(),x[e.getMonth()],t].join(" ")}function R(e,t){return Object.prototype.hasOwnProperty.call(e,t)}t.log=function(){console.log("%s - %s",A(),t.format.apply(t,arguments))},t.inherits=r(383),t._extend=function(e,t){if(!t||!v(t))return e;for(var r=Object.keys(t),n=r.length;n--;)e[r[n]]=t[r[n]];return e};var I="undefined"!=typeof Symbol?Symbol("util.promisify.custom"):void 0;function P(e,t){if(!e){var r=new Error("Promise was rejected with a falsy value");r.reason=e,e=r}return t(e)}t.promisify=function(e){if("function"!=typeof e)throw new TypeError('The "original" argument must be of type Function');if(I&&e[I]){var t;if("function"!=typeof(t=e[I]))throw new TypeError('The "util.promisify.custom" argument must be of type Function');return Object.defineProperty(t,I,{value:t,enumerable:!1,writable:!1,configurable:!0}),t}function t(){for(var t,r,n=new Promise((function(e,n){t=e,r=n})),i=[],a=0;a=31||"undefined"!=typeof navigator&&navigator.userAgent&&navigator.userAgent.toLowerCase().match(/applewebkit\/(\d+)/)},t.storage="undefined"!=typeof chrome&&void 0!==chrome.storage?chrome.storage.local:function(){try{return window.localStorage}catch(e){}}(),t.colors=["lightseagreen","forestgreen","goldenrod","dodgerblue","darkorchid","crimson"],t.formatters.j=function(e){try{return JSON.stringify(e)}catch(e){return"[UnexpectedJSONParseError]: "+e.message}},t.enable(i())}).call(this,r(12))},function(e,t,r){var n;function i(e){function r(){if(r.enabled){var e=r,i=+new Date,a=i-(n||i);e.diff=a,e.prev=n,e.curr=i,n=i;for(var s=new Array(arguments.length),o=0;o0)return function(e){if((e=String(e)).length>100)return;var t=/^((?:\d+)?\.?\d+) *(milliseconds?|msecs?|ms|seconds?|secs?|s|minutes?|mins?|m|hours?|hrs?|h|days?|d|years?|yrs?|y)?$/i.exec(e);if(!t)return;var s=parseFloat(t[1]);switch((t[2]||"ms").toLowerCase()){case"years":case"year":case"yrs":case"yr":case"y":return 315576e5*s;case"days":case"day":case"d":return s*a;case"hours":case"hour":case"hrs":case"hr":case"h":return s*i;case"minutes":case"minute":case"mins":case"min":case"m":return s*n;case"seconds":case"second":case"secs":case"sec":case"s":return s*r;case"milliseconds":case"millisecond":case"msecs":case"msec":case"ms":return s;default:return}}(e);if("number"===c&&!1===isNaN(e))return t.long?s(o=e,a,"day")||s(o,i,"hour")||s(o,n,"minute")||s(o,r,"second")||o+" ms":function(e){if(e>=a)return Math.round(e/a)+"d";if(e>=i)return Math.round(e/i)+"h";if(e>=n)return Math.round(e/n)+"m";if(e>=r)return Math.round(e/r)+"s";return e+"ms"}(e);throw new Error("val is not a non-empty string or a valid number. val="+JSON.stringify(e))}},function(e,t,r){"use strict";const n=e=>null!==e&&"object"==typeof e&&"function"==typeof e.pipe;n.writable=e=>n(e)&&!1!==e.writable&&"function"==typeof e._write&&"object"==typeof e._writableState,n.readable=e=>n(e)&&!1!==e.readable&&"function"==typeof e._read&&"object"==typeof e._readableState,n.duplex=e=>n.writable(e)&&n.readable(e),n.transform=e=>n.duplex(e)&&"function"==typeof e._transform&&"object"==typeof e._transformState,e.exports=n},function(e,t,r){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.ActorRdfJoinMultiSmallest=void 0;const n=r(1),i=r(52);class a extends i.ActorRdfJoin{constructor(e){super(e,3,!0)}static getSmallestPatternId(e){let t=-1,r=1/0;for(const[n,i]of e.entries())i<=r&&(r=i,t=n);return t}async getOutput(e){const t=e.entries.slice(),r=(await Promise.all(e.entries.map(e=>n.getMetadata(e)))).map(e=>"totalItems"in e?e.totalItems:1/0),i=a.getSmallestPatternId(r),s=t.splice(i,1)[0],o=(r.splice(i,1),a.getSmallestPatternId(r)),c=t.splice(o,1)[0],u=(r.splice(o,1),await this.mediatorJoin.mediate({entries:[s,c]}));return t.push(u),await this.mediatorJoin.mediate({entries:t})}async getIterations(e){return(await Promise.all(e.entries.map(e=>n.getMetadata(e)))).reduce((e,t)=>e*t.totalItems,1)}}t.ActorRdfJoinMultiSmallest=a},function(e,t,r){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.ActorRdfResolveQuadPatternFederated=void 0;const n=r(22),i=r(169);class a extends n.ActorRdfResolveQuadPatternSource{constructor(e){super(e),this.emptyPatterns=new Map}async test(e){if(!this.getContextSources(e.context))throw new Error(`Actor ${this.name} can only resolve quad pattern queries against a sources array.`);return!0}async getSource(e){return new i.FederatedQuadSource(this.mediatorResolveQuadPattern,e,this.emptyPatterns,this.skipEmptyPatterns)}}t.ActorRdfResolveQuadPatternFederated=a},function(e,t,r){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.BlankNodeScoped=void 0;t.BlankNodeScoped=class{constructor(e,t){this.termType="BlankNode",this.value=e,this.skolemized=t}equals(e){return!!e&&"BlankNode"===e.termType&&e.value===this.value}}},function(e,t,r){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.ActorQueryOperationQuadpattern=void 0;const n=r(1),i=r(3),a=r(5),s=r(18);class o extends n.ActorQueryOperationTyped{constructor(e){super(e,"pattern")}static isTermVariable(e){return"Variable"===e.termType}static getVariables(e){return s.uniqTerms(s.getTerms(e).filter(o.isTermVariable)).map(e=>a.termToString(e))}static getDuplicateElementLinks(e){const t={};let r=!1;for(const n of s.QUAD_TERM_NAMES)if("Variable"===e[n].termType){const i=a.termToString(e[n]),s=(t[i]||(t[i]=[])).push(n);r=r||s>1}if(!r)return;const n={};for(const e in t){const r=t[e],i=r.slice(1);i.length>0&&(n[r[0]]=i)}return n}static getMetadata(e){return()=>new Promise((t,r)=>{e.getProperty("metadata",e=>t(e)),e.on("error",r)})}async testOperation(e,t){return!0}async runOperation(e,t){e.context&&(t=t?t.merge(e.context):e.context);const r=await this.mediatorResolveQuadPattern.mediate({pattern:e,context:t}),c=o.getVariables(e),u=o.getMetadata(r.data),l=s.reduceTerms(e,(e,t,r)=>(o.isTermVariable(t)&&(e[r]=a.termToString(t)),e),{}),d=(e,t,r)=>{const n=l[r];return n&&(e[n]=t),e};return{type:"bindings",bindingsStream:new i.TransformIterator(async()=>{let t=r.data;const i=o.getDuplicateElementLinks(e);return i&&(t=t.filter(e=>{for(const t of s.TRIPLE_TERM_NAMES)for(const r of i[t]||[])if(!e[t].equals(e[r]))return!1;return!0})),t.map(e=>n.Bindings(s.reduceTerms(e,d,{})),{autoStart:!0,maxBufferSize:128})},{autoStart:!1}),variables:c,metadata:u,canContainUndefs:!1}}}t.ActorQueryOperationQuadpattern=o},function(e,t,r){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.ActorRdfResolveHypermediaQpf=void 0;const n=r(72),i=r(394);class a extends n.ActorRdfResolveHypermedia{constructor(e){super(e,"qpf")}async testMetadata(e){const{searchForm:t}=this.createSource(e.metadata,e.context);if(e.handledDatasets&&e.handledDatasets[t.dataset])throw new Error(`Actor ${this.name} can only be applied for the first page of a QPF dataset.`);return{filterFactor:1}}async run(e){this.logInfo(e.context,"Identified as qpf source: "+e.url);const t=this.createSource(e.metadata,e.context,e.quads);return{source:t,dataset:t.searchForm.dataset}}createSource(e,t,r){return new i.RdfSourceQpf(this.mediatorMetadata,this.mediatorMetadataExtract,this.mediatorRdfDereference,this.subjectUri,this.predicateUri,this.objectUri,this.graphUri,e,t,r)}}t.ActorRdfResolveHypermediaQpf=a},function(e,t,r){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.RdfSourceQpf=void 0;const n=r(3),i=r(6),a=r(5),s=r(18),o=new i.DataFactory;t.RdfSourceQpf=class{constructor(e,t,r,i,a,s,c,u,l,d){this.mediatorMetadata=e,this.mediatorMetadataExtract=t,this.mediatorRdfDereference=r,this.subjectUri=i,this.predicateUri=a,this.objectUri=s,this.graphUri=c,this.context=l,this.cachedQuads={};const p=this.getSearchForm(u);if(!p)throw new Error("Illegal state: found no TPF/QPF search form anymore in metadata.");if(this.searchForm=p,this.defaultGraph=u.defaultGraph?o.namedNode(u.defaultGraph):void 0,d){let e=n.wrap(d);this.defaultGraph&&(e=this.reverseMapQuadsToDefaultGraph(e)),e.setProperty("metadata",u),this.cacheQuads(e,o.variable(""),o.variable(""),o.variable(""),o.variable(""))}}getSearchForm(e){if(!e.searchForms||!e.searchForms.values)return;const{searchForms:t}=e;for(const e of t.values){if(this.graphUri&&this.subjectUri in e.mappings&&this.predicateUri in e.mappings&&this.objectUri in e.mappings&&this.graphUri in e.mappings&&4===Object.keys(e.mappings).length)return e;if(this.subjectUri in e.mappings&&this.predicateUri in e.mappings&&this.objectUri in e.mappings&&3===Object.keys(e.mappings).length)return e}}createFragmentUri(e,t,r,n,i){const s={},o=[{uri:this.subjectUri,term:t},{uri:this.predicateUri,term:r},{uri:this.objectUri,term:n},{uri:this.graphUri,term:i}];for(const e of o)e.uri&&"Variable"!==e.term.termType&&(s[e.uri]=a.termToString(e.term));return e.getUri(s)}match(e,t,r,i){let a=!1;this.defaultGraph&&"DefaultGraph"===i.termType&&(a=!0,i=this.defaultGraph);const c=this.getCachedQuads(e,t,r,i);if(c)return c;const u=new n.TransformIterator(async()=>{let c=this.createFragmentUri(this.searchForm,e,t,r,i);const l=await this.mediatorRdfDereference.mediate({context:this.context,url:c});c=l.url;const d=await this.mediatorMetadata.mediate({context:this.context,url:c,quads:l.quads,triples:l.triples}),p=this.mediatorMetadataExtract.mediate({context:this.context,url:c,metadata:d.metadata}).then(({metadata:e})=>u.setProperty("metadata",e)),h=o.defaultGraph();let f=n.wrap(d.data).transform({filter:n=>!!s.matchPattern(n,e,t,r,i)||a&&s.matchPattern(n,e,t,r,h)});return(a||"Variable"===i.termType)&&(f=this.reverseMapQuadsToDefaultGraph(f)),f.on("error",()=>{}),await p,f},{autoStart:!1});return this.cacheQuads(u,e,t,r,i),this.getCachedQuads(e,t,r,i)}reverseMapQuadsToDefaultGraph(e){const t=o.defaultGraph();return e.map(e=>s.mapTerms(e,(e,r)=>"graph"===r&&e.equals(this.defaultGraph)?t:e))}getPatternId(e,t,r,n){return JSON.stringify({s:"Variable"===e.termType?"":a.termToString(e),p:"Variable"===t.termType?"":a.termToString(t),o:"Variable"===r.termType?"":a.termToString(r),g:"Variable"===n.termType?"":a.termToString(n)})}cacheQuads(e,t,r,n,i){const a=this.getPatternId(t,r,n,i);this.cachedQuads[a]=e.clone()}getCachedQuads(e,t,r,n){const i=this.getPatternId(e,t,r,n),a=this.cachedQuads[i];if(a)return a.clone()}}},function(e,t,r){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.ActorRdfResolveQuadPatternHypermedia=void 0;const n=r(22),i=r(73),a=r(174);class s extends n.ActorRdfResolveQuadPatternSource{constructor(e){super(e),this.cache=this.cacheSize?new i({max:this.cacheSize}):void 0;const t=this.cache;t&&this.httpInvalidator.addInvalidateListener(({url:e})=>e?t.del(e):t.reset())}async test(e){if(!this.hasContextSingleSource(e.context))throw new Error(`Actor ${this.name} can only resolve quad pattern queries against a single source.`);return!0}getSource(e,t){const r=this.getContextSource(e),i=this.getContextSourceUrl(r);let s;return this.cache&&this.cache.has(i)?s=this.cache.get(i):(s=new a.MediatedQuadSource(this.cacheSize,e,i,n.getDataSourceType(r),{mediatorMetadata:this.mediatorMetadata,mediatorMetadataExtract:this.mediatorMetadataExtract,mediatorRdfDereference:this.mediatorRdfDereference,mediatorRdfResolveHypermedia:this.mediatorRdfResolveHypermedia,mediatorRdfResolveHypermediaLinks:this.mediatorRdfResolveHypermediaLinks}),this.cache&&this.cache.set(i,s)),Promise.resolve(s)}}t.ActorRdfResolveQuadPatternHypermedia=s},function(e,t,r){"use strict";function n(e){var t=this;if(t instanceof n||(t=new n),t.tail=null,t.head=null,t.length=0,e&&"function"==typeof e.forEach)e.forEach((function(e){t.push(e)}));else if(arguments.length>0)for(var r=0,i=arguments.length;r1)r=t;else{if(!this.head)throw new TypeError("Reduce of empty list with no initial value");n=this.head.next,r=this.head.value}for(var i=0;null!==n;i++)r=e(r,n.value,i),n=n.next;return r},n.prototype.reduceReverse=function(e,t){var r,n=this.tail;if(arguments.length>1)r=t;else{if(!this.tail)throw new TypeError("Reduce of empty list with no initial value");n=this.tail.prev,r=this.tail.value}for(var i=this.length-1;null!==n;i--)r=e(r,n.value,i),n=n.prev;return r},n.prototype.toArray=function(){for(var e=new Array(this.length),t=0,r=this.head;null!==r;t++)e[t]=r.value,r=r.next;return e},n.prototype.toArrayReverse=function(){for(var e=new Array(this.length),t=0,r=this.tail;null!==r;t++)e[t]=r.value,r=r.prev;return e},n.prototype.slice=function(e,t){(t=t||this.length)<0&&(t+=this.length),(e=e||0)<0&&(e+=this.length);var r=new n;if(tthis.length&&(t=this.length);for(var i=0,a=this.head;null!==a&&ithis.length&&(t=this.length);for(var i=this.length,a=this.tail;null!==a&&i>t;i--)a=a.prev;for(;null!==a&&i>e;i--,a=a.prev)r.push(a.value);return r},n.prototype.splice=function(e,t,...r){e>this.length&&(e=this.length-1),e<0&&(e=this.length+e);for(var n=0,a=this.head;null!==a&&n!this.handledUrls[e]&&(this.handledUrls[e]=!0,!0))}catch(e){return[]}}async getSource(e,t){const r=this.context,n=await this.mediatorRdfDereference.mediate({context:r,url:e});e=n.url;const i=await this.mediatorMetadata.mediate({context:r,url:e,quads:n.quads,triples:n.triples}),{metadata:a}=await this.mediatorMetadataExtract.mediate({context:r,url:e,metadata:i.metadata}),{source:s,dataset:o}=await this.mediatorRdfResolveHypermedia.mediate({context:r,forceSourceType:this.forceSourceType,handledDatasets:t,metadata:a,quads:i.data,url:e});return o&&(t[o]=!0),{source:s,metadata:a,handledDatasets:t}}}t.MediatedLinkedRdfSourcesAsyncRdfIterator=i},function(e,t,r){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.LinkedRdfSourcesAsyncRdfIterator=void 0;const n=r(3),i=r(73);class a extends n.BufferedIterator{constructor(e,t,r,n,i,a){super({autoStart:!0}),this.started=!1,this.cacheSize=e,this.subject=t,this.predicate=r,this.object=n,this.graph=i,this.urlQueue=[],this.firstUrl=a}setSourcesState(e){e?this.sourcesState=e:(this.sourcesState={sources:new i({max:this.cacheSize})},this.getSourceCached(this.firstUrl,{}).catch(e=>this.destroy(e)))}getSourceCached(e,t){let r=this.sourcesState.sources.get(e);return r||(r=this.getSource(e,t),this.sourcesState.sources.set(e,r),r)}_read(e,t){if(this.started)if(this.currentIterator){for(;e>0;){const t=this.currentIterator.read();if(null===t)break;e--,this._push(t)}t()}else t();else this.started=!0,this.sourcesState||this.setSourcesState(),this.getSourceCached(this.firstUrl,{}).then(e=>{this.setCurrentIterator(e,!0),t()}).catch(e=>{t()})}setCurrentIterator(e,t){this.currentIterator=e.source.match(this.subject,this.predicate,this.object,this.graph);let r=!1;this.currentIterator._destination=this,this.currentIterator.on("error",e=>this.destroy(e)),this.currentIterator.on("readable",()=>this._fillBuffer()),this.currentIterator.on("end",()=>{this.currentIterator=void 0,r&&this.handleNextUrl(e)}),this.currentIterator.getProperty("metadata",n=>{e.metadata=Object.assign(Object.assign({},e.metadata),n),t&&this.setProperty("metadata",e.metadata),this.getSourceLinks(e.metadata).then(e=>Promise.all(e)).then(async t=>{for(const e of t)this.urlQueue.push(e);r=!0,this.currentIterator||this.handleNextUrl(e)}).catch(e=>this.destroy(e))})}handleNextUrl(e){0===this.urlQueue.length?this.close():(this.getSourceCached(this.urlQueue[0],e.handledDatasets).then(e=>this.setCurrentIterator(e,!1)).catch(e=>this.destroy(e)),this.urlQueue.shift())}}t.LinkedRdfSourcesAsyncRdfIterator=a},function(e,t,r){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.ActorQueryOperationAsk=void 0;const n=r(1);class i extends n.ActorQueryOperationTypedMediated{constructor(e){super(e,"ask")}async testOperation(e,t){return!0}async runOperation(e,t){const r=await this.mediatorQueryOperation.mediate({operation:e.input,context:t}),i=n.ActorQueryOperation.getSafeBindings(r);return{type:"boolean",booleanResult:new Promise((e,t)=>{i.bindingsStream.once("data",()=>{e(!0),i.bindingsStream.close()}),i.bindingsStream.on("end",()=>e(!1)),i.bindingsStream.on("error",t)})}}}t.ActorQueryOperationAsk=i},function(e,t,r){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.ActorQueryOperationService=void 0;const n=r(1),i=r(22),a=r(0),s=r(3);class o extends n.ActorQueryOperationTypedMediated{constructor(e){super(e,"service")}async testOperation(e,t){if("NamedNode"!==e.name.termType)throw new Error(`${this.name} can only query services by IRI, while a ${e.name.termType} was given.`);return!0}async runOperation(e,t){const r=e.name.value;let o=(t=t||a.ActionContext({})).delete(i.KEY_CONTEXT_SOURCE).delete(i.KEY_CONTEXT_SOURCES);const c=this.forceSparqlEndpoint?"sparql":"auto";let u;o=o.set(i.KEY_CONTEXT_SOURCES,[{type:c,value:r}]);try{u=n.ActorQueryOperation.getSafeBindings(await this.mediatorQueryOperation.mediate({operation:e.input,context:o}))}catch(t){if(!e.silent)throw t;u={bindingsStream:new s.SingletonIterator(n.Bindings({})),type:"bindings",variables:[],canContainUndefs:!1}}return u}}t.ActorQueryOperationService=o},function(e,t,r){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.ActorQueryOperationSlice=void 0;const n=r(1);class i extends n.ActorQueryOperationTypedMediated{constructor(e){super(e,"slice")}async testOperation(e,t){return!0}async runOperation(e,t){const r=await this.mediatorQueryOperation.mediate({operation:e.input,context:t}),n=this.sliceMetadata(r,e);if("bindings"===r.type){const t=r;return{type:"bindings",bindingsStream:this.sliceStream(t.bindingsStream,e),metadata:n,variables:t.variables,canContainUndefs:t.canContainUndefs}}if("quads"===r.type){const t=r;return{type:"quads",quadStream:this.sliceStream(t.quadStream,e),metadata:n}}throw new Error(`Invalid query output type: Expected 'bindings' or 'quads' but got '${r.type}'`)}sliceStream(e,t){const r=Boolean(t.length)||0===t.length,{start:n}=t,i=r?t.start+t.length-1:1/0;return e.transform({offset:n,limit:Math.max(i-n+1,0),autoStart:!1})}sliceMetadata(e,t){const r=Boolean(t.length)||0===t.length;return e.metadata?()=>e.metadata().then(e=>{let{totalItems:n}=e;return Number.isFinite(n)&&(n=Math.max(0,n-t.start),r&&(n=Math.min(n,t.length))),Object.assign(Object.assign({},e),{totalItems:n})}):void 0}}t.ActorQueryOperationSlice=i},function(e,t,r){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.ActorQueryOperationBgpSingle=void 0;const n=r(1);class i extends n.ActorQueryOperationTypedMediated{constructor(e){super(e,"bgp")}async testOperation(e,t){if(1!==e.patterns.length)throw new Error(`Actor ${this.name} can only operate on BGPs with a single pattern.`);return!0}runOperation(e,t){if(t&&t.has(n.KEY_CONTEXT_BGP_PARENTMETADATA)){const e=t.get(n.KEY_CONTEXT_BGP_PARENTMETADATA);t=(t=t.delete(n.KEY_CONTEXT_BGP_PARENTMETADATA)).set(n.KEY_CONTEXT_PATTERN_PARENTMETADATA,e[0])}return this.mediatorQueryOperation.mediate({operation:e.patterns[0],context:t})}}t.ActorQueryOperationBgpSingle=i},function(e,t,r){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.ActorQueryOperationBgpLeftDeepSmallest=void 0;const n=r(1),i=r(3),a=r(5),s=r(18);class o extends n.ActorQueryOperationTypedMediated{constructor(e){super(e,"bgp")}static createLeftDeepStream(e,t,r){return new i.MultiTransformIterator(e,{autoStart:!1,multiTransform(e){const n=t=>t.merge(e);return new i.TransformIterator(async()=>(await r(o.materializePatterns(t,e))).transform({map:n}),{maxBufferSize:128})}})}static getCombinedVariables(e){const t=[].concat.apply([],e.map(e=>e.variables));return[...new Set(t)]}static getSmallestPatternId(e){let t=-1,r=1/0;for(const[n,i]of e.entries()){const e=o.getTotalItems(i);e<=r&&(r=e,t=n)}return t}static estimateCombinedTotalItems(e,t){const r=o.getTotalItems(e);return t.map(e=>r*o.getTotalItems(e)).reduce((e,t)=>e+t,0)}static getTotalItems(e){const{totalItems:t}=null!=e?e:{};return t||0===t?t:1/0}static materializePatterns(e,t){return e.map(e=>o.materializePattern(e,t))}static materializePattern(e,t){const r={};return{pattern:Object.assign(s.mapTerms(e,(e,n)=>{const i=o.materializeTerm(e,t);return e!==i&&(r[n]=e),i}),{type:"pattern",context:e.context}),bindings:r}}static materializeTerm(e,t){if("Variable"===e.termType){const r=t.get(a.termToString(e));if(r)return r}return e}static async hasOneEmptyPatternOutput(e){for(const t of e)if(t.metadata){const e=await t.metadata();if(!o.getTotalItems(e))return!0}return!1}async testOperation(e,t){if(e.patterns.length<2)throw new Error(`Actor ${this.name} can only operate on BGPs with at least two patterns.`);return!0}async runOperation(e,t){const r=(await Promise.all(e.patterns.map(e=>this.mediatorQueryOperation.mediate({operation:e,context:t})))).map(n.ActorQueryOperation.getSafeBindings);if(await o.hasOneEmptyPatternOutput(r))return{bindingsStream:new i.ArrayIterator([],{autoStart:!1}),metadata:()=>Promise.resolve({totalItems:0}),type:"bindings",variables:o.getCombinedVariables(r),canContainUndefs:!1};const a=await Promise.all(r.map(async e=>e.metadata?await e.metadata():{})),s=o.getSmallestPatternId(a);this.logDebug(t,"Smallest pattern: ",()=>({pattern:e.patterns[s],metadata:a[s]}));for(const[e,t]of r.entries())e!==s&&t.bindingsStream.close();const c=r.slice(s)[0],u=e.patterns.concat([]);u.splice(s,1);const l=a.concat([]);l.splice(s,1),n.ActorQueryOperation.validateQueryOutput(c,"bindings");const d=t&&t.set(n.KEY_CONTEXT_BGP_CURRENTMETADATA,a[s]).set(n.KEY_CONTEXT_BGP_PARENTMETADATA,l);return{type:"bindings",bindingsStream:o.createLeftDeepStream(c.bindingsStream,u,async e=>{const t={type:"bgp",patterns:e.map(e=>e.pattern)},r=e.map(e=>e.bindings);return n.ActorQueryOperation.getSafeBindings(await this.mediatorQueryOperation.mediate({operation:t,context:d.set(n.KEY_CONTEXT_BGP_PATTERNBINDINGS,r)})).bindingsStream}),variables:o.getCombinedVariables(r),metadata:()=>Promise.resolve({totalItems:o.estimateCombinedTotalItems(a[s],a.slice(s))}),canContainUndefs:!1}}}t.ActorQueryOperationBgpLeftDeepSmallest=o},function(e,t,r){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.ActorQueryOperationConstruct=void 0;const n=r(1),i=r(18),a=r(406);class s extends n.ActorQueryOperationTypedMediated{constructor(e){super(e,"construct")}static getVariables(e){return i.uniqTerms([].concat.apply([],e.map(e=>i.getVariables(i.getTerms(e)))))}async testOperation(e,t){return!0}async runOperation(e,t){const r=s.getVariables(e.template),i={type:"project",input:e.input,variables:r},o=n.ActorQueryOperation.getSafeBindings(await this.mediatorQueryOperation.mediate({operation:i,context:t})),c=new a.BindingsToQuadsIterator(e.template,o.bindingsStream);let u;return o.metadata&&(u=()=>o.metadata().then(t=>t.totalItems?Object.assign(Object.assign({},t),{totalItems:t.totalItems*e.template.length}):t)),{metadata:u,quadStream:c,type:"quads"}}}t.ActorQueryOperationConstruct=s},function(e,t,r){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.BindingsToQuadsIterator=void 0;const n=r(3),i=r(6),a=r(18),s=new i.DataFactory;class o extends n.MultiTransformIterator{constructor(e,t){super(t,{autoStart:!1}),this.template=e,this.blankNodeCounter=0}static bindTerm(e,t){return"Variable"===t.termType?e.get("?"+t.value):t}static bindQuad(e,t){try{return a.mapTerms(t,t=>{const r=o.bindTerm(e,t);if(!r)throw new Error("Unbound term");return r})}catch(e){}}static localizeBlankNode(e,t){return"BlankNode"===t.termType?s.blankNode(`${t.value}${e}`):t}static localizeQuad(e,t){return a.mapTerms(t,t=>o.localizeBlankNode(e,t))}static bindTemplate(e,t,r){return t.map(t=>o.bindQuad.bind(null,e)(t)).filter(Boolean).map(o.localizeQuad.bind(null,r))}_createTransformer(e){return new n.ArrayIterator(o.bindTemplate(e,this.template,this.blankNodeCounter++))}}t.BindingsToQuadsIterator=o},function(e,t,r){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.ActorQueryOperationDescribeSubject=void 0;const n=r(74),i=r(1),a=r(3),s=new(r(6).DataFactory);class o extends i.ActorQueryOperationTypedMediated{constructor(e){super(e,"describe")}async testOperation(e,t){return!0}async runOperation(e,t){const r=e.terms.filter(e=>"Variable"!==e.termType).map(e=>{const t=[s.quad(e,s.variable("__predicate"),s.variable("__object"))];t.forEach(e=>e.type="pattern");return{input:{type:"bgp",patterns:t},template:t,type:"construct"}});if(r.length!==e.terms.length){let t=[];e.terms.filter(e=>"Variable"===e.termType).forEach((e,r)=>{const n=[s.quad(e,s.variable("__predicate"+r),s.variable("__object"+r))];n.forEach(e=>e.type="pattern"),t=t.concat(n)}),r.push({input:{type:"join",left:e.input,right:{type:"bgp",patterns:t}},template:t,type:"construct"})}const o=(await Promise.all(r.map(e=>this.mediatorQueryOperation.mediate({operation:e,context:t})))).map(i.ActorQueryOperation.getSafeQuads);return{type:"quads",quadStream:new a.UnionIterator(o.map(e=>e.quadStream),{autoStart:!1}),metadata:()=>Promise.all(o.map(e=>i.getMetadata(e))).then(n.ActorQueryOperationUnion.unionMetadata)}}}t.ActorQueryOperationDescribeSubject=o},function(e,t,r){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.ActorQueryOperationUnion=void 0;const n=r(1),i=r(3);class a extends n.ActorQueryOperationTypedMediated{constructor(e){super(e,"union")}static unionVariables(e){const t=e.reduce((e,t)=>[...e,...t],[]);return[...new Set(t)]}static unionMetadata(e){let t=0;for(const r of e){if(!r.totalItems||!Number.isFinite(r.totalItems)){t=1/0;break}t+=r.totalItems}return{totalItems:t}}async testOperation(e,t){return!0}async runOperation(e,t){const r=(await Promise.all([this.mediatorQueryOperation.mediate({operation:e.left,context:t}),this.mediatorQueryOperation.mediate({operation:e.right,context:t})])).map(n.ActorQueryOperation.getSafeBindings);return{type:"bindings",bindingsStream:new i.UnionIterator(r.map(e=>e.bindingsStream),{autoStart:!1}),metadata:r[0].metadata&&r[1].metadata?()=>Promise.all([r[0].metadata(),r[1].metadata()]).then(a.unionMetadata):void 0,variables:a.unionVariables(r.map(e=>e.variables)),canContainUndefs:r.reduce((e,t)=>e||t.canContainUndefs,!1)}}}t.ActorQueryOperationUnion=a},function(e,t,r){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.ActorQueryOperationDistinctHash=void 0;const n=r(75);class i extends n.AbstractBindingsHash{constructor(e){super(e,"distinct")}newHashFilter(e,t){const r={};return i=>{const a=n.AbstractFilterHash.hash(e,t,i);return!(a in r)&&(r[a]=!0)}}}t.ActorQueryOperationDistinctHash=i},function(e,t,r){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.AbstractBindingsHash=void 0;const n=r(1),i=r(183);class a extends n.ActorQueryOperationTypedMediated{constructor(e,t){if(super(e,t),!i.AbstractFilterHash.doesHashAlgorithmExist(this.hashAlgorithm))throw new Error("The given hash algorithm is not present in this version of Node: "+this.hashAlgorithm);if(!i.AbstractFilterHash.doesDigestAlgorithmExist(this.digestAlgorithm))throw new Error("The given digest algorithm is not present in this version of Node: "+this.digestAlgorithm)}async testOperation(e,t){return!0}async runOperation(e,t){const r=n.ActorQueryOperation.getSafeBindings(await this.mediatorQueryOperation.mediate({operation:e.input,context:t}));return{type:"bindings",bindingsStream:r.bindingsStream.filter(this.newHashFilter(this.hashAlgorithm,this.digestAlgorithm)),metadata:r.metadata,variables:r.variables,canContainUndefs:r.canContainUndefs}}}t.AbstractBindingsHash=a},function(e,t){ /*! @license MIT ©2015-2019 Ruben Verborgh, Ghent University - imec */ -t.getHashes=()=>["sha1"],t.createHash=()=>{let e;return{update:t=>e?e+=t:e=t,digest:()=>function(e=""){const t=(e+="€").length,s=~~((t/4+2+15)/16),u=new Array(s);for(let r=0,n=0;r["sha1"],t.createHash=()=>{let e;return{update:t=>e?e+=t:e=t,digest:()=>function(e=""){const t=(e+="€").length,o=~~((t/4+2+15)/16),c=new Array(o);for(let r=0,n=0;r>>32-t}function o(e){let t="";for(let r=7;r>=0;r--){t+=(e>>>4*r&15).toString(16)}return t}},function(e,t,r){var n="undefined"!=typeof JSON?JSON:r(451);e.exports=function(e,t){t||(t={}),"function"==typeof t&&(t={cmp:t});var r=t.space||"";"number"==typeof r&&(r=Array(r+1).join(" "));var o,s="boolean"==typeof t.cycles&&t.cycles,u=t.replacer||function(e,t){return t},c=t.cmp&&(o=t.cmp,function(e){return function(t,r){var n={key:t,value:e[t]},i={key:r,value:e[r]};return o(n,i)}}),l=[];return function e(t,o,h,p){var d=r?"\n"+new Array(p+1).join(r):"",f=r?": ":":";if(h&&h.toJSON&&"function"==typeof h.toJSON&&(h=h.toJSON()),void 0!==(h=u.call(t,o,h))){if("object"!=typeof h||null===h)return n.stringify(h);if(i(h)){for(var y=[],m=0;m="0"&&n<="9";)t+=n,u();if("."===n)for(t+=".";u()&&n>="0"&&n<="9";)t+=n;if("e"===n||"E"===n)for(t+=n,u(),"-"!==n&&"+"!==n||(t+=n,u());n>="0"&&n<="9";)t+=n,u();if(e=+t,isFinite(e))return e;s("Bad number")},l=function(){var e,t,r,i="";if('"'===n)for(;u();){if('"'===n)return u(),i;if("\\"===n)if(u(),"u"===n){for(r=0,t=0;t<4&&(e=parseInt(u(),16),isFinite(e));t+=1)r=16*r+e;i+=String.fromCharCode(r)}else{if("string"!=typeof o[n])break;i+=o[n]}else i+=n}s("Bad string")},h=function(){for(;n&&n<=" ";)u()};a=function(){switch(h(),n){case"{":return function(){var e,t={};if("{"===n){if(u("{"),h(),"}"===n)return u("}"),t;for(;n;){if(e=l(),h(),u(":"),Object.hasOwnProperty.call(t,e)&&s('Duplicate key "'+e+'"'),t[e]=a(),h(),"}"===n)return u("}"),t;u(","),h()}}s("Bad object")}();case"[":return function(){var e=[];if("["===n){if(u("["),h(),"]"===n)return u("]"),e;for(;n;){if(e.push(a()),h(),"]"===n)return u("]"),e;u(","),h()}}s("Bad array")}();case'"':return l();case"-":return c();default:return n>="0"&&n<="9"?c():function(){switch(n){case"t":return u("t"),u("r"),u("u"),u("e"),!0;case"f":return u("f"),u("a"),u("l"),u("s"),u("e"),!1;case"n":return u("n"),u("u"),u("l"),u("l"),null}s("Unexpected '"+n+"'")}()}},e.exports=function(e,t){var o;return i=e,r=0,n=" ",o=a(),h(),n&&s("Syntax error"),"function"==typeof t?function e(r,n){var i,a,o=r[n];if(o&&"object"==typeof o)for(i in o)Object.prototype.hasOwnProperty.call(o,i)&&(void 0!==(a=e(o,i))?o[i]=a:delete o[i]);return t.call(r,n,o)}({"":o},""):o}},function(e,t){var r,n,i,a=/[\\\"\x00-\x1f\x7f-\x9f\u00ad\u0600-\u0604\u070f\u17b4\u17b5\u200c-\u200f\u2028-\u202f\u2060-\u206f\ufeff\ufff0-\uffff]/g,o={"\b":"\\b","\t":"\\t","\n":"\\n","\f":"\\f","\r":"\\r",'"':'\\"',"\\":"\\\\"};function s(e){return a.lastIndex=0,a.test(e)?'"'+e.replace(a,(function(e){var t=o[e];return"string"==typeof t?t:"\\u"+("0000"+e.charCodeAt(0).toString(16)).slice(-4)}))+'"':'"'+e+'"'}e.exports=function(e,t,a){var o;if(r="",n="","number"==typeof a)for(o=0;o{try{const t=await h.evaluate(e),r=e.set(c,t);d._push(r)}catch(r){i.isExpressionError(r)?(d._push(e),this.logWarn(t,`Expression error for extend operation with bindings '${JSON.stringify(e)}'`)):d.emit("error",r)}r()}}),f=u.metadata;return{type:"bindings",bindingsStream:d,metadata:f,variables:p}}}t.ActorQueryOperationExtend=o},function(e,t,r){"use strict";Object.defineProperty(t,"__esModule",{value:!0});const n=r(57),i=r(192);t.AsyncEvaluator=class{constructor(e,t={}){this.algExpr=e,this.config=t,this.expr=n.transformAlgebra(e);const r={now:t.now||new Date(Date.now()),baseIRI:t.baseIRI||void 0,exists:t.exists,aggregate:t.aggregate};this.evaluator=new i.AsyncRecursiveEvaluator(r)}async evaluate(e){return(await this.evaluator.evaluate(this.expr,e)).toRDF()}async evaluateAsEBV(e){return(await this.evaluator.evaluate(this.expr,e)).coerceEBV()}async evaluateAsInternal(e){return await this.evaluator.evaluate(this.expr,e)}}},function(e,t,r){"use strict";Object.defineProperty(t,"__esModule",{value:!0});const n=r(24);t.Variable=class{constructor(e){this.expressionType=n.ExpressionType.Variable,this.name=e}}},function(e,t,r){"use strict";Object.defineProperty(t,"__esModule",{value:!0});const n=r(1),i=r(24),a=r(17),o=r(18);class s{constructor(){this.expressionType=i.ExpressionType.Term}str(){throw new o.InvalidArgumentTypes([this],a.RegularOperator.STR)}coerceEBV(){throw new o.EBVCoercionError(this)}}t.Term=s;t.NamedNode=class extends s{constructor(e){super(),this.value=e,this.termType="namedNode"}toRDF(){return n.namedNode(this.value)}str(){return this.value}};class u extends s{constructor(e){super(),this.value=e,this.termType="blankNode",this.value=e}static nextID(){return u._nextID+=1,u.nextID.toString()}toRDF(){return n.blankNode(this.value)}}u._nextID=0,t.BlankNode=u;class c extends s{constructor(e,t,r,n){super(),this.typedValue=e,this.typeURL=t,this.strValue=r,this.language=n,this.termType="literal",this.type=a.type(t.value)}toRDF(){return n.literal(this.strValue||this.str(),this.language||this.typeURL)}str(){return this.strValue||this.typedValue.toString()}}t.Literal=c;class l extends c{coerceEBV(){return!!this.typedValue}toRDF(){const e=super.toRDF();return isFinite(this.typedValue)||(e.value=e.value.replace("Infinity","INF")),e}str(){return this.strValue||l.specificFormatters[this.type](this.typedValue)}}l.specificFormatters={integer:e=>e.toFixed(),float:e=>e.toString(),decimal:e=>e.toString(),double:e=>{const t=e.toExponential(),[r,n]=t.split("e"),i=n.replace(/\+/,"");return`${r.match(/\./)?r:r+".0"}E${i}`}},t.NumericLiteral=l;t.BooleanLiteral=class extends c{constructor(e,t){super(e,a.make(a.TypeURL.XSD_BOOLEAN),t),this.typedValue=e,this.strValue=t}coerceEBV(){return!!this.typedValue}};t.DateTimeLiteral=class extends c{constructor(e,t){super(e,a.make(a.TypeURL.XSD_DATE_TIME),t),this.typedValue=e,this.strValue=t}};t.LangStringLiteral=class extends c{constructor(e,t){super(e,a.make(a.TypeURL.RDF_LANG_STRING),e,t),this.typedValue=e,this.language=t}coerceEBV(){return 0!==this.strValue.length}};t.StringLiteral=class extends c{constructor(e){super(e,a.make(a.TypeURL.XSD_STRING),e),this.typedValue=e}coerceEBV(){return 0!==this.strValue.length}};t.NonLexicalLiteral=class extends c{constructor(e,t,r,n){super(e,t,r,n),this.typedValue=void 0,this.type="nonlexical",this.shouldBeCategory=a.type(t.value)}coerceEBV(){if(a.PrimitiveNumericTypes.contains(this.shouldBeCategory)||"boolean"===this.shouldBeCategory)return!1;throw new o.EBVCoercionError(this)}}},function(e,t,r){"use strict";Object.defineProperty(t,"__esModule",{value:!0});const n=r(24);t.Operator=class{constructor(e,t){this.args=e,this.apply=t,this.expressionType=n.ExpressionType.Operator}}},function(e,t,r){"use strict";Object.defineProperty(t,"__esModule",{value:!0});const n=r(24);t.SpecialOperator=class{constructor(e,t,r){this.args=e,this.applyAsync=t,this.applySync=r,this.expressionType=n.ExpressionType.SpecialOperator}}},function(e,t,r){"use strict";Object.defineProperty(t,"__esModule",{value:!0});const n=r(24);t.Named=class{constructor(e,t,r){this.name=e,this.args=t,this.apply=r,this.expressionType=n.ExpressionType.Named}}},function(e,t,r){"use strict";Object.defineProperty(t,"__esModule",{value:!0});const n=r(24);t.Aggregate=class{constructor(e,t){this.name=e,this.expression=t,this.expressionType=n.ExpressionType.Aggregate}}},function(e,t,r){"use strict";Object.defineProperty(t,"__esModule",{value:!0});const n=r(24);t.Existence=class{constructor(e){this.expression=e,this.expressionType=n.ExpressionType.Existence}}},function(e,t,r){"use strict";Object.defineProperty(t,"__esModule",{value:!0});const n=r(19),i=r(18),a=r(17),o=r(58),s=r(59),u={arity:1,overloads:s.declare().onTerm1(e=>s.string(e.str())).collect()},c={arity:1,overloads:s.declare().onNumeric1(e=>s.number(e.typedValue)).onBoolean1Typed(e=>s.number(e?1:0)).onUnary("string",e=>{const t=o.parseXSDFloat(e.str());if(!t)throw new i.CastError(e,a.TypeURL.XSD_FLOAT);return s.number(t)}).copy({from:["string"],to:["nonlexical"]}).collect()},l={arity:1,overloads:s.declare().onNumeric1(e=>s.number(e.typedValue,a.TypeURL.XSD_DOUBLE)).onBoolean1Typed(e=>s.number(e?1:0,a.TypeURL.XSD_DOUBLE)).onUnary("string",e=>{const t=o.parseXSDFloat(e.str());if(!t)throw new i.CastError(e,a.TypeURL.XSD_DOUBLE);return s.number(t,a.TypeURL.XSD_DOUBLE)}).copy({from:["string"],to:["nonlexical"]}).collect()},h={arity:1,overloads:s.declare().onNumeric1(e=>{const t=o.parseXSDDecimal(e.str());if(!t)throw new i.CastError(e,a.TypeURL.XSD_DECIMAL);return s.number(t,a.TypeURL.XSD_DECIMAL)}).copy({from:["integer"],to:["string"]}).copy({from:["integer"],to:["nonlexical"]}).onBoolean1Typed(e=>s.number(e?1:0,a.TypeURL.XSD_DECIMAL)).collect()},p={arity:1,overloads:s.declare().onBoolean1Typed(e=>s.number(e?1:0,a.TypeURL.XSD_INTEGER)).onNumeric1(e=>{const t=o.parseXSDInteger(e.str());if(!t)throw new i.CastError(e,a.TypeURL.XSD_INTEGER);return s.number(t,a.TypeURL.XSD_INTEGER)}).copy({from:["integer"],to:["string"]}).copy({from:["integer"],to:["nonlexical"]}).collect()},d={arity:1,overloads:s.declare().onUnary("date",e=>e).onUnary("string",e=>{const t=new Date(e.str());if(isNaN(t.getTime()))throw new i.CastError(e,a.TypeURL.XSD_DATE_TIME);return s.dateTime(t,e.str())}).copy({from:["string"],to:["nonlexical"]}).collect()},f={arity:1,overloads:s.declare().onNumeric1(e=>s.bool(e.coerceEBV())).onUnary("boolean",e=>e).onUnary("string",e=>{const t=e.str();if("true"!==t&&"false"!==t)throw new i.CastError(e,a.TypeURL.XSD_BOOLEAN);return s.bool("true"===t)}).copy({from:["string"],to:["nonlexical"]}).collect()},y={[a.TypeURL.XSD_STRING]:u,[a.TypeURL.XSD_FLOAT]:c,[a.TypeURL.XSD_DOUBLE]:l,[a.TypeURL.XSD_DECIMAL]:h,[a.TypeURL.XSD_INTEGER]:p,[a.TypeURL.XSD_DATE_TIME]:d,[a.TypeURL.XSD_DATE]:d,[a.TypeURL.XSD_BOOLEAN]:f};t.namedDefinitions=n.Map(y)},function(e,t,r){"use strict";Object.defineProperty(t,"__esModule",{value:!0});const n=r(1),i=r(465),a=r(474),o=r(80),s=r(19),u=r(39),c=r(17),l=r(18),h=r(58),p=r(475),d=r(17),f=r(57),y=r(59);function m(e,t){const r=e.toRDF(),n=t.toRDF(),i=r.equals(n);if("Literal"===r.termType&&"Literal"===n.termType)throw new l.RDFEqualTypeError([e,t]);return i}const g=(e,t)=>y.bool(p.matches(e,t)),_=(e,t,r)=>y.bool(p.matches(e,t,r));function b(e){return h.parseXSDDateTime(e.str())}const v={"!":{arity:1,overloads:y.declare().onTerm1(e=>y.bool(!e.coerceEBV())).collect()},UPLUS:{arity:1,overloads:y.declare().onNumeric1(e=>y.number(e.typedValue,e.typeURL.value)).collect()},UMINUS:{arity:1,overloads:y.declare().onNumeric1(e=>y.number(-e.typedValue,e.typeURL.value)).collect()},"*":{arity:2,overloads:y.declare().arithmetic((e,t)=>a.Decimal.mul(e,t).toNumber()).collect()},"/":{arity:2,overloads:y.declare().arithmetic((e,t)=>a.Decimal.div(e,t).toNumber()).onBinaryTyped(["integer","integer"],(e,t)=>{if(0===t)throw new l.ExpressionError("Integer division by 0");return y.number(a.Decimal.div(e,t).toNumber(),d.TypeURL.XSD_DECIMAL)}).collect()},"+":{arity:2,overloads:y.declare().arithmetic((e,t)=>a.Decimal.add(e,t).toNumber()).collect()},"-":{arity:2,overloads:y.declare().arithmetic((e,t)=>a.Decimal.sub(e,t).toNumber()).collect()},"=":{arity:2,overloads:y.declare().numberTest((e,t)=>e===t).stringTest((e,t)=>0===e.localeCompare(t)).booleanTest((e,t)=>e===t).dateTimeTest((e,t)=>e.getTime()===t.getTime()).set(["term","term"],([e,t])=>y.bool(m(e,t))).collect()},"!=":{arity:2,overloads:y.declare().numberTest((e,t)=>e!==t).stringTest((e,t)=>0!==e.localeCompare(t)).booleanTest((e,t)=>e!==t).dateTimeTest((e,t)=>e.getTime()!==t.getTime()).set(["term","term"],([e,t])=>y.bool(!m(e,t))).collect()},"<":{arity:2,overloads:y.declare().numberTest((e,t)=>e-1===e.localeCompare(t)).booleanTest((e,t)=>ee.getTime()":{arity:2,overloads:y.declare().numberTest((e,t)=>e>t).stringTest((e,t)=>1===e.localeCompare(t)).booleanTest((e,t)=>e>t).dateTimeTest((e,t)=>e.getTime()>t.getTime()).collect()},"<=":{arity:2,overloads:y.declare().numberTest((e,t)=>e<=t).stringTest((e,t)=>1!==e.localeCompare(t)).booleanTest((e,t)=>e<=t).dateTimeTest((e,t)=>e.getTime()<=t.getTime()).collect()},">=":{arity:2,overloads:y.declare().numberTest((e,t)=>e>=t).stringTest((e,t)=>-1!==e.localeCompare(t)).booleanTest((e,t)=>e>=t).dateTimeTest((e,t)=>e.getTime()>=t.getTime()).collect()},isiri:{arity:1,overloads:y.declare().onTerm1(e=>y.bool("namedNode"===e.termType)).collect()},isblank:{arity:1,overloads:y.declare().onTerm1(e=>y.bool("blankNode"===e.termType)).collect()},isliteral:{arity:1,overloads:y.declare().onTerm1(e=>y.bool("literal"===e.termType)).collect()},isnumeric:{arity:1,overloads:y.declare().onNumeric1(e=>y.bool(!0)).onTerm1(e=>y.bool(!1)).collect()},str:{arity:1,overloads:y.declare().onTerm1(e=>y.string(e.str())).collect()},lang:{arity:1,overloads:y.declare().onLiteral1(e=>y.string(e.language||"")).collect()},datatype:{arity:1,overloads:y.declare().onLiteral1(e=>new u.NamedNode(e.typeURL.value)).collect()},strdt:{arity:2,overloads:y.declare().onBinary(["string","namedNode"],(e,t)=>{const r=n.literal(e.typedValue,n.namedNode(t.value));return f.transformLiteral(r)}).collect()},strlang:{arity:2,overloads:y.declare().onBinaryTyped(["string","string"],(e,t)=>new u.LangStringLiteral(e,t.toLowerCase())).collect()},uuid:{arity:0,overloads:y.declare().set([],()=>new u.NamedNode("urn:uuid:"+o.v4())).collect()},struuid:{arity:0,overloads:y.declare().set([],()=>y.string(o.v4())).collect()},strlen:{arity:1,overloads:y.declare().onStringly1(e=>y.number(e.typedValue.length,d.TypeURL.XSD_INTEGER)).collect()},substr:{arity:[2,3],overloads:y.declare().onBinaryTyped(["string","integer"],(e,t)=>y.string(e.substr(t-1))).onBinary(["langString","integer"],(e,t)=>{const r=e.typedValue.substr(t.typedValue-1);return y.langString(r,e.language)}).onTernaryTyped(["string","integer","integer"],(e,t,r)=>y.string(e.substr(t-1,r))).onTernary(["langString","integer","integer"],(e,t,r)=>{const n=e.typedValue.substr(t.typedValue-1,r.typedValue);return y.langString(n,e.language)}).collect()},ucase:{arity:1,overloads:y.declare().onString1Typed(e=>y.string(e.toUpperCase())).onLangString1(e=>y.langString(e.typedValue.toUpperCase(),e.language)).collect()},lcase:{arity:1,overloads:y.declare().onString1Typed(e=>y.string(e.toLowerCase())).onLangString1(e=>y.langString(e.typedValue.toLowerCase(),e.language)).collect()},strstarts:{arity:2,overloads:y.declare().onBinaryTyped(["string","string"],(e,t)=>y.bool(e.startsWith(t))).onBinaryTyped(["langString","string"],(e,t)=>y.bool(e.includes(t))).onBinary(["langString","langString"],(e,t)=>{if(e.language!==t.language)throw new l.IncompatibleLanguageOperation(e,t);return y.bool(e.typedValue.startsWith(t.typedValue))}).collect()},strends:{arity:2,overloads:y.declare().onBinaryTyped(["string","string"],(e,t)=>y.bool(e.endsWith(t))).onBinaryTyped(["langString","string"],(e,t)=>y.bool(e.includes(t))).onBinary(["langString","langString"],(e,t)=>{if(e.language!==t.language)throw new l.IncompatibleLanguageOperation(e,t);return y.bool(e.typedValue.endsWith(t.typedValue))}).collect()},contains:{arity:2,overloads:y.declare().onBinaryTyped(["string","string"],(e,t)=>y.bool(e.includes(t))).onBinaryTyped(["langString","string"],(e,t)=>y.bool(e.includes(t))).onBinary(["langString","langString"],(e,t)=>{if(e.language!==t.language)throw new l.IncompatibleLanguageOperation(e,t);return y.bool(e.typedValue.includes(t.typedValue))}).collect()},strbefore:{arity:2,overloads:y.declare().onBinaryTyped(["string","string"],(e,t)=>y.string(e.substr(0,e.indexOf(t)))).onBinary(["langString","string"],(e,t)=>{const[r,n]=[e.typedValue,t.typedValue],i=e.typedValue.substr(0,r.indexOf(n));return i||!n?y.langString(i,e.language):y.string(i)}).onBinary(["langString","langString"],(e,t)=>{if(e.language!==t.language)throw new l.IncompatibleLanguageOperation(e,t);const[r,n]=[e.typedValue,t.typedValue],i=e.typedValue.substr(0,r.indexOf(n));return i||!n?y.langString(i,e.language):y.string(i)}).collect()},strafter:{arity:2,overloads:y.declare().onBinaryTyped(["string","string"],(e,t)=>y.string(e.substr(e.indexOf(t)).substr(t.length))).onBinary(["langString","string"],(e,t)=>{const[r,n]=[e.typedValue,t.typedValue],i=r.substr(r.indexOf(n)).substr(n.length);return i||!n?y.langString(i,e.language):y.string(i)}).onBinary(["langString","langString"],(e,t)=>{if(e.language!==t.language)throw new l.IncompatibleLanguageOperation(e,t);const[r,n]=[e.typedValue,t.typedValue],i=r.substr(r.indexOf(n)).substr(n.length);return i||!n?y.langString(i,e.language):y.string(i)}).collect()},encode_for_uri:{arity:1,overloads:y.declare().onStringly1Typed(e=>y.string(encodeURI(e))).collect()},langmatches:{arity:2,overloads:y.declare().onBinaryTyped(["string","string"],(e,t)=>y.bool(p.langMatches(e,t))).collect()},regex:{arity:[2,3],overloads:y.declare().onBinaryTyped(["string","string"],g).onBinaryTyped(["langString","string"],g).onTernaryTyped(["string","string","string"],_).onTernaryTyped(["langString","string","string"],_).collect()},replace:{arity:[3,4],overloads:y.declare().onTernaryTyped(["string","string","string"],(e,t,r)=>y.string(p.replace(e,t,r))).set(["langString","string","string"],([e,t,r])=>{const n=p.replace(e.typedValue,t.typedValue,r.typedValue);return y.langString(n,e.language)}).onQuaternaryTyped(["string","string","string","string"],(e,t,r,n)=>y.string(p.replace(e,t,r,n))).set(["langString","string","string","string"],([e,t,r,n])=>{const i=p.replace(e.typedValue,t.typedValue,r.typedValue,n.typedValue);return y.langString(i,e.language)}).collect()},abs:{arity:1,overloads:y.declare().onNumeric1(e=>y.number(Math.abs(e.typedValue),e.typeURL.value)).collect()},round:{arity:1,overloads:y.declare().onNumeric1(e=>y.number(Math.round(e.typedValue),e.typeURL.value)).collect()},ceil:{arity:1,overloads:y.declare().onNumeric1(e=>y.number(Math.ceil(e.typedValue),e.typeURL.value)).collect()},floor:{arity:1,overloads:y.declare().onNumeric1(e=>y.number(Math.floor(e.typedValue),e.typeURL.value)).collect()},rand:{arity:0,overloads:y.declare().set([],()=>y.number(Math.random(),d.TypeURL.XSD_DOUBLE)).collect()},year:{arity:1,overloads:y.declare().onDateTime1(e=>y.number(Number(b(e).year),d.TypeURL.XSD_INTEGER)).collect()},month:{arity:1,overloads:y.declare().onDateTime1(e=>y.number(Number(b(e).month),d.TypeURL.XSD_INTEGER)).collect()},day:{arity:1,overloads:y.declare().onDateTime1(e=>y.number(Number(b(e).day),d.TypeURL.XSD_INTEGER)).collect()},hours:{arity:1,overloads:y.declare().onDateTime1(e=>y.number(Number(b(e).hours),d.TypeURL.XSD_INTEGER)).collect()},minutes:{arity:1,overloads:y.declare().onDateTime1(e=>y.number(Number(b(e).minutes),d.TypeURL.XSD_INTEGER)).collect()},seconds:{arity:1,overloads:y.declare().onDateTime1(e=>y.number(Number(b(e).seconds),d.TypeURL.XSD_DECIMAL)).collect()},timezone:{arity:1,overloads:y.declare().onDateTime1(e=>{const t=p.formatDayTimeDuration(b(e).timezone);if(!t)throw new l.InvalidTimezoneCall(e.strValue);return new u.Literal(t,c.make(d.TypeURL.XSD_DAYTIME_DURATION),t)}).collect()},tz:{arity:1,overloads:y.declare().onDateTime1(e=>y.string(b(e).timezone)).collect()},md5:{arity:1,overloads:y.declare().onString1Typed(e=>y.string(i("md5").update(e).digest("hex"))).collect()},sha1:{arity:1,overloads:y.declare().onString1Typed(e=>y.string(i("sha1").update(e).digest("hex"))).collect()},sha256:{arity:1,overloads:y.declare().onString1Typed(e=>y.string(i("sha256").update(e).digest("hex"))).collect()},sha384:{arity:1,overloads:y.declare().onString1Typed(e=>y.string(i("sha384").update(e).digest("hex"))).collect()},sha512:{arity:1,overloads:y.declare().onString1Typed(e=>y.string(i("sha512").update(e).digest("hex"))).collect()}};t.definitions=s.Map(v)},function(e,t,r){"use strict";var n=r(10),i=r(466),a=r(467),o=r(468),s=r(473);function u(e){s.call(this,"digest"),this._hash=e}n(u,s),u.prototype._update=function(e){this._hash.update(e)},u.prototype._final=function(){return this._hash.digest()},e.exports=function(e){return"md5"===(e=e.toLowerCase())?new i:"rmd160"===e||"ripemd160"===e?new a:new u(o(e))}},function(e,t,r){"use strict";var n=r(10),i=r(189),a=r(16).Buffer,o=new Array(16);function s(){i.call(this,64),this._a=1732584193,this._b=4023233417,this._c=2562383102,this._d=271733878}function u(e,t){return e<>>32-t}function c(e,t,r,n,i,a,o){return u(e+(t&r|~t&n)+i+a|0,o)+t|0}function l(e,t,r,n,i,a,o){return u(e+(t&n|r&~n)+i+a|0,o)+t|0}function h(e,t,r,n,i,a,o){return u(e+(t^r^n)+i+a|0,o)+t|0}function p(e,t,r,n,i,a,o){return u(e+(r^(t|~n))+i+a|0,o)+t|0}n(s,i),s.prototype._update=function(){for(var e=o,t=0;t<16;++t)e[t]=this._block.readInt32LE(4*t);var r=this._a,n=this._b,i=this._c,a=this._d;r=c(r,n,i,a,e[0],3614090360,7),a=c(a,r,n,i,e[1],3905402710,12),i=c(i,a,r,n,e[2],606105819,17),n=c(n,i,a,r,e[3],3250441966,22),r=c(r,n,i,a,e[4],4118548399,7),a=c(a,r,n,i,e[5],1200080426,12),i=c(i,a,r,n,e[6],2821735955,17),n=c(n,i,a,r,e[7],4249261313,22),r=c(r,n,i,a,e[8],1770035416,7),a=c(a,r,n,i,e[9],2336552879,12),i=c(i,a,r,n,e[10],4294925233,17),n=c(n,i,a,r,e[11],2304563134,22),r=c(r,n,i,a,e[12],1804603682,7),a=c(a,r,n,i,e[13],4254626195,12),i=c(i,a,r,n,e[14],2792965006,17),r=l(r,n=c(n,i,a,r,e[15],1236535329,22),i,a,e[1],4129170786,5),a=l(a,r,n,i,e[6],3225465664,9),i=l(i,a,r,n,e[11],643717713,14),n=l(n,i,a,r,e[0],3921069994,20),r=l(r,n,i,a,e[5],3593408605,5),a=l(a,r,n,i,e[10],38016083,9),i=l(i,a,r,n,e[15],3634488961,14),n=l(n,i,a,r,e[4],3889429448,20),r=l(r,n,i,a,e[9],568446438,5),a=l(a,r,n,i,e[14],3275163606,9),i=l(i,a,r,n,e[3],4107603335,14),n=l(n,i,a,r,e[8],1163531501,20),r=l(r,n,i,a,e[13],2850285829,5),a=l(a,r,n,i,e[2],4243563512,9),i=l(i,a,r,n,e[7],1735328473,14),r=h(r,n=l(n,i,a,r,e[12],2368359562,20),i,a,e[5],4294588738,4),a=h(a,r,n,i,e[8],2272392833,11),i=h(i,a,r,n,e[11],1839030562,16),n=h(n,i,a,r,e[14],4259657740,23),r=h(r,n,i,a,e[1],2763975236,4),a=h(a,r,n,i,e[4],1272893353,11),i=h(i,a,r,n,e[7],4139469664,16),n=h(n,i,a,r,e[10],3200236656,23),r=h(r,n,i,a,e[13],681279174,4),a=h(a,r,n,i,e[0],3936430074,11),i=h(i,a,r,n,e[3],3572445317,16),n=h(n,i,a,r,e[6],76029189,23),r=h(r,n,i,a,e[9],3654602809,4),a=h(a,r,n,i,e[12],3873151461,11),i=h(i,a,r,n,e[15],530742520,16),r=p(r,n=h(n,i,a,r,e[2],3299628645,23),i,a,e[0],4096336452,6),a=p(a,r,n,i,e[7],1126891415,10),i=p(i,a,r,n,e[14],2878612391,15),n=p(n,i,a,r,e[5],4237533241,21),r=p(r,n,i,a,e[12],1700485571,6),a=p(a,r,n,i,e[3],2399980690,10),i=p(i,a,r,n,e[10],4293915773,15),n=p(n,i,a,r,e[1],2240044497,21),r=p(r,n,i,a,e[8],1873313359,6),a=p(a,r,n,i,e[15],4264355552,10),i=p(i,a,r,n,e[6],2734768916,15),n=p(n,i,a,r,e[13],1309151649,21),r=p(r,n,i,a,e[4],4149444226,6),a=p(a,r,n,i,e[11],3174756917,10),i=p(i,a,r,n,e[2],718787259,15),n=p(n,i,a,r,e[9],3951481745,21),this._a=this._a+r|0,this._b=this._b+n|0,this._c=this._c+i|0,this._d=this._d+a|0},s.prototype._digest=function(){this._block[this._blockOffset++]=128,this._blockOffset>56&&(this._block.fill(0,this._blockOffset,64),this._update(),this._blockOffset=0),this._block.fill(0,this._blockOffset,56),this._block.writeUInt32LE(this._length[0],56),this._block.writeUInt32LE(this._length[1],60),this._update();var e=a.allocUnsafe(16);return e.writeInt32LE(this._a,0),e.writeInt32LE(this._b,4),e.writeInt32LE(this._c,8),e.writeInt32LE(this._d,12),e},e.exports=s},function(e,t,r){"use strict";var n=r(15).Buffer,i=r(10),a=r(189),o=new Array(16),s=[0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,7,4,13,1,10,6,15,3,12,0,9,5,2,14,11,8,3,10,14,4,9,15,8,1,2,7,0,6,13,11,5,12,1,9,11,10,0,8,12,4,13,3,7,15,14,5,6,2,4,0,5,9,7,12,2,10,14,1,3,8,11,6,15,13],u=[5,14,7,0,9,2,11,4,13,6,15,8,1,10,3,12,6,11,3,7,0,13,5,10,14,15,8,12,4,9,1,2,15,5,1,3,7,14,6,9,11,8,12,2,10,0,4,13,8,6,4,1,3,11,15,0,5,12,2,13,9,7,10,14,12,15,10,4,1,5,8,7,6,2,13,14,0,3,9,11],c=[11,14,15,12,5,8,7,9,11,13,14,15,6,7,9,8,7,6,8,13,11,9,7,15,7,12,15,9,11,7,13,12,11,13,6,7,14,9,13,15,14,8,13,6,5,12,7,5,11,12,14,15,14,15,9,8,9,14,5,6,8,6,5,12,9,15,5,11,6,8,13,12,5,12,13,14,11,8,5,6],l=[8,9,9,11,13,15,15,5,7,7,8,11,14,14,12,6,9,13,15,7,12,8,9,11,7,7,12,7,6,15,13,11,9,7,15,11,8,6,6,14,12,13,5,14,13,13,7,5,15,5,8,11,14,14,6,14,6,9,12,9,12,5,15,8,8,5,12,9,12,5,14,6,8,13,6,5,15,13,11,11],h=[0,1518500249,1859775393,2400959708,2840853838],p=[1352829926,1548603684,1836072691,2053994217,0];function d(){a.call(this,64),this._a=1732584193,this._b=4023233417,this._c=2562383102,this._d=271733878,this._e=3285377520}function f(e,t){return e<>>32-t}function y(e,t,r,n,i,a,o,s){return f(e+(t^r^n)+a+o|0,s)+i|0}function m(e,t,r,n,i,a,o,s){return f(e+(t&r|~t&n)+a+o|0,s)+i|0}function g(e,t,r,n,i,a,o,s){return f(e+((t|~r)^n)+a+o|0,s)+i|0}function _(e,t,r,n,i,a,o,s){return f(e+(t&n|r&~n)+a+o|0,s)+i|0}function b(e,t,r,n,i,a,o,s){return f(e+(t^(r|~n))+a+o|0,s)+i|0}i(d,a),d.prototype._update=function(){for(var e=o,t=0;t<16;++t)e[t]=this._block.readInt32LE(4*t);for(var r=0|this._a,n=0|this._b,i=0|this._c,a=0|this._d,d=0|this._e,v=0|this._a,w=0|this._b,E=0|this._c,S=0|this._d,T=0|this._e,x=0;x<80;x+=1){var O,R;x<16?(O=y(r,n,i,a,d,e[s[x]],h[0],c[x]),R=b(v,w,E,S,T,e[u[x]],p[0],l[x])):x<32?(O=m(r,n,i,a,d,e[s[x]],h[1],c[x]),R=_(v,w,E,S,T,e[u[x]],p[1],l[x])):x<48?(O=g(r,n,i,a,d,e[s[x]],h[2],c[x]),R=g(v,w,E,S,T,e[u[x]],p[2],l[x])):x<64?(O=_(r,n,i,a,d,e[s[x]],h[3],c[x]),R=m(v,w,E,S,T,e[u[x]],p[3],l[x])):(O=b(r,n,i,a,d,e[s[x]],h[4],c[x]),R=y(v,w,E,S,T,e[u[x]],p[4],l[x])),r=d,d=a,a=f(i,10),i=n,n=O,v=T,T=S,S=f(E,10),E=w,w=R}var A=this._b+i+S|0;this._b=this._c+a+T|0,this._c=this._d+d+v|0,this._d=this._e+r+w|0,this._e=this._a+n+E|0,this._a=A},d.prototype._digest=function(){this._block[this._blockOffset++]=128,this._blockOffset>56&&(this._block.fill(0,this._blockOffset,64),this._update(),this._blockOffset=0),this._block.fill(0,this._blockOffset,56),this._block.writeUInt32LE(this._length[0],56),this._block.writeUInt32LE(this._length[1],60),this._update();var e=n.alloc?n.alloc(20):new n(20);return e.writeInt32LE(this._a,0),e.writeInt32LE(this._b,4),e.writeInt32LE(this._c,8),e.writeInt32LE(this._d,12),e.writeInt32LE(this._e,16),e},e.exports=d},function(e,t,r){(t=e.exports=function(e){e=e.toLowerCase();var r=t[e];if(!r)throw new Error(e+" is not supported (we accept pull requests)");return new r}).sha=r(469),t.sha1=r(470),t.sha224=r(471),t.sha256=r(190),t.sha384=r(472),t.sha512=r(191)},function(e,t,r){var n=r(10),i=r(40),a=r(16).Buffer,o=[1518500249,1859775393,-1894007588,-899497514],s=new Array(80);function u(){this.init(),this._w=s,i.call(this,64,56)}function c(e){return e<<30|e>>>2}function l(e,t,r,n){return 0===e?t&r|~t&n:2===e?t&r|t&n|r&n:t^r^n}n(u,i),u.prototype.init=function(){return this._a=1732584193,this._b=4023233417,this._c=2562383102,this._d=271733878,this._e=3285377520,this},u.prototype._update=function(e){for(var t,r=this._w,n=0|this._a,i=0|this._b,a=0|this._c,s=0|this._d,u=0|this._e,h=0;h<16;++h)r[h]=e.readInt32BE(4*h);for(;h<80;++h)r[h]=r[h-3]^r[h-8]^r[h-14]^r[h-16];for(var p=0;p<80;++p){var d=~~(p/20),f=0|((t=n)<<5|t>>>27)+l(d,i,a,s)+u+r[p]+o[d];u=s,s=a,a=c(i),i=n,n=f}this._a=n+this._a|0,this._b=i+this._b|0,this._c=a+this._c|0,this._d=s+this._d|0,this._e=u+this._e|0},u.prototype._hash=function(){var e=a.allocUnsafe(20);return e.writeInt32BE(0|this._a,0),e.writeInt32BE(0|this._b,4),e.writeInt32BE(0|this._c,8),e.writeInt32BE(0|this._d,12),e.writeInt32BE(0|this._e,16),e},e.exports=u},function(e,t,r){var n=r(10),i=r(40),a=r(16).Buffer,o=[1518500249,1859775393,-1894007588,-899497514],s=new Array(80);function u(){this.init(),this._w=s,i.call(this,64,56)}function c(e){return e<<5|e>>>27}function l(e){return e<<30|e>>>2}function h(e,t,r,n){return 0===e?t&r|~t&n:2===e?t&r|t&n|r&n:t^r^n}n(u,i),u.prototype.init=function(){return this._a=1732584193,this._b=4023233417,this._c=2562383102,this._d=271733878,this._e=3285377520,this},u.prototype._update=function(e){for(var t,r=this._w,n=0|this._a,i=0|this._b,a=0|this._c,s=0|this._d,u=0|this._e,p=0;p<16;++p)r[p]=e.readInt32BE(4*p);for(;p<80;++p)r[p]=(t=r[p-3]^r[p-8]^r[p-14]^r[p-16])<<1|t>>>31;for(var d=0;d<80;++d){var f=~~(d/20),y=c(n)+h(f,i,a,s)+u+r[d]+o[f]|0;u=s,s=a,a=l(i),i=n,n=y}this._a=n+this._a|0,this._b=i+this._b|0,this._c=a+this._c|0,this._d=s+this._d|0,this._e=u+this._e|0},u.prototype._hash=function(){var e=a.allocUnsafe(20);return e.writeInt32BE(0|this._a,0),e.writeInt32BE(0|this._b,4),e.writeInt32BE(0|this._c,8),e.writeInt32BE(0|this._d,12),e.writeInt32BE(0|this._e,16),e},e.exports=u},function(e,t,r){var n=r(10),i=r(190),a=r(40),o=r(16).Buffer,s=new Array(64);function u(){this.init(),this._w=s,a.call(this,64,56)}n(u,i),u.prototype.init=function(){return this._a=3238371032,this._b=914150663,this._c=812702999,this._d=4144912697,this._e=4290775857,this._f=1750603025,this._g=1694076839,this._h=3204075428,this},u.prototype._hash=function(){var e=o.allocUnsafe(28);return e.writeInt32BE(this._a,0),e.writeInt32BE(this._b,4),e.writeInt32BE(this._c,8),e.writeInt32BE(this._d,12),e.writeInt32BE(this._e,16),e.writeInt32BE(this._f,20),e.writeInt32BE(this._g,24),e},e.exports=u},function(e,t,r){var n=r(10),i=r(191),a=r(40),o=r(16).Buffer,s=new Array(160);function u(){this.init(),this._w=s,a.call(this,128,112)}n(u,i),u.prototype.init=function(){return this._ah=3418070365,this._bh=1654270250,this._ch=2438529370,this._dh=355462360,this._eh=1731405415,this._fh=2394180231,this._gh=3675008525,this._hh=1203062813,this._al=3238371032,this._bl=914150663,this._cl=812702999,this._dl=4144912697,this._el=4290775857,this._fl=1750603025,this._gl=1694076839,this._hl=3204075428,this},u.prototype._hash=function(){var e=o.allocUnsafe(48);function t(t,r,n){e.writeInt32BE(t,n),e.writeInt32BE(r,n+4)}return t(this._ah,this._al,0),t(this._bh,this._bl,8),t(this._ch,this._cl,16),t(this._dh,this._dl,24),t(this._eh,this._el,32),t(this._fh,this._fl,40),e},e.exports=u},function(e,t,r){var n=r(16).Buffer,i=r(2).Transform,a=r(50).StringDecoder;function o(e){i.call(this),this.hashMode="string"==typeof e,this.hashMode?this[e]=this._finalOrDigest:this.final=this._finalOrDigest,this._final&&(this.__final=this._final,this._final=null),this._decoder=null,this._encoding=null}r(10)(o,i),o.prototype.update=function(e,t,r){"string"==typeof e&&(e=n.from(e,t));var i=this._update(e);return this.hashMode?this:(r&&(i=this._toString(i,r)),i)},o.prototype.setAutoPadding=function(){},o.prototype.getAuthTag=function(){throw new Error("trying to get auth tag in unsupported state")},o.prototype.setAuthTag=function(){throw new Error("trying to set auth tag in unsupported state")},o.prototype.setAAD=function(){throw new Error("trying to set aad in unsupported state")},o.prototype._transform=function(e,t,r){var n;try{this.hashMode?this._update(e):this.push(this._update(e))}catch(e){n=e}finally{r(n)}},o.prototype._flush=function(e){var t;try{this.push(this.__final())}catch(e){t=e}e(t)},o.prototype._finalOrDigest=function(e){var t=this.__final()||n.alloc(0);return e&&(t=this._toString(t,e,!0)),t},o.prototype._toString=function(e,t,r){if(this._decoder||(this._decoder=new a(t),this._encoding=t),this._encoding!==t)throw new Error("can't switch encodings");var n=this._decoder.write(e);return r&&(n+=this._decoder.end()),n},e.exports=o},function(e,t,r){var n;!function(i){"use strict";var a,o,s,u=9e15,c="0123456789abcdef",l="2.3025850929940456840179914546843642076011014886287729760333279009675726096773524802359972050895982983419677840422862486334095254650828067566662873690987816894829072083255546808437998948262331985283935053089653777326288461633662222876982198867465436674744042432743651550489343149393914796194044002221051017141748003688084012647080685567743216228355220114804663715659121373450747856947683463616792101806445070648000277502684916746550586856935673420670581136429224554405758925724208241314695689016758940256776311356919292033376587141660230105703089634572075440370847469940168269282808481184289314848524948644871927809676271275775397027668605952496716674183485704422507197965004714951050492214776567636938662976979522110718264549734772662425709429322582798502585509785265383207606726317164309505995087807523710333101197857547331541421808427543863591778117054309827482385045648019095610299291824318237525357709750539565187697510374970888692180205189339507238539205144634197265287286965110862571492198849978748873771345686209167058",h="3.1415926535897932384626433832795028841971693993751058209749445923078164062862089986280348253421170679821480865132823066470938446095505822317253594081284811174502841027019385211055596446229489549303819644288109756659334461284756482337867831652712019091456485669234603486104543266482133936072602491412737245870066063155881748815209209628292540917153643678925903600113305305488204665213841469519415116094330572703657595919530921861173819326117931051185480744623799627495673518857527248912279381830119491298336733624406566430860213949463952247371907021798609437027705392171762931767523846748184676694051320005681271452635608277857713427577896091736371787214684409012249534301465495853710507922796892589235420199561121290219608640344181598136297747713099605187072113499999983729780499510597317328160963185950244594553469083026425223082533446850352619311881710100031378387528865875332083814206171776691473035982534904287554687311595628638823537875937519577818577805321712268066130019278766111959092164201989380952572010654858632789",p={precision:20,rounding:4,modulo:1,toExpNeg:-7,toExpPos:21,minE:-u,maxE:u,crypto:!1},d=!0,f="[DecimalError] Invalid argument: ",y=Math.floor,m=Math.pow,g=/^0b([01]+(\.[01]*)?|\.[01]+)(p[+-]?\d+)?$/i,_=/^0x([0-9a-f]+(\.[0-9a-f]*)?|\.[0-9a-f]+)(p[+-]?\d+)?$/i,b=/^0o([0-7]+(\.[0-7]*)?|\.[0-7]+)(p[+-]?\d+)?$/i,v=/^(\d+(\.\d*)?|\.\d+)(e[+-]?\d+)?$/i,w=1e7,E=l.length-1,S=h.length-1,T={name:"[object Decimal]"};function x(e){var t,r,n,i=e.length-1,a="",o=e[0];if(i>0){for(a+=o,t=1;tr)throw Error(f+e)}function R(e,t,r,n){var i,a,o,s;for(a=e[0];a>=10;a/=10)--t;return--t<0?(t+=7,i=0):(i=Math.ceil((t+1)/7),t%=7),a=m(10,7-t),s=e[i]%a|0,null==n?t<3?(0==t?s=s/100|0:1==t&&(s=s/10|0),o=r<4&&99999==s||r>3&&49999==s||5e4==s||0==s):o=(r<4&&s+1==a||r>3&&s+1==a/2)&&(e[i+1]/a/100|0)==m(10,t-2)-1||(s==a/2||0==s)&&0==(e[i+1]/a/100|0):t<4?(0==t?s=s/1e3|0:1==t?s=s/100|0:2==t&&(s=s/10|0),o=(n||r<4)&&9999==s||!n&&r>3&&4999==s):o=((n||r<4)&&s+1==a||!n&&r>3&&s+1==a/2)&&(e[i+1]/a/1e3|0)==m(10,t-3)-1,o}function A(e,t,r){for(var n,i,a=[0],o=0,s=e.length;or-1&&(void 0===a[n+1]&&(a[n+1]=0),a[n+1]+=a[n]/r|0,a[n]%=r)}return a.reverse()}T.absoluteValue=T.abs=function(){var e=new this.constructor(this);return e.s<0&&(e.s=1),P(e)},T.ceil=function(){return P(new this.constructor(this),this.e+1,2)},T.comparedTo=T.cmp=function(e){var t,r,n,i,a=this,o=a.d,s=(e=new a.constructor(e)).d,u=a.s,c=e.s;if(!o||!s)return u&&c?u!==c?u:o===s?0:!o^u<0?1:-1:NaN;if(!o[0]||!s[0])return o[0]?u:s[0]?-c:0;if(u!==c)return u;if(a.e!==e.e)return a.e>e.e^u<0?1:-1;for(t=0,r=(n=o.length)<(i=s.length)?n:i;ts[t]^u<0?1:-1;return n===i?0:n>i^u<0?1:-1},T.cosine=T.cos=function(){var e,t,r=this,n=r.constructor;return r.d?r.d[0]?(e=n.precision,t=n.rounding,n.precision=e+Math.max(r.e,r.sd())+7,n.rounding=1,r=function(e,t){var r,n,i=t.d.length;i<32?(r=Math.ceil(i/3),n=(1/Q(4,r)).toString()):(r=16,n="2.3283064365386962890625e-10");e.precision+=r,t=z(e,1,t.times(n),new e(1));for(var a=r;a--;){var o=t.times(t);t=o.times(o).minus(o).times(8).plus(1)}return e.precision-=r,t}(n,$(n,r)),n.precision=e,n.rounding=t,P(2==s||3==s?r.neg():r,e,t,!0)):new n(1):new n(NaN)},T.cubeRoot=T.cbrt=function(){var e,t,r,n,i,a,o,s,u,c,l=this,h=l.constructor;if(!l.isFinite()||l.isZero())return new h(l);for(d=!1,(a=l.s*m(l.s*l,1/3))&&Math.abs(a)!=1/0?n=new h(a.toString()):(r=x(l.d),(a=((e=l.e)-r.length+1)%3)&&(r+=1==a||-2==a?"0":"00"),a=m(r,1/3),e=y((e+1)/3)-(e%3==(e<0?-1:2)),(n=new h(r=a==1/0?"5e"+e:(r=a.toExponential()).slice(0,r.indexOf("e")+1)+e)).s=l.s),o=(e=h.precision)+3;;)if(c=(u=(s=n).times(s).times(s)).plus(l),n=I(c.plus(l).times(s),c.plus(u),o+2,1),x(s.d).slice(0,o)===(r=x(n.d)).slice(0,o)){if("9999"!=(r=r.slice(o-3,o+1))&&(i||"4999"!=r)){+r&&(+r.slice(1)||"5"!=r.charAt(0))||(P(n,e+1,1),t=!n.times(n).times(n).eq(l));break}if(!i&&(P(s,e+1,0),s.times(s).times(s).eq(l))){n=s;break}o+=4,i=1}return d=!0,P(n,e,h.rounding,t)},T.decimalPlaces=T.dp=function(){var e,t=this.d,r=NaN;if(t){if(r=7*((e=t.length-1)-y(this.e/7)),e=t[e])for(;e%10==0;e/=10)r--;r<0&&(r=0)}return r},T.dividedBy=T.div=function(e){return I(this,new this.constructor(e))},T.dividedToIntegerBy=T.divToInt=function(e){var t=this.constructor;return P(I(this,new t(e),0,1,1),t.precision,t.rounding)},T.equals=T.eq=function(e){return 0===this.cmp(e)},T.floor=function(){return P(new this.constructor(this),this.e+1,3)},T.greaterThan=T.gt=function(e){return this.cmp(e)>0},T.greaterThanOrEqualTo=T.gte=function(e){var t=this.cmp(e);return 1==t||0===t},T.hyperbolicCosine=T.cosh=function(){var e,t,r,n,i,a=this,o=a.constructor,s=new o(1);if(!a.isFinite())return new o(a.s?1/0:NaN);if(a.isZero())return s;r=o.precision,n=o.rounding,o.precision=r+Math.max(a.e,a.sd())+4,o.rounding=1,(i=a.d.length)<32?t=(1/Q(4,e=Math.ceil(i/3))).toString():(e=16,t="2.3283064365386962890625e-10"),a=z(o,1,a.times(t),new o(1),!0);for(var u,c=e,l=new o(8);c--;)u=a.times(a),a=s.minus(u.times(l.minus(u.times(l))));return P(a,o.precision=r,o.rounding=n,!0)},T.hyperbolicSine=T.sinh=function(){var e,t,r,n,i=this,a=i.constructor;if(!i.isFinite()||i.isZero())return new a(i);if(t=a.precision,r=a.rounding,a.precision=t+Math.max(i.e,i.sd())+4,a.rounding=1,(n=i.d.length)<3)i=z(a,2,i,i,!0);else{e=(e=1.4*Math.sqrt(n))>16?16:0|e,i=z(a,2,i=i.times(1/Q(5,e)),i,!0);for(var o,s=new a(5),u=new a(16),c=new a(20);e--;)o=i.times(i),i=i.times(s.plus(o.times(u.times(o).plus(c))))}return a.precision=t,a.rounding=r,P(i,t,r,!0)},T.hyperbolicTangent=T.tanh=function(){var e,t,r=this,n=r.constructor;return r.isFinite()?r.isZero()?new n(r):(e=n.precision,t=n.rounding,n.precision=e+7,n.rounding=1,I(r.sinh(),r.cosh(),n.precision=e,n.rounding=t)):new n(r.s)},T.inverseCosine=T.acos=function(){var e,t=this,r=t.constructor,n=t.abs().cmp(1),i=r.precision,a=r.rounding;return-1!==n?0===n?t.isNeg()?D(r,i,a):new r(0):new r(NaN):t.isZero()?D(r,i+4,a).times(.5):(r.precision=i+6,r.rounding=1,t=t.asin(),e=D(r,i+4,a).times(.5),r.precision=i,r.rounding=a,e.minus(t))},T.inverseHyperbolicCosine=T.acosh=function(){var e,t,r=this,n=r.constructor;return r.lte(1)?new n(r.eq(1)?0:NaN):r.isFinite()?(e=n.precision,t=n.rounding,n.precision=e+Math.max(Math.abs(r.e),r.sd())+4,n.rounding=1,d=!1,r=r.times(r).minus(1).sqrt().plus(r),d=!0,n.precision=e,n.rounding=t,r.ln()):new n(r)},T.inverseHyperbolicSine=T.asinh=function(){var e,t,r=this,n=r.constructor;return!r.isFinite()||r.isZero()?new n(r):(e=n.precision,t=n.rounding,n.precision=e+2*Math.max(Math.abs(r.e),r.sd())+6,n.rounding=1,d=!1,r=r.times(r).plus(1).sqrt().plus(r),d=!0,n.precision=e,n.rounding=t,r.ln())},T.inverseHyperbolicTangent=T.atanh=function(){var e,t,r,n,i=this,a=i.constructor;return i.isFinite()?i.e>=0?new a(i.abs().eq(1)?i.s/0:i.isZero()?i:NaN):(e=a.precision,t=a.rounding,n=i.sd(),Math.max(n,e)<2*-i.e-1?P(new a(i),e,t,!0):(a.precision=r=n-i.e,i=I(i.plus(1),new a(1).minus(i),r+e,1),a.precision=e+4,a.rounding=1,i=i.ln(),a.precision=e,a.rounding=t,i.times(.5))):new a(NaN)},T.inverseSine=T.asin=function(){var e,t,r,n,i=this,a=i.constructor;return i.isZero()?new a(i):(t=i.abs().cmp(1),r=a.precision,n=a.rounding,-1!==t?0===t?((e=D(a,r+4,n).times(.5)).s=i.s,e):new a(NaN):(a.precision=r+6,a.rounding=1,i=i.div(new a(1).minus(i.times(i)).sqrt().plus(1)).atan(),a.precision=r,a.rounding=n,i.times(2)))},T.inverseTangent=T.atan=function(){var e,t,r,n,i,a,o,s,u,c=this,l=c.constructor,h=l.precision,p=l.rounding;if(c.isFinite()){if(c.isZero())return new l(c);if(c.abs().eq(1)&&h+4<=S)return(o=D(l,h+4,p).times(.25)).s=c.s,o}else{if(!c.s)return new l(NaN);if(h+4<=S)return(o=D(l,h+4,p).times(.5)).s=c.s,o}for(l.precision=s=h+10,l.rounding=1,e=r=Math.min(28,s/7+2|0);e;--e)c=c.div(c.times(c).plus(1).sqrt().plus(1));for(d=!1,t=Math.ceil(s/7),n=1,u=c.times(c),o=new l(c),i=c;-1!==e;)if(i=i.times(u),a=o.minus(i.div(n+=2)),i=i.times(u),void 0!==(o=a.plus(i.div(n+=2))).d[t])for(e=t;o.d[e]===a.d[e]&&e--;);return r&&(o=o.times(2<this.d.length-2},T.isNaN=function(){return!this.s},T.isNegative=T.isNeg=function(){return this.s<0},T.isPositive=T.isPos=function(){return this.s>0},T.isZero=function(){return!!this.d&&0===this.d[0]},T.lessThan=T.lt=function(e){return this.cmp(e)<0},T.lessThanOrEqualTo=T.lte=function(e){return this.cmp(e)<1},T.logarithm=T.log=function(e){var t,r,n,i,a,o,s,u,c=this.constructor,l=c.precision,h=c.rounding;if(null==e)e=new c(10),t=!0;else{if(r=(e=new c(e)).d,e.s<0||!r||!r[0]||e.eq(1))return new c(NaN);t=e.eq(10)}if(r=this.d,this.s<0||!r||!r[0]||this.eq(1))return new c(r&&!r[0]?-1/0:1!=this.s?NaN:r?0:1/0);if(t)if(r.length>1)a=!0;else{for(i=r[0];i%10==0;)i/=10;a=1!==i}if(d=!1,o=U(this,s=l+5),n=t?j(c,s+10):U(e,s),R((u=I(o,n,s,1)).d,i=l,h))do{if(o=U(this,s+=10),n=t?j(c,s+10):U(e,s),u=I(o,n,s,1),!a){+x(u.d).slice(i+1,i+15)+1==1e14&&(u=P(u,l+1,0));break}}while(R(u.d,i+=10,h));return d=!0,P(u,l,h)},T.minus=T.sub=function(e){var t,r,n,i,a,o,s,u,c,l,h,p,f=this,m=f.constructor;if(e=new m(e),!f.d||!e.d)return f.s&&e.s?f.d?e.s=-e.s:e=new m(e.d||f.s!==e.s?f:NaN):e=new m(NaN),e;if(f.s!=e.s)return e.s=-e.s,f.plus(e);if(c=f.d,p=e.d,s=m.precision,u=m.rounding,!c[0]||!p[0]){if(p[0])e.s=-e.s;else{if(!c[0])return new m(3===u?-0:0);e=new m(f)}return d?P(e,s,u):e}if(r=y(e.e/7),l=y(f.e/7),c=c.slice(),a=l-r){for((h=a<0)?(t=c,a=-a,o=p.length):(t=p,r=l,o=c.length),a>(n=Math.max(Math.ceil(s/7),o)+2)&&(a=n,t.length=1),t.reverse(),n=a;n--;)t.push(0);t.reverse()}else{for((h=(n=c.length)<(o=p.length))&&(o=n),n=0;n0;--n)c[o++]=0;for(n=p.length;n>a;){if(c[--n](o=(a=Math.ceil(s/7))>o?a+1:o+1)&&(i=o,r.length=1),r.reverse();i--;)r.push(0);r.reverse()}for((o=c.length)-(i=l.length)<0&&(i=o,r=l,l=c,c=r),t=0;i;)t=(c[--i]=c[i]+l[i]+t)/w|0,c[i]%=w;for(t&&(c.unshift(t),++n),o=c.length;0==c[--o];)c.pop();return e.d=c,e.e=C(c,n),d?P(e,s,u):e},T.precision=T.sd=function(e){var t,r=this;if(void 0!==e&&e!==!!e&&1!==e&&0!==e)throw Error(f+e);return r.d?(t=k(r.d),e&&r.e+1>t&&(t=r.e+1)):t=NaN,t},T.round=function(){var e=this,t=e.constructor;return P(new t(e),e.e+1,t.rounding)},T.sine=T.sin=function(){var e,t,r=this,n=r.constructor;return r.isFinite()?r.isZero()?new n(r):(e=n.precision,t=n.rounding,n.precision=e+Math.max(r.e,r.sd())+7,n.rounding=1,r=function(e,t){var r,n=t.d.length;if(n<3)return z(e,2,t,t);r=(r=1.4*Math.sqrt(n))>16?16:0|r,t=t.times(1/Q(5,r)),t=z(e,2,t,t);for(var i,a=new e(5),o=new e(16),s=new e(20);r--;)i=t.times(t),t=t.times(a.plus(i.times(o.times(i).minus(s))));return t}(n,$(n,r)),n.precision=e,n.rounding=t,P(s>2?r.neg():r,e,t,!0)):new n(NaN)},T.squareRoot=T.sqrt=function(){var e,t,r,n,i,a,o=this,s=o.d,u=o.e,c=o.s,l=o.constructor;if(1!==c||!s||!s[0])return new l(!c||c<0&&(!s||s[0])?NaN:s?o:1/0);for(d=!1,0==(c=Math.sqrt(+o))||c==1/0?(((t=x(s)).length+u)%2==0&&(t+="0"),c=Math.sqrt(t),u=y((u+1)/2)-(u<0||u%2),n=new l(t=c==1/0?"1e"+u:(t=c.toExponential()).slice(0,t.indexOf("e")+1)+u)):n=new l(c.toString()),r=(u=l.precision)+3;;)if(n=(a=n).plus(I(o,a,r+2,1)).times(.5),x(a.d).slice(0,r)===(t=x(n.d)).slice(0,r)){if("9999"!=(t=t.slice(r-3,r+1))&&(i||"4999"!=t)){+t&&(+t.slice(1)||"5"!=t.charAt(0))||(P(n,u+1,1),e=!n.times(n).eq(o));break}if(!i&&(P(a,u+1,0),a.times(a).eq(o))){n=a;break}r+=4,i=1}return d=!0,P(n,u,l.rounding,e)},T.tangent=T.tan=function(){var e,t,r=this,n=r.constructor;return r.isFinite()?r.isZero()?new n(r):(e=n.precision,t=n.rounding,n.precision=e+10,n.rounding=1,(r=r.sin()).s=1,r=I(r,new n(1).minus(r.times(r)).sqrt(),e+10,0),n.precision=e,n.rounding=t,P(2==s||4==s?r.neg():r,e,t,!0)):new n(NaN)},T.times=T.mul=function(e){var t,r,n,i,a,o,s,u,c,l=this,h=l.constructor,p=l.d,f=(e=new h(e)).d;if(e.s*=l.s,!(p&&p[0]&&f&&f[0]))return new h(!e.s||p&&!p[0]&&!f||f&&!f[0]&&!p?NaN:p&&f?0*e.s:e.s/0);for(r=y(l.e/7)+y(e.e/7),(u=p.length)<(c=f.length)&&(a=p,p=f,f=a,o=u,u=c,c=o),a=[],n=o=u+c;n--;)a.push(0);for(n=c;--n>=0;){for(t=0,i=u+n;i>n;)s=a[i]+f[n]*p[i-n-1]+t,a[i--]=s%w|0,t=s/w|0;a[i]=(a[i]+t)%w|0}for(;!a[--o];)a.pop();return t?++r:a.shift(),e.d=a,e.e=C(a,r),d?P(e,h.precision,h.rounding):e},T.toBinary=function(e,t){return X(this,2,e,t)},T.toDecimalPlaces=T.toDP=function(e,t){var r=this,n=r.constructor;return r=new n(r),void 0===e?r:(O(e,0,1e9),void 0===t?t=n.rounding:O(t,0,8),P(r,e+r.e+1,t))},T.toExponential=function(e,t){var r,n=this,i=n.constructor;return void 0===e?r=N(n,!0):(O(e,0,1e9),void 0===t?t=i.rounding:O(t,0,8),r=N(n=P(new i(n),e+1,t),!0,e+1)),n.isNeg()&&!n.isZero()?"-"+r:r},T.toFixed=function(e,t){var r,n,i=this,a=i.constructor;return void 0===e?r=N(i):(O(e,0,1e9),void 0===t?t=a.rounding:O(t,0,8),r=N(n=P(new a(i),e+i.e+1,t),!1,e+n.e+1)),i.isNeg()&&!i.isZero()?"-"+r:r},T.toFraction=function(e){var t,r,n,i,a,o,s,u,c,l,h,p,y=this,g=y.d,_=y.constructor;if(!g)return new _(y);if(c=r=new _(1),n=u=new _(0),o=(a=(t=new _(n)).e=k(g)-y.e-1)%7,t.d[0]=m(10,o<0?7+o:o),null==e)e=a>0?t:c;else{if(!(s=new _(e)).isInt()||s.lt(c))throw Error(f+s);e=s.gt(t)?a>0?t:c:s}for(d=!1,s=new _(x(g)),l=_.precision,_.precision=a=7*g.length*2;h=I(s,t,0,1,1),1!=(i=r.plus(h.times(n))).cmp(e);)r=n,n=i,i=c,c=u.plus(h.times(i)),u=i,i=t,t=s.minus(h.times(i)),s=i;return i=I(e.minus(r),n,0,1,1),u=u.plus(i.times(c)),r=r.plus(i.times(n)),u.s=c.s=y.s,p=I(c,n,a,1).minus(y).abs().cmp(I(u,r,a,1).minus(y).abs())<1?[c,n]:[u,r],_.precision=l,d=!0,p},T.toHexadecimal=T.toHex=function(e,t){return X(this,16,e,t)},T.toNearest=function(e,t){var r=this,n=r.constructor;if(r=new n(r),null==e){if(!r.d)return r;e=new n(1),t=n.rounding}else{if(e=new n(e),void 0===t?t=n.rounding:O(t,0,8),!r.d)return e.s?r:e;if(!e.d)return e.s&&(e.s=r.s),e}return e.d[0]?(d=!1,r=I(r,e,0,t,1).times(e),d=!0,P(r)):(e.s=r.s,r=e),r},T.toNumber=function(){return+this},T.toOctal=function(e,t){return X(this,8,e,t)},T.toPower=T.pow=function(e){var t,r,n,i,a,o,s=this,u=s.constructor,c=+(e=new u(e));if(!(s.d&&e.d&&s.d[0]&&e.d[0]))return new u(m(+s,c));if((s=new u(s)).eq(1))return s;if(n=u.precision,a=u.rounding,e.eq(1))return P(s,n,a);if((t=y(e.e/7))>=e.d.length-1&&(r=c<0?-c:c)<=9007199254740991)return i=M(u,s,r,n),e.s<0?new u(1).div(i):P(i,n,a);if((o=s.s)<0){if(tu.maxE+1||t0?o/0:0):(d=!1,u.rounding=s.s=1,r=Math.min(12,(t+"").length),(i=B(e.times(U(s,n+r)),n)).d&&R((i=P(i,n+5,1)).d,n,a)&&(t=n+10,+x((i=P(B(e.times(U(s,t+r)),t),t+5,1)).d).slice(n+1,n+15)+1==1e14&&(i=P(i,n+1,0))),i.s=o,d=!0,u.rounding=a,P(i,n,a))},T.toPrecision=function(e,t){var r,n=this,i=n.constructor;return void 0===e?r=N(n,n.e<=i.toExpNeg||n.e>=i.toExpPos):(O(e,1,1e9),void 0===t?t=i.rounding:O(t,0,8),r=N(n=P(new i(n),e,t),e<=n.e||n.e<=i.toExpNeg,e)),n.isNeg()&&!n.isZero()?"-"+r:r},T.toSignificantDigits=T.toSD=function(e,t){var r=this.constructor;return void 0===e?(e=r.precision,t=r.rounding):(O(e,1,1e9),void 0===t?t=r.rounding:O(t,0,8)),P(new r(this),e,t)},T.toString=function(){var e=this,t=e.constructor,r=N(e,e.e<=t.toExpNeg||e.e>=t.toExpPos);return e.isNeg()&&!e.isZero()?"-"+r:r},T.truncated=T.trunc=function(){return P(new this.constructor(this),this.e+1,1)},T.valueOf=T.toJSON=function(){var e=this,t=e.constructor,r=N(e,e.e<=t.toExpNeg||e.e>=t.toExpPos);return e.isNeg()?"-"+r:r};var I=function(){function e(e,t,r){var n,i=0,a=e.length;for(e=e.slice();a--;)n=e[a]*t+i,e[a]=n%r|0,i=n/r|0;return i&&e.unshift(i),e}function t(e,t,r,n){var i,a;if(r!=n)a=r>n?1:-1;else for(i=a=0;it[i]?1:-1;break}return a}function r(e,t,r,n){for(var i=0;r--;)e[r]-=i,i=e[r]1;)e.shift()}return function(n,i,a,s,u,c){var l,h,p,d,f,m,g,_,b,v,E,S,T,x,O,R,A,I,N,C,j=n.constructor,D=n.s==i.s?1:-1,k=n.d,L=i.d;if(!(k&&k[0]&&L&&L[0]))return new j(n.s&&i.s&&(k?!L||k[0]!=L[0]:L)?k&&0==k[0]||!L?0*D:D/0:NaN);for(c?(f=1,h=n.e-i.e):(c=w,f=7,h=y(n.e/f)-y(i.e/f)),N=L.length,A=k.length,v=(b=new j(D)).d=[],p=0;L[p]==(k[p]||0);p++);if(L[p]>(k[p]||0)&&h--,null==a?(x=a=j.precision,s=j.rounding):x=u?a+(n.e-i.e)+1:a,x<0)v.push(1),m=!0;else{if(x=x/f+2|0,p=0,1==N){for(d=0,L=L[0],x++;(p1&&(L=e(L,d,c),k=e(k,d,c),N=L.length,A=k.length),R=N,S=(E=k.slice(0,N)).length;S=c/2&&++I;do{d=0,(l=t(L,E,N,S))<0?(T=E[0],N!=S&&(T=T*c+(E[1]||0)),(d=T/I|0)>1?(d>=c&&(d=c-1),1==(l=t(g=e(L,d,c),E,_=g.length,S=E.length))&&(d--,r(g,N<_?C:L,_,c))):(0==d&&(l=d=1),g=L.slice()),(_=g.length)=10;d/=10)p++;b.e=p+h*f-1,P(b,u?a+b.e+1:a,s,m)}return b}}();function P(e,t,r,n){var i,a,o,s,u,c,l,h,p,f=e.constructor;e:if(null!=t){if(!(h=e.d))return e;for(i=1,s=h[0];s>=10;s/=10)i++;if((a=t-i)<0)a+=7,o=t,u=(l=h[p=0])/m(10,i-o-1)%10|0;else if((p=Math.ceil((a+1)/7))>=(s=h.length)){if(!n)break e;for(;s++<=p;)h.push(0);l=u=0,i=1,o=(a%=7)-7+1}else{for(l=s=h[p],i=1;s>=10;s/=10)i++;u=(o=(a%=7)-7+i)<0?0:l/m(10,i-o-1)%10|0}if(n=n||t<0||void 0!==h[p+1]||(o<0?l:l%m(10,i-o-1)),c=r<4?(u||n)&&(0==r||r==(e.s<0?3:2)):u>5||5==u&&(4==r||n||6==r&&(a>0?o>0?l/m(10,i-o):0:h[p-1])%10&1||r==(e.s<0?8:7)),t<1||!h[0])return h.length=0,c?(t-=e.e+1,h[0]=m(10,(7-t%7)%7),e.e=-t||0):h[0]=e.e=0,e;if(0==a?(h.length=p,s=1,p--):(h.length=p+1,s=m(10,7-a),h[p]=o>0?(l/m(10,i-o)%m(10,o)|0)*s:0),c)for(;;){if(0==p){for(a=1,o=h[0];o>=10;o/=10)a++;for(o=h[0]+=s,s=1;o>=10;o/=10)s++;a!=s&&(e.e++,h[0]==w&&(h[0]=1));break}if(h[p]+=s,h[p]!=w)break;h[p--]=0,s=1}for(a=h.length;0===h[--a];)h.pop()}return d&&(e.e>f.maxE?(e.d=null,e.e=NaN):e.e0?a=a.charAt(0)+"."+a.slice(1)+L(n):o>1&&(a=a.charAt(0)+"."+a.slice(1)),a=a+(e.e<0?"e":"e+")+e.e):i<0?(a="0."+L(-i-1)+a,r&&(n=r-o)>0&&(a+=L(n))):i>=o?(a+=L(i+1-o),r&&(n=r-i-1)>0&&(a=a+"."+L(n))):((n=i+1)0&&(i+1===o&&(a+="."),a+=L(n))),a}function C(e,t){var r=e[0];for(t*=7;r>=10;r/=10)t++;return t}function j(e,t,r){if(t>E)throw d=!0,r&&(e.precision=r),Error("[DecimalError] Precision limit exceeded");return P(new e(l),t,1,!0)}function D(e,t,r){if(t>S)throw Error("[DecimalError] Precision limit exceeded");return P(new e(h),t,r,!0)}function k(e){var t=e.length-1,r=7*t+1;if(t=e[t]){for(;t%10==0;t/=10)r--;for(t=e[0];t>=10;t/=10)r++}return r}function L(e){for(var t="";e--;)t+="0";return t}function M(e,t,r,n){var i,a=new e(1),o=Math.ceil(n/7+4);for(d=!1;;){if(r%2&&Y((a=a.times(t)).d,o)&&(i=!0),0===(r=y(r/2))){r=a.d.length-1,i&&0===a.d[r]&&++a.d[r];break}Y((t=t.times(t)).d,o)}return d=!0,a}function F(e){return 1&e.d[e.d.length-1]}function q(e,t,r){for(var n,i=new e(t[0]),a=0;++a17)return new p(e.d?e.d[0]?e.s<0?0:1/0:1:e.s?e.s<0?0:e:NaN);for(null==t?(d=!1,u=y):u=t,s=new p(.03125);e.e>-2;)e=e.times(s),h+=5;for(u+=n=Math.log(m(2,h))/Math.LN10*2+5|0,r=a=o=new p(1),p.precision=u;;){if(a=P(a.times(e),u,1),r=r.times(++l),x((s=o.plus(I(a,r,u,1))).d).slice(0,u)===x(o.d).slice(0,u)){for(i=h;i--;)o=P(o.times(o),u,1);if(null!=t)return p.precision=y,o;if(!(c<3&&R(o.d,u-n,f,c)))return P(o,p.precision=y,f,d=!0);p.precision=u+=10,r=a=s=new p(1),l=0,c++}o=s}}function U(e,t){var r,n,i,a,o,s,u,c,l,h,p,f=1,y=e,m=y.d,g=y.constructor,_=g.rounding,b=g.precision;if(y.s<0||!m||!m[0]||!y.e&&1==m[0]&&1==m.length)return new g(m&&!m[0]?-1/0:1!=y.s?NaN:m?0:y);if(null==t?(d=!1,l=b):l=t,g.precision=l+=10,n=(r=x(m)).charAt(0),!(Math.abs(a=y.e)<15e14))return c=j(g,l+2,b).times(a+""),y=U(new g(n+"."+r.slice(1)),l-10).plus(c),g.precision=b,null==t?P(y,b,_,d=!0):y;for(;n<7&&1!=n||1==n&&r.charAt(1)>3;)n=(r=x((y=y.times(e)).d)).charAt(0),f++;for(a=y.e,n>1?(y=new g("0."+r),a++):y=new g(n+"."+r.slice(1)),h=y,u=o=y=I(y.minus(1),y.plus(1),l,1),p=P(y.times(y),l,1),i=3;;){if(o=P(o.times(p),l,1),x((c=u.plus(I(o,new g(i),l,1))).d).slice(0,l)===x(u.d).slice(0,l)){if(u=u.times(2),0!==a&&(u=u.plus(j(g,l+2,b).times(a+""))),u=I(u,new g(f),l,1),null!=t)return g.precision=b,u;if(!R(u.d,l-10,_,s))return P(u,g.precision=b,_,d=!0);g.precision=l+=10,c=o=y=I(h.minus(1),h.plus(1),l,1),p=P(y.times(y),l,1),i=s=1}u=c,i+=2}}function V(e){return String(e.s*e.s/0)}function H(e,t){var r,n,i;for((r=t.indexOf("."))>-1&&(t=t.replace(".","")),(n=t.search(/e/i))>0?(r<0&&(r=n),r+=+t.slice(n+1),t=t.substring(0,n)):r<0&&(r=t.length),n=0;48===t.charCodeAt(n);n++);for(i=t.length;48===t.charCodeAt(i-1);--i);if(t=t.slice(n,i)){if(i-=n,e.e=r=r-n-1,e.d=[],n=(r+1)%7,r<0&&(n+=7),ne.constructor.maxE?(e.d=null,e.e=NaN):e.e0?(c=+t.slice(o+1),t=t.substring(2,o)):t=t.slice(2),s=(o=t.indexOf("."))>=0,n=e.constructor,s&&(o=(u=(t=t.replace(".","")).length)-o,i=M(n,new n(r),o,2*o)),o=h=(l=A(t,r,w)).length-1;0===l[o];--o)l.pop();return o<0?new n(0*e.s):(e.e=C(l,h),e.d=l,d=!1,s&&(e=I(e,i,4*u)),c&&(e=e.times(Math.abs(c)<54?m(2,c):a.pow(2,c))),d=!0,e)}function z(e,t,r,n,i){var a,o,s,u,c=e.precision,l=Math.ceil(c/7);for(d=!1,u=r.times(r),s=new e(n);;){if(o=I(s.times(u),new e(t++*t++),c,1),s=i?n.plus(o):n.minus(o),n=I(o.times(u),new e(t++*t++),c,1),void 0!==(o=s.plus(n)).d[l]){for(a=l;o.d[a]===s.d[a]&&a--;);if(-1==a)break}a=s,s=n,n=o,o=a}return d=!0,o.d.length=l+1,o}function Q(e,t){for(var r=e;--t;)r*=e;return r}function $(e,t){var r,n=t.s<0,i=D(e,e.precision,1),a=i.times(.5);if((t=t.abs()).lte(a))return s=n?4:1,t;if((r=t.divToInt(i)).isZero())s=n?3:2;else{if((t=t.minus(r.times(i))).lte(a))return s=F(r)?n?2:3:n?4:1,t;s=F(r)?n?1:4:n?3:2}return t.minus(i).abs()}function X(e,t,r,n){var i,a,s,u,l,h,p,d,f,y=e.constructor,m=void 0!==r;if(m?(O(r,1,1e9),void 0===n?n=y.rounding:O(n,0,8)):(r=y.precision,n=y.rounding),e.isFinite()){for(m?(i=2,16==t?r=4*r-3:8==t&&(r=3*r-2)):i=t,(s=(p=N(e)).indexOf("."))>=0&&(p=p.replace(".",""),(f=new y(1)).e=p.length-s,f.d=A(N(f),10,i),f.e=f.d.length),a=l=(d=A(p,10,i)).length;0==d[--l];)d.pop();if(d[0]){if(s<0?a--:((e=new y(e)).d=d,e.e=a,d=(e=I(e,f,r,n,0,i)).d,a=e.e,h=o),s=d[r],u=i/2,h=h||void 0!==d[r+1],h=n<4?(void 0!==s||h)&&(0===n||n===(e.s<0?3:2)):s>u||s===u&&(4===n||h||6===n&&1&d[r-1]||n===(e.s<0?8:7)),d.length=r,h)for(;++d[--r]>i-1;)d[r]=0,r||(++a,d.unshift(1));for(l=d.length;!d[l-1];--l);for(s=0,p="";s1)if(16==t||8==t){for(s=16==t?4:3,--l;l%s;l++)p+="0";for(l=(d=A(p,i,t)).length;!d[l-1];--l);for(s=1,p="1.";sl)for(a-=l;a--;)p+="0";else at)return e.length=t,!0}function J(e){return new this(e).abs()}function W(e){return new this(e).acos()}function K(e){return new this(e).acosh()}function Z(e,t){return new this(e).plus(t)}function ee(e){return new this(e).asin()}function te(e){return new this(e).asinh()}function re(e){return new this(e).atan()}function ne(e){return new this(e).atanh()}function ie(e,t){e=new this(e),t=new this(t);var r,n=this.precision,i=this.rounding,a=n+4;return e.s&&t.s?e.d||t.d?!t.d||e.isZero()?(r=t.s<0?D(this,n,i):new this(0)).s=e.s:!e.d||t.isZero()?(r=D(this,a,1).times(.5)).s=e.s:t.s<0?(this.precision=a,this.rounding=1,r=this.atan(I(e,t,a,1)),t=D(this,a,1),this.precision=n,this.rounding=i,r=e.s<0?r.minus(t):r.plus(t)):r=this.atan(I(e,t,a,1)):(r=D(this,a,1).times(t.s>0?.25:.75)).s=e.s:r=new this(NaN),r}function ae(e){return new this(e).cbrt()}function oe(e){return P(e=new this(e),e.e+1,2)}function se(e){if(!e||"object"!=typeof e)throw Error("[DecimalError] Object expected");var t,r,n,i=!0===e.defaults,a=["precision",1,1e9,"rounding",0,8,"toExpNeg",-u,0,"toExpPos",0,u,"maxE",0,u,"minE",-u,0,"modulo",0,9];for(t=0;t=a[t+1]&&n<=a[t+2]))throw Error(f+r+": "+n);this[r]=n}if(r="crypto",i&&(this[r]=p[r]),void 0!==(n=e[r])){if(!0!==n&&!1!==n&&0!==n&&1!==n)throw Error(f+r+": "+n);if(n){if("undefined"==typeof crypto||!crypto||!crypto.getRandomValues&&!crypto.randomBytes)throw Error("[DecimalError] crypto unavailable");this[r]=!0}else this[r]=!1}return this}function ue(e){return new this(e).cos()}function ce(e){return new this(e).cosh()}function le(e,t){return new this(e).div(t)}function he(e){return new this(e).exp()}function pe(e){return P(e=new this(e),e.e+1,3)}function de(){var e,t,r=new this(0);for(d=!1,e=0;e=429e7?t[a]=crypto.getRandomValues(new Uint32Array(1))[0]:s[a++]=i%1e7;else{if(!crypto.randomBytes)throw Error("[DecimalError] crypto unavailable");for(t=crypto.randomBytes(n*=4);a=214e7?crypto.randomBytes(4).copy(t,a):(s.push(i%1e7),a+=4);a=n/4}else for(;a=10;i/=10)n++;n<7&&(r-=7-n)}return o.e=r,o.d=s,o}function xe(e){return P(e=new this(e),e.e+1,this.rounding)}function Oe(e){return(e=new this(e)).d?e.d[0]?e.s:0*e.s:e.s||NaN}function Re(e){return new this(e).sin()}function Ae(e){return new this(e).sinh()}function Ie(e){return new this(e).sqrt()}function Pe(e,t){return new this(e).sub(t)}function Ne(e){return new this(e).tan()}function Ce(e){return new this(e).tanh()}function je(e){return P(e=new this(e),e.e+1,1)}(a=function e(t){var r,n,i;function a(e){var t,r,n,i=this;if(!(i instanceof a))return new a(e);if(i.constructor=a,e instanceof a)return i.s=e.s,void(d?!e.d||e.e>a.maxE?(i.e=NaN,i.d=null):e.e=10;r/=10)t++;return void(d?t>a.maxE?(i.e=NaN,i.d=null):t0&&e.every(t=>t.language===e[0].language)}const d={arity:1,applyAsync:async({args:e,evaluate:t,mapping:r,context:n})=>f(await t(e[0],r),n.baseIRI,e),applySync:({args:e,evaluate:t,mapping:r,context:n})=>f(t(e[0],r),n.baseIRI,e)};function f(e,t,r){const n="namedNode"!==e.termType?c.typeCheckLit(e,["string"],r,s.SpecialOperator.IRI):e,a=i.resolve(t||"",n.str());return new o.NamedNode(a)}function y(e){return new o.BlankNode(e||a.v4())}const m={bound:{arity:1,applyAsync:async({args:e,mapping:t})=>h({args:e,mapping:t}),applySync:({args:e,mapping:t})=>h({args:e,mapping:t})},if:{arity:3,async applyAsync({args:e,mapping:t,evaluate:r}){const n=await r(e[0],t);return r(n.coerceEBV()?e[1]:e[2],t)},applySync({args:e,mapping:t,evaluate:r}){const n=r(e[0],t);return r(n.coerceEBV()?e[1]:e[2],t)}},coalesce:{arity:1/0,async applyAsync({args:e,mapping:t,evaluate:r}){const n=[];for(const i of e)try{return await r(i,t)}catch(e){n.push(e)}throw new u.CoalesceError(n)},applySync({args:e,mapping:t,evaluate:r}){const n=[];for(const i of e)try{return r(i,t)}catch(e){n.push(e)}throw new u.CoalesceError(n)}},"&&":{arity:2,async applyAsync({args:e,mapping:t,evaluate:r}){const[n,i]=e;try{const e=await r(n,t);if(!e.coerceEBV())return c.bool(!1);const a=(await r(i,t)).coerceEBV();return c.bool(a)}catch(e){if((await r(i,t)).coerceEBV())throw e;return c.bool(!1)}},applySync({args:e,mapping:t,evaluate:r}){const[n,i]=e;try{const e=r(n,t);if(!e.coerceEBV())return c.bool(!1);const a=r(i,t).coerceEBV();return c.bool(a)}catch(e){if(r(i,t).coerceEBV())throw e;return c.bool(!1)}}},"||":{arity:2,async applyAsync({args:e,mapping:t,evaluate:r}){const[n,i]=e;try{const e=await r(n,t);if(e.coerceEBV())return c.bool(!0);const a=(await r(i,t)).coerceEBV();return c.bool(a)}catch(e){if(!(await r(i,t)).coerceEBV())throw e;return c.bool(!0)}},applySync({args:e,mapping:t,evaluate:r}){const[n,i]=e;try{const e=r(n,t);if(e.coerceEBV())return c.bool(!0);const a=r(i,t).coerceEBV();return c.bool(a)}catch(e){if(!r(i,t).coerceEBV())throw e;return c.bool(!0)}}},sameterm:{arity:2,async applyAsync({args:e,mapping:t,evaluate:r}){const[n,i]=e.map(e=>r(e,t)),a=await n,o=await i;return c.bool(a.toRDF().equals(o.toRDF()))},applySync({args:e,mapping:t,evaluate:r}){const[n,i]=e.map(e=>r(e,t));return c.bool(n.toRDF().equals(i.toRDF()))}},in:{arity:1/0,checkArity:e=>e.length>=1,async applyAsync({args:e,mapping:t,evaluate:r,context:n}){const[i,...a]=e;return async function e(t,{args:r,mapping:n,evaluate:i,context:a},o){if(0===r.length){return o.every(e=>!e)?c.bool(!1):Promise.reject(new u.InError(o))}try{const u=await i(r.shift(),n);return!0===l.regularFunctions.get(s.RegularOperator.EQUAL).apply([t,u]).typedValue?c.bool(!0):e(t,{args:r,mapping:n,evaluate:i,context:a},[...o,!1])}catch(s){return e(t,{args:r,mapping:n,evaluate:i,context:a},[...o,s])}}(await r(i,t),{args:a,mapping:t,evaluate:r,context:n},[])},applySync({args:e,mapping:t,evaluate:r,context:n}){const[i,...a]=e;return function e(t,{args:r,mapping:n,evaluate:i,context:a},o){if(0===r.length){if(!o.every(e=>!e))throw new u.InError(o);c.bool(!1)}try{const u=i(r.shift(),n);return!0===l.regularFunctions.get(s.RegularOperator.EQUAL).apply([t,u]).typedValue?c.bool(!0):e(t,{args:r,mapping:n,evaluate:i,context:a},[...o,!1])}catch(s){return e(t,{args:r,mapping:n,evaluate:i,context:a},[...o,s])}}(r(i,t),{args:a,mapping:t,evaluate:r,context:n},[])}},notin:{arity:1/0,checkArity:e=>e.length>=1,async applyAsync(e){const t=l.specialFunctions.get(s.SpecialOperator.IN),r=await t.applyAsync(e);return c.bool(!r.typedValue)},applySync(e){const t=l.specialFunctions.get(s.SpecialOperator.IN).applySync(e);return c.bool(!t.typedValue)}},concat:{arity:1/0,async applyAsync({args:e,evaluate:t,mapping:r}){const n=e.map(async e=>t(e,r)).map(async t=>c.typeCheckLit(await t,["string","langString"],e,s.SpecialOperator.CONCAT)),i=await Promise.all(n),a=i.map(e=>e.typedValue).join(""),o=p(i)?i[0].language:void 0;return o?c.langString(a,o):c.string(a)},applySync({args:e,evaluate:t,mapping:r}){const n=e.map(e=>t(e,r)).map(t=>c.typeCheckLit(t,["string","langString"],e,s.SpecialOperator.CONCAT)),i=n.map(e=>e.typedValue).join(""),a=p(n)?n[0].language:void 0;return a?c.langString(i,a):c.string(i)}},now:{arity:0,applyAsync:async({context:e})=>new o.DateTimeLiteral(e.now,e.now.toISOString()),applySync:({context:e})=>new o.DateTimeLiteral(e.now,e.now.toISOString())},iri:d,uri:d,BNODE:{arity:1/0,checkArity:e=>0===e.length||1===e.length,async applyAsync({args:e,evaluate:t,mapping:r,context:n}){const i=1===e.length?await t(e[0],r):void 0,a=i?c.typeCheckLit(i,["string"],e,s.SpecialOperator.BNODE).str():void 0;if(n.bnode){const e=await n.bnode(a);return new o.BlankNode(e.value)}return y(a)},applySync({args:e,evaluate:t,mapping:r,context:n}){const i=1===e.length?t(e[0],r):void 0,a=i?c.typeCheckLit(i,["string"],e,s.SpecialOperator.BNODE).str():void 0;if(n.bnode){const e=n.bnode(a);return new o.BlankNode(e.value)}return y(a)}}};t.specialDefinitions=n.Map(m)},function(e,t,r){ -/** @license URI.js v4.2.1 (c) 2011 Gary Court. License: http://github.com/garycourt/uri-js */ -!function(e){"use strict";function t(){for(var e=arguments.length,t=Array(e),r=0;r1){t[0]=t[0].slice(0,-1);for(var n=t.length-1,i=1;i= 0x80 (not a basic code point)","invalid-input":"Invalid input"},f=Math.floor,y=String.fromCharCode;function m(e){throw new RangeError(d[e])}function g(e,t){var r=e.split("@"),n="";r.length>1&&(n=r[0]+"@",e=r[1]);var i=function(e,t){for(var r=[],n=e.length;n--;)r[n]=t(e[n]);return r}((e=e.replace(p,".")).split("."),t).join(".");return n+i}function _(e){for(var t=[],r=0,n=e.length;r=55296&&i<=56319&&r>1,e+=f(e/t);e>455;n+=36)e=f(e/35);return f(n+36*e/(e+38))},w=function(e){var t,r=[],n=e.length,i=0,a=128,o=72,s=e.lastIndexOf("-");s<0&&(s=0);for(var u=0;u=128&&m("not-basic"),r.push(e.charCodeAt(u));for(var l=s>0?s+1:0;l=n&&m("invalid-input");var y=(t=e.charCodeAt(l++))-48<10?t-22:t-65<26?t-65:t-97<26?t-97:36;(y>=36||y>f((c-i)/p))&&m("overflow"),i+=y*p;var g=d<=o?1:d>=o+26?26:d-o;if(yf(c/_)&&m("overflow"),p*=_}var b=r.length+1;o=v(i-h,b,0==h),f(i/b)>c-a&&m("overflow"),a+=f(i/b),i%=b,r.splice(i++,0,a)}return String.fromCodePoint.apply(String,r)},E=function(e){var t=[],r=(e=_(e)).length,n=128,i=0,a=72,o=!0,s=!1,u=void 0;try{for(var l,h=e[Symbol.iterator]();!(o=(l=h.next()).done);o=!0){var p=l.value;p<128&&t.push(y(p))}}catch(e){s=!0,u=e}finally{try{!o&&h.return&&h.return()}finally{if(s)throw u}}var d=t.length,g=d;for(d&&t.push("-");g=n&&Rf((c-i)/A)&&m("overflow"),i+=(w-n)*A,n=w;var I=!0,P=!1,N=void 0;try{for(var C,j=e[Symbol.iterator]();!(I=(C=j.next()).done);I=!0){var D=C.value;if(Dc&&m("overflow"),D==n){for(var k=i,L=36;;L+=36){var M=L<=a?1:L>=a+26?26:L-a;if(k>6|192).toString(16).toUpperCase()+"%"+(63&t|128).toString(16).toUpperCase():"%"+(t>>12|224).toString(16).toUpperCase()+"%"+(t>>6&63|128).toString(16).toUpperCase()+"%"+(63&t|128).toString(16).toUpperCase()}function R(e){for(var t="",r=0,n=e.length;r=194&&i<224){if(n-r>=6){var a=parseInt(e.substr(r+4,2),16);t+=String.fromCharCode((31&i)<<6|63&a)}else t+=e.substr(r,6);r+=6}else if(i>=224){if(n-r>=9){var o=parseInt(e.substr(r+4,2),16),s=parseInt(e.substr(r+7,2),16);t+=String.fromCharCode((15&i)<<12|(63&o)<<6|63&s)}else t+=e.substr(r,9);r+=9}else t+=e.substr(r,3),r+=3}return t}function A(e,t){function r(e){var r=R(e);return r.match(t.UNRESERVED)?r:e}return e.scheme&&(e.scheme=String(e.scheme).replace(t.PCT_ENCODED,r).toLowerCase().replace(t.NOT_SCHEME,"")),void 0!==e.userinfo&&(e.userinfo=String(e.userinfo).replace(t.PCT_ENCODED,r).replace(t.NOT_USERINFO,O).replace(t.PCT_ENCODED,i)),void 0!==e.host&&(e.host=String(e.host).replace(t.PCT_ENCODED,r).toLowerCase().replace(t.NOT_HOST,O).replace(t.PCT_ENCODED,i)),void 0!==e.path&&(e.path=String(e.path).replace(t.PCT_ENCODED,r).replace(e.scheme?t.NOT_PATH:t.NOT_PATH_NOSCHEME,O).replace(t.PCT_ENCODED,i)),void 0!==e.query&&(e.query=String(e.query).replace(t.PCT_ENCODED,r).replace(t.NOT_QUERY,O).replace(t.PCT_ENCODED,i)),void 0!==e.fragment&&(e.fragment=String(e.fragment).replace(t.PCT_ENCODED,r).replace(t.NOT_FRAGMENT,O).replace(t.PCT_ENCODED,i)),e}function I(e){return e.replace(/^0*(.*)/,"$1")||"0"}function P(e,t){var r=e.match(t.IPV4ADDRESS)||[],n=u(r,2)[1];return n?n.split(".").map(I).join("."):e}function N(e,t){var r=e.match(t.IPV6ADDRESS)||[],n=u(r,3),i=n[1],a=n[2];if(i){for(var o=i.toLowerCase().split("::").reverse(),s=u(o,2),c=s[0],l=s[1],h=l?l.split(":").map(I):[],p=c.split(":").map(I),d=t.IPV4ADDRESS.test(p[p.length-1]),f=d?7:8,y=p.length-f,m=Array(f),g=0;g1){var v=m.slice(0,_.index),w=m.slice(_.index+_.length);b=v.join(":")+"::"+w.join(":")}else b=m.join(":");return a&&(b+="%"+a),b}return e}var C=/^(?:([^:\/?#]+):)?(?:\/\/((?:([^\/?#@]*)@)?(\[[^\/?#\]]+\]|[^\/?#:]*)(?:\:(\d*))?))?([^?#]*)(?:\?([^#]*))?(?:#((?:.|\n|\r)*))?/i,j=void 0==="".match(/(){0}/)[1];function D(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},r={},n=!1!==t.iri?s:o;"suffix"===t.reference&&(e=(t.scheme?t.scheme+":":"")+"//"+e);var i=e.match(C);if(i){j?(r.scheme=i[1],r.userinfo=i[3],r.host=i[4],r.port=parseInt(i[5],10),r.path=i[6]||"",r.query=i[7],r.fragment=i[8],isNaN(r.port)&&(r.port=i[5])):(r.scheme=i[1]||void 0,r.userinfo=-1!==e.indexOf("@")?i[3]:void 0,r.host=-1!==e.indexOf("//")?i[4]:void 0,r.port=parseInt(i[5],10),r.path=i[6]||"",r.query=-1!==e.indexOf("?")?i[7]:void 0,r.fragment=-1!==e.indexOf("#")?i[8]:void 0,isNaN(r.port)&&(r.port=e.match(/\/\/(?:.|\n)*\:(?:\/|\?|\#|$)/)?i[4]:void 0)),r.host&&(r.host=N(P(r.host,n),n)),void 0!==r.scheme||void 0!==r.userinfo||void 0!==r.host||void 0!==r.port||r.path||void 0!==r.query?void 0===r.scheme?r.reference="relative":void 0===r.fragment?r.reference="absolute":r.reference="uri":r.reference="same-document",t.reference&&"suffix"!==t.reference&&t.reference!==r.reference&&(r.error=r.error||"URI is not a "+t.reference+" reference.");var a=x[(t.scheme||r.scheme||"").toLowerCase()];if(t.unicodeSupport||a&&a.unicodeSupport)A(r,n);else{if(r.host&&(t.domainHost||a&&a.domainHost))try{r.host=S(r.host.replace(n.PCT_ENCODED,R).toLowerCase())}catch(e){r.error=r.error||"Host's domain name can not be converted to ASCII via punycode: "+e}A(r,o)}a&&a.parse&&a.parse(r,t)}else r.error=r.error||"URI can not be parsed.";return r}function k(e,t){var r=!1!==t.iri?s:o,n=[];return void 0!==e.userinfo&&(n.push(e.userinfo),n.push("@")),void 0!==e.host&&n.push(N(P(String(e.host),r),r).replace(r.IPV6ADDRESS,(function(e,t,r){return"["+t+(r?"%25"+r:"")+"]"}))),"number"==typeof e.port&&(n.push(":"),n.push(e.port.toString(10))),n.length?n.join(""):void 0}var L=/^\.\.?\//,M=/^\/\.(\/|$)/,F=/^\/\.\.(\/|$)/,q=/^\/?(?:.|\n)*?(?=\/|$)/;function B(e){for(var t=[];e.length;)if(e.match(L))e=e.replace(L,"");else if(e.match(M))e=e.replace(M,"/");else if(e.match(F))e=e.replace(F,"/"),t.pop();else if("."===e||".."===e)e="";else{var r=e.match(q);if(!r)throw new Error("Unexpected dot segment condition");var n=r[0];e=e.slice(n.length),t.push(n)}return t.join("")}function U(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},r=t.iri?s:o,n=[],i=x[(t.scheme||e.scheme||"").toLowerCase()];if(i&&i.serialize&&i.serialize(e,t),e.host)if(r.IPV6ADDRESS.test(e.host));else if(t.domainHost||i&&i.domainHost)try{e.host=t.iri?T(e.host):S(e.host.replace(r.PCT_ENCODED,R).toLowerCase())}catch(r){e.error=e.error||"Host's domain name can not be converted to "+(t.iri?"Unicode":"ASCII")+" via punycode: "+r}A(e,r),"suffix"!==t.reference&&e.scheme&&(n.push(e.scheme),n.push(":"));var a=k(e,t);if(void 0!==a&&("suffix"!==t.reference&&n.push("//"),n.push(a),e.path&&"/"!==e.path.charAt(0)&&n.push("/")),void 0!==e.path){var u=e.path;t.absolutePath||i&&i.absolutePath||(u=B(u)),void 0===a&&(u=u.replace(/^\/\//,"/%2F")),n.push(u)}return void 0!==e.query&&(n.push("?"),n.push(e.query)),void 0!==e.fragment&&(n.push("#"),n.push(e.fragment)),n.join("")}function V(e,t){var r=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{},n=arguments[3],i={};return n||(e=D(U(e,r),r),t=D(U(t,r),r)),!(r=r||{}).tolerant&&t.scheme?(i.scheme=t.scheme,i.userinfo=t.userinfo,i.host=t.host,i.port=t.port,i.path=B(t.path||""),i.query=t.query):(void 0!==t.userinfo||void 0!==t.host||void 0!==t.port?(i.userinfo=t.userinfo,i.host=t.host,i.port=t.port,i.path=B(t.path||""),i.query=t.query):(t.path?("/"===t.path.charAt(0)?i.path=B(t.path):(void 0===e.userinfo&&void 0===e.host&&void 0===e.port||e.path?e.path?i.path=e.path.slice(0,e.path.lastIndexOf("/")+1)+t.path:i.path=t.path:i.path="/"+t.path,i.path=B(i.path)),i.query=t.query):(i.path=e.path,void 0!==t.query?i.query=t.query:i.query=e.query),i.userinfo=e.userinfo,i.host=e.host,i.port=e.port),i.scheme=e.scheme),i.fragment=t.fragment,i}function H(e,t){return e&&e.toString().replace(t&&t.iri?s.PCT_ENCODED:o.PCT_ENCODED,R)}var G={scheme:"http",domainHost:!0,parse:function(e,t){return e.host||(e.error=e.error||"HTTP URIs must have a host."),e},serialize:function(e,t){return e.port!==("https"!==String(e.scheme).toLowerCase()?80:443)&&""!==e.port||(e.port=void 0),e.path||(e.path="/"),e}},z={scheme:"https",domainHost:G.domainHost,parse:G.parse,serialize:G.serialize},Q={},$="[A-Za-z0-9\\-\\.\\_\\~\\xA0-\\u200D\\u2010-\\u2029\\u202F-\\uD7FF\\uF900-\\uFDCF\\uFDF0-\\uFFEF]",X="[0-9A-Fa-f]",Y=r(r("%[EFef]"+X+"%"+X+X+"%"+X+X)+"|"+r("%[89A-Fa-f]"+X+"%"+X+X)+"|"+r("%"+X+X)),J=t("[\\!\\$\\%\\'\\(\\)\\*\\+\\,\\-\\.0-9\\<\\>A-Z\\x5E-\\x7E]",'[\\"\\\\]'),W=new RegExp($,"g"),K=new RegExp(Y,"g"),Z=new RegExp(t("[^]","[A-Za-z0-9\\!\\$\\%\\'\\*\\+\\-\\^\\_\\`\\{\\|\\}\\~]","[\\.]",'[\\"]',J),"g"),ee=new RegExp(t("[^]",$,"[\\!\\$\\'\\(\\)\\*\\+\\,\\;\\:\\@]"),"g"),te=ee;function re(e){var t=R(e);return t.match(W)?t:e}var ne={scheme:"mailto",parse:function(e,t){var r=e,n=r.to=r.path?r.path.split(","):[];if(r.path=void 0,r.query){for(var i=!1,a={},o=r.query.split("&"),s=0,u=o.length;s{},this.result=()=>{}}};class p{constructor(e){this.distinct=e.distinct,this.separator=e.separator||" "}static emptyValue(){}}function d(e){if("Literal"!==e.termType||!a.NumericTypeURLs.contains(e.datatype.value))throw new Error("Term is not numeric");return{type:e.datatype.value,value:c.parseXSDFloat(e.value)}}t.aggregators={count:class extends p{static emptyValue(){return u.number(0,l.TypeURL.XSD_INTEGER).toRDF()}init(e){return 1}put(e,t){return e+1}result(e){return u.number(e,l.TypeURL.XSD_INTEGER).toRDF()}},sum:class extends p{constructor(){super(...arguments),this.summer=s.regularFunctions.get(a.RegularOperator.ADDITION)}static emptyValue(){return u.number(0,l.TypeURL.XSD_INTEGER).toRDF()}init(e){const{value:t,type:r}=d(e);return new i.NumericLiteral(t,n.namedNode(r))}put(e,t){const{value:r,type:a}=d(t),o=new i.NumericLiteral(r,n.namedNode(a));return this.summer.apply([e,o])}result(e){return e.toRDF()}},min:class extends p{init(e){const{value:t}=d(e);return{minNum:t,minTerm:e}}put(e,t){const{value:r}=d(t);return r=e.maxNum?{maxNum:r,maxTerm:t}:e}result(e){return e.maxTerm}},avg:class extends p{constructor(){super(...arguments),this.summer=s.regularFunctions.get(a.RegularOperator.ADDITION),this.divider=s.regularFunctions.get(a.RegularOperator.DIVISION)}static emptyValue(){return u.number(0,l.TypeURL.XSD_INTEGER).toRDF()}init(e){const{value:t,type:r}=d(e);return{sum:new i.NumericLiteral(t,n.namedNode(r)),count:1}}put(e,t){const{value:r,type:a}=d(t),o=new i.NumericLiteral(r,n.namedNode(a));return{sum:this.summer.apply([e.sum,o]),count:e.count+1}}result(e){const t=new i.NumericLiteral(e.count,n.namedNode(a.TypeURL.XSD_INTEGER));return this.divider.apply([e.sum,t]).toRDF()}},group_concat:class extends p{static emptyValue(){return u.string("").toRDF()}init(e){return e.value}put(e,t){return e+this.separator+t.value}result(e){return u.string(e).toRDF()}},sample:class extends p{init(e){return e}put(e,t){return e}result(e){return e}}}},function(e,t,r){"use strict";Object.defineProperty(t,"__esModule",{value:!0});const n=r(77),i=r(75);class a extends n.AbstractBindingsHash{constructor(e){super(e,"reduced")}newHashFilter(e,t){const r=new i({max:this.cacheSize});return i=>{const a=n.AbstractFilterHash.hash(e,t,i);return!r.has(a)&&r.set(a,!0)}}}t.ActorQueryOperationReducedHash=a},function(e,t,r){"use strict";Object.defineProperty(t,"__esModule",{value:!0});const n=r(48),i=r(3);class a extends i.ActorQueryOperationTypedMediated{constructor(e){super(e,"filter")}async testOperation(e,t){new n.AsyncEvaluator(e.expression,i.ActorQueryOperation.getExpressionContext(t,this.mediatorQueryOperation));return!0}async runOperation(e,t){const r=await this.mediatorQueryOperation.mediate({operation:e.input,context:t}),a=i.ActorQueryOperation.getSafeBindings(r);i.ActorQueryOperation.validateQueryOutput(a,"bindings");const{variables:o,metadata:s}=a,u=i.ActorQueryOperation.getExpressionContext(t,this.mediatorQueryOperation),c=new n.AsyncEvaluator(e.expression,u),l=a.bindingsStream.transform({transform:async(e,t)=>{try{await c.evaluateAsEBV(e)&&l._push(e)}catch(e){n.isExpressionError(e)||l.emit("error",e)}t()}});return{type:"bindings",bindingsStream:l,metadata:s,variables:o}}}t.ActorQueryOperationFilterSparqlee=a},function(e,t,r){"use strict";Object.defineProperty(t,"__esModule",{value:!0});const n=r(3),i=r(7);class a extends n.ActorQueryOperationTypedMediated{constructor(e){super(e,"from")}static copyOperation(e,t){const r={};for(const n of Object.keys(e))Array.isArray(e[n])?r[n]="variables"===n?e[n]:e[n].map(t):a.ALGEBRA_TYPES.indexOf(e[n].type)>=0?r[n]=t(e[n]):r[n]=e[n];return r}static applyOperationDefaultGraph(e,t){if("bgp"===e.type&&e.patterns.length||"path"===e.type){if("bgp"===e.type)return a.joinOperations(e.patterns.map(e=>{if("DefaultGraph"!==e.graph.termType)return a.FACTORY.createBgp([e]);const r=t.map(t=>a.FACTORY.createBgp([a.FACTORY.createPattern(e.subject,e.predicate,e.object,t)]));return a.unionOperations(r)}));{if("DefaultGraph"!==e.graph.termType)return e;const r=t.map(t=>a.FACTORY.createPath(e.subject,e.predicate,e.object,t));return a.joinOperations(r)}}return a.copyOperation(e,e=>this.applyOperationDefaultGraph(e,t))}static applyOperationNamedGraph(e,t,n){if("bgp"===e.type&&e.patterns.length||"path"===e.type){let i;if(i="bgp"===e.type?e.patterns[0].graph:e.graph,"DefaultGraph"===i.termType)return{type:"bgp",patterns:[]};if("Variable"===i.termType){if(1===t.length){const r=t[0],n={};n["?"+i.value]=r;const o=a.FACTORY.createValues([i],[n]);let s;return s="bgp"===e.type?a.FACTORY.createBgp(e.patterns.map(e=>a.FACTORY.createPattern(e.subject,e.predicate,e.object,r))):a.FACTORY.createPath(e.subject,e.predicate,e.object,r),a.FACTORY.createJoin(o,s)}return a.unionOperations(t.map(t=>a.applyOperationNamedGraph(e,[t],n)))}return r(482)(t.concat(n),e=>e.equals(i))?e:{type:"bgp",patterns:[]}}return a.copyOperation(e,e=>this.applyOperationNamedGraph(e,t,n))}static joinOperations(e){if(1===e.length)return e[0];if(2===e.length)return a.FACTORY.createJoin(e[0],e[1]);if(e.length>2)return a.FACTORY.createJoin(e.shift(),this.joinOperations(e));throw new Error("A join can only be applied on at least one operation")}static unionOperations(e){if(1===e.length)return e[0];if(2===e.length)return a.FACTORY.createUnion(e[0],e[1]);if(e.length>2)return a.FACTORY.createUnion(e.shift(),this.unionOperations(e));throw new Error("A union can only be applied on at least one operation")}static createOperation(e){let t=e.input;return e.default.length&&(t=a.applyOperationDefaultGraph(t,e.default)),e.named.length&&(t=a.applyOperationNamedGraph(t,e.named,e.default)),t}async testOperation(e,t){return!0}async runOperation(e,t){const r=a.createOperation(e);return this.mediatorQueryOperation.mediate({operation:r,context:t})}}t.ActorQueryOperationFromQuad=a,a.FACTORY=new i.Factory,a.ALGEBRA_TYPES=Object.keys(i.Algebra.types).map(e=>i.Algebra.types[e])},function(e,t,r){(function(e,r){var n="[object Arguments]",i="[object Map]",a="[object Object]",o="[object Set]",s=/\.|\[(?:[^[\]]*|(["'])(?:(?!\1)[^\\]|\\.)*?\1)\]/,u=/^\w*$/,c=/^\./,l=/[^.[\]]+|\[(?:(-?\d+(?:\.\d+)?)|(["'])((?:(?!\2)[^\\]|\\.)*?)\2)\]|(?=(?:\.|\[\])(?:\.|\[\]|$))/g,h=/^\s+|\s+$/g,p=/\\(\\)?/g,d=/^[-+]0x[0-9a-f]+$/i,f=/^0b[01]+$/i,y=/^\[object .+?Constructor\]$/,m=/^0o[0-7]+$/i,g=/^(?:0|[1-9]\d*)$/,_={};_["[object Float32Array]"]=_["[object Float64Array]"]=_["[object Int8Array]"]=_["[object Int16Array]"]=_["[object Int32Array]"]=_["[object Uint8Array]"]=_["[object Uint8ClampedArray]"]=_["[object Uint16Array]"]=_["[object Uint32Array]"]=!0,_[n]=_["[object Array]"]=_["[object ArrayBuffer]"]=_["[object Boolean]"]=_["[object DataView]"]=_["[object Date]"]=_["[object Error]"]=_["[object Function]"]=_[i]=_["[object Number]"]=_[a]=_["[object RegExp]"]=_[o]=_["[object String]"]=_["[object WeakMap]"]=!1;var b=parseInt,v="object"==typeof e&&e&&e.Object===Object&&e,w="object"==typeof self&&self&&self.Object===Object&&self,E=v||w||Function("return this")(),S=t&&!t.nodeType&&t,T=S&&"object"==typeof r&&r&&!r.nodeType&&r,x=T&&T.exports===S&&v.process,O=function(){try{return x&&x.binding("util")}catch(e){}}(),R=O&&O.isTypedArray;function A(e,t){for(var r=-1,n=e?e.length:0;++rs))return!1;var c=a.get(e);if(c&&a.get(t))return c==t;var l=-1,h=!0,p=1&i?new de:void 0;for(a.set(e,t),a.set(t,e);++l-1},he.prototype.set=function(e,t){var r=this.__data__,n=me(r,e);return n<0?r.push([e,t]):r[n][1]=t,this},pe.prototype.clear=function(){this.__data__={hash:new le,map:new(W||he),string:new le}},pe.prototype.delete=function(e){return xe(this,e).delete(e)},pe.prototype.get=function(e){return xe(this,e).get(e)},pe.prototype.has=function(e){return xe(this,e).has(e)},pe.prototype.set=function(e,t){return xe(this,e).set(e,t),this},de.prototype.add=de.prototype.push=function(e){return this.__data__.set(e,"__lodash_hash_undefined__"),this},de.prototype.has=function(e){return this.__data__.has(e)},fe.prototype.clear=function(){this.__data__=new he},fe.prototype.delete=function(e){return this.__data__.delete(e)},fe.prototype.get=function(e){return this.__data__.get(e)},fe.prototype.has=function(e){return this.__data__.has(e)},fe.prototype.set=function(e,t){var r=this.__data__;if(r instanceof he){var n=r.__data__;if(!W||n.length<199)return n.push([e,t]),this;r=this.__data__=new pe(n)}return r.set(e,t),this};var Re=function(e){return V.call(e)};function Ae(e,t){return!!(t=null==t?9007199254740991:t)&&("number"==typeof e||g.test(e))&&e>-1&&e%1==0&&e-1?n[i?e[a]:a]:void 0});function Me(e,t){if("function"!=typeof e||t&&"function"!=typeof t)throw new TypeError("Expected a function");var r=function(){var n=arguments,i=t?t.apply(this,n):n[0],a=r.cache;if(a.has(i))return a.get(i);var o=e.apply(this,n);return r.cache=a.set(i,o),o};return r.cache=new(Me.Cache||pe),r}function Fe(e,t){return e===t||e!=e&&t!=t}function qe(e){return function(e){return ze(e)&&Ue(e)}(e)&&U.call(e,"callee")&&(!Q.call(e,"callee")||V.call(e)==n)}Me.Cache=pe;var Be=Array.isArray;function Ue(e){return null!=e&&He(e.length)&&!Ve(e)}function Ve(e){var t=Ge(e)?V.call(e):"";return"[object Function]"==t||"[object GeneratorFunction]"==t}function He(e){return"number"==typeof e&&e>-1&&e%1==0&&e<=9007199254740991}function Ge(e){var t=typeof e;return!!e&&("object"==t||"function"==t)}function ze(e){return!!e&&"object"==typeof e}function Qe(e){return"symbol"==typeof e||ze(e)&&"[object Symbol]"==V.call(e)}var $e=R?function(e){return function(t){return e(t)}}(R):function(e){return ze(e)&&He(e.length)&&!!_[V.call(e)]};function Xe(e){return Ue(e)?ye(e):Ee(e)}function Ye(e){return e}r.exports=Le}).call(this,r(11),r(51)(e))},function(e,t,r){"use strict";Object.defineProperty(t,"__esModule",{value:!0});const n=r(4),i=r(5),a=r(48),o=r(3),s=r(484);class u extends o.ActorQueryOperationTypedMediated{constructor(e){super(e,"group")}async testOperation(e,t){for(const t in e.aggregates){new a.SyncEvaluator(e.aggregates[t].expression)}return!0}async runOperation(e,t){const{input:r,aggregates:a}=e,u=await this.mediatorQueryOperation.mediate({operation:r,context:t}),c=o.ActorQueryOperation.getSafeBindings(u),l=e.variables.map(i.termToString).concat(a.map(e=>i.termToString(e.variable))),h=Object.assign({},o.ActorQueryOperation.getExpressionContext(t));return new Promise((t,r)=>{const i=new s.GroupsState(e,h);c.bindingsStream.on("end",()=>{try{const e=new n.ArrayIterator(i.collectResults()),r=c.metadata;t({type:"bindings",bindingsStream:e,metadata:r,variables:l})}catch(e){r(e)}}),c.bindingsStream.on("error",r),c.bindingsStream.on("data",e=>{try{i.consumeBindings(e)}catch(e){r(e)}})})}}t.ActorQueryOperationGroup=u},function(e,t,r){"use strict";Object.defineProperty(t,"__esModule",{value:!0});const n=r(5),i=r(48),a=r(77),o=r(3);t.GroupsState=class{constructor(e,t){this.pattern=e,this.sparqleeConfig=t,this.groups=new Map,this.groupVariables=new Set(this.pattern.variables.map(n.termToString)),this.distinctHashes=e.aggregates.some(({distinct:e})=>e)?new Map:null}consumeBindings(e){const t=e.filter((e,t)=>this.groupVariables.has(t)).toMap(),r=this.hashBindings(t);if(this.groups.has(r)){const t=this.groups.get(r);for(const i in this.pattern.aggregates){const a=this.pattern.aggregates[i];if(a.distinct){const t=this.hashBindings(e);if(this.distinctHashes.get(r).has(t))continue;this.distinctHashes.get(r).add(t)}const o=n.termToString(a.variable);t.aggregators[o].put(e)}}else{const a={};for(const t in this.pattern.aggregates){const r=this.pattern.aggregates[t],o=n.termToString(r.variable);a[o]=new i.AggregateEvaluator(r,this.sparqleeConfig),a[o].put(e)}const o={aggregators:a,bindings:t};if(this.groups.set(r,o),this.distinctHashes){const t=this.hashBindings(e);this.distinctHashes.set(r,new Set([t]))}}}collectResults(){let e=Array.from(this.groups,([e,t])=>{const{bindings:r,aggregators:n}=t,i={};for(const e in n){const t=n[e].result();void 0!==t&&(i[e]=t)}return r.merge(i)});if(0===e.length){const t={};for(const e in this.pattern.aggregates){const r=this.pattern.aggregates[e],a=n.termToString(r.variable),o=i.AggregateEvaluator.emptyValue(r);void 0!==o&&(t[a]=o)}e=[o.Bindings(t)]}return e}hashBindings(e){return a.AbstractFilterHash.hash("sha1","hex",e)}}},function(e,t,r){"use strict";Object.defineProperty(t,"__esModule",{value:!0});const n=r(3);class i extends n.ActorQueryOperationTypedMediated{constructor(e){super(e,"join")}async testOperation(e,t){return!0}async runOperation(e,t){const r=this.mediatorQueryOperation.mediate({operation:e.left,context:t}),i=this.mediatorQueryOperation.mediate({operation:e.right,context:t});return this.mediatorJoin.mediate({entries:[n.ActorQueryOperation.getSafeBindings(await r),n.ActorQueryOperation.getSafeBindings(await i)]})}}t.ActorQueryOperationJoin=i},function(e,t,r){"use strict";Object.defineProperty(t,"__esModule",{value:!0});const n=r(3),i=r(68),a=r(4),o=r(7),s=r(21);class u extends n.ActorQueryOperationTypedMediated{constructor(e){super(e,"leftjoin")}static createLeftDeepStream(e,t,r){const i=new a.MultiTransformIterator(e,{optional:!0});return i._createTransformer=e=>{const i=t=>t.merge(e);return new s.PromiseProxyIterator(async()=>(await r(n.materializeOperation(t,e))).map(i),{autoStart:!0,maxBufferSize:128})},i}async testOperation(e,t){return!0}async runOperation(e,t){const r=n.ActorQueryOperation.getSafeBindings(await this.mediatorQueryOperation.mediate({operation:e.left,context:t})),a=n.ActorQueryOperation.getSafeBindings(await this.mediatorQueryOperation.mediate({operation:e.right,context:t}));a.bindingsStream.close();const o=e.expression?u.FACTORY.createFilter(e.right,e.expression):e.right,s=u.createLeftDeepStream(r.bindingsStream,o,async e=>n.ActorQueryOperation.getSafeBindings(await this.mediatorQueryOperation.mediate({operation:e,context:t})).bindingsStream),c=i.ActorRdfJoin.joinVariables({entries:[r,a]});return r.metadata().catch(()=>{}),{type:"bindings",bindingsStream:s,metadata:()=>Promise.all([r,a].map(e=>e.metadata())).then(e=>e.reduce((e,t)=>e*t.totalItems,1)).catch(()=>1/0).then(e=>({totalItems:e})),variables:c}}}t.ActorQueryOperationLeftJoinLeftDeep=u,u.FACTORY=new o.Factory},function(e,t,r){"use strict";Object.defineProperty(t,"__esModule",{value:!0});const n=r(5),i=r(7),a=r(48),o=r(3),s=r(488);class u extends o.ActorQueryOperationTypedMediated{constructor(e){super(e,"orderby"),this.window=e.window||1/0}async testOperation(e,t){for(let t of e.expressions){t=this.extractSortExpression(t);new a.AsyncEvaluator(t)}return!0}async runOperation(e,t){const r=await this.mediatorQueryOperation.mediate({operation:e.input,context:t}),i=o.ActorQueryOperation.getSafeBindings(r),u={window:this.window},c=Object.assign({},o.ActorQueryOperation.getExpressionContext(t));let l=i.bindingsStream;for(let t of e.expressions){const e=this.isAscending(t);t=this.extractSortExpression(t);const r=new a.AsyncEvaluator(t,c),i=async(e,t)=>{try{const t=await r.evaluate(e);o._push({bindings:e,result:t})}catch(t){a.isExpressionError(t)||l.emit("error",t),o._push({bindings:e,result:void 0})}t()},o=l.transform({transform:i}),h=new s.SortIterator(o,(t,r)=>{const i=n.termToString(t.result),a=n.termToString(r.result);return i&&a?i>a===e?1:-1:0},u);l=h.map(({bindings:e,result:t})=>e)}return{type:"bindings",bindingsStream:l,metadata:i.metadata,variables:i.variables}}extractSortExpression(e){const{expressionType:t,operator:r}=e;return t!==i.Algebra.expressionTypes.OPERATOR?e:"desc"===r?e.args[0]:e}isAscending(e){const{expressionType:t,operator:r}=e;return t!==i.Algebra.expressionTypes.OPERATOR||"desc"!==r}}t.ActorQueryOperationOrderBySparqlee=u},function(e,t,r){"use strict";Object.defineProperty(t,"__esModule",{value:!0});const n=r(4);class i extends n.TransformIterator{constructor(e,t,r){super(e,r);const n=r&&r.window;this.windowLength=isFinite(n)&&n>0?n:1/0,this.sort=t,this.sorted=[]}_read(e,t){let r,n=this.sorted.length;for(;n!==this.windowLength&&(r=this.source.read(),null!==r);){let e,t,i=0,a=n-1;for(;i<=a;)e=Math.trunc((i+a)/2),t=this.sort(r,this.sorted[e]),t<0?i=e+1:t>0?a=e-1:(i=e,a=-1);this.sorted.splice(i,0,r),n++}n===this.windowLength&&this._push(this.sorted.pop()),t()}_flush(e){let t=this.sorted.length;for(;t--;)this._push(this.sorted.pop());e()}}t.SortIterator=i},function(e,t,r){"use strict";Object.defineProperty(t,"__esModule",{value:!0});const n=r(3),i=r(166),a=r(1),o=r(5);class s extends n.ActorQueryOperationTypedMediated{constructor(e){super(e,"project")}async testOperation(e,t){return!0}async runOperation(e,t){const r=n.ActorQueryOperation.getSafeBindings(await this.mediatorQueryOperation.mediate({operation:e.input,context:t})),s=e.variables.map(o.termToString),u=r.variables.filter(e=>s.indexOf(e)<0),c=s.filter(e=>r.variables.indexOf(e)<0);let l=u.length||c.length?r.bindingsStream.map(e=>{for(const t of u)e=e.delete(t);for(const t of c)e=e.set(t,null);return e}):r.bindingsStream,h=0;return l=l.map(e=>(h++,e.map(e=>e&&"BlankNode"===e.termType?e instanceof i.BlankNodeScoped?new i.BlankNodeScoped(e.value+h,e.skolemized):a.blankNode(e.value+h):e))),{type:"bindings",bindingsStream:l,metadata:r.metadata,variables:s}}}t.ActorQueryOperationProject=s},function(e,t,r){"use strict";Object.defineProperty(t,"__esModule",{value:!0});const n=r(3),i=r(21),a=r(491);class o extends n.ActorQueryOperationTypedMediated{constructor(e){super(e,"minus")}async testOperation(e,t){return!0}async runOperation(e,t){const r=n.ActorQueryOperation.getSafeBindings(await this.mediatorQueryOperation.mediate({operation:e.right,context:t})),o=n.ActorQueryOperation.getSafeBindings(await this.mediatorQueryOperation.mediate({operation:e.left,context:t})),s=this.getCommonVariables(r.variables,o.variables);if(0!==s.length){const e=new a.BindingsIndex(s);return{type:"bindings",bindingsStream:new i.PromiseProxyIterator(async()=>(await new Promise(t=>{r.bindingsStream.on("data",t=>e.add(t)),r.bindingsStream.on("end",t)}),o.bindingsStream.filter(t=>!e.contains(t)))),variables:o.variables,metadata:o.metadata}}return o}getCommonVariables(e,t){return Object.keys(e.filter(e=>-1!==t.indexOf(e)).reduce((e,t)=>(e[t]=!0,e),{}))}}t.ActorQueryOperationMinus=o},function(e,t,r){"use strict";Object.defineProperty(t,"__esModule",{value:!0});const n=r(5);class i{constructor(e){this.data={},this.keys=e}static hashTerm(e){return e&&"Variable"!==e.termType?n.termToString(e):""}add(e){if(this.isBindingsValid(e)){let t=this.data;for(const r of this.keys){const n=i.hashTerm(e.get(r));let a=t[n];a||(a=t[n]={}),t=a}}}contains(e){return!!this.isBindingsValid(e)&&this.containsRecursive(e,this.keys,[this.data])}isBindingsValid(e){let t=!1;for(const r of this.keys)if(e.get(r)){t=!0;break}return t}containsRecursive(e,t,r){if(0===t.length)return!0;let n;[n,...t]=t;for(const a of r){const r=i.hashTerm(e.get(n));if(r){const n=[a[r],a[""]].filter(e=>!!e);if(0===n.length)continue;if(this.containsRecursive(e,t,n))return!0}else{let r=Object.keys(a).map(e=>a[e]);if(0===r.length&&(r=[{}]),this.containsRecursive(e,t,r))return!0}}return!1}}t.BindingsIndex=i},function(e,t,r){"use strict";Object.defineProperty(t,"__esModule",{value:!0});const n=r(29),i=r(3),a=r(56),o=r(7);class s extends n.ActorAbstractPath{constructor(e){super(e,o.Algebra.types.ALT)}async runOperation(e,t){const o=e.predicate,s=(await Promise.all([this.mediatorQueryOperation.mediate({context:t,operation:n.ActorAbstractPath.FACTORY.createPath(e.subject,o.left,e.object,e.graph)}),this.mediatorQueryOperation.mediate({context:t,operation:n.ActorAbstractPath.FACTORY.createPath(e.subject,o.right,e.object,e.graph)})])).map(e=>i.ActorQueryOperation.getSafeBindings(e));return{type:"bindings",bindingsStream:new a.RoundRobinUnionIterator(s.map(e=>e.bindingsStream)),variables:r(183)([].concat.apply([],s.map(e=>e.variables)))}}}t.ActorQueryOperationPathAlt=s},function(e,t,r){"use strict";Object.defineProperty(t,"__esModule",{value:!0});const n=r(29),i=r(7);class a extends n.ActorAbstractPath{constructor(e){super(e,i.Algebra.types.INV)}async runOperation(e,t){const r=e.predicate,i=n.ActorAbstractPath.FACTORY.createPath(e.object,r.path,e.subject,e.graph);return this.mediatorQueryOperation.mediate({operation:i,context:t})}}t.ActorQueryOperationPathInv=a},function(e,t,r){"use strict";Object.defineProperty(t,"__esModule",{value:!0});const n=r(29),i=r(7);class a extends n.ActorAbstractPath{constructor(e){super(e,i.Algebra.types.LINK)}async runOperation(e,t){const r=e.predicate,i=n.ActorAbstractPath.FACTORY.createPattern(e.subject,r.iri,e.object,e.graph);return this.mediatorQueryOperation.mediate({operation:i,context:t})}}t.ActorQueryOperationPathLink=a},function(e,t,r){"use strict";Object.defineProperty(t,"__esModule",{value:!0});const n=r(29),i=r(3),a=r(5),o=r(7);class s extends n.ActorAbstractPath{constructor(e){super(e,o.Algebra.types.NPS)}async runOperation(e,t){const r=e.predicate,o=this.generateBlankNode(e),s=a.termToString(o),u=n.ActorAbstractPath.FACTORY.createPattern(e.subject,o,e.object,e.graph),c=i.ActorQueryOperation.getSafeBindings(await this.mediatorQueryOperation.mediate({operation:u,context:t})),l=c.bindingsStream.transform({filter:e=>!r.iris.some(t=>t.equals(e.get(s))),transform:(e,t)=>{l._push(e.delete(s)),t(null)}});return{type:"bindings",bindingsStream:l,variables:c.variables}}}t.ActorQueryOperationPathNps=s},function(e,t,r){"use strict";Object.defineProperty(t,"__esModule",{value:!0});const n=r(29),i=r(3),a=r(4),o=r(21),s=r(5),u=r(7);class c extends n.ActorAbstractPath{constructor(e){super(e,u.Algebra.types.ONE_OR_MORE_PATH)}async runOperation(e,t){const r=e.predicate,u="Variable"===e.subject.termType,c="Variable"===e.object.termType;if(!u&&c){const u=n.ActorAbstractPath.FACTORY.createPath(e.subject,r.path,e.object,e.graph),c=i.ActorQueryOperation.getSafeBindings(await this.mediatorQueryOperation.mediate({context:t,operation:u})),l=s.termToString(e.object),h={},p=new a.MultiTransformIterator(c.bindingsStream);return p._createTransformer=e=>{const n=e.get(l);return new o.PromiseProxyIterator(async()=>{const e=new a.BufferedIterator;return await this.ALP(n,r.path,t,h,e,{count:0}),e.transform({transform:(e,t)=>{p._push(i.Bindings({[l]:e})),t(null)}})},{autoStart:!0,maxBufferSize:128})},{type:"bindings",bindingsStream:p,variables:[l]}}if(u&&c)throw new Error("ZeroOrMore path expressions with 2 variables not supported yet");if(u&&!c)return this.mediatorQueryOperation.mediate({context:t,operation:n.ActorAbstractPath.FACTORY.createPath(e.object,n.ActorAbstractPath.FACTORY.createOneOrMorePath(n.ActorAbstractPath.FACTORY.createInv(r.path)),e.subject,e.graph)});{const a=this.generateBlankNode(),o=s.termToString(a),u=i.ActorQueryOperation.getSafeBindings(await this.mediatorQueryOperation.mediate({context:t,operation:n.ActorAbstractPath.FACTORY.createPath(e.subject,r,a,e.graph)})).bindingsStream.transform({filter:t=>t.get(o).equals(e.object),transform:(e,t)=>{u._push(i.Bindings({})),t(null)}});return{type:"bindings",bindingsStream:u,variables:[]}}}}t.ActorQueryOperationPathOneOrMore=c},function(e,t,r){"use strict";Object.defineProperty(t,"__esModule",{value:!0});const n=r(29),i=r(3),a=r(5),o=r(7);class s extends n.ActorAbstractPath{constructor(e){super(e,o.Algebra.types.SEQ)}async runOperation(e,t){const r=e.predicate,o=this.generateBlankNode(e),s=a.termToString(o),u=(await Promise.all([this.mediatorQueryOperation.mediate({context:t,operation:n.ActorAbstractPath.FACTORY.createPath(e.subject,r.left,o,e.graph)}),this.mediatorQueryOperation.mediate({context:t,operation:n.ActorAbstractPath.FACTORY.createPath(o,r.right,e.object,e.graph)})])).map(e=>i.ActorQueryOperation.getSafeBindings(e)),c=i.ActorQueryOperation.getSafeBindings(await this.mediatorJoin.mediate({entries:u})),l=c.bindingsStream.transform({transform:(e,t)=>{l._push(e.delete(s)),t(null)}});return{type:"bindings",bindingsStream:l,variables:c.variables}}}t.ActorQueryOperationPathSeq=s},function(e,t,r){"use strict";Object.defineProperty(t,"__esModule",{value:!0});const n=r(29),i=r(3),a=r(5),o=r(7);class s extends n.ActorAbstractPath{constructor(e){super(e,o.Algebra.types.ZERO_OR_MORE_PATH)}async runOperation(e,t){const r=e.predicate,o="Variable"===e.subject.termType,s="Variable"===e.object.termType;if(o&&s)throw new Error("ZeroOrMore path expressions with 2 variables not supported yet");if(o||s){const s=a.termToString(o?e.subject:e.object),u=o?n.ActorAbstractPath.FACTORY.createInv(r.path):r.path,c=(await this.ALPeval(o?e.object:e.subject,u,t)).transform({transform:(e,t)=>{c._push(i.Bindings({[s]:e})),t(null)}});return{type:"bindings",bindingsStream:c,variables:[s]}}{const n=(await this.ALPeval(e.subject,r.path,t)).transform({filter:t=>t.equals(e.object),transform:(e,t)=>{n._push(i.Bindings({})),t(null)}});return{type:"bindings",bindingsStream:n,variables:[]}}}}t.ActorQueryOperationPathZeroOrMore=s},function(e,t,r){"use strict";Object.defineProperty(t,"__esModule",{value:!0});const n=r(204),i=r(3),a=r(4),o=r(5),s=r(7);class u extends n.ActorAbstractPath{constructor(e){super(e,s.Algebra.types.ZERO_OR_ONE_PATH)}async runOperation(e,t){const r=e.predicate,s="Variable"===e.subject.termType,u="Variable"===e.object.termType,c=[];if(!s&&!u&&e.subject.equals(e.object))return{type:"bindings",bindingsStream:new a.SingletonIterator(i.Bindings({})),variables:[]};if(s&&u)throw new Error("ZeroOrOne path expressions with 2 variables not supported yet");s&&c.push(i.Bindings({[o.termToString(e.subject)]:e.object})),u&&c.push(i.Bindings({[o.termToString(e.object)]:e.subject}));const l=i.ActorQueryOperation.getSafeBindings(await this.mediatorQueryOperation.mediate({context:t,operation:n.ActorAbstractPath.FACTORY.createPath(e.subject,r.path,e.object,e.graph)}));return{type:"bindings",bindingsStream:l.bindingsStream.prepend(c),variables:l.variables}}}t.ActorQueryOperationPathZeroOrOne=u},function(e,t,r){"use strict";r.r(t);const n={};async function i(e){const t=[];var r,n=!0,i=!1;try{for(var a,o,s=function(e){var t;if("undefined"!=typeof Symbol){if(Symbol.asyncIterator&&null!=(t=e[Symbol.asyncIterator]))return t.call(e);if(Symbol.iterator&&null!=(t=e[Symbol.iterator]))return t.call(e)}throw new TypeError("Object is not async iterable")}(e);n=(a=await s.next()).done,o=await a.value,!n;n=!0){const e=o;t.push(e)}}catch(e){i=!0,r=e}finally{try{n||null==s.return||await s.return()}finally{if(i)throw r}}return t}function a(e){return e[Symbol.asyncIterator]().next().then(e=>e.value)}class o{constructor(e,...t){this._isAsync=e.async,this._isFunction=e.function,this._dataProperties=t}static sync(...e){return new o({async:!1},...e)}static syncFunction(...e){return new o({async:!1,function:!0},...e)}static async(...e){return new o({async:!0},...e)}static asyncFunction(...e){return new o({async:!0,function:!0},...e)}handle(e){return this._isFunction?()=>this._resolveDataPath(e):this._resolveDataPath(e)}_resolveDataPath(e){return this._isAsync?this._resolveAsyncDataPath(e):this._resolveSyncDataPath(e)}_resolveSyncDataPath(e){for(const t of this._dataProperties)e=e&&e[t];return e}async _resolveAsyncDataPath(e){for(const t of this._dataProperties)e=e&&await e[t];return e}}function s(e){return{then:u(e)}}function u(e){return(t,r)=>e().then(t,r)}function c(e){return"function"==typeof e&&(e=function(e){const t=[];let r=e[Symbol.asyncIterator]();return{[Symbol.asyncIterator](){let e=0;return{async next(){if(ee[Symbol.asyncIterator](),get then(){return u(()=>a(this))},catch(e){return this.then(null,e)},finally(e){return this.then().finally(e)}}}var l=r(1);function h(e){return e&&"function"==typeof e[Symbol.asyncIterator]}function p(e){return null!==e&&"object"==typeof e&&!Array.isArray(e)&&"function"!=typeof e.then&&"string"!=typeof e.termType&&!h(e)}function d(e,t=!1){const r=e.some(p);if(r&&!t&&1!==e.length)throw new Error(`Expected only 1 plain object, but got ${e.length} arguments`);return r}function f(e){if("string"==typeof e)return Object(l.literal)(e);if(e&&"string"==typeof e.termType)return e;throw new Error("Invalid object: "+e)}function y(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),r.push.apply(r,n)}return r}function m(e){for(var t=1;t{if(!this._allowZeroArgs&&!r.length)throw new Error("Mutation cannot be invoked without arguments");const n=s(()=>this.createMutationExpressions(e,t,r));return e.extendPath({mutationExpressions:n})}}async createMutationExpressions(e,t,r){if(!d(r))return[await this.createMutationExpression(e,t,r)];const n=Object.entries(r[0]),i=await Promise.all(n.map(([r,n])=>{return this.createMutationExpression(e,t[r],(i=n,Array.isArray(i)?i:i?[i]:[]));var i}));return[0===i.length?{}:m(m({},i[0]),{},{predicateObjects:(a=i.map(e=>e.predicateObjects),[].concat(...a))})];var a}async createMutationExpression(e,t,r){const n=await t.pathExpression;if(!Array.isArray(n))throw new Error(e+" has no pathExpression property");if(n.length<2)throw new Error(e+" should at least contain a subject and a predicate");const{predicate:i,reverse:a}=n[n.length-1];if(!i)throw new Error("Expected predicate in "+e);const o=await this.extractObjects(e,t,r);return null!==o&&0===o.length?{}:{mutationType:this._mutationType,conditions:n.slice(0,-1),predicateObjects:[{predicate:i,reverse:a,objects:o}]}}async extractObjects(e,t,r){if(0===r.length)return null;const n=[];for(const e of r)h(e)?n.push(...await i(e)):n.push(await e);return n.map(f)}}class b extends _{constructor(){super("DELETE",!0)}}function v(e){return new E(e)}function w(e){var t,r;function n(t,r){try{var a=e[t](r),o=a.value,s=o instanceof E;Promise.resolve(s?o.wrapped:o).then((function(e){s?n("return"===t?"return":"next",e):i(a.done?"return":"normal",e)}),(function(e){n("throw",e)}))}catch(e){i("throw",e)}}function i(e,i){switch(e){case"return":t.resolve({value:i,done:!0});break;case"throw":t.reject(i);break;default:t.resolve({value:i,done:!1})}(t=t.next)?n(t.key,t.arg):r=null}this._invoke=function(e,i){return new Promise((function(a,o){var s={key:e,arg:i,resolve:a,reject:o,next:null};r?r=r.next=s:(t=r=s,n(e,i))}))},"function"!=typeof e.return&&(this.return=void 0)}function E(e){this.wrapped=e}"function"==typeof Symbol&&Symbol.asyncIterator&&(w.prototype[Symbol.asyncIterator]=function(){return this}),w.prototype.next=function(e){return this._invoke("next",e)},w.prototype.throw=function(e){return this._invoke("throw",e)},w.prototype.return=function(e){return this._invoke("return",e)};const S=/(SELECT\s+)(\?\S+)/,T=/\}[^}]*$/;function x(e){const{termType:t,value:r}=e;switch(t){case"NamedNode":return r;case"Literal":const{language:n,datatype:i}=e;return`${t}|${n}|${i.value}|${r}`;default:return`${t}|${r}`}}var O=r(8);function R(e){return new I(e)}function A(e){var t,r;function n(t,r){try{var a=e[t](r),o=a.value,s=o instanceof I;Promise.resolve(s?o.wrapped:o).then((function(e){s?n("return"===t?"return":"next",e):i(a.done?"return":"normal",e)}),(function(e){n("throw",e)}))}catch(e){i("throw",e)}}function i(e,i){switch(e){case"return":t.resolve({value:i,done:!0});break;case"throw":t.reject(i);break;default:t.resolve({value:i,done:!1})}(t=t.next)?n(t.key,t.arg):r=null}this._invoke=function(e,i){return new Promise((function(a,o){var s={key:e,arg:i,resolve:a,reject:o,next:null};r?r=r.next=s:(t=r=s,n(e,i))}))},"function"!=typeof e.return&&(this.return=void 0)}function I(e){this.wrapped=e}"function"==typeof Symbol&&Symbol.asyncIterator&&(A.prototype[Symbol.asyncIterator]=function(){return this}),A.prototype.next=function(e){return this._invoke("next",e)},A.prototype.throw=function(e){return this._invoke("throw",e)},A.prototype.return=function(e){return this._invoke("return",e)};class P{constructor(e="ASC"){this.order=e}handle(e,t){return(...r)=>{if(0===r.length)return t;const[n,...i]=r,{predicate:a}=t[n],o={property:n,predicate:a,sort:this.order},s=e.extendPath(o);return 0===i.length?s:s.sort(...i)}}}const N=/["\\\t\n\r\b\f\u0000-\u0019\ud800-\udbff]/,C=/["\\\t\n\r\b\f\u0000-\u0019]|[\ud800-\udbff][\udc00-\udfff]/g,j={"\\":"\\\\",'"':'\\"',"\t":"\\t","\n":"\\n","\r":"\\r","\b":"\\b","\f":"\\f"};class D{async handle(e,t){const r=await t.mutationExpressions;if(Array.isArray(r)&&r.length)return r.map(e=>this.mutationExpressionToQuery(e)).filter(Boolean).join("\n;\n");const n=await t.pathExpression;if(!Array.isArray(n))throw new Error(e+" has no pathExpression property");return this.pathExpressionToQuery(e,t,n)}pathExpressionToQuery(e,t,r){if(r.length<2&&!e.finalClause)throw new Error(e+" should at least contain a subject and a predicate");let n="?subject",i=[],a=[];r.length>1&&(n=this.createVar(e.property),({queryVar:n,sorts:i,clauses:a}=this.expressionToTriplePatterns(r,n))),e.finalClause&&a.push(e.finalClause(n));const o=`SELECT ${e.distinct?"DISTINCT ":""}${e.select?e.select:n}`,s=` WHERE {\n ${a.join("\n ")}\n}`,u=i.map(({order:e,variable:t})=>`${e}(${t})`);return`${o}${s}${0===u.length?"":"\nORDER BY "+u.join(" ")}`}mutationExpressionToQuery({mutationType:e,conditions:t,predicateObjects:r}){if(!e||!t||r&&0===r.length)return"";const n={};let i,a;if(1===t.length)i=this.termToString(t[0].subject),a=[];else{const e=t[t.length-1].predicate;i=this.createVar(e.value,n),({queryVar:i,clauses:a}=this.expressionToTriplePatterns(t,i,n))}const o=[];for(const{predicate:e,reverse:t,objects:a}of r){const r=a?a.map(e=>this.termToString(e)):[this.createVar(e.value,n)];o.push(...this.triplePatterns(i,e,r,t))}const s=`{\n ${o.join("\n ")}\n}`;return 0===a.length?`${e} DATA ${s}`:`${e} ${s} WHERE {\n ${a.join("\n ")}\n}`}expressionToTriplePatterns([e,...t],r,n={}){const i=t.length-1,a=[],o=[];let s=this.termToString(function(e){if("BlankNode"!==e.termType)return e;e.skolemized||(e.skolemized=Object(l.namedNode)("urn:ldflex:sk"+L++));return e.skolemized}(e.subject)),u=s,c=!1;return t.forEach((e,t)=>{const l=s,{predicate:h,reverse:p,sort:d,values:f}=e;let y;if(f&&f.length>0){if(!c)throw new Error("Specifying fixed values is not allowed here");y=f.map(this.termToString),c=!1}else s=t`;case"BlankNode":return"_:"+t;case"Literal":let r="";return e.language?r="@"+e.language:"http://www.w3.org/2001/XMLSchema#string"!==e.datatype.value&&(r=`^^<${e.datatype.value}>`),`"${t}"${r}`;default:throw new Error("Could not convert a term of type "+e.termType)}}triplePatterns(e,t,r,n=!1){let i=[e];n&&([i,r]=[r,i]);const a=r.join(", ");return i.map(e=>`${e} <${t.value}> ${a}.`)}}function k(e){let t=j[e];return void 0===t&&(1===e.length?(t=e.charCodeAt(0).toString(16),t="\\u0000".substr(0,6-t.length)+t):(t=(1024*(e.charCodeAt(0)-55296)+e.charCodeAt(1)+9216).toString(16),t="\\U00000000".substr(0,10-t.length)+t)),t}let L=0;var M={__esModule:()=>{},then:new class{handle({subject:e},t){return e?e.then&&u(()=>t.subject):u(()=>a(t.results))}},[Symbol.asyncIterator]:new class{handle({subject:e},t){return e?()=>{return e=t.subject,{async next(){if(e!==n){const t=await e;return e=n,{value:t}}return{done:!0}}};var e}:()=>t.results[Symbol.asyncIterator]()}},get:new class{handle(e,t){return(...e)=>this.readProperties(t,1===e.length?e[0]:e,!0)}async readProperties(e,t,r=!1){if(h(t)&&(t=await i(t)),Array.isArray(t)){const r=t.map(t=>this.readProperties(e,t));return Promise.all(r)}if(p(t)){const r=Object.keys(t);t=r.map(e=>t[e]||e);const n={},i=await this.readProperties(e,t);for(let e=0;ee.extendPath({subject:t},null)):void 0}},predicate:new class{handle(e){const{predicate:t}=e;return t?Promise.resolve(t).then(t=>e.extendPath({subject:t},null)):void 0}},properties:new class{handle(e,t){return c(this._handle(e,t))}_handle(e,t){return(r=function*(){const r=(yield R(e.settings.parsedContext))||{},n=new O.JsonLdContextNormalized(r);var i,a=!0,o=!1;try{for(var s,u,c=function(e){var t;if("undefined"!=typeof Symbol){if(Symbol.asyncIterator&&null!=(t=e[Symbol.asyncIterator]))return t.call(e);if(Symbol.iterator&&null!=(t=e[Symbol.iterator]))return t.call(e)}throw new TypeError("Object is not async iterable")}(t.predicates);a=(s=yield R(c.next())).done,u=yield R(s.value),!a;a=!0){const e=u;yield n.compactIri(""+(yield R(e)),!0)}}catch(e){o=!0,i=e}finally{try{a||null==c.return||(yield R(c.return()))}finally{if(o)throw i}}},function(){return new A(r.apply(this,arguments))})();var r}},predicates:new class{handle(e){return e.extendPath({distinct:!0,select:"?predicate",finalClause:e=>e+" ?predicate ?object.",property:e.property})}},pathExpression:new class{async handle(e){const t=[];let r=e;for(;r.parent;)r.predicate&&t.unshift({predicate:await r.predicate,reverse:await r.reverse,sort:r.sort,values:r.values}),r=r.parent;if(!r.subject)throw new Error("Expected root subject in "+r);const n=await r.subject;return t.unshift({subject:n}),t}},sparql:new D,subjects:new class{handle(e){return e.extendPath({distinct:!0,select:"?subject",finalClause:()=>"?subject ?predicate ?object.",property:e.property})}},results:new class{handle(e,t){var r,n=this;return(r=function*(){const r=yield v(e.resultsCache);if(r){for(const e of r)yield e;return}const{queryEngine:i}=e.settings;if(!i)throw new Error(e+" has no queryEngine setting");const a=yield v(t.sparql);if(null==a)throw new Error(e+" has no sparql property");if(0!==a.length){var o,s=!0,u=!1;try{for(var c,l,h=function(e){var t;if("undefined"!=typeof Symbol){if(Symbol.asyncIterator&&null!=(t=e[Symbol.asyncIterator]))return t.call(e);if(Symbol.iterator&&null!=(t=e[Symbol.iterator]))return t.call(e)}throw new TypeError("Object is not async iterable")}(i.execute(a));s=(c=yield v(h.next())).done,l=yield v(c.value),!s;s=!0){const t=l;yield n.extractTerm(t,e)}}catch(e){u=!0,o=e}finally{try{s||null==h.return||(yield v(h.return()))}finally{if(u)throw o}}}},function(){return new w(r.apply(this,arguments))})()}extractTerm(e,t){if(1!==e.size)throw new Error("Only single-variable queries are supported");const r=e.values().next().value;return t.extendPath({subject:r},null)}},sort:new P("ASC"),sortDesc:new P("DESC"),preload:new class{handle(e,t){return async(...r)=>{if(r.length>0){const n=await Promise.all(r.map(async e=>(await t[e].predicate).value));e.resultsCache=await this.createResultsCache(n,e,t)}return t}}async createResultsCache(e,t,r){const{query:n,vars:i,resultVar:a}=await this.createQuery(e,r),{settings:{queryEngine:o}}=t,s=o.execute(n),u={},c={};var l,h=!0,p=!1;try{for(var d,f,y=function(e){var t;if("undefined"!=typeof Symbol){if(Symbol.asyncIterator&&null!=(t=e[Symbol.asyncIterator]))return t.call(e);if(Symbol.iterator&&null!=(t=e[Symbol.iterator]))return t.call(e)}throw new TypeError("Object is not async iterable")}(s);h=(d=await y.next()).done,f=await d.value,!h;h=!0){const r=f,n=r.get(a),o=x(n);if(!(o in u)){const r=c[o]={};for(const t of e)r[t]=[];const i={subject:n,propertyCache:r};u[o]=t.extendPath(i,null)}const s=c[o];for(let n=0;n"?preload_"+t),o=e.map((e,t)=>` { ${i} <${e}> ${a[t]}. }`).join("\n UNION\n");return{query:r.replace(S,"$1$2 "+a.join(" ")).replace(T,` OPTIONAL {\n${o}\n }\n$&`),vars:a,resultVar:i}}},mutationExpressions:new class{async handle(e){const t=[];let r=e;for(;r;)r.mutationExpressions&&t.unshift(...await r.mutationExpressions),r=r.parent;return t}},add:new class extends _{constructor(){super("INSERT",!1)}},set:new class extends _{handle(e,t){return(...e)=>(d(e)?Object.keys(e[0]).reduce((e,t)=>e.delete({[t]:[]}),t):t.delete()).add(...e)}},replace:new class{handle(e,t){return function(e,...r){if(!e||!r.length)throw new Error("Replacing values requires at least two arguments, old value followed by all new values");return t.delete(e).add(...r)}}},delete:new b,termType:q("termType"),value:q("value"),datatype:q("datatype"),language:q("language"),canonical:q("canonical"),equals:o.sync("subject","equals"),toString:o.syncFunction("subject","value"),toPrimitive:o.syncFunction("subject","value"),toArray:new class{handle(e,t){return async e=>{const r=[];if(h(t)){"function"!=typeof e&&(e=e=>e);let c=0;var n,i=!0,a=!1;try{for(var o,s,u=function(e){var t;if("undefined"!=typeof Symbol){if(Symbol.asyncIterator&&null!=(t=e[Symbol.asyncIterator]))return t.call(e);if(Symbol.iterator&&null!=(t=e[Symbol.iterator]))return t.call(e)}throw new TypeError("Object is not async iterable")}(t);i=(o=await u.next()).done,s=await o.value,!i;i=!0){const t=s;r.push(await e(t,c++))}}catch(e){a=!0,n=e}finally{try{i||null==u.return||await u.return()}finally{if(a)throw n}}}return r}}},termTypes:F((e,t)=>t.toArray(e=>e.termType)),values:F((e,t)=>t.toArray(e=>e.value)),datatypes:F((e,t)=>t.toArray(e=>e.datatype)),languages:F((e,t)=>t.toArray(e=>e.language)),resolve:new class{handle(e,t){return(e="",r=t)=>{const n='"use strict";return ldflex'+e.replace(/^(https?:\/\/[^()[\]'"]+)$/,'["$1"]').replace(/^(?=[a-z$_])/i,".").replace(/\[([^'"`\](]*)\]/g,'["$1"]');let i;try{i=Function("ldflex",n)}catch({message:t}){throw new Error(`Expression "${e}" is invalid: ${t}`)}return i(r)}}}};function F(e){return{handle:e}}function q(e){return F((t,r)=>{const{subject:n}=t,i=n&&n[e];return void 0!==i?i:r.then(t=>t&&t[e])})}function B(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),r.push.apply(r,n)}return r}function U(e,t,r){return t in e?Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[t]=r,e}function V(e,t){if(null==e)return{};var r,n,i=function(e,t){if(null==e)return{};var r,n,i={},a=Object.keys(e);for(n=0;n=0||(i[r]=e[r]);return i}(e,t);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);for(n=0;n=0||Object.prototype.propertyIsEnumerable.call(e,r)&&(i[r]=e[r])}return i}const H=Object.create(null);class G{constructor({handlers:e=H,resolvers:t=[]}={}){this._handlers=e,this._resolvers=t}createPath(e={},t){void 0===t&&([t,e]=[e,{}]);const{apply:r}=t,n=V(t,["apply"]),i=r?Object.assign((function(...e){return r(e,i,a)}),n):n,a=new Proxy(i,this);if(i.proxy=a,i.settings=e,!i.extendPath){const t=this;i.extendPath=function r(n,i=this){return t.createPath(e,function(e){for(var t=1;tthis.expandProperty(e)),n=s(()=>this._context.then(({contextRaw:t})=>t[e]&&t[e]["@reverse"])),i=this.getResultsCache(t,r,n),a={property:e,predicate:r,resultsCache:i,reverse:n,apply:this.apply};return t.extendPath(a)}apply(e,t,r){if(0===e.length)throw new Error("Specify at least one value for the property");return t.values=e.map(f),r}async expandProperty(e){e=e.replace(/^([a-z][a-z0-9]*)[_$]/i,"$1:");const t=(await this._context).expandTerm(e,!0);if(!O.Util.isValidIri(t))throw new Error(`The JSON-LD context cannot expand the '${e}' property`);return Object(l.namedNode)(t)}async extendContext(...e){await(this._context=this._context.then(({contextRaw:t})=>(new O.ContextParser).parse([t,...e])))}getResultsCache(e,t,r){let{propertyCache:n}=e;return n&&s(async()=>(n=!await r&&await n,n&&n[(await t).value]))}}function Q(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),r.push.apply(r,n)}return r}function $(e){for(var t=1;te)):e.context=e.parsedContext={},this._pathProxy=new G({handlers:r,resolvers:n}),delete e.handlers,delete e.resolvers}create(e={},t){return t||([t,e]=[e,null]),this._pathProxy.createPath(Object.assign(Object.create(null),this._settings,e),Object.assign(Object.create(null),this._data,t))}}function J(e){return"function"==typeof e.handle?e:{handle:e}}function W(e){return"function"==typeof e.resolve?e:{supports:K,resolve:e}}function K(){return!0}Y.defaultHandlers=M;var Z=r(31),ee=r(30),te=r.n(ee);function re(e){return new ae(e)}function ne(e){return function(){return new ie(e.apply(this,arguments))}}function ie(e){var t,r;function n(t,r){try{var a=e[t](r),o=a.value,s=o instanceof ae;Promise.resolve(s?o.wrapped:o).then((function(e){s?n("return"===t?"return":"next",e):i(a.done?"return":"normal",e)}),(function(e){n("throw",e)}))}catch(e){i("throw",e)}}function i(e,i){switch(e){case"return":t.resolve({value:i,done:!0});break;case"throw":t.reject(i);break;default:t.resolve({value:i,done:!1})}(t=t.next)?n(t.key,t.arg):r=null}this._invoke=function(e,i){return new Promise((function(a,o){var s={key:e,arg:i,resolve:a,reject:o,next:null};r?r=r.next=s:(t=r=s,n(e,i))}))},"function"!=typeof e.return&&(this.return=void 0)}function ae(e){this.wrapped=e}"function"==typeof Symbol&&Symbol.asyncIterator&&(ie.prototype[Symbol.asyncIterator]=function(){return this}),ie.prototype.next=function(e){return this._invoke("next",e)},ie.prototype.throw=function(e){return this._invoke("throw",e)},ie.prototype.return=function(e){return this._invoke("return",e)};function oe(e){return new ce(e)}function se(e){return function(){return new ue(e.apply(this,arguments))}}function ue(e){var t,r;function n(t,r){try{var a=e[t](r),o=a.value,s=o instanceof ce;Promise.resolve(s?o.wrapped:o).then((function(e){s?n("return"===t?"return":"next",e):i(a.done?"return":"normal",e)}),(function(e){n("throw",e)}))}catch(e){i("throw",e)}}function i(e,i){switch(e){case"return":t.resolve({value:i,done:!0});break;case"throw":t.reject(i);break;default:t.resolve({value:i,done:!1})}(t=t.next)?n(t.key,t.arg):r=null}this._invoke=function(e,i){return new Promise((function(a,o){var s={key:e,arg:i,resolve:a,reject:o,next:null};r?r=r.next=s:(t=r=s,n(e,i))}))},"function"!=typeof e.return&&(this.return=void 0)}function ce(e){this.wrapped=e}function le(e){var t;if("undefined"!=typeof Symbol){if(Symbol.asyncIterator&&null!=(t=e[Symbol.asyncIterator]))return t.call(e);if(Symbol.iterator&&null!=(t=e[Symbol.iterator]))return t.call(e)}throw new TypeError("Object is not async iterable")}"function"==typeof Symbol&&Symbol.asyncIterator&&(ue.prototype[Symbol.asyncIterator]=function(){return this}),ue.prototype.next=function(e){return this._invoke("next",e)},ue.prototype.throw=function(e){return this._invoke("throw",e)},ue.prototype.return=function(e){return this._invoke("return",e)};const{as:he}=Z["@context"];class pe{constructor({activitiesPath:e="/public/activities"}={}){this.requireUser=!0,this.activitiesPath=e}handle(e,t){const r=this,{root:n}=t,{settings:{queryEngine:i}}=e;return(e=he+"Like")=>c(se((function*(){let a;try{a=yield oe(n.user)}catch(e){if(r.requireUser)throw e;return}const o=yield oe(n.user.pim$storage),s=new URL(r.activitiesPath,o||a).href,u=[],c=Object(l.namedNode)(a);e=Object(l.namedNode)(e);var h,p=!0,d=!1;try{for(var f,y,m=le(t);p=(f=yield oe(m.next())).done,y=yield oe(f.value),!p;p=!0){const t=y;if("NamedNode"===t.termType){const n={actor:c,type:e,object:t};var g,_=!0,b=!1;try{for(var v,w,E=le(r.createResults(n,s,i));_=(v=yield oe(E.next())).done,w=yield oe(v.value),!_;_=!0){const e=w;u.push(e)}}catch(e){b=!0,g=e}finally{try{_||null==E.return||(yield oe(E.return()))}finally{if(b)throw g}}}}}catch(e){d=!0,h=e}finally{try{p||null==m.return||(yield oe(m.return()))}finally{if(d)throw h}}for(const e of yield oe(r.processResults(u,s,i)))yield n[e.value]})))}async processResults(e){return e}}const{termToString:de}=D.prototype;function fe(e,t){for(const r in t)e=e.replace(new RegExp("_:"+r,"g"),de(t[r]));return e}function ye(...e){return{size:e.length,values:()=>({next:()=>({value:e.shift()})})}}function me(e){return new _e(e)}function ge(e){var t,r;function n(t,r){try{var a=e[t](r),o=a.value,s=o instanceof _e;Promise.resolve(s?o.wrapped:o).then((function(e){s?n("return"===t?"return":"next",e):i(a.done?"return":"normal",e)}),(function(e){n("throw",e)}))}catch(e){i("throw",e)}}function i(e,i){switch(e){case"return":t.resolve({value:i,done:!0});break;case"throw":t.reject(i);break;default:t.resolve({value:i,done:!1})}(t=t.next)?n(t.key,t.arg):r=null}this._invoke=function(e,i){return new Promise((function(a,o){var s={key:e,arg:i,resolve:a,reject:o,next:null};r?r=r.next=s:(t=r=s,n(e,i))}))},"function"!=typeof e.return&&(this.return=void 0)}function _e(e){this.wrapped=e}"function"==typeof Symbol&&Symbol.asyncIterator&&(ge.prototype[Symbol.asyncIterator]=function(){return this}),ge.prototype.next=function(e){return this._invoke("next",e)},ge.prototype.throw=function(e){return this._invoke("throw",e)},ge.prototype.return=function(e){return this._invoke("return",e)};var be=r(87);function ve(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),r.push.apply(r,n)}return r}function we(e,t,r){return t in e?Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[t]=r,e}function Ee(e){var t,r;function n(t,r){try{var a=e[t](r),o=a.value,s=o instanceof Se;Promise.resolve(s?o.wrapped:o).then((function(e){s?n("return"===t?"return":"next",e):i(a.done?"return":"normal",e)}),(function(e){n("throw",e)}))}catch(e){i("throw",e)}}function i(e,i){switch(e){case"return":t.resolve({value:i,done:!0});break;case"throw":t.reject(i);break;default:t.resolve({value:i,done:!1})}(t=t.next)?n(t.key,t.arg):r=null}this._invoke=function(e,i){return new Promise((function(a,o){var s={key:e,arg:i,resolve:a,reject:o,next:null};r?r=r.next=s:(t=r=s,n(e,i))}))},"function"!=typeof e.return&&(this.return=void 0)}function Se(e){this.wrapped=e}"function"==typeof Symbol&&Symbol.asyncIterator&&(Ee.prototype[Symbol.asyncIterator]=function(){return this}),Ee.prototype.next=function(e){return this._invoke("next",e)},Ee.prototype.throw=function(e){return this._invoke("throw",e)},Ee.prototype.return=function(e){return this._invoke("return",e)};const{xsd:Te}=Z["@context"];function xe(e){return new Re(e)}function Oe(e){var t,r;function n(t,r){try{var a=e[t](r),o=a.value,s=o instanceof Re;Promise.resolve(s?o.wrapped:o).then((function(e){s?n("return"===t?"return":"next",e):i(a.done?"return":"normal",e)}),(function(e){n("throw",e)}))}catch(e){i("throw",e)}}function i(e,i){switch(e){case"return":t.resolve({value:i,done:!0});break;case"throw":t.reject(i);break;default:t.resolve({value:i,done:!1})}(t=t.next)?n(t.key,t.arg):r=null}this._invoke=function(e,i){return new Promise((function(a,o){var s={key:e,arg:i,resolve:a,reject:o,next:null};r?r=r.next=s:(t=r=s,n(e,i))}))},"function"!=typeof e.return&&(this.return=void 0)}function Re(e){this.wrapped=e}"function"==typeof Symbol&&Symbol.asyncIterator&&(Oe.prototype[Symbol.asyncIterator]=function(){return this}),Oe.prototype.next=function(e){return this._invoke("next",e)},Oe.prototype.throw=function(e){return this._invoke("throw",e)},Oe.prototype.return=function(e){return this._invoke("return",e)};const Ae=["?subject","?predicate","?object"];class Ie{constructor(e,t){this._paths=e,this._source=t}supports(e){return"string"==typeof e}resolve(e,{settings:t}){return this._createSubjectPath(Object(l.namedNode)(e),t)}_createSubjectPath(e,{createQueryEngine:t}){const r=t(this._source||Promise.resolve(e).catch(()=>null));return this._paths.create({queryEngine:r},{subject:e})}}function Pe(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),r.push.apply(r,n)}return r}function Ne(e){for(var t=1;tnew Y({handlers:Ne({},M),resolvers:[new Ie(this._paths,t)]}).create(e,{})}}class De extends Ie{handle({settings:e}){const t=this.getWebId().then(l.namedNode);return this._createSubjectPath(t,e)}async getWebId(){const e=await te.a.currentSession();if(!e)throw new Error("Cannot resolve user path: no user logged in");return e.webId}}function ke(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),r.push.apply(r,n)}return r}function Le(e){for(var t=1;tthis.extendContext(...e)}),Object.defineProperty(t,"then",{value:(e,t)=>this._context.then(e=>e.contextRaw).then(e,t)})}handle(){return this._exposedContext}}(Z),Be=Le(Le({},M),{},{put:new class{handle(e,t){const{root:r}=t;return(e="",n="text/turtle")=>c(ne((function*(){const i=new Set;var a,o=!0,s=!1;try{for(var u,c,l=function(e){var t;if("undefined"!=typeof Symbol){if(Symbol.asyncIterator&&null!=(t=e[Symbol.asyncIterator]))return t.call(e);if(Symbol.iterator&&null!=(t=e[Symbol.iterator]))return t.call(e)}throw new TypeError("Object is not async iterable")}(t);o=(u=yield re(l.next())).done,c=yield re(u.value),!o;o=!0){const e=c,t=/^https?:\/\/[^#]+/.exec(e?e.value:"");t&&i.add(t[0])}}catch(e){s=!0,a=e}finally{try{o||null==l.return||(yield re(l.return()))}finally{if(s)throw a}}const h=[...i].map(t=>te.a.fetch(t,{method:"PUT",headers:{"Content-Type":n},body:e}));yield re(Promise.all(h));for(const e of i)yield r[e]})))}},delete:new class extends b{async extractObjects(e,t,r){const n=await super.extractObjects(e,t,r),i=[];var a,o=!0,s=!1;try{for(var u,c,l=function(e){var t;if("undefined"!=typeof Symbol){if(Symbol.asyncIterator&&null!=(t=e[Symbol.asyncIterator]))return t.call(e);if(Symbol.iterator&&null!=(t=e[Symbol.iterator]))return t.call(e)}throw new TypeError("Object is not async iterable")}(t);o=(u=await l.next()).done,c=await u.value,!o;o=!0){const e=c;"BlankNode"!==e.termType&&i.push(e)}}catch(e){s=!0,a=e}finally{try{o||null==l.return||await l.return()}finally{if(s)throw a}}return n?i.filter(e=>n.some(t=>t.equals(e))):i}},findActivity:new class extends pe{constructor(...e){super(...e),this.requireUser=!1}createResults(e,t,r){return(n=function*(){const n=fe("SELECT ?activity WHERE {\n ?activity a _:type;\n _:actor;\n _:object.\n}\n",e);var i,a=!0,o=!1;try{for(var s,u,c=function(e){var t;if("undefined"!=typeof Symbol){if(Symbol.asyncIterator&&null!=(t=e[Symbol.asyncIterator]))return t.call(e);if(Symbol.iterator&&null!=(t=e[Symbol.iterator]))return t.call(e)}throw new TypeError("Object is not async iterable")}(r.execute(n,t));a=(s=yield me(c.next())).done,u=yield me(s.value),!a;a=!0){const e=u;yield e.values().next().value}}catch(e){o=!0,i=e}finally{try{a||null==c.return||(yield me(c.return()))}finally{if(o)throw i}}},function(){return new ge(n.apply(this,arguments))})();var n}},likes:(e,t)=>t.findActivity(Fe+"Like"),dislikes:(e,t)=>t.findActivity(Fe+"Dislike"),follows:(e,t)=>t.findActivity(Fe+"Follow"),createActivity:new class extends pe{createResults(e,t){return(r=function*(){const r=Object(l.namedNode)(new URL("#"+Object(be.a)(),t).href),n=Object(l.literal)((new Date).toISOString(),Te+"dateTime"),i=fe("_:id a _:type;\n _:actor;\n _:object;\n _:published.\n",e=function(e){for(var t=1;te.insert).join("")}}`;return await r.executeUpdate(n,t).next(),e.map(e=>e.id)}},like:(e,t)=>()=>t.createActivity(Fe+"Like"),dislike:(e,t)=>()=>t.createActivity(Fe+"Dislike"),follow:(e,t)=>()=>t.createActivity(Fe+"Follow"),deleteActivity:new class extends pe{createResults(e,t,r){return(n=function*(){const n=fe("SELECT ?subject ?predicate ?object WHERE {\n ?subject a _:type;\n _:actor;\n _:object.\n ?subject ?predicate ?object.\n}\n",e);var i,a=!0,o=!1;try{for(var s,u,c=function(e){var t;if("undefined"!=typeof Symbol){if(Symbol.asyncIterator&&null!=(t=e[Symbol.asyncIterator]))return t.call(e);if(Symbol.iterator&&null!=(t=e[Symbol.iterator]))return t.call(e)}throw new TypeError("Object is not async iterable")}(r.execute(n,t));a=(s=yield xe(c.next())).done,u=yield xe(s.value),!a;a=!0){const e=u,t=Ae.map(t=>de(e.get(t)));yield t.join(" ")+".\n"}}catch(e){o=!0,i=e}finally{try{a||null==c.return||(yield xe(c.return()))}finally{if(o)throw i}}},function(){return new Oe(n.apply(this,arguments))})();var n}async processResults(e,t,r){const n=`DELETE {\n${e.join("")}}`;return await r.executeUpdate(n,t).next(),[]}},unlike:(e,t)=>()=>t.deleteActivity(Fe+"Like"),undislike:(e,t)=>()=>t.deleteActivity(Fe+"Dislike"),unfollow:(e,t)=>()=>t.deleteActivity(Fe+"Follow")});function Ue(e){var t,r;function n(t,r){try{var a=e[t](r),o=a.value,s=o instanceof He;Promise.resolve(s?o.wrapped:o).then((function(e){s?n("return"===t?"return":"next",e):i(a.done?"return":"normal",e)}),(function(e){n("throw",e)}))}catch(e){i("throw",e)}}function i(e,i){switch(e){case"return":t.resolve({value:i,done:!0});break;case"throw":t.reject(i);break;default:t.resolve({value:i,done:!1})}(t=t.next)?n(t.key,t.arg):r=null}this._invoke=function(e,i){return new Promise((function(a,o){var s={key:e,arg:i,resolve:a,reject:o,next:null};r?r=r.next=s:(t=r=s,n(e,i))}))},"function"!=typeof e.return&&(this.return=void 0)}function Ve(e){return new He(e)}function He(e){this.wrapped=e}"function"==typeof Symbol&&Symbol.asyncIterator&&(Ue.prototype[Symbol.asyncIterator]=function(){return this}),Ue.prototype.next=function(e){return this._invoke("next",e)},Ue.prototype.throw=function(e){return this._invoke("throw",e)},Ue.prototype.return=function(e){return this._invoke("return",e)};class Ge{constructor(e,t){this._source=this.getUpdateSource(e),this._source.catch(()=>null),this._engine=t}execute(e,t){var r,n=this;return(r=function*(){yield*function(e,t){var r={},n=!1;function i(r,i){return n=!0,i=new Promise((function(t){t(e[r](i))})),{done:!1,value:t(i)}}return"function"==typeof Symbol&&Symbol.iterator&&(r[Symbol.iterator]=function(){return this}),r.next=function(e){return n?(n=!1,e):i("next",e)},"function"==typeof e.throw&&(r.throw=function(e){if(n)throw n=!1,e;return i("throw",e)}),"function"==typeof e.return&&(r.return=function(e){return n?(n=!1,e):i("return",e)}),r}(function(e){var t;if("undefined"!=typeof Symbol){if(Symbol.asyncIterator&&null!=(t=e[Symbol.asyncIterator]))return t.call(e);if(Symbol.iterator&&null!=(t=e[Symbol.iterator]))return t.call(e)}throw new TypeError("Object is not async iterable")}(/^\s*(?:INSERT|DELETE)/i.test(e)?n.executeUpdate(e,t):n._engine.execute(e,t)),Ve)},function(){return new Ue(r.apply(this,arguments))})()}executeUpdate(e,t){let r=!1;return{next:async()=>{if(r)return{done:r};r=!0;const n=await(t?this.getUpdateSource(t):this._source),{ok:i,status:a,statusText:o}=await te.a.fetch(n,{method:"PATCH",headers:{"Content-Type":"application/sparql-update"},body:e});if(!i)throw new Error(`Update query failed (${a}): ${o}`);return await this.clearCache(n),{value:ye({ok:i})}},return:ze,throw:ze,[Symbol.asyncIterator](){return this}}}async getUpdateSource(e){let t=await e;if(t instanceof URL?t=t.href:t&&"string"==typeof t.value&&(t=t.value),"string"==typeof t){if(!/^https?:\/\//.test(t))throw new Error("Can only update an HTTP(S) document.");return t.replace(/#.*/,"")}if(Array.isArray(t)){if(t=await Promise.all(t.map(e=>this.getUpdateSource(e))),t=[].concat(...t).filter(e=>!!e),1!==t.length)throw new Error("Can only update a single source.");return t[0]}throw new Error("Unsupported source: "+t)}clearCache(e){return this._engine.clearCache(e)}}function ze(){}var Qe=r(212),$e=r.n(Qe);var Xe=class{constructor(e){this._engine=$e.a,this._sources=this.parseSources(e),this._sources.catch(()=>null)}async*execute(e,t){/^\s*(?:INSERT|DELETE)/i.test(e)&&(yield*this.executeUpdate(e,t));const r=await(t?this.parseSources(t):this._sources);if(0!==r.length){const t=await this._engine.query(e,{sources:r});yield*this.streamToAsyncIterable(t.bindingsStream)}}async*executeUpdate(e,t){throw new Error("SPARQL UPDATE queries are unsupported, received: "+e)}async parseSources(e){let t=await e;if(!t)return[];if(t instanceof URL?t=t.href:"NamedNode"===t.termType&&(t=t.value),"string"==typeof t)t=[t.replace(/#.*/,"")];else if(Array.isArray(t))t=await async function(e){return[].concat(...await Promise.all(e))}(t.map(e=>this.parseSources(e)));else if("function"==typeof t.match)t=[Object.assign({type:"rdfjsSource"},t)];else{if("string"!=typeof e.value)throw new Error("Unsupported source: "+e);t=[t]}return t.map(e=>({value:e.value||e,type:e.type}))}streamToAsyncIterable(e){let t;return e.once("error",e=>t=e),{next:()=>new Promise(r),[Symbol.asyncIterator](){return this}};function r(r,n){if(t)return n(t);if(e.ended)return r({done:!0});function i(e){a(null,e,!0)}function a(t,o,s){return e.removeListener("data",i),e.removeListener("end",a),e.removeListener("error",a),t?n(t):r({value:o,done:!s})}e.on("data",i),e.on("end",a),e.on("error",a)}}async clearCache(e){await this._engine.invalidateHttpCache(e)}};t.default=new function(e){let t=null;const r=new Y({handlers:Le(Le({},Be),{},{root:()=>t}),resolvers:[qe]});return t=new Y(Le({handlers:Le(Le({},M),{},{from:new je(r),user:new De(r),clearCache:({settings:e})=>t=>e.createQueryEngine().clearCache(t),context:qe}),resolvers:[new Ie(r)]},e)).create(),t}({createQueryEngine:e=>new Ge(e,new Xe(e))})}]).default; +const r=[1518500249,1859775393,2400959708,3395469782],n=Math.pow(2,35);function i(e,t,r,n){switch(e){case 0:return t&r^~t&n;case 1:return t^r^n;case 2:return t&r^t&n^r&n;case 3:return t^r^n}}function a(e,t){return e<>>32-t}function s(e){let t="";for(let r=7;r>=0;r--){t+=(e>>>4*r&15).toString(16)}return t}},function(e,t,r){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.ActorQueryOperationExtend=void 0;const n=r(1),i=r(5),a=r(48);class s extends n.ActorQueryOperationTypedMediated{constructor(e){super(e,"extend")}async testOperation(e,t){Boolean(new a.AsyncEvaluator(e.expression));return!0}async runOperation(e,t){const{expression:r,input:s,variable:o}=e,c=n.ActorQueryOperation.getSafeBindings(await this.mediatorQueryOperation.mediate({operation:s,context:t})),u=i.termToString(o),l=Object.assign({},n.ActorQueryOperation.getExpressionContext(t,this.mediatorQueryOperation)),d=new a.AsyncEvaluator(r,l),p=c.variables.concat([u]),h=c.bindingsStream.transform({transform:async(e,r,n)=>{try{const t=await d.evaluate(e);n(e.set(u,t))}catch(r){a.isExpressionError(r)?(n(e),this.logWarn(t,`Expression error for extend operation with bindings '${JSON.stringify(e)}'`)):h.emit("error",r)}r()}}),{metadata:f}=c;return{type:"bindings",bindingsStream:h,metadata:f,variables:p,canContainUndefs:c.canContainUndefs}}}t.ActorQueryOperationExtend=s},function(e,t,r){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.AsyncEvaluator=void 0;const n=r(39),i=r(188);t.AsyncEvaluator=class{constructor(e,t={}){this.algExpr=e,this.config=t,this.expr=n.transformAlgebra(e);const r={now:t.now||new Date(Date.now()),baseIRI:t.baseIRI||void 0,exists:t.exists,aggregate:t.aggregate};this.evaluator=new i.AsyncRecursiveEvaluator(r)}async evaluate(e){return(await this.evaluator.evaluate(this.expr,e)).toRDF()}async evaluateAsEBV(e){return(await this.evaluator.evaluate(this.expr,e)).coerceEBV()}async evaluateAsInternal(e){return await this.evaluator.evaluate(this.expr,e)}}},function(e,t,r){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.Variable=void 0;const n=r(24);t.Variable=class{constructor(e){this.expressionType=n.ExpressionType.Variable,this.name=e}}},function(e,t,r){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.NonLexicalLiteral=t.StringLiteral=t.LangStringLiteral=t.DateTimeLiteral=t.BooleanLiteral=t.NumericLiteral=t.Literal=t.BlankNode=t.NamedNode=t.Term=void 0;const n=r(6),i=r(24),a=r(16),s=r(19),o=new n.DataFactory;class c{constructor(){this.expressionType=i.ExpressionType.Term}str(){throw new s.InvalidArgumentTypes([this],a.RegularOperator.STR)}coerceEBV(){throw new s.EBVCoercionError(this)}}t.Term=c;t.NamedNode=class extends c{constructor(e){super(),this.value=e,this.termType="namedNode"}toRDF(){return o.namedNode(this.value)}str(){return this.value}};class u extends c{constructor(e){super(),this.value=e,this.termType="blankNode",this.value=e}static nextID(){return u._nextID+=1,u.nextID.toString()}toRDF(){return o.blankNode(this.value)}}t.BlankNode=u,u._nextID=0;class l extends c{constructor(e,t,r,n){super(),this.typedValue=e,this.typeURL=t,this.strValue=r,this.language=n,this.termType="literal",this.type=a.type(t.value)}toRDF(){return o.literal(this.strValue||this.str(),this.language||this.typeURL)}str(){return this.strValue||this.typedValue.toString()}}t.Literal=l;class d extends l{coerceEBV(){return!!this.typedValue}toRDF(){const e=super.toRDF();return isFinite(this.typedValue)||(e.value=e.value.replace("Infinity","INF")),e}str(){return this.strValue||d.specificFormatters[this.type](this.typedValue)}}t.NumericLiteral=d,d.specificFormatters={integer:e=>e.toFixed(),float:e=>e.toString(),decimal:e=>e.toString(),double:e=>{const t=e.toExponential(),[r,n]=t.split("e"),i=n.replace(/\+/,"");return`${r.match(/\./)?r:r+".0"}E${i}`}};t.BooleanLiteral=class extends l{constructor(e,t){super(e,a.make(a.TypeURL.XSD_BOOLEAN),t),this.typedValue=e,this.strValue=t}coerceEBV(){return!!this.typedValue}};t.DateTimeLiteral=class extends l{constructor(e,t){super(e,a.make(a.TypeURL.XSD_DATE_TIME),t),this.typedValue=e,this.strValue=t}};t.LangStringLiteral=class extends l{constructor(e,t){super(e,a.make(a.TypeURL.RDF_LANG_STRING),e,t),this.typedValue=e,this.language=t}coerceEBV(){return 0!==this.strValue.length}};t.StringLiteral=class extends l{constructor(e){super(e,a.make(a.TypeURL.XSD_STRING),e),this.typedValue=e}coerceEBV(){return 0!==this.strValue.length}};t.NonLexicalLiteral=class extends l{constructor(e,t,r,n){super(e,t,r,n),this.typedValue=void 0,this.type="nonlexical",this.shouldBeCategory=a.type(t.value)}coerceEBV(){if(a.PrimitiveNumericTypes.contains(this.shouldBeCategory)||"boolean"===this.shouldBeCategory)return!1;throw new s.EBVCoercionError(this)}}},function(e,t,r){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.Operator=void 0;const n=r(24);t.Operator=class{constructor(e,t){this.args=e,this.apply=t,this.expressionType=n.ExpressionType.Operator}}},function(e,t,r){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.SpecialOperator=void 0;const n=r(24);t.SpecialOperator=class{constructor(e,t,r){this.args=e,this.applyAsync=t,this.applySync=r,this.expressionType=n.ExpressionType.SpecialOperator}}},function(e,t,r){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.Named=void 0;const n=r(24);t.Named=class{constructor(e,t,r){this.name=e,this.args=t,this.apply=r,this.expressionType=n.ExpressionType.Named}}},function(e,t,r){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.Aggregate=void 0;const n=r(24);t.Aggregate=class{constructor(e,t){this.name=e,this.expression=t,this.expressionType=n.ExpressionType.Aggregate}}},function(e,t,r){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.Existence=void 0;const n=r(24);t.Existence=class{constructor(e){this.expression=e,this.expressionType=n.ExpressionType.Existence}}},function(e,t,r){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.namedDefinitions=void 0;const n=r(23),i=r(19),a=r(16),s=r(55),o=r(56),c={arity:1,overloads:o.declare().onTerm1(e=>o.string(e.str())).collect()},u={arity:1,overloads:o.declare().onNumeric1(e=>o.number(e.typedValue)).onBoolean1Typed(e=>o.number(e?1:0)).onUnary("string",e=>{const t=s.parseXSDFloat(e.str());if(!t)throw new i.CastError(e,a.TypeURL.XSD_FLOAT);return o.number(t)}).copy({from:["string"],to:["nonlexical"]}).collect()},l={arity:1,overloads:o.declare().onNumeric1(e=>o.number(e.typedValue,a.TypeURL.XSD_DOUBLE)).onBoolean1Typed(e=>o.number(e?1:0,a.TypeURL.XSD_DOUBLE)).onUnary("string",e=>{const t=s.parseXSDFloat(e.str());if(!t)throw new i.CastError(e,a.TypeURL.XSD_DOUBLE);return o.number(t,a.TypeURL.XSD_DOUBLE)}).copy({from:["string"],to:["nonlexical"]}).collect()},d={arity:1,overloads:o.declare().onNumeric1(e=>{const t=s.parseXSDDecimal(e.str());if(!t)throw new i.CastError(e,a.TypeURL.XSD_DECIMAL);return o.number(t,a.TypeURL.XSD_DECIMAL)}).copy({from:["integer"],to:["string"]}).copy({from:["integer"],to:["nonlexical"]}).onBoolean1Typed(e=>o.number(e?1:0,a.TypeURL.XSD_DECIMAL)).collect()},p={arity:1,overloads:o.declare().onBoolean1Typed(e=>o.number(e?1:0,a.TypeURL.XSD_INTEGER)).onNumeric1(e=>{const t=s.parseXSDInteger(e.str());if(!t)throw new i.CastError(e,a.TypeURL.XSD_INTEGER);return o.number(t,a.TypeURL.XSD_INTEGER)}).copy({from:["integer"],to:["string"]}).copy({from:["integer"],to:["nonlexical"]}).collect()},h={arity:1,overloads:o.declare().onUnary("date",e=>e).onUnary("string",e=>{const t=new Date(e.str());if(isNaN(t.getTime()))throw new i.CastError(e,a.TypeURL.XSD_DATE_TIME);return o.dateTime(t,e.str())}).copy({from:["string"],to:["nonlexical"]}).collect()},f={arity:1,overloads:o.declare().onNumeric1(e=>o.bool(e.coerceEBV())).onUnary("boolean",e=>e).onUnary("string",e=>{const t=e.str();if("true"!==t&&"false"!==t)throw new i.CastError(e,a.TypeURL.XSD_BOOLEAN);return o.bool("true"===t)}).copy({from:["string"],to:["nonlexical"]}).collect()},m={[a.TypeURL.XSD_STRING]:c,[a.TypeURL.XSD_FLOAT]:u,[a.TypeURL.XSD_DOUBLE]:l,[a.TypeURL.XSD_DECIMAL]:d,[a.TypeURL.XSD_INTEGER]:p,[a.TypeURL.XSD_DATE_TIME]:h,[a.TypeURL.XSD_DATE]:h,[a.TypeURL.XSD_BOOLEAN]:f};t.namedDefinitions=n.Map(m)},function(e,t,r){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.definitions=void 0;const n=r(6),i=r(423),a=r(432),s=r(214),o=r(23),c=r(40),u=r(16),l=r(19),d=r(55),p=r(433),h=r(16),f=r(39),m=r(56),g=new n.DataFactory;function y(e,t){const r=e.toRDF(),n=t.toRDF(),i=r.equals(n);if("Literal"===r.termType&&"Literal"===n.termType)throw new l.RDFEqualTypeError([e,t]);return i}const b=(e,t)=>m.bool(p.matches(e,t)),_=(e,t,r)=>m.bool(p.matches(e,t,r));function v(e){return d.parseXSDDateTime(e.str())}const w={"!":{arity:1,overloads:m.declare().onTerm1(e=>m.bool(!e.coerceEBV())).collect()},UPLUS:{arity:1,overloads:m.declare().onNumeric1(e=>m.number(e.typedValue,e.typeURL.value)).collect()},UMINUS:{arity:1,overloads:m.declare().onNumeric1(e=>m.number(-e.typedValue,e.typeURL.value)).collect()},"*":{arity:2,overloads:m.declare().arithmetic((e,t)=>a.Decimal.mul(e,t).toNumber()).collect()},"/":{arity:2,overloads:m.declare().arithmetic((e,t)=>a.Decimal.div(e,t).toNumber()).onBinaryTyped(["integer","integer"],(e,t)=>{if(0===t)throw new l.ExpressionError("Integer division by 0");return m.number(a.Decimal.div(e,t).toNumber(),h.TypeURL.XSD_DECIMAL)}).collect()},"+":{arity:2,overloads:m.declare().arithmetic((e,t)=>a.Decimal.add(e,t).toNumber()).collect()},"-":{arity:2,overloads:m.declare().arithmetic((e,t)=>a.Decimal.sub(e,t).toNumber()).collect()},"=":{arity:2,overloads:m.declare().numberTest((e,t)=>e===t).stringTest((e,t)=>0===e.localeCompare(t)).booleanTest((e,t)=>e===t).dateTimeTest((e,t)=>e.getTime()===t.getTime()).set(["term","term"],([e,t])=>m.bool(y(e,t))).collect()},"!=":{arity:2,overloads:m.declare().numberTest((e,t)=>e!==t).stringTest((e,t)=>0!==e.localeCompare(t)).booleanTest((e,t)=>e!==t).dateTimeTest((e,t)=>e.getTime()!==t.getTime()).set(["term","term"],([e,t])=>m.bool(!y(e,t))).collect()},"<":{arity:2,overloads:m.declare().numberTest((e,t)=>e-1===e.localeCompare(t)).booleanTest((e,t)=>ee.getTime()":{arity:2,overloads:m.declare().numberTest((e,t)=>e>t).stringTest((e,t)=>1===e.localeCompare(t)).booleanTest((e,t)=>e>t).dateTimeTest((e,t)=>e.getTime()>t.getTime()).collect()},"<=":{arity:2,overloads:m.declare().numberTest((e,t)=>e<=t).stringTest((e,t)=>1!==e.localeCompare(t)).booleanTest((e,t)=>e<=t).dateTimeTest((e,t)=>e.getTime()<=t.getTime()).collect()},">=":{arity:2,overloads:m.declare().numberTest((e,t)=>e>=t).stringTest((e,t)=>-1!==e.localeCompare(t)).booleanTest((e,t)=>e>=t).dateTimeTest((e,t)=>e.getTime()>=t.getTime()).collect()},isiri:{arity:1,overloads:m.declare().onTerm1(e=>m.bool("namedNode"===e.termType)).collect()},isblank:{arity:1,overloads:m.declare().onTerm1(e=>m.bool("blankNode"===e.termType)).collect()},isliteral:{arity:1,overloads:m.declare().onTerm1(e=>m.bool("literal"===e.termType)).collect()},isnumeric:{arity:1,overloads:m.declare().onNumeric1(e=>m.bool(!0)).onTerm1(e=>m.bool(!1)).collect()},str:{arity:1,overloads:m.declare().onTerm1(e=>m.string(e.str())).collect()},lang:{arity:1,overloads:m.declare().onLiteral1(e=>m.string(e.language||"")).collect()},datatype:{arity:1,overloads:m.declare().onLiteral1(e=>new c.NamedNode(e.typeURL.value)).collect()},strdt:{arity:2,overloads:m.declare().onBinary(["string","namedNode"],(e,t)=>{const r=g.literal(e.typedValue,g.namedNode(t.value));return f.transformLiteral(r)}).collect()},strlang:{arity:2,overloads:m.declare().onBinaryTyped(["string","string"],(e,t)=>new c.LangStringLiteral(e,t.toLowerCase())).collect()},uuid:{arity:0,overloads:m.declare().set([],()=>new c.NamedNode("urn:uuid:"+s.v4())).collect()},struuid:{arity:0,overloads:m.declare().set([],()=>m.string(s.v4())).collect()},strlen:{arity:1,overloads:m.declare().onStringly1(e=>m.number(e.typedValue.length,h.TypeURL.XSD_INTEGER)).collect()},substr:{arity:[2,3],overloads:m.declare().onBinaryTyped(["string","integer"],(e,t)=>m.string(e.substr(t-1))).onBinary(["langString","integer"],(e,t)=>{const r=e.typedValue.substr(t.typedValue-1);return m.langString(r,e.language)}).onTernaryTyped(["string","integer","integer"],(e,t,r)=>m.string(e.substr(t-1,r))).onTernary(["langString","integer","integer"],(e,t,r)=>{const n=e.typedValue.substr(t.typedValue-1,r.typedValue);return m.langString(n,e.language)}).collect()},ucase:{arity:1,overloads:m.declare().onString1Typed(e=>m.string(e.toUpperCase())).onLangString1(e=>m.langString(e.typedValue.toUpperCase(),e.language)).collect()},lcase:{arity:1,overloads:m.declare().onString1Typed(e=>m.string(e.toLowerCase())).onLangString1(e=>m.langString(e.typedValue.toLowerCase(),e.language)).collect()},strstarts:{arity:2,overloads:m.declare().onBinaryTyped(["string","string"],(e,t)=>m.bool(e.startsWith(t))).onBinaryTyped(["langString","string"],(e,t)=>m.bool(e.startsWith(t))).onBinary(["langString","langString"],(e,t)=>{if(e.language!==t.language)throw new l.IncompatibleLanguageOperation(e,t);return m.bool(e.typedValue.startsWith(t.typedValue))}).collect()},strends:{arity:2,overloads:m.declare().onBinaryTyped(["string","string"],(e,t)=>m.bool(e.endsWith(t))).onBinaryTyped(["langString","string"],(e,t)=>m.bool(e.endsWith(t))).onBinary(["langString","langString"],(e,t)=>{if(e.language!==t.language)throw new l.IncompatibleLanguageOperation(e,t);return m.bool(e.typedValue.endsWith(t.typedValue))}).collect()},contains:{arity:2,overloads:m.declare().onBinaryTyped(["string","string"],(e,t)=>m.bool(e.includes(t))).onBinaryTyped(["langString","string"],(e,t)=>m.bool(e.includes(t))).onBinary(["langString","langString"],(e,t)=>{if(e.language!==t.language)throw new l.IncompatibleLanguageOperation(e,t);return m.bool(e.typedValue.includes(t.typedValue))}).collect()},strbefore:{arity:2,overloads:m.declare().onBinaryTyped(["string","string"],(e,t)=>m.string(e.substr(0,e.indexOf(t)))).onBinary(["langString","string"],(e,t)=>{const[r,n]=[e.typedValue,t.typedValue],i=e.typedValue.substr(0,r.indexOf(n));return i||!n?m.langString(i,e.language):m.string(i)}).onBinary(["langString","langString"],(e,t)=>{if(e.language!==t.language)throw new l.IncompatibleLanguageOperation(e,t);const[r,n]=[e.typedValue,t.typedValue],i=e.typedValue.substr(0,r.indexOf(n));return i||!n?m.langString(i,e.language):m.string(i)}).collect()},strafter:{arity:2,overloads:m.declare().onBinaryTyped(["string","string"],(e,t)=>m.string(e.substr(e.indexOf(t)).substr(t.length))).onBinary(["langString","string"],(e,t)=>{const[r,n]=[e.typedValue,t.typedValue],i=r.substr(r.indexOf(n)).substr(n.length);return i||!n?m.langString(i,e.language):m.string(i)}).onBinary(["langString","langString"],(e,t)=>{if(e.language!==t.language)throw new l.IncompatibleLanguageOperation(e,t);const[r,n]=[e.typedValue,t.typedValue],i=r.substr(r.indexOf(n)).substr(n.length);return i||!n?m.langString(i,e.language):m.string(i)}).collect()},encode_for_uri:{arity:1,overloads:m.declare().onStringly1Typed(e=>m.string(encodeURI(e))).collect()},langmatches:{arity:2,overloads:m.declare().onBinaryTyped(["string","string"],(e,t)=>m.bool(p.langMatches(e,t))).collect()},regex:{arity:[2,3],overloads:m.declare().onBinaryTyped(["string","string"],b).onBinaryTyped(["langString","string"],b).onTernaryTyped(["string","string","string"],_).onTernaryTyped(["langString","string","string"],_).collect()},replace:{arity:[3,4],overloads:m.declare().onTernaryTyped(["string","string","string"],(e,t,r)=>m.string(p.replace(e,t,r))).set(["langString","string","string"],([e,t,r])=>{const n=p.replace(e.typedValue,t.typedValue,r.typedValue);return m.langString(n,e.language)}).onQuaternaryTyped(["string","string","string","string"],(e,t,r,n)=>m.string(p.replace(e,t,r,n))).set(["langString","string","string","string"],([e,t,r,n])=>{const i=p.replace(e.typedValue,t.typedValue,r.typedValue,n.typedValue);return m.langString(i,e.language)}).collect()},abs:{arity:1,overloads:m.declare().onNumeric1(e=>m.number(Math.abs(e.typedValue),e.typeURL.value)).collect()},round:{arity:1,overloads:m.declare().onNumeric1(e=>m.number(Math.round(e.typedValue),e.typeURL.value)).collect()},ceil:{arity:1,overloads:m.declare().onNumeric1(e=>m.number(Math.ceil(e.typedValue),e.typeURL.value)).collect()},floor:{arity:1,overloads:m.declare().onNumeric1(e=>m.number(Math.floor(e.typedValue),e.typeURL.value)).collect()},rand:{arity:0,overloads:m.declare().set([],()=>m.number(Math.random(),h.TypeURL.XSD_DOUBLE)).collect()},year:{arity:1,overloads:m.declare().onDateTime1(e=>m.number(Number(v(e).year),h.TypeURL.XSD_INTEGER)).collect()},month:{arity:1,overloads:m.declare().onDateTime1(e=>m.number(Number(v(e).month),h.TypeURL.XSD_INTEGER)).collect()},day:{arity:1,overloads:m.declare().onDateTime1(e=>m.number(Number(v(e).day),h.TypeURL.XSD_INTEGER)).collect()},hours:{arity:1,overloads:m.declare().onDateTime1(e=>m.number(Number(v(e).hours),h.TypeURL.XSD_INTEGER)).collect()},minutes:{arity:1,overloads:m.declare().onDateTime1(e=>m.number(Number(v(e).minutes),h.TypeURL.XSD_INTEGER)).collect()},seconds:{arity:1,overloads:m.declare().onDateTime1(e=>m.number(Number(v(e).seconds),h.TypeURL.XSD_DECIMAL)).collect()},timezone:{arity:1,overloads:m.declare().onDateTime1(e=>{const t=p.formatDayTimeDuration(v(e).timezone);if(!t)throw new l.InvalidTimezoneCall(e.strValue);return new c.Literal(t,u.make(h.TypeURL.XSD_DAYTIME_DURATION),t)}).collect()},tz:{arity:1,overloads:m.declare().onDateTime1(e=>m.string(v(e).timezone)).collect()},md5:{arity:1,overloads:m.declare().onString1Typed(e=>m.string(i("md5").update(e).digest("hex"))).collect()},sha1:{arity:1,overloads:m.declare().onString1Typed(e=>m.string(i("sha1").update(e).digest("hex"))).collect()},sha256:{arity:1,overloads:m.declare().onString1Typed(e=>m.string(i("sha256").update(e).digest("hex"))).collect()},sha384:{arity:1,overloads:m.declare().onString1Typed(e=>m.string(i("sha384").update(e).digest("hex"))).collect()},sha512:{arity:1,overloads:m.declare().onString1Typed(e=>m.string(i("sha512").update(e).digest("hex"))).collect()}};t.definitions=o.Map(w)},function(e,t,r){"use strict";var n=r(11),i=r(424),a=r(425),s=r(426),o=r(431);function c(e){o.call(this,"digest"),this._hash=e}n(c,o),c.prototype._update=function(e){this._hash.update(e)},c.prototype._final=function(){return this._hash.digest()},e.exports=function(e){return"md5"===(e=e.toLowerCase())?new i:"rmd160"===e||"ripemd160"===e?new a:new c(s(e))}},function(e,t,r){"use strict";var n=r(11),i=r(185),a=r(15).Buffer,s=new Array(16);function o(){i.call(this,64),this._a=1732584193,this._b=4023233417,this._c=2562383102,this._d=271733878}function c(e,t){return e<>>32-t}function u(e,t,r,n,i,a,s){return c(e+(t&r|~t&n)+i+a|0,s)+t|0}function l(e,t,r,n,i,a,s){return c(e+(t&n|r&~n)+i+a|0,s)+t|0}function d(e,t,r,n,i,a,s){return c(e+(t^r^n)+i+a|0,s)+t|0}function p(e,t,r,n,i,a,s){return c(e+(r^(t|~n))+i+a|0,s)+t|0}n(o,i),o.prototype._update=function(){for(var e=s,t=0;t<16;++t)e[t]=this._block.readInt32LE(4*t);var r=this._a,n=this._b,i=this._c,a=this._d;r=u(r,n,i,a,e[0],3614090360,7),a=u(a,r,n,i,e[1],3905402710,12),i=u(i,a,r,n,e[2],606105819,17),n=u(n,i,a,r,e[3],3250441966,22),r=u(r,n,i,a,e[4],4118548399,7),a=u(a,r,n,i,e[5],1200080426,12),i=u(i,a,r,n,e[6],2821735955,17),n=u(n,i,a,r,e[7],4249261313,22),r=u(r,n,i,a,e[8],1770035416,7),a=u(a,r,n,i,e[9],2336552879,12),i=u(i,a,r,n,e[10],4294925233,17),n=u(n,i,a,r,e[11],2304563134,22),r=u(r,n,i,a,e[12],1804603682,7),a=u(a,r,n,i,e[13],4254626195,12),i=u(i,a,r,n,e[14],2792965006,17),r=l(r,n=u(n,i,a,r,e[15],1236535329,22),i,a,e[1],4129170786,5),a=l(a,r,n,i,e[6],3225465664,9),i=l(i,a,r,n,e[11],643717713,14),n=l(n,i,a,r,e[0],3921069994,20),r=l(r,n,i,a,e[5],3593408605,5),a=l(a,r,n,i,e[10],38016083,9),i=l(i,a,r,n,e[15],3634488961,14),n=l(n,i,a,r,e[4],3889429448,20),r=l(r,n,i,a,e[9],568446438,5),a=l(a,r,n,i,e[14],3275163606,9),i=l(i,a,r,n,e[3],4107603335,14),n=l(n,i,a,r,e[8],1163531501,20),r=l(r,n,i,a,e[13],2850285829,5),a=l(a,r,n,i,e[2],4243563512,9),i=l(i,a,r,n,e[7],1735328473,14),r=d(r,n=l(n,i,a,r,e[12],2368359562,20),i,a,e[5],4294588738,4),a=d(a,r,n,i,e[8],2272392833,11),i=d(i,a,r,n,e[11],1839030562,16),n=d(n,i,a,r,e[14],4259657740,23),r=d(r,n,i,a,e[1],2763975236,4),a=d(a,r,n,i,e[4],1272893353,11),i=d(i,a,r,n,e[7],4139469664,16),n=d(n,i,a,r,e[10],3200236656,23),r=d(r,n,i,a,e[13],681279174,4),a=d(a,r,n,i,e[0],3936430074,11),i=d(i,a,r,n,e[3],3572445317,16),n=d(n,i,a,r,e[6],76029189,23),r=d(r,n,i,a,e[9],3654602809,4),a=d(a,r,n,i,e[12],3873151461,11),i=d(i,a,r,n,e[15],530742520,16),r=p(r,n=d(n,i,a,r,e[2],3299628645,23),i,a,e[0],4096336452,6),a=p(a,r,n,i,e[7],1126891415,10),i=p(i,a,r,n,e[14],2878612391,15),n=p(n,i,a,r,e[5],4237533241,21),r=p(r,n,i,a,e[12],1700485571,6),a=p(a,r,n,i,e[3],2399980690,10),i=p(i,a,r,n,e[10],4293915773,15),n=p(n,i,a,r,e[1],2240044497,21),r=p(r,n,i,a,e[8],1873313359,6),a=p(a,r,n,i,e[15],4264355552,10),i=p(i,a,r,n,e[6],2734768916,15),n=p(n,i,a,r,e[13],1309151649,21),r=p(r,n,i,a,e[4],4149444226,6),a=p(a,r,n,i,e[11],3174756917,10),i=p(i,a,r,n,e[2],718787259,15),n=p(n,i,a,r,e[9],3951481745,21),this._a=this._a+r|0,this._b=this._b+n|0,this._c=this._c+i|0,this._d=this._d+a|0},o.prototype._digest=function(){this._block[this._blockOffset++]=128,this._blockOffset>56&&(this._block.fill(0,this._blockOffset,64),this._update(),this._blockOffset=0),this._block.fill(0,this._blockOffset,56),this._block.writeUInt32LE(this._length[0],56),this._block.writeUInt32LE(this._length[1],60),this._update();var e=a.allocUnsafe(16);return e.writeInt32LE(this._a,0),e.writeInt32LE(this._b,4),e.writeInt32LE(this._c,8),e.writeInt32LE(this._d,12),e},e.exports=o},function(e,t,r){"use strict";var n=r(14).Buffer,i=r(11),a=r(185),s=new Array(16),o=[0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,7,4,13,1,10,6,15,3,12,0,9,5,2,14,11,8,3,10,14,4,9,15,8,1,2,7,0,6,13,11,5,12,1,9,11,10,0,8,12,4,13,3,7,15,14,5,6,2,4,0,5,9,7,12,2,10,14,1,3,8,11,6,15,13],c=[5,14,7,0,9,2,11,4,13,6,15,8,1,10,3,12,6,11,3,7,0,13,5,10,14,15,8,12,4,9,1,2,15,5,1,3,7,14,6,9,11,8,12,2,10,0,4,13,8,6,4,1,3,11,15,0,5,12,2,13,9,7,10,14,12,15,10,4,1,5,8,7,6,2,13,14,0,3,9,11],u=[11,14,15,12,5,8,7,9,11,13,14,15,6,7,9,8,7,6,8,13,11,9,7,15,7,12,15,9,11,7,13,12,11,13,6,7,14,9,13,15,14,8,13,6,5,12,7,5,11,12,14,15,14,15,9,8,9,14,5,6,8,6,5,12,9,15,5,11,6,8,13,12,5,12,13,14,11,8,5,6],l=[8,9,9,11,13,15,15,5,7,7,8,11,14,14,12,6,9,13,15,7,12,8,9,11,7,7,12,7,6,15,13,11,9,7,15,11,8,6,6,14,12,13,5,14,13,13,7,5,15,5,8,11,14,14,6,14,6,9,12,9,12,5,15,8,8,5,12,9,12,5,14,6,8,13,6,5,15,13,11,11],d=[0,1518500249,1859775393,2400959708,2840853838],p=[1352829926,1548603684,1836072691,2053994217,0];function h(){a.call(this,64),this._a=1732584193,this._b=4023233417,this._c=2562383102,this._d=271733878,this._e=3285377520}function f(e,t){return e<>>32-t}function m(e,t,r,n,i,a,s,o){return f(e+(t^r^n)+a+s|0,o)+i|0}function g(e,t,r,n,i,a,s,o){return f(e+(t&r|~t&n)+a+s|0,o)+i|0}function y(e,t,r,n,i,a,s,o){return f(e+((t|~r)^n)+a+s|0,o)+i|0}function b(e,t,r,n,i,a,s,o){return f(e+(t&n|r&~n)+a+s|0,o)+i|0}function _(e,t,r,n,i,a,s,o){return f(e+(t^(r|~n))+a+s|0,o)+i|0}i(h,a),h.prototype._update=function(){for(var e=s,t=0;t<16;++t)e[t]=this._block.readInt32LE(4*t);for(var r=0|this._a,n=0|this._b,i=0|this._c,a=0|this._d,h=0|this._e,v=0|this._a,w=0|this._b,S=0|this._c,E=0|this._d,T=0|this._e,O=0;O<80;O+=1){var x,A;O<16?(x=m(r,n,i,a,h,e[o[O]],d[0],u[O]),A=_(v,w,S,E,T,e[c[O]],p[0],l[O])):O<32?(x=g(r,n,i,a,h,e[o[O]],d[1],u[O]),A=b(v,w,S,E,T,e[c[O]],p[1],l[O])):O<48?(x=y(r,n,i,a,h,e[o[O]],d[2],u[O]),A=y(v,w,S,E,T,e[c[O]],p[2],l[O])):O<64?(x=b(r,n,i,a,h,e[o[O]],d[3],u[O]),A=g(v,w,S,E,T,e[c[O]],p[3],l[O])):(x=_(r,n,i,a,h,e[o[O]],d[4],u[O]),A=m(v,w,S,E,T,e[c[O]],p[4],l[O])),r=h,h=a,a=f(i,10),i=n,n=x,v=T,T=E,E=f(S,10),S=w,w=A}var R=this._b+i+E|0;this._b=this._c+a+T|0,this._c=this._d+h+v|0,this._d=this._e+r+w|0,this._e=this._a+n+S|0,this._a=R},h.prototype._digest=function(){this._block[this._blockOffset++]=128,this._blockOffset>56&&(this._block.fill(0,this._blockOffset,64),this._update(),this._blockOffset=0),this._block.fill(0,this._blockOffset,56),this._block.writeUInt32LE(this._length[0],56),this._block.writeUInt32LE(this._length[1],60),this._update();var e=n.alloc?n.alloc(20):new n(20);return e.writeInt32LE(this._a,0),e.writeInt32LE(this._b,4),e.writeInt32LE(this._c,8),e.writeInt32LE(this._d,12),e.writeInt32LE(this._e,16),e},e.exports=h},function(e,t,r){(t=e.exports=function(e){e=e.toLowerCase();var r=t[e];if(!r)throw new Error(e+" is not supported (we accept pull requests)");return new r}).sha=r(427),t.sha1=r(428),t.sha224=r(429),t.sha256=r(186),t.sha384=r(430),t.sha512=r(187)},function(e,t,r){var n=r(11),i=r(41),a=r(15).Buffer,s=[1518500249,1859775393,-1894007588,-899497514],o=new Array(80);function c(){this.init(),this._w=o,i.call(this,64,56)}function u(e){return e<<30|e>>>2}function l(e,t,r,n){return 0===e?t&r|~t&n:2===e?t&r|t&n|r&n:t^r^n}n(c,i),c.prototype.init=function(){return this._a=1732584193,this._b=4023233417,this._c=2562383102,this._d=271733878,this._e=3285377520,this},c.prototype._update=function(e){for(var t,r=this._w,n=0|this._a,i=0|this._b,a=0|this._c,o=0|this._d,c=0|this._e,d=0;d<16;++d)r[d]=e.readInt32BE(4*d);for(;d<80;++d)r[d]=r[d-3]^r[d-8]^r[d-14]^r[d-16];for(var p=0;p<80;++p){var h=~~(p/20),f=0|((t=n)<<5|t>>>27)+l(h,i,a,o)+c+r[p]+s[h];c=o,o=a,a=u(i),i=n,n=f}this._a=n+this._a|0,this._b=i+this._b|0,this._c=a+this._c|0,this._d=o+this._d|0,this._e=c+this._e|0},c.prototype._hash=function(){var e=a.allocUnsafe(20);return e.writeInt32BE(0|this._a,0),e.writeInt32BE(0|this._b,4),e.writeInt32BE(0|this._c,8),e.writeInt32BE(0|this._d,12),e.writeInt32BE(0|this._e,16),e},e.exports=c},function(e,t,r){var n=r(11),i=r(41),a=r(15).Buffer,s=[1518500249,1859775393,-1894007588,-899497514],o=new Array(80);function c(){this.init(),this._w=o,i.call(this,64,56)}function u(e){return e<<5|e>>>27}function l(e){return e<<30|e>>>2}function d(e,t,r,n){return 0===e?t&r|~t&n:2===e?t&r|t&n|r&n:t^r^n}n(c,i),c.prototype.init=function(){return this._a=1732584193,this._b=4023233417,this._c=2562383102,this._d=271733878,this._e=3285377520,this},c.prototype._update=function(e){for(var t,r=this._w,n=0|this._a,i=0|this._b,a=0|this._c,o=0|this._d,c=0|this._e,p=0;p<16;++p)r[p]=e.readInt32BE(4*p);for(;p<80;++p)r[p]=(t=r[p-3]^r[p-8]^r[p-14]^r[p-16])<<1|t>>>31;for(var h=0;h<80;++h){var f=~~(h/20),m=u(n)+d(f,i,a,o)+c+r[h]+s[f]|0;c=o,o=a,a=l(i),i=n,n=m}this._a=n+this._a|0,this._b=i+this._b|0,this._c=a+this._c|0,this._d=o+this._d|0,this._e=c+this._e|0},c.prototype._hash=function(){var e=a.allocUnsafe(20);return e.writeInt32BE(0|this._a,0),e.writeInt32BE(0|this._b,4),e.writeInt32BE(0|this._c,8),e.writeInt32BE(0|this._d,12),e.writeInt32BE(0|this._e,16),e},e.exports=c},function(e,t,r){var n=r(11),i=r(186),a=r(41),s=r(15).Buffer,o=new Array(64);function c(){this.init(),this._w=o,a.call(this,64,56)}n(c,i),c.prototype.init=function(){return this._a=3238371032,this._b=914150663,this._c=812702999,this._d=4144912697,this._e=4290775857,this._f=1750603025,this._g=1694076839,this._h=3204075428,this},c.prototype._hash=function(){var e=s.allocUnsafe(28);return e.writeInt32BE(this._a,0),e.writeInt32BE(this._b,4),e.writeInt32BE(this._c,8),e.writeInt32BE(this._d,12),e.writeInt32BE(this._e,16),e.writeInt32BE(this._f,20),e.writeInt32BE(this._g,24),e},e.exports=c},function(e,t,r){var n=r(11),i=r(187),a=r(41),s=r(15).Buffer,o=new Array(160);function c(){this.init(),this._w=o,a.call(this,128,112)}n(c,i),c.prototype.init=function(){return this._ah=3418070365,this._bh=1654270250,this._ch=2438529370,this._dh=355462360,this._eh=1731405415,this._fh=2394180231,this._gh=3675008525,this._hh=1203062813,this._al=3238371032,this._bl=914150663,this._cl=812702999,this._dl=4144912697,this._el=4290775857,this._fl=1750603025,this._gl=1694076839,this._hl=3204075428,this},c.prototype._hash=function(){var e=s.allocUnsafe(48);function t(t,r,n){e.writeInt32BE(t,n),e.writeInt32BE(r,n+4)}return t(this._ah,this._al,0),t(this._bh,this._bl,8),t(this._ch,this._cl,16),t(this._dh,this._dl,24),t(this._eh,this._el,32),t(this._fh,this._fl,40),e},e.exports=c},function(e,t,r){var n=r(15).Buffer,i=r(2).Transform,a=r(49).StringDecoder;function s(e){i.call(this),this.hashMode="string"==typeof e,this.hashMode?this[e]=this._finalOrDigest:this.final=this._finalOrDigest,this._final&&(this.__final=this._final,this._final=null),this._decoder=null,this._encoding=null}r(11)(s,i),s.prototype.update=function(e,t,r){"string"==typeof e&&(e=n.from(e,t));var i=this._update(e);return this.hashMode?this:(r&&(i=this._toString(i,r)),i)},s.prototype.setAutoPadding=function(){},s.prototype.getAuthTag=function(){throw new Error("trying to get auth tag in unsupported state")},s.prototype.setAuthTag=function(){throw new Error("trying to set auth tag in unsupported state")},s.prototype.setAAD=function(){throw new Error("trying to set aad in unsupported state")},s.prototype._transform=function(e,t,r){var n;try{this.hashMode?this._update(e):this.push(this._update(e))}catch(e){n=e}finally{r(n)}},s.prototype._flush=function(e){var t;try{this.push(this.__final())}catch(e){t=e}e(t)},s.prototype._finalOrDigest=function(e){var t=this.__final()||n.alloc(0);return e&&(t=this._toString(t,e,!0)),t},s.prototype._toString=function(e,t,r){if(this._decoder||(this._decoder=new a(t),this._encoding=t),this._encoding!==t)throw new Error("can't switch encodings");var n=this._decoder.write(e);return r&&(n+=this._decoder.end()),n},e.exports=s},function(e,t,r){var n;!function(i){"use strict";var a,s,o,c=9e15,u="0123456789abcdef",l="2.3025850929940456840179914546843642076011014886287729760333279009675726096773524802359972050895982983419677840422862486334095254650828067566662873690987816894829072083255546808437998948262331985283935053089653777326288461633662222876982198867465436674744042432743651550489343149393914796194044002221051017141748003688084012647080685567743216228355220114804663715659121373450747856947683463616792101806445070648000277502684916746550586856935673420670581136429224554405758925724208241314695689016758940256776311356919292033376587141660230105703089634572075440370847469940168269282808481184289314848524948644871927809676271275775397027668605952496716674183485704422507197965004714951050492214776567636938662976979522110718264549734772662425709429322582798502585509785265383207606726317164309505995087807523710333101197857547331541421808427543863591778117054309827482385045648019095610299291824318237525357709750539565187697510374970888692180205189339507238539205144634197265287286965110862571492198849978748873771345686209167058",d="3.1415926535897932384626433832795028841971693993751058209749445923078164062862089986280348253421170679821480865132823066470938446095505822317253594081284811174502841027019385211055596446229489549303819644288109756659334461284756482337867831652712019091456485669234603486104543266482133936072602491412737245870066063155881748815209209628292540917153643678925903600113305305488204665213841469519415116094330572703657595919530921861173819326117931051185480744623799627495673518857527248912279381830119491298336733624406566430860213949463952247371907021798609437027705392171762931767523846748184676694051320005681271452635608277857713427577896091736371787214684409012249534301465495853710507922796892589235420199561121290219608640344181598136297747713099605187072113499999983729780499510597317328160963185950244594553469083026425223082533446850352619311881710100031378387528865875332083814206171776691473035982534904287554687311595628638823537875937519577818577805321712268066130019278766111959092164201989380952572010654858632789",p={precision:20,rounding:4,modulo:1,toExpNeg:-7,toExpPos:21,minE:-c,maxE:c,crypto:!1},h=!0,f="[DecimalError] Invalid argument: ",m=Math.floor,g=Math.pow,y=/^0b([01]+(\.[01]*)?|\.[01]+)(p[+-]?\d+)?$/i,b=/^0x([0-9a-f]+(\.[0-9a-f]*)?|\.[0-9a-f]+)(p[+-]?\d+)?$/i,_=/^0o([0-7]+(\.[0-7]*)?|\.[0-7]+)(p[+-]?\d+)?$/i,v=/^(\d+(\.\d*)?|\.\d+)(e[+-]?\d+)?$/i,w=1e7,S=l.length-1,E=d.length-1,T={name:"[object Decimal]"};function O(e){var t,r,n,i=e.length-1,a="",s=e[0];if(i>0){for(a+=s,t=1;tr)throw Error(f+e)}function A(e,t,r,n){var i,a,s,o;for(a=e[0];a>=10;a/=10)--t;return--t<0?(t+=7,i=0):(i=Math.ceil((t+1)/7),t%=7),a=g(10,7-t),o=e[i]%a|0,null==n?t<3?(0==t?o=o/100|0:1==t&&(o=o/10|0),s=r<4&&99999==o||r>3&&49999==o||5e4==o||0==o):s=(r<4&&o+1==a||r>3&&o+1==a/2)&&(e[i+1]/a/100|0)==g(10,t-2)-1||(o==a/2||0==o)&&0==(e[i+1]/a/100|0):t<4?(0==t?o=o/1e3|0:1==t?o=o/100|0:2==t&&(o=o/10|0),s=(n||r<4)&&9999==o||!n&&r>3&&4999==o):s=((n||r<4)&&o+1==a||!n&&r>3&&o+1==a/2)&&(e[i+1]/a/1e3|0)==g(10,t-3)-1,s}function R(e,t,r){for(var n,i,a=[0],s=0,o=e.length;sr-1&&(void 0===a[n+1]&&(a[n+1]=0),a[n+1]+=a[n]/r|0,a[n]%=r)}return a.reverse()}T.absoluteValue=T.abs=function(){var e=new this.constructor(this);return e.s<0&&(e.s=1),P(e)},T.ceil=function(){return P(new this.constructor(this),this.e+1,2)},T.comparedTo=T.cmp=function(e){var t,r,n,i,a=this,s=a.d,o=(e=new a.constructor(e)).d,c=a.s,u=e.s;if(!s||!o)return c&&u?c!==u?c:s===o?0:!s^c<0?1:-1:NaN;if(!s[0]||!o[0])return s[0]?c:o[0]?-u:0;if(c!==u)return c;if(a.e!==e.e)return a.e>e.e^c<0?1:-1;for(t=0,r=(n=s.length)<(i=o.length)?n:i;to[t]^c<0?1:-1;return n===i?0:n>i^c<0?1:-1},T.cosine=T.cos=function(){var e,t,r=this,n=r.constructor;return r.d?r.d[0]?(e=n.precision,t=n.rounding,n.precision=e+Math.max(r.e,r.sd())+7,n.rounding=1,r=function(e,t){var r,n,i=t.d.length;i<32?(r=Math.ceil(i/3),n=(1/z(4,r)).toString()):(r=16,n="2.3283064365386962890625e-10");e.precision+=r,t=G(e,1,t.times(n),new e(1));for(var a=r;a--;){var s=t.times(t);t=s.times(s).minus(s).times(8).plus(1)}return e.precision-=r,t}(n,X(n,r)),n.precision=e,n.rounding=t,P(2==o||3==o?r.neg():r,e,t,!0)):new n(1):new n(NaN)},T.cubeRoot=T.cbrt=function(){var e,t,r,n,i,a,s,o,c,u,l=this,d=l.constructor;if(!l.isFinite()||l.isZero())return new d(l);for(h=!1,(a=l.s*g(l.s*l,1/3))&&Math.abs(a)!=1/0?n=new d(a.toString()):(r=O(l.d),(a=((e=l.e)-r.length+1)%3)&&(r+=1==a||-2==a?"0":"00"),a=g(r,1/3),e=m((e+1)/3)-(e%3==(e<0?-1:2)),(n=new d(r=a==1/0?"5e"+e:(r=a.toExponential()).slice(0,r.indexOf("e")+1)+e)).s=l.s),s=(e=d.precision)+3;;)if(u=(c=(o=n).times(o).times(o)).plus(l),n=I(u.plus(l).times(o),u.plus(c),s+2,1),O(o.d).slice(0,s)===(r=O(n.d)).slice(0,s)){if("9999"!=(r=r.slice(s-3,s+1))&&(i||"4999"!=r)){+r&&(+r.slice(1)||"5"!=r.charAt(0))||(P(n,e+1,1),t=!n.times(n).times(n).eq(l));break}if(!i&&(P(o,e+1,0),o.times(o).times(o).eq(l))){n=o;break}s+=4,i=1}return h=!0,P(n,e,d.rounding,t)},T.decimalPlaces=T.dp=function(){var e,t=this.d,r=NaN;if(t){if(r=7*((e=t.length-1)-m(this.e/7)),e=t[e])for(;e%10==0;e/=10)r--;r<0&&(r=0)}return r},T.dividedBy=T.div=function(e){return I(this,new this.constructor(e))},T.dividedToIntegerBy=T.divToInt=function(e){var t=this.constructor;return P(I(this,new t(e),0,1,1),t.precision,t.rounding)},T.equals=T.eq=function(e){return 0===this.cmp(e)},T.floor=function(){return P(new this.constructor(this),this.e+1,3)},T.greaterThan=T.gt=function(e){return this.cmp(e)>0},T.greaterThanOrEqualTo=T.gte=function(e){var t=this.cmp(e);return 1==t||0===t},T.hyperbolicCosine=T.cosh=function(){var e,t,r,n,i,a=this,s=a.constructor,o=new s(1);if(!a.isFinite())return new s(a.s?1/0:NaN);if(a.isZero())return o;r=s.precision,n=s.rounding,s.precision=r+Math.max(a.e,a.sd())+4,s.rounding=1,(i=a.d.length)<32?t=(1/z(4,e=Math.ceil(i/3))).toString():(e=16,t="2.3283064365386962890625e-10"),a=G(s,1,a.times(t),new s(1),!0);for(var c,u=e,l=new s(8);u--;)c=a.times(a),a=o.minus(c.times(l.minus(c.times(l))));return P(a,s.precision=r,s.rounding=n,!0)},T.hyperbolicSine=T.sinh=function(){var e,t,r,n,i=this,a=i.constructor;if(!i.isFinite()||i.isZero())return new a(i);if(t=a.precision,r=a.rounding,a.precision=t+Math.max(i.e,i.sd())+4,a.rounding=1,(n=i.d.length)<3)i=G(a,2,i,i,!0);else{e=(e=1.4*Math.sqrt(n))>16?16:0|e,i=G(a,2,i=i.times(1/z(5,e)),i,!0);for(var s,o=new a(5),c=new a(16),u=new a(20);e--;)s=i.times(i),i=i.times(o.plus(s.times(c.times(s).plus(u))))}return a.precision=t,a.rounding=r,P(i,t,r,!0)},T.hyperbolicTangent=T.tanh=function(){var e,t,r=this,n=r.constructor;return r.isFinite()?r.isZero()?new n(r):(e=n.precision,t=n.rounding,n.precision=e+7,n.rounding=1,I(r.sinh(),r.cosh(),n.precision=e,n.rounding=t)):new n(r.s)},T.inverseCosine=T.acos=function(){var e,t=this,r=t.constructor,n=t.abs().cmp(1),i=r.precision,a=r.rounding;return-1!==n?0===n?t.isNeg()?D(r,i,a):new r(0):new r(NaN):t.isZero()?D(r,i+4,a).times(.5):(r.precision=i+6,r.rounding=1,t=t.asin(),e=D(r,i+4,a).times(.5),r.precision=i,r.rounding=a,e.minus(t))},T.inverseHyperbolicCosine=T.acosh=function(){var e,t,r=this,n=r.constructor;return r.lte(1)?new n(r.eq(1)?0:NaN):r.isFinite()?(e=n.precision,t=n.rounding,n.precision=e+Math.max(Math.abs(r.e),r.sd())+4,n.rounding=1,h=!1,r=r.times(r).minus(1).sqrt().plus(r),h=!0,n.precision=e,n.rounding=t,r.ln()):new n(r)},T.inverseHyperbolicSine=T.asinh=function(){var e,t,r=this,n=r.constructor;return!r.isFinite()||r.isZero()?new n(r):(e=n.precision,t=n.rounding,n.precision=e+2*Math.max(Math.abs(r.e),r.sd())+6,n.rounding=1,h=!1,r=r.times(r).plus(1).sqrt().plus(r),h=!0,n.precision=e,n.rounding=t,r.ln())},T.inverseHyperbolicTangent=T.atanh=function(){var e,t,r,n,i=this,a=i.constructor;return i.isFinite()?i.e>=0?new a(i.abs().eq(1)?i.s/0:i.isZero()?i:NaN):(e=a.precision,t=a.rounding,n=i.sd(),Math.max(n,e)<2*-i.e-1?P(new a(i),e,t,!0):(a.precision=r=n-i.e,i=I(i.plus(1),new a(1).minus(i),r+e,1),a.precision=e+4,a.rounding=1,i=i.ln(),a.precision=e,a.rounding=t,i.times(.5))):new a(NaN)},T.inverseSine=T.asin=function(){var e,t,r,n,i=this,a=i.constructor;return i.isZero()?new a(i):(t=i.abs().cmp(1),r=a.precision,n=a.rounding,-1!==t?0===t?((e=D(a,r+4,n).times(.5)).s=i.s,e):new a(NaN):(a.precision=r+6,a.rounding=1,i=i.div(new a(1).minus(i.times(i)).sqrt().plus(1)).atan(),a.precision=r,a.rounding=n,i.times(2)))},T.inverseTangent=T.atan=function(){var e,t,r,n,i,a,s,o,c,u=this,l=u.constructor,d=l.precision,p=l.rounding;if(u.isFinite()){if(u.isZero())return new l(u);if(u.abs().eq(1)&&d+4<=E)return(s=D(l,d+4,p).times(.25)).s=u.s,s}else{if(!u.s)return new l(NaN);if(d+4<=E)return(s=D(l,d+4,p).times(.5)).s=u.s,s}for(l.precision=o=d+10,l.rounding=1,e=r=Math.min(28,o/7+2|0);e;--e)u=u.div(u.times(u).plus(1).sqrt().plus(1));for(h=!1,t=Math.ceil(o/7),n=1,c=u.times(u),s=new l(u),i=u;-1!==e;)if(i=i.times(c),a=s.minus(i.div(n+=2)),i=i.times(c),void 0!==(s=a.plus(i.div(n+=2))).d[t])for(e=t;s.d[e]===a.d[e]&&e--;);return r&&(s=s.times(2<this.d.length-2},T.isNaN=function(){return!this.s},T.isNegative=T.isNeg=function(){return this.s<0},T.isPositive=T.isPos=function(){return this.s>0},T.isZero=function(){return!!this.d&&0===this.d[0]},T.lessThan=T.lt=function(e){return this.cmp(e)<0},T.lessThanOrEqualTo=T.lte=function(e){return this.cmp(e)<1},T.logarithm=T.log=function(e){var t,r,n,i,a,s,o,c,u=this.constructor,l=u.precision,d=u.rounding;if(null==e)e=new u(10),t=!0;else{if(r=(e=new u(e)).d,e.s<0||!r||!r[0]||e.eq(1))return new u(NaN);t=e.eq(10)}if(r=this.d,this.s<0||!r||!r[0]||this.eq(1))return new u(r&&!r[0]?-1/0:1!=this.s?NaN:r?0:1/0);if(t)if(r.length>1)a=!0;else{for(i=r[0];i%10==0;)i/=10;a=1!==i}if(h=!1,s=U(this,o=l+5),n=t?j(u,o+10):U(e,o),A((c=I(s,n,o,1)).d,i=l,d))do{if(s=U(this,o+=10),n=t?j(u,o+10):U(e,o),c=I(s,n,o,1),!a){+O(c.d).slice(i+1,i+15)+1==1e14&&(c=P(c,l+1,0));break}}while(A(c.d,i+=10,d));return h=!0,P(c,l,d)},T.minus=T.sub=function(e){var t,r,n,i,a,s,o,c,u,l,d,p,f=this,g=f.constructor;if(e=new g(e),!f.d||!e.d)return f.s&&e.s?f.d?e.s=-e.s:e=new g(e.d||f.s!==e.s?f:NaN):e=new g(NaN),e;if(f.s!=e.s)return e.s=-e.s,f.plus(e);if(u=f.d,p=e.d,o=g.precision,c=g.rounding,!u[0]||!p[0]){if(p[0])e.s=-e.s;else{if(!u[0])return new g(3===c?-0:0);e=new g(f)}return h?P(e,o,c):e}if(r=m(e.e/7),l=m(f.e/7),u=u.slice(),a=l-r){for((d=a<0)?(t=u,a=-a,s=p.length):(t=p,r=l,s=u.length),a>(n=Math.max(Math.ceil(o/7),s)+2)&&(a=n,t.length=1),t.reverse(),n=a;n--;)t.push(0);t.reverse()}else{for((d=(n=u.length)<(s=p.length))&&(s=n),n=0;n0;--n)u[s++]=0;for(n=p.length;n>a;){if(u[--n](s=(a=Math.ceil(o/7))>s?a+1:s+1)&&(i=s,r.length=1),r.reverse();i--;)r.push(0);r.reverse()}for((s=u.length)-(i=l.length)<0&&(i=s,r=l,l=u,u=r),t=0;i;)t=(u[--i]=u[i]+l[i]+t)/w|0,u[i]%=w;for(t&&(u.unshift(t),++n),s=u.length;0==u[--s];)u.pop();return e.d=u,e.e=C(u,n),h?P(e,o,c):e},T.precision=T.sd=function(e){var t,r=this;if(void 0!==e&&e!==!!e&&1!==e&&0!==e)throw Error(f+e);return r.d?(t=k(r.d),e&&r.e+1>t&&(t=r.e+1)):t=NaN,t},T.round=function(){var e=this,t=e.constructor;return P(new t(e),e.e+1,t.rounding)},T.sine=T.sin=function(){var e,t,r=this,n=r.constructor;return r.isFinite()?r.isZero()?new n(r):(e=n.precision,t=n.rounding,n.precision=e+Math.max(r.e,r.sd())+7,n.rounding=1,r=function(e,t){var r,n=t.d.length;if(n<3)return G(e,2,t,t);r=(r=1.4*Math.sqrt(n))>16?16:0|r,t=t.times(1/z(5,r)),t=G(e,2,t,t);for(var i,a=new e(5),s=new e(16),o=new e(20);r--;)i=t.times(t),t=t.times(a.plus(i.times(s.times(i).minus(o))));return t}(n,X(n,r)),n.precision=e,n.rounding=t,P(o>2?r.neg():r,e,t,!0)):new n(NaN)},T.squareRoot=T.sqrt=function(){var e,t,r,n,i,a,s=this,o=s.d,c=s.e,u=s.s,l=s.constructor;if(1!==u||!o||!o[0])return new l(!u||u<0&&(!o||o[0])?NaN:o?s:1/0);for(h=!1,0==(u=Math.sqrt(+s))||u==1/0?(((t=O(o)).length+c)%2==0&&(t+="0"),u=Math.sqrt(t),c=m((c+1)/2)-(c<0||c%2),n=new l(t=u==1/0?"1e"+c:(t=u.toExponential()).slice(0,t.indexOf("e")+1)+c)):n=new l(u.toString()),r=(c=l.precision)+3;;)if(n=(a=n).plus(I(s,a,r+2,1)).times(.5),O(a.d).slice(0,r)===(t=O(n.d)).slice(0,r)){if("9999"!=(t=t.slice(r-3,r+1))&&(i||"4999"!=t)){+t&&(+t.slice(1)||"5"!=t.charAt(0))||(P(n,c+1,1),e=!n.times(n).eq(s));break}if(!i&&(P(a,c+1,0),a.times(a).eq(s))){n=a;break}r+=4,i=1}return h=!0,P(n,c,l.rounding,e)},T.tangent=T.tan=function(){var e,t,r=this,n=r.constructor;return r.isFinite()?r.isZero()?new n(r):(e=n.precision,t=n.rounding,n.precision=e+10,n.rounding=1,(r=r.sin()).s=1,r=I(r,new n(1).minus(r.times(r)).sqrt(),e+10,0),n.precision=e,n.rounding=t,P(2==o||4==o?r.neg():r,e,t,!0)):new n(NaN)},T.times=T.mul=function(e){var t,r,n,i,a,s,o,c,u,l=this,d=l.constructor,p=l.d,f=(e=new d(e)).d;if(e.s*=l.s,!(p&&p[0]&&f&&f[0]))return new d(!e.s||p&&!p[0]&&!f||f&&!f[0]&&!p?NaN:p&&f?0*e.s:e.s/0);for(r=m(l.e/7)+m(e.e/7),(c=p.length)<(u=f.length)&&(a=p,p=f,f=a,s=c,c=u,u=s),a=[],n=s=c+u;n--;)a.push(0);for(n=u;--n>=0;){for(t=0,i=c+n;i>n;)o=a[i]+f[n]*p[i-n-1]+t,a[i--]=o%w|0,t=o/w|0;a[i]=(a[i]+t)%w|0}for(;!a[--s];)a.pop();return t?++r:a.shift(),e.d=a,e.e=C(a,r),h?P(e,d.precision,d.rounding):e},T.toBinary=function(e,t){return $(this,2,e,t)},T.toDecimalPlaces=T.toDP=function(e,t){var r=this,n=r.constructor;return r=new n(r),void 0===e?r:(x(e,0,1e9),void 0===t?t=n.rounding:x(t,0,8),P(r,e+r.e+1,t))},T.toExponential=function(e,t){var r,n=this,i=n.constructor;return void 0===e?r=N(n,!0):(x(e,0,1e9),void 0===t?t=i.rounding:x(t,0,8),r=N(n=P(new i(n),e+1,t),!0,e+1)),n.isNeg()&&!n.isZero()?"-"+r:r},T.toFixed=function(e,t){var r,n,i=this,a=i.constructor;return void 0===e?r=N(i):(x(e,0,1e9),void 0===t?t=a.rounding:x(t,0,8),r=N(n=P(new a(i),e+i.e+1,t),!1,e+n.e+1)),i.isNeg()&&!i.isZero()?"-"+r:r},T.toFraction=function(e){var t,r,n,i,a,s,o,c,u,l,d,p,m=this,y=m.d,b=m.constructor;if(!y)return new b(m);if(u=r=new b(1),n=c=new b(0),s=(a=(t=new b(n)).e=k(y)-m.e-1)%7,t.d[0]=g(10,s<0?7+s:s),null==e)e=a>0?t:u;else{if(!(o=new b(e)).isInt()||o.lt(u))throw Error(f+o);e=o.gt(t)?a>0?t:u:o}for(h=!1,o=new b(O(y)),l=b.precision,b.precision=a=7*y.length*2;d=I(o,t,0,1,1),1!=(i=r.plus(d.times(n))).cmp(e);)r=n,n=i,i=u,u=c.plus(d.times(i)),c=i,i=t,t=o.minus(d.times(i)),o=i;return i=I(e.minus(r),n,0,1,1),c=c.plus(i.times(u)),r=r.plus(i.times(n)),c.s=u.s=m.s,p=I(u,n,a,1).minus(m).abs().cmp(I(c,r,a,1).minus(m).abs())<1?[u,n]:[c,r],b.precision=l,h=!0,p},T.toHexadecimal=T.toHex=function(e,t){return $(this,16,e,t)},T.toNearest=function(e,t){var r=this,n=r.constructor;if(r=new n(r),null==e){if(!r.d)return r;e=new n(1),t=n.rounding}else{if(e=new n(e),void 0===t?t=n.rounding:x(t,0,8),!r.d)return e.s?r:e;if(!e.d)return e.s&&(e.s=r.s),e}return e.d[0]?(h=!1,r=I(r,e,0,t,1).times(e),h=!0,P(r)):(e.s=r.s,r=e),r},T.toNumber=function(){return+this},T.toOctal=function(e,t){return $(this,8,e,t)},T.toPower=T.pow=function(e){var t,r,n,i,a,s,o=this,c=o.constructor,u=+(e=new c(e));if(!(o.d&&e.d&&o.d[0]&&e.d[0]))return new c(g(+o,u));if((o=new c(o)).eq(1))return o;if(n=c.precision,a=c.rounding,e.eq(1))return P(o,n,a);if((t=m(e.e/7))>=e.d.length-1&&(r=u<0?-u:u)<=9007199254740991)return i=M(c,o,r,n),e.s<0?new c(1).div(i):P(i,n,a);if((s=o.s)<0){if(tc.maxE+1||t0?s/0:0):(h=!1,c.rounding=o.s=1,r=Math.min(12,(t+"").length),(i=B(e.times(U(o,n+r)),n)).d&&A((i=P(i,n+5,1)).d,n,a)&&(t=n+10,+O((i=P(B(e.times(U(o,t+r)),t),t+5,1)).d).slice(n+1,n+15)+1==1e14&&(i=P(i,n+1,0))),i.s=s,h=!0,c.rounding=a,P(i,n,a))},T.toPrecision=function(e,t){var r,n=this,i=n.constructor;return void 0===e?r=N(n,n.e<=i.toExpNeg||n.e>=i.toExpPos):(x(e,1,1e9),void 0===t?t=i.rounding:x(t,0,8),r=N(n=P(new i(n),e,t),e<=n.e||n.e<=i.toExpNeg,e)),n.isNeg()&&!n.isZero()?"-"+r:r},T.toSignificantDigits=T.toSD=function(e,t){var r=this.constructor;return void 0===e?(e=r.precision,t=r.rounding):(x(e,1,1e9),void 0===t?t=r.rounding:x(t,0,8)),P(new r(this),e,t)},T.toString=function(){var e=this,t=e.constructor,r=N(e,e.e<=t.toExpNeg||e.e>=t.toExpPos);return e.isNeg()&&!e.isZero()?"-"+r:r},T.truncated=T.trunc=function(){return P(new this.constructor(this),this.e+1,1)},T.valueOf=T.toJSON=function(){var e=this,t=e.constructor,r=N(e,e.e<=t.toExpNeg||e.e>=t.toExpPos);return e.isNeg()?"-"+r:r};var I=function(){function e(e,t,r){var n,i=0,a=e.length;for(e=e.slice();a--;)n=e[a]*t+i,e[a]=n%r|0,i=n/r|0;return i&&e.unshift(i),e}function t(e,t,r,n){var i,a;if(r!=n)a=r>n?1:-1;else for(i=a=0;it[i]?1:-1;break}return a}function r(e,t,r,n){for(var i=0;r--;)e[r]-=i,i=e[r]1;)e.shift()}return function(n,i,a,o,c,u){var l,d,p,h,f,g,y,b,_,v,S,E,T,O,x,A,R,I,N,C,j=n.constructor,D=n.s==i.s?1:-1,k=n.d,L=i.d;if(!(k&&k[0]&&L&&L[0]))return new j(n.s&&i.s&&(k?!L||k[0]!=L[0]:L)?k&&0==k[0]||!L?0*D:D/0:NaN);for(u?(f=1,d=n.e-i.e):(u=w,f=7,d=m(n.e/f)-m(i.e/f)),N=L.length,R=k.length,v=(_=new j(D)).d=[],p=0;L[p]==(k[p]||0);p++);if(L[p]>(k[p]||0)&&d--,null==a?(O=a=j.precision,o=j.rounding):O=c?a+(n.e-i.e)+1:a,O<0)v.push(1),g=!0;else{if(O=O/f+2|0,p=0,1==N){for(h=0,L=L[0],O++;(p1&&(L=e(L,h,u),k=e(k,h,u),N=L.length,R=k.length),A=N,E=(S=k.slice(0,N)).length;E=u/2&&++I;do{h=0,(l=t(L,S,N,E))<0?(T=S[0],N!=E&&(T=T*u+(S[1]||0)),(h=T/I|0)>1?(h>=u&&(h=u-1),1==(l=t(y=e(L,h,u),S,b=y.length,E=S.length))&&(h--,r(y,N=10;h/=10)p++;_.e=p+d*f-1,P(_,c?a+_.e+1:a,o,g)}return _}}();function P(e,t,r,n){var i,a,s,o,c,u,l,d,p,f=e.constructor;e:if(null!=t){if(!(d=e.d))return e;for(i=1,o=d[0];o>=10;o/=10)i++;if((a=t-i)<0)a+=7,s=t,c=(l=d[p=0])/g(10,i-s-1)%10|0;else if((p=Math.ceil((a+1)/7))>=(o=d.length)){if(!n)break e;for(;o++<=p;)d.push(0);l=c=0,i=1,s=(a%=7)-7+1}else{for(l=o=d[p],i=1;o>=10;o/=10)i++;c=(s=(a%=7)-7+i)<0?0:l/g(10,i-s-1)%10|0}if(n=n||t<0||void 0!==d[p+1]||(s<0?l:l%g(10,i-s-1)),u=r<4?(c||n)&&(0==r||r==(e.s<0?3:2)):c>5||5==c&&(4==r||n||6==r&&(a>0?s>0?l/g(10,i-s):0:d[p-1])%10&1||r==(e.s<0?8:7)),t<1||!d[0])return d.length=0,u?(t-=e.e+1,d[0]=g(10,(7-t%7)%7),e.e=-t||0):d[0]=e.e=0,e;if(0==a?(d.length=p,o=1,p--):(d.length=p+1,o=g(10,7-a),d[p]=s>0?(l/g(10,i-s)%g(10,s)|0)*o:0),u)for(;;){if(0==p){for(a=1,s=d[0];s>=10;s/=10)a++;for(s=d[0]+=o,o=1;s>=10;s/=10)o++;a!=o&&(e.e++,d[0]==w&&(d[0]=1));break}if(d[p]+=o,d[p]!=w)break;d[p--]=0,o=1}for(a=d.length;0===d[--a];)d.pop()}return h&&(e.e>f.maxE?(e.d=null,e.e=NaN):e.e0?a=a.charAt(0)+"."+a.slice(1)+L(n):s>1&&(a=a.charAt(0)+"."+a.slice(1)),a=a+(e.e<0?"e":"e+")+e.e):i<0?(a="0."+L(-i-1)+a,r&&(n=r-s)>0&&(a+=L(n))):i>=s?(a+=L(i+1-s),r&&(n=r-i-1)>0&&(a=a+"."+L(n))):((n=i+1)0&&(i+1===s&&(a+="."),a+=L(n))),a}function C(e,t){var r=e[0];for(t*=7;r>=10;r/=10)t++;return t}function j(e,t,r){if(t>S)throw h=!0,r&&(e.precision=r),Error("[DecimalError] Precision limit exceeded");return P(new e(l),t,1,!0)}function D(e,t,r){if(t>E)throw Error("[DecimalError] Precision limit exceeded");return P(new e(d),t,r,!0)}function k(e){var t=e.length-1,r=7*t+1;if(t=e[t]){for(;t%10==0;t/=10)r--;for(t=e[0];t>=10;t/=10)r++}return r}function L(e){for(var t="";e--;)t+="0";return t}function M(e,t,r,n){var i,a=new e(1),s=Math.ceil(n/7+4);for(h=!1;;){if(r%2&&Y((a=a.times(t)).d,s)&&(i=!0),0===(r=m(r/2))){r=a.d.length-1,i&&0===a.d[r]&&++a.d[r];break}Y((t=t.times(t)).d,s)}return h=!0,a}function F(e){return 1&e.d[e.d.length-1]}function q(e,t,r){for(var n,i=new e(t[0]),a=0;++a17)return new p(e.d?e.d[0]?e.s<0?0:1/0:1:e.s?e.s<0?0:e:NaN);for(null==t?(h=!1,c=m):c=t,o=new p(.03125);e.e>-2;)e=e.times(o),d+=5;for(c+=n=Math.log(g(2,d))/Math.LN10*2+5|0,r=a=s=new p(1),p.precision=c;;){if(a=P(a.times(e),c,1),r=r.times(++l),O((o=s.plus(I(a,r,c,1))).d).slice(0,c)===O(s.d).slice(0,c)){for(i=d;i--;)s=P(s.times(s),c,1);if(null!=t)return p.precision=m,s;if(!(u<3&&A(s.d,c-n,f,u)))return P(s,p.precision=m,f,h=!0);p.precision=c+=10,r=a=o=new p(1),l=0,u++}s=o}}function U(e,t){var r,n,i,a,s,o,c,u,l,d,p,f=1,m=e,g=m.d,y=m.constructor,b=y.rounding,_=y.precision;if(m.s<0||!g||!g[0]||!m.e&&1==g[0]&&1==g.length)return new y(g&&!g[0]?-1/0:1!=m.s?NaN:g?0:m);if(null==t?(h=!1,l=_):l=t,y.precision=l+=10,n=(r=O(g)).charAt(0),!(Math.abs(a=m.e)<15e14))return u=j(y,l+2,_).times(a+""),m=U(new y(n+"."+r.slice(1)),l-10).plus(u),y.precision=_,null==t?P(m,_,b,h=!0):m;for(;n<7&&1!=n||1==n&&r.charAt(1)>3;)n=(r=O((m=m.times(e)).d)).charAt(0),f++;for(a=m.e,n>1?(m=new y("0."+r),a++):m=new y(n+"."+r.slice(1)),d=m,c=s=m=I(m.minus(1),m.plus(1),l,1),p=P(m.times(m),l,1),i=3;;){if(s=P(s.times(p),l,1),O((u=c.plus(I(s,new y(i),l,1))).d).slice(0,l)===O(c.d).slice(0,l)){if(c=c.times(2),0!==a&&(c=c.plus(j(y,l+2,_).times(a+""))),c=I(c,new y(f),l,1),null!=t)return y.precision=_,c;if(!A(c.d,l-10,b,o))return P(c,y.precision=_,b,h=!0);y.precision=l+=10,u=s=m=I(d.minus(1),d.plus(1),l,1),p=P(m.times(m),l,1),i=o=1}c=u,i+=2}}function V(e){return String(e.s*e.s/0)}function Q(e,t){var r,n,i;for((r=t.indexOf("."))>-1&&(t=t.replace(".","")),(n=t.search(/e/i))>0?(r<0&&(r=n),r+=+t.slice(n+1),t=t.substring(0,n)):r<0&&(r=t.length),n=0;48===t.charCodeAt(n);n++);for(i=t.length;48===t.charCodeAt(i-1);--i);if(t=t.slice(n,i)){if(i-=n,e.e=r=r-n-1,e.d=[],n=(r+1)%7,r<0&&(n+=7),ne.constructor.maxE?(e.d=null,e.e=NaN):e.e0?(u=+t.slice(s+1),t=t.substring(2,s)):t=t.slice(2),o=(s=t.indexOf("."))>=0,n=e.constructor,o&&(s=(c=(t=t.replace(".","")).length)-s,i=M(n,new n(r),s,2*s)),s=d=(l=R(t,r,w)).length-1;0===l[s];--s)l.pop();return s<0?new n(0*e.s):(e.e=C(l,d),e.d=l,h=!1,o&&(e=I(e,i,4*c)),u&&(e=e.times(Math.abs(u)<54?g(2,u):a.pow(2,u))),h=!0,e)}function G(e,t,r,n,i){var a,s,o,c,u=e.precision,l=Math.ceil(u/7);for(h=!1,c=r.times(r),o=new e(n);;){if(s=I(o.times(c),new e(t++*t++),u,1),o=i?n.plus(s):n.minus(s),n=I(s.times(c),new e(t++*t++),u,1),void 0!==(s=o.plus(n)).d[l]){for(a=l;s.d[a]===o.d[a]&&a--;);if(-1==a)break}a=o,o=n,n=s,s=a}return h=!0,s.d.length=l+1,s}function z(e,t){for(var r=e;--t;)r*=e;return r}function X(e,t){var r,n=t.s<0,i=D(e,e.precision,1),a=i.times(.5);if((t=t.abs()).lte(a))return o=n?4:1,t;if((r=t.divToInt(i)).isZero())o=n?3:2;else{if((t=t.minus(r.times(i))).lte(a))return o=F(r)?n?2:3:n?4:1,t;o=F(r)?n?1:4:n?3:2}return t.minus(i).abs()}function $(e,t,r,n){var i,a,o,c,l,d,p,h,f,m=e.constructor,g=void 0!==r;if(g?(x(r,1,1e9),void 0===n?n=m.rounding:x(n,0,8)):(r=m.precision,n=m.rounding),e.isFinite()){for(g?(i=2,16==t?r=4*r-3:8==t&&(r=3*r-2)):i=t,(o=(p=N(e)).indexOf("."))>=0&&(p=p.replace(".",""),(f=new m(1)).e=p.length-o,f.d=R(N(f),10,i),f.e=f.d.length),a=l=(h=R(p,10,i)).length;0==h[--l];)h.pop();if(h[0]){if(o<0?a--:((e=new m(e)).d=h,e.e=a,h=(e=I(e,f,r,n,0,i)).d,a=e.e,d=s),o=h[r],c=i/2,d=d||void 0!==h[r+1],d=n<4?(void 0!==o||d)&&(0===n||n===(e.s<0?3:2)):o>c||o===c&&(4===n||d||6===n&&1&h[r-1]||n===(e.s<0?8:7)),h.length=r,d)for(;++h[--r]>i-1;)h[r]=0,r||(++a,h.unshift(1));for(l=h.length;!h[l-1];--l);for(o=0,p="";o1)if(16==t||8==t){for(o=16==t?4:3,--l;l%o;l++)p+="0";for(l=(h=R(p,i,t)).length;!h[l-1];--l);for(o=1,p="1.";ol)for(a-=l;a--;)p+="0";else at)return e.length=t,!0}function J(e){return new this(e).abs()}function W(e){return new this(e).acos()}function K(e){return new this(e).acosh()}function Z(e,t){return new this(e).plus(t)}function ee(e){return new this(e).asin()}function te(e){return new this(e).asinh()}function re(e){return new this(e).atan()}function ne(e){return new this(e).atanh()}function ie(e,t){e=new this(e),t=new this(t);var r,n=this.precision,i=this.rounding,a=n+4;return e.s&&t.s?e.d||t.d?!t.d||e.isZero()?(r=t.s<0?D(this,n,i):new this(0)).s=e.s:!e.d||t.isZero()?(r=D(this,a,1).times(.5)).s=e.s:t.s<0?(this.precision=a,this.rounding=1,r=this.atan(I(e,t,a,1)),t=D(this,a,1),this.precision=n,this.rounding=i,r=e.s<0?r.minus(t):r.plus(t)):r=this.atan(I(e,t,a,1)):(r=D(this,a,1).times(t.s>0?.25:.75)).s=e.s:r=new this(NaN),r}function ae(e){return new this(e).cbrt()}function se(e){return P(e=new this(e),e.e+1,2)}function oe(e){if(!e||"object"!=typeof e)throw Error("[DecimalError] Object expected");var t,r,n,i=!0===e.defaults,a=["precision",1,1e9,"rounding",0,8,"toExpNeg",-c,0,"toExpPos",0,c,"maxE",0,c,"minE",-c,0,"modulo",0,9];for(t=0;t=a[t+1]&&n<=a[t+2]))throw Error(f+r+": "+n);this[r]=n}if(r="crypto",i&&(this[r]=p[r]),void 0!==(n=e[r])){if(!0!==n&&!1!==n&&0!==n&&1!==n)throw Error(f+r+": "+n);if(n){if("undefined"==typeof crypto||!crypto||!crypto.getRandomValues&&!crypto.randomBytes)throw Error("[DecimalError] crypto unavailable");this[r]=!0}else this[r]=!1}return this}function ce(e){return new this(e).cos()}function ue(e){return new this(e).cosh()}function le(e,t){return new this(e).div(t)}function de(e){return new this(e).exp()}function pe(e){return P(e=new this(e),e.e+1,3)}function he(){var e,t,r=new this(0);for(h=!1,e=0;e=429e7?t[a]=crypto.getRandomValues(new Uint32Array(1))[0]:o[a++]=i%1e7;else{if(!crypto.randomBytes)throw Error("[DecimalError] crypto unavailable");for(t=crypto.randomBytes(n*=4);a=214e7?crypto.randomBytes(4).copy(t,a):(o.push(i%1e7),a+=4);a=n/4}else for(;a=10;i/=10)n++;n<7&&(r-=7-n)}return s.e=r,s.d=o,s}function Oe(e){return P(e=new this(e),e.e+1,this.rounding)}function xe(e){return(e=new this(e)).d?e.d[0]?e.s:0*e.s:e.s||NaN}function Ae(e){return new this(e).sin()}function Re(e){return new this(e).sinh()}function Ie(e){return new this(e).sqrt()}function Pe(e,t){return new this(e).sub(t)}function Ne(e){return new this(e).tan()}function Ce(e){return new this(e).tanh()}function je(e){return P(e=new this(e),e.e+1,1)}(a=function e(t){var r,n,i;function a(e){var t,r,n,i=this;if(!(i instanceof a))return new a(e);if(i.constructor=a,e instanceof a)return i.s=e.s,void(h?!e.d||e.e>a.maxE?(i.e=NaN,i.d=null):e.e=10;r/=10)t++;return void(h?t>a.maxE?(i.e=NaN,i.d=null):t0&&e.every(t=>t.language===e[0].language)}const h={arity:1,applyAsync:async({args:e,evaluate:t,mapping:r,context:n})=>f(await t(e[0],r),n.baseIRI,e),applySync:({args:e,evaluate:t,mapping:r,context:n})=>f(t(e[0],r),n.baseIRI,e)};function f(e,t,r){const n="namedNode"!==e.termType?u.typeCheckLit(e,["string"],r,o.SpecialOperator.IRI):e,a=i.resolve(n.str(),t||"");return new s.NamedNode(a)}function m(e){return new s.BlankNode(e||a.v4())}const g={bound:{arity:1,applyAsync:async({args:e,mapping:t})=>d({args:e,mapping:t}),applySync:({args:e,mapping:t})=>d({args:e,mapping:t})},if:{arity:3,async applyAsync({args:e,mapping:t,evaluate:r}){const n=await r(e[0],t);return r(n.coerceEBV()?e[1]:e[2],t)},applySync({args:e,mapping:t,evaluate:r}){const n=r(e[0],t);return r(n.coerceEBV()?e[1]:e[2],t)}},coalesce:{arity:1/0,async applyAsync({args:e,mapping:t,evaluate:r}){const n=[];for(const i of e)try{return await r(i,t)}catch(e){n.push(e)}throw new c.CoalesceError(n)},applySync({args:e,mapping:t,evaluate:r}){const n=[];for(const i of e)try{return r(i,t)}catch(e){n.push(e)}throw new c.CoalesceError(n)}},"&&":{arity:2,async applyAsync({args:e,mapping:t,evaluate:r}){const[n,i]=e;try{const e=await r(n,t);if(!e.coerceEBV())return u.bool(!1);const a=(await r(i,t)).coerceEBV();return u.bool(a)}catch(e){if((await r(i,t)).coerceEBV())throw e;return u.bool(!1)}},applySync({args:e,mapping:t,evaluate:r}){const[n,i]=e;try{const e=r(n,t);if(!e.coerceEBV())return u.bool(!1);const a=r(i,t).coerceEBV();return u.bool(a)}catch(e){if(r(i,t).coerceEBV())throw e;return u.bool(!1)}}},"||":{arity:2,async applyAsync({args:e,mapping:t,evaluate:r}){const[n,i]=e;try{const e=await r(n,t);if(e.coerceEBV())return u.bool(!0);const a=(await r(i,t)).coerceEBV();return u.bool(a)}catch(e){if(!(await r(i,t)).coerceEBV())throw e;return u.bool(!0)}},applySync({args:e,mapping:t,evaluate:r}){const[n,i]=e;try{const e=r(n,t);if(e.coerceEBV())return u.bool(!0);const a=r(i,t).coerceEBV();return u.bool(a)}catch(e){if(!r(i,t).coerceEBV())throw e;return u.bool(!0)}}},sameterm:{arity:2,async applyAsync({args:e,mapping:t,evaluate:r}){const[n,i]=e.map(e=>r(e,t)),a=await n,s=await i;return u.bool(a.toRDF().equals(s.toRDF()))},applySync({args:e,mapping:t,evaluate:r}){const[n,i]=e.map(e=>r(e,t));return u.bool(n.toRDF().equals(i.toRDF()))}},in:{arity:1/0,checkArity:e=>e.length>=1,async applyAsync({args:e,mapping:t,evaluate:r,context:n}){const[i,...a]=e;return async function e(t,{args:r,mapping:n,evaluate:i,context:a},s){if(0===r.length){return s.every(e=>!e)?u.bool(!1):Promise.reject(new c.InError(s))}try{const c=await i(r.shift(),n);return!0===l.regularFunctions.get(o.RegularOperator.EQUAL).apply([t,c]).typedValue?u.bool(!0):e(t,{args:r,mapping:n,evaluate:i,context:a},[...s,!1])}catch(o){return e(t,{args:r,mapping:n,evaluate:i,context:a},[...s,o])}}(await r(i,t),{args:a,mapping:t,evaluate:r,context:n},[])},applySync({args:e,mapping:t,evaluate:r,context:n}){const[i,...a]=e;return function e(t,{args:r,mapping:n,evaluate:i,context:a},s){if(0===r.length){if(!s.every(e=>!e))throw new c.InError(s);u.bool(!1)}try{const c=i(r.shift(),n);return!0===l.regularFunctions.get(o.RegularOperator.EQUAL).apply([t,c]).typedValue?u.bool(!0):e(t,{args:r,mapping:n,evaluate:i,context:a},[...s,!1])}catch(o){return e(t,{args:r,mapping:n,evaluate:i,context:a},[...s,o])}}(r(i,t),{args:a,mapping:t,evaluate:r,context:n},[])}},notin:{arity:1/0,checkArity:e=>e.length>=1,async applyAsync(e){const t=l.specialFunctions.get(o.SpecialOperator.IN),r=await t.applyAsync(e);return u.bool(!r.typedValue)},applySync(e){const t=l.specialFunctions.get(o.SpecialOperator.IN).applySync(e);return u.bool(!t.typedValue)}},concat:{arity:1/0,async applyAsync({args:e,evaluate:t,mapping:r}){const n=e.map(async e=>t(e,r)).map(async t=>u.typeCheckLit(await t,["string","langString"],e,o.SpecialOperator.CONCAT)),i=await Promise.all(n),a=i.map(e=>e.typedValue).join(""),s=p(i)?i[0].language:void 0;return s?u.langString(a,s):u.string(a)},applySync({args:e,evaluate:t,mapping:r}){const n=e.map(e=>t(e,r)).map(t=>u.typeCheckLit(t,["string","langString"],e,o.SpecialOperator.CONCAT)),i=n.map(e=>e.typedValue).join(""),a=p(n)?n[0].language:void 0;return a?u.langString(i,a):u.string(i)}},now:{arity:0,applyAsync:async({context:e})=>new s.DateTimeLiteral(e.now,e.now.toISOString()),applySync:({context:e})=>new s.DateTimeLiteral(e.now,e.now.toISOString())},iri:h,uri:h,BNODE:{arity:1/0,checkArity:e=>0===e.length||1===e.length,async applyAsync({args:e,evaluate:t,mapping:r,context:n}){const i=1===e.length?await t(e[0],r):void 0,a=i?u.typeCheckLit(i,["string"],e,o.SpecialOperator.BNODE).str():void 0;if(n.bnode){const e=await n.bnode(a);return new s.BlankNode(e.value)}return m(a)},applySync({args:e,evaluate:t,mapping:r,context:n}){const i=1===e.length?t(e[0],r):void 0,a=i?u.typeCheckLit(i,["string"],e,o.SpecialOperator.BNODE).str():void 0;if(n.bnode){const e=n.bnode(a);return new s.BlankNode(e.value)}return m(a)}}};t.specialDefinitions=n.Map(g)},function(e,t,r){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.aggregators=t.AggregateEvaluator=void 0;const n=r(6),i=r(40),a=r(16),s=r(19),o=r(76),c=r(56),u=r(55),l=r(16),d=r(189),p=r(39),h=new n.DataFactory;t.AggregateEvaluator=class{constructor(e,r,n){this.throwError=!1,this.expression=e,this.evaluator=new d.SyncEvaluator(e.expression,r),this.aggregator=new t.aggregators[e.aggregator](e),this.throwError=n}static emptyValue(e,r=!1){const n=t.aggregators[e.aggregator].emptyValue();if(void 0===n&&r)throw new s.EmptyAggregateError;return n}put(e){this.init(e),this.state&&(this.put=this.__put,this.result=this.__result)}result(){return this.aggregator.constructor.emptyValue()}__put(e){try{const t=this.evaluator.evaluate(e);this.state=this.aggregator.put(this.state,t)}catch(e){this.safeThrow(e)}}__result(){return this.aggregator.result(this.state)}init(e){try{const t=this.evaluator.evaluate(e);this.state=this.aggregator.init(t)}catch(e){this.safeThrow(e)}}safeThrow(e){if(this.throwError)throw e;this.put=()=>{},this.result=()=>{}}};class f{constructor(e){this.distinct=e.distinct,this.separator=e.separator||" "}static emptyValue(){}}function m(e){if("Literal"!==e.termType)throw new Error("Term with value "+e.value+" has type "+e.termType+" and is not a numeric literal");if(!a.NumericTypeURLs.contains(e.datatype.value))throw new Error("Term datatype "+e.datatype.value+" with value "+e.value+" has type "+e.termType+" and is not a numeric literal");return{type:e.datatype.value,value:u.parseXSDFloat(e.value)}}function g(e,t){if("Literal"!==t.termType)throw new Error("Term with value "+t.value+" has type "+t.termType+" and is not a literal");const r=p.transformLiteral(t);return{type:r.typeURL.value,value:r.typedValue}}t.aggregators={count:class extends f{static emptyValue(){return c.number(0,l.TypeURL.XSD_INTEGER).toRDF()}init(e){return 1}put(e,t){return e+1}result(e){return c.number(e,l.TypeURL.XSD_INTEGER).toRDF()}},sum:class extends f{constructor(){super(...arguments),this.summer=o.regularFunctions.get(a.RegularOperator.ADDITION)}static emptyValue(){return c.number(0,l.TypeURL.XSD_INTEGER).toRDF()}init(e){const{value:t,type:r}=m(e);return new i.NumericLiteral(t,h.namedNode(r))}put(e,t){const{value:r,type:n}=m(t),a=new i.NumericLiteral(r,h.namedNode(n));return this.summer.apply([e,a])}result(e){return e.toRDF()}},min:class extends f{init(e){const{value:t}=g(null,e);if("Literal"===e.termType)return{extremeValue:t,term:e}}put(e,t){const r=g(e.term,t);return r.valuee.extremeValue&&"Literal"===t.termType?{extremeValue:r.value,term:t}:e}result(e){return e.term}},avg:class extends f{constructor(){super(...arguments),this.summer=o.regularFunctions.get(a.RegularOperator.ADDITION),this.divider=o.regularFunctions.get(a.RegularOperator.DIVISION)}static emptyValue(){return c.number(0,l.TypeURL.XSD_INTEGER).toRDF()}init(e){const{value:t,type:r}=m(e);return{sum:new i.NumericLiteral(t,h.namedNode(r)),count:1}}put(e,t){const{value:r,type:n}=m(t),a=new i.NumericLiteral(r,h.namedNode(n));return{sum:this.summer.apply([e.sum,a]),count:e.count+1}}result(e){const t=new i.NumericLiteral(e.count,h.namedNode(a.TypeURL.XSD_INTEGER));return this.divider.apply([e.sum,t]).toRDF()}},group_concat:class extends f{static emptyValue(){return c.string("").toRDF()}init(e){return e.value}put(e,t){return e+this.separator+t.value}result(e){return c.string(e).toRDF()}},sample:class extends f{init(e){return e}put(e,t){return e}result(e){return e}}}},function(e,t,r){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.order=t.orderTypes=void 0;const n=r(39);function i(e,t,r){return e.typedValue===t.typedValue?0:e.typedValue>t.typedValue===r?1:-1}t.orderTypes=function(e,t,r){if(e&&"Literal"===e.termType&&t&&"Literal"===t.termType){return i(n.transformLiteral(e),n.transformLiteral(t),r)}return 0},t.order=i},function(e,t,r){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.ActorQueryOperationReducedHash=void 0;const n=r(75),i=r(73);class a extends n.AbstractBindingsHash{constructor(e){super(e,"reduced")}newHashFilter(e,t){const r=new i({max:this.cacheSize});return i=>{const a=n.AbstractFilterHash.hash(e,t,i);return!r.has(a)&&r.set(a,!0)}}}t.ActorQueryOperationReducedHash=a},function(e,t,r){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.ActorQueryOperationFilterSparqlee=void 0;const n=r(1),i=r(48);class a extends n.ActorQueryOperationTypedMediated{constructor(e){super(e,"filter")}async testOperation(e,t){new i.AsyncEvaluator(e.expression,n.ActorQueryOperation.getExpressionContext(t,this.mediatorQueryOperation));return!0}async runOperation(e,t){const r=await this.mediatorQueryOperation.mediate({operation:e.input,context:t}),a=n.ActorQueryOperation.getSafeBindings(r);n.ActorQueryOperation.validateQueryOutput(a,"bindings");const{variables:s,metadata:o}=a,c=n.ActorQueryOperation.getExpressionContext(t,this.mediatorQueryOperation),u=new i.AsyncEvaluator(e.expression,c),l=a.bindingsStream.transform({transform:async(e,t,r)=>{try{await u.evaluateAsEBV(e)&&r(e)}catch(e){i.isExpressionError(e)||l.emit("error",e)}t()}});return{type:"bindings",bindingsStream:l,metadata:o,variables:s,canContainUndefs:a.canContainUndefs}}}t.ActorQueryOperationFilterSparqlee=a},function(e,t,r){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.ActorQueryOperationFromQuad=void 0;const n=r(1),i=r(7);class a extends n.ActorQueryOperationTypedMediated{constructor(e){super(e,"from")}static copyOperation(e,t){const r={};for(const n of Object.keys(e))Array.isArray(e[n])?r[n]="variables"===n?e[n]:e[n].map(t):a.ALGEBRA_TYPES.includes(e[n].type)?r[n]=t(e[n]):r[n]=e[n];return r}static applyOperationDefaultGraph(e,t){if("bgp"===e.type&&e.patterns.length>0||"path"===e.type){if("bgp"===e.type)return a.joinOperations(e.patterns.map(e=>{if("DefaultGraph"!==e.graph.termType)return a.FACTORY.createBgp([e]);const r=t.map(t=>a.FACTORY.createBgp([a.FACTORY.createPattern(e.subject,e.predicate,e.object,t)]));return a.unionOperations(r)}));if("DefaultGraph"!==e.graph.termType)return e;const r=t.map(t=>a.FACTORY.createPath(e.subject,e.predicate,e.object,t));return a.joinOperations(r)}return a.copyOperation(e,e=>this.applyOperationDefaultGraph(e,t))}static applyOperationNamedGraph(e,t,r){if("bgp"===e.type&&e.patterns.length>0||"path"===e.type){let n;if(n="bgp"===e.type?e.patterns[0].graph:e.graph,"DefaultGraph"===n.termType)return{type:"bgp",patterns:[]};if("Variable"===n.termType){if(1===t.length){const r=t[0],i={};i["?"+n.value]=r;const s=a.FACTORY.createValues([n],[i]);let o;return o="bgp"===e.type?a.FACTORY.createBgp(e.patterns.map(e=>a.FACTORY.createPattern(e.subject,e.predicate,e.object,r))):a.FACTORY.createPath(e.subject,e.predicate,e.object,r),a.FACTORY.createJoin(s,o)}return a.unionOperations(t.map(t=>a.applyOperationNamedGraph(e,[t],r)))}return t.concat(r).some(e=>e.equals(n))?e:{type:"bgp",patterns:[]}}return a.copyOperation(e,e=>this.applyOperationNamedGraph(e,t,r))}static joinOperations(e){if(1===e.length)return e[0];if(2===e.length)return a.FACTORY.createJoin(e[0],e[1]);if(e.length>2)return a.FACTORY.createJoin(e.shift(),this.joinOperations(e));throw new Error("A join can only be applied on at least one operation")}static unionOperations(e){if(1===e.length)return e[0];if(2===e.length)return a.FACTORY.createUnion(e[0],e[1]);if(e.length>2)return a.FACTORY.createUnion(e.shift(),this.unionOperations(e));throw new Error("A union can only be applied on at least one operation")}static createOperation(e){let t=e.input;return e.default.length>0&&(t=a.applyOperationDefaultGraph(t,e.default)),e.named.length>0&&(t=a.applyOperationNamedGraph(t,e.named,e.default)),t}async testOperation(e,t){return!0}async runOperation(e,t){const r=a.createOperation(e);return this.mediatorQueryOperation.mediate({operation:r,context:t})}}t.ActorQueryOperationFromQuad=a,a.FACTORY=new i.Factory,a.ALGEBRA_TYPES=Object.keys(i.Algebra.types).map(e=>i.Algebra.types[e])},function(e,t,r){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.ActorQueryOperationGroup=void 0;const n=r(1),i=r(3),a=r(5),s=r(48),o=r(441);class c extends n.ActorQueryOperationTypedMediated{constructor(e){super(e,"group")}async testOperation(e,t){for(const t of e.aggregates){new s.SyncEvaluator(t.expression)}return!0}async runOperation(e,t){const{input:r,aggregates:s}=e,c=await this.mediatorQueryOperation.mediate({operation:r,context:t}),u=n.ActorQueryOperation.getSafeBindings(c),l=e.variables.map(e=>a.termToString(e)).concat(s.map(e=>a.termToString(e.variable))),d=Object.assign({},n.ActorQueryOperation.getExpressionContext(t));return new Promise((t,r)=>{const n=new o.GroupsState(e,d);u.bindingsStream.on("end",()=>{try{const e=new i.ArrayIterator(n.collectResults(),{autoStart:!1}),{metadata:r}=u;t({type:"bindings",bindingsStream:e,metadata:r,variables:l,canContainUndefs:u.canContainUndefs})}catch(e){r(e)}}),u.bindingsStream.on("error",r),u.bindingsStream.on("data",e=>{try{n.consumeBindings(e)}catch(e){r(e)}})})}}t.ActorQueryOperationGroup=c},function(e,t,r){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.GroupsState=void 0;const n=r(75),i=r(1),a=r(5),s=r(48);t.GroupsState=class{constructor(e,t){this.pattern=e,this.sparqleeConfig=t,this.groups=new Map,this.groupVariables=new Set(this.pattern.variables.map(e=>a.termToString(e))),this.distinctHashes=e.aggregates.some(({distinct:e})=>e)?new Map:null}consumeBindings(e){const t=e.filter((e,t)=>this.groupVariables.has(t)).toMap(),r=this.hashBindings(t);let n=this.groups.get(r);if(n)for(const t of this.pattern.aggregates){if(t.distinct){const t=this.hashBindings(e);if(this.distinctHashes.get(r).has(t))continue;this.distinctHashes.get(r).add(t)}const i=a.termToString(t.variable);n.aggregators[i].put(e)}else{const i={};for(const t of this.pattern.aggregates){const r=a.termToString(t.variable);i[r]=new s.AggregateEvaluator(t,this.sparqleeConfig),i[r].put(e)}if(n={aggregators:i,bindings:t},this.groups.set(r,n),this.distinctHashes){const t=this.hashBindings(e);this.distinctHashes.set(r,new Set([t]))}}}collectResults(){let e=[...this.groups].map(([e,t])=>{const{bindings:r,aggregators:n}=t,i={};for(const e in n){const t=n[e].result();void 0!==t&&(i[e]=t)}return r.merge(i)});if(0===e.length&&0===this.groupVariables.size){const t={};for(const e of this.pattern.aggregates){const r=a.termToString(e.variable),n=s.AggregateEvaluator.emptyValue(e);void 0!==n&&(t[r]=n)}e=[i.Bindings(t)]}return e}hashBindings(e){return n.AbstractFilterHash.hash("sha1","hex",e)}}},function(e,t,r){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.ActorQueryOperationJoin=void 0;const n=r(1);class i extends n.ActorQueryOperationTypedMediated{constructor(e){super(e,"join")}async testOperation(e,t){return!0}async runOperation(e,t){const r=this.mediatorQueryOperation.mediate({operation:e.left,context:t}),i=this.mediatorQueryOperation.mediate({operation:e.right,context:t});return this.mediatorJoin.mediate({entries:[n.ActorQueryOperation.getSafeBindings(await r),n.ActorQueryOperation.getSafeBindings(await i)]})}}t.ActorQueryOperationJoin=i},function(e,t,r){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.ActorQueryOperationLeftJoinLeftDeep=void 0;const n=r(1),i=r(52),a=r(3),s=r(7);class o extends n.ActorQueryOperationTypedMediated{constructor(e){super(e,"leftjoin")}static createLeftDeepStream(e,t,r){return new a.MultiTransformIterator(e,{multiTransform(e){const i=t=>t.merge(e);return new a.TransformIterator(async()=>(await r(n.materializeOperation(t,e))).map(i),{maxBufferSize:128})},optional:!0})}async testOperation(e,t){return!0}async runOperation(e,t){const r=n.ActorQueryOperation.getSafeBindings(await this.mediatorQueryOperation.mediate({operation:e.left,context:t})),a=n.ActorQueryOperation.getSafeBindings(await this.mediatorQueryOperation.mediate({operation:e.right,context:t}));a.bindingsStream.close();const s=e.expression?o.FACTORY.createFilter(e.right,e.expression):e.right;return{type:"bindings",bindingsStream:o.createLeftDeepStream(r.bindingsStream,s,async e=>n.ActorQueryOperation.getSafeBindings(await this.mediatorQueryOperation.mediate({operation:e,context:t})).bindingsStream),metadata:()=>Promise.all([r,a].map(e=>n.getMetadata(e))).then(e=>e.reduce((e,t)=>e*t.totalItems,1)).catch(()=>1/0).then(e=>({totalItems:e})),variables:i.ActorRdfJoin.joinVariables({entries:[r,a]}),canContainUndefs:!0}}}t.ActorQueryOperationLeftJoinLeftDeep=o,o.FACTORY=new s.Factory},function(e,t,r){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.ActorQueryOperationOrderBySparqlee=void 0;const n=r(1),i=r(7),a=r(48),s=r(445);class o extends n.ActorQueryOperationTypedMediated{constructor(e){var t;super(e,"orderby"),this.window=null!==(t=e.window)&&void 0!==t?t:1/0}async testOperation(e,t){for(let t of e.expressions){t=this.extractSortExpression(t);new a.AsyncEvaluator(t)}return!0}async runOperation(e,t){const r=await this.mediatorQueryOperation.mediate({operation:e.input,context:t}),i=n.ActorQueryOperation.getSafeBindings(r),o={window:this.window},c=Object.assign({},n.ActorQueryOperation.getExpressionContext(t));let{bindingsStream:u}=i;for(let t=e.expressions.length-1;t>=0;t--){let r=e.expressions[t];const n=this.isAscending(r);r=this.extractSortExpression(r);const i=new a.AsyncEvaluator(r,c),l=async(e,t,r)=>{try{r({bindings:e,result:await i.evaluate(e)})}catch(t){a.isExpressionError(t)||u.emit("error",t),r({bindings:e,result:void 0})}t()},d=u.transform({transform:l}),p=new s.SortIterator(d,(e,t)=>a.orderTypes(e.result,t.result,n),o);u=p.map(({bindings:e,result:t})=>e)}return{type:"bindings",bindingsStream:u,metadata:i.metadata,variables:i.variables,canContainUndefs:i.canContainUndefs}}extractSortExpression(e){const{expressionType:t,operator:r}=e;return t!==i.Algebra.expressionTypes.OPERATOR?e:"desc"===r?e.args[0]:e}isAscending(e){const{expressionType:t,operator:r}=e;return t!==i.Algebra.expressionTypes.OPERATOR||"desc"!==r}}t.ActorQueryOperationOrderBySparqlee=o},function(e,t,r){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.SortIterator=void 0;const n=r(3);class i extends n.TransformIterator{constructor(e,t,r){super(e,r);const n=r&&r.window;this.windowLength=Number.isFinite(n)&&n>0?n:1/0,this.sort=t,this.sorted=[]}_read(e,t){let r,{length:n}=this.sorted;for(;n!==this.windowLength&&(r=this.source.read(),null!==r);){let e,t,i=0,a=n-1;for(;i<=a;)e=Math.trunc((i+a)/2),t=this.sort(r,this.sorted[e]),t<0?i=e+1:t>0?a=e-1:(i=e,a=-1);this.sorted.splice(i,0,r),n++}n===this.windowLength&&this._push(this.sorted.pop()),t()}_flush(e){let{length:t}=this.sorted;for(;t--;)this._push(this.sorted.pop());e()}}t.SortIterator=i},function(e,t,r){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.ActorQueryOperationProject=void 0;const n=r(1),i=r(170),a=r(6),s=r(5),o=new a.DataFactory;class c extends n.ActorQueryOperationTypedMediated{constructor(e){super(e,"project")}async testOperation(e,t){return!0}async runOperation(e,t){const r=n.ActorQueryOperation.getSafeBindings(await this.mediatorQueryOperation.mediate({operation:e.input,context:t})),a=e.variables.map(e=>s.termToString(e)),c=r.variables.filter(e=>!a.includes(e)),u=a.filter(e=>!r.variables.includes(e));if(u.length>0)throw new Error(`Variables '${u}' are used in the projection result, but are not assigned.`);let l=0===c.length?r.bindingsStream:r.bindingsStream.transform({map(e){for(const t of c)e=e.delete(t);return e},autoStart:!1}),d=0;return l=l.transform({map:e=>(d++,e.map(e=>e&&"BlankNode"===e.termType?e instanceof i.BlankNodeScoped?new i.BlankNodeScoped(`${e.value}${d}`,e.skolemized):o.blankNode(`${e.value}${d}`):e)),autoStart:!1}),{type:"bindings",bindingsStream:l,metadata:r.metadata,variables:a,canContainUndefs:r.canContainUndefs}}}t.ActorQueryOperationProject=c},function(e,t,r){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.ActorQueryOperationMinus=void 0;const n=r(1),i=r(3),a=r(448);class s extends n.ActorQueryOperationTypedMediated{constructor(e){super(e,"minus")}async testOperation(e,t){return!0}async runOperation(e,t){const r=n.ActorQueryOperation.getSafeBindings(await this.mediatorQueryOperation.mediate({operation:e.right,context:t})),s=n.ActorQueryOperation.getSafeBindings(await this.mediatorQueryOperation.mediate({operation:e.left,context:t})),o=this.getCommonVariables(r.variables,s.variables);if(o.length>0){const e=new a.BindingsIndex(o),t=new i.TransformIterator(async()=>(await new Promise(t=>{r.bindingsStream.on("data",t=>e.add(t)),r.bindingsStream.on("end",t)}),s.bindingsStream.filter(t=>!e.contains(t))),{autoStart:!1}),n=r.canContainUndefs||s.canContainUndefs;return{type:"bindings",bindingsStream:t,variables:s.variables,metadata:s.metadata,canContainUndefs:n}}return s}getCommonVariables(e,t){return Object.keys(e.filter(e=>t.includes(e)).reduce((e,t)=>(e[t]=!0,e),{}))}}t.ActorQueryOperationMinus=s},function(e,t,r){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.BindingsIndex=void 0;const n=r(5);class i{constructor(e){this.data={},this.keys=e}static hashTerm(e){return e&&"Variable"!==e.termType?n.termToString(e):""}add(e){if(this.isBindingsValid(e)){let t=this.data;for(const r of this.keys){const n=i.hashTerm(e.get(r));let a=t[n];a||(a=t[n]={}),t=a}}}contains(e){return!!this.isBindingsValid(e)&&this.containsRecursive(e,this.keys,[this.data])}isBindingsValid(e){let t=!1;for(const r of this.keys)if(e.get(r)){t=!0;break}return t}containsRecursive(e,t,r){if(0===t.length)return!0;let n;[n,...t]=t;for(const a of r){const r=i.hashTerm(e.get(n));if(r){const n=[a[r],a[""]].filter(Boolean);if(0===n.length)continue;if(this.containsRecursive(e,t,n))return!0}else{let r=Object.keys(a).map(e=>a[e]);if(0===r.length&&(r=[{}]),this.containsRecursive(e,t,r))return!0}}return!1}}t.BindingsIndex=i},function(e,t,r){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.KEY_CONTEXT_LENIENT=t.KEY_CONTEXT_GRAPHQL_SINGULARIZEVARIABLES=t.KEY_CONTEXT_QUERYFORMAT=t.KEY_CONTEXT_INITIALBINDINGS=t.ActorInitSparql=void 0;const n=r(450),i=r(1),a=r(22),s=r(0),o=r(7);class c extends n.ActorInit{constructor(e){super(e)}static enhanceQueryResults(e){return e.bindingsStream?e.bindings=()=>new Promise((t,r)=>{const n=[];e.bindingsStream.on("data",e=>{n.push(e)}),e.bindingsStream.on("end",()=>{t(n)}),e.bindingsStream.on("error",r)}):e.quadStream&&(e.quads=()=>new Promise((t,r)=>{const n=[];e.quadStream.on("data",e=>{n.push(e)}),e.quadStream.on("end",()=>{t(n)}),e.quadStream.on("error",r)})),e}async test(e){return!0}async query(e,r){r=r||{};for(const e in r)if(this.contextKeyShortcuts[e]){const t=r[e];r[this.contextKeyShortcuts[e]]=t,delete r[e]}r[s.KEY_CONTEXT_LOG]||(r[s.KEY_CONTEXT_LOG]=this.logger),r[i.KEY_CONTEXT_QUERY_TIMESTAMP]||(r[i.KEY_CONTEXT_QUERY_TIMESTAMP]=new Date),Array.isArray(r[a.KEY_CONTEXT_SOURCES])&&r[a.KEY_CONTEXT_SOURCES].forEach(e=>{a.isDataSourceRawType(e)||"auto"!==e.type&&"hypermedia"!==e.type||delete e.type});let n,o,u="sparql";if((r=s.ActionContext(r))&&r.has(t.KEY_CONTEXT_QUERYFORMAT)&&(u=r.get(t.KEY_CONTEXT_QUERYFORMAT),r=r.delete(t.KEY_CONTEXT_QUERYFORMAT),"graphql"!==u||r.has(t.KEY_CONTEXT_GRAPHQL_SINGULARIZEVARIABLES)||(r=r.set(t.KEY_CONTEXT_GRAPHQL_SINGULARIZEVARIABLES,{}))),r&&r.has(i.KEY_CONTEXT_BASEIRI)&&(n=r.get(i.KEY_CONTEXT_BASEIRI)),r=(await this.mediatorContextPreprocess.mediate({context:r})).context,"string"==typeof e){const t=await this.mediatorSparqlParse.mediate({context:r,query:e,queryFormat:u,baseIRI:n});o=t.operation,t.baseIRI&&(r=r.set(i.KEY_CONTEXT_BASEIRI,t.baseIRI))}else o=e;if(r.has(t.KEY_CONTEXT_INITIALBINDINGS)){const e=r.get(t.KEY_CONTEXT_INITIALBINDINGS);o=i.materializeOperation(o,i.ensureBindings(e))}o=(await this.mediatorOptimizeQueryOperation.mediate({context:r,operation:o})).operation;const l={context:r,operation:o};let d=await this.mediatorQueryOperation.mediate(l);return d=c.enhanceQueryResults(d),d.context=r,d}async getResultMediaTypes(e){return(await this.mediatorSparqlSerializeMediaTypeCombiner.mediate({context:e,mediaTypes:!0})).mediaTypes}async getResultMediaTypeFormats(e){return(await this.mediatorSparqlSerializeMediaTypeFormatCombiner.mediate({context:e,mediaTypeFormats:!0})).mediaTypeFormats}async resultToString(e,t,r){if(r=s.ActionContext(r),!t)switch(e.type){case"bindings":t="application/json";break;case"quads":t="application/trig";break;default:t="simple"}const n=e;return n.context=r,(await this.mediatorSparqlSerialize.mediate({context:r,handle:n,handleMediaType:t})).handle}invalidateHttpCache(e){return this.mediatorHttpInvalidate.mediate({url:e})}async run(e){throw new Error("ActorInitSparql#run is not supported in the browser.")}}t.ActorInitSparql=c,c.ALGEBRA_TYPES=Object.keys(o.Algebra.types).reduce((e,t)=>(e[o.Algebra.types[t]]=!0,e),{}),t.KEY_CONTEXT_INITIALBINDINGS="@comunica/actor-init-sparql:initialBindings",t.KEY_CONTEXT_QUERYFORMAT="@comunica/actor-init-sparql:queryFormat",t.KEY_CONTEXT_GRAPHQL_SINGULARIZEVARIABLES="@comunica/actor-init-sparql:singularizeVariables",t.KEY_CONTEXT_LENIENT="@comunica/actor-init-sparql:lenient"},function(e,t,r){"use strict";var n=this&&this.__createBinding||(Object.create?function(e,t,r,n){void 0===n&&(n=r),Object.defineProperty(e,n,{enumerable:!0,get:function(){return t[r]}})}:function(e,t,r,n){void 0===n&&(n=r),e[n]=t[r]}),i=this&&this.__exportStar||function(e,t){for(var r in e)"default"===r||Object.prototype.hasOwnProperty.call(t,r)||n(t,e,r)};Object.defineProperty(t,"__esModule",{value:!0}),i(r(451),t)},function(e,t,r){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.ActorInit=void 0;const n=r(0);class i extends n.Actor{constructor(e){super(e)}}t.ActorInit=i},function(e,t,r){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.ActorSparqlSerialize=void 0;const n=r(32);class i extends n.ActorAbstractMediaTyped{constructor(e){super(e)}}t.ActorSparqlSerialize=i},function(e,t,r){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.ActorSparqlSerializeFixedMediaTypes=void 0;const n=r(32);class i extends n.ActorAbstractMediaTypedFixed{constructor(e){super(e)}async testHandleChecked(e,t){return!0}}t.ActorSparqlSerializeFixedMediaTypes=i},function(e,t,r){const n=new(r(84).LoggerVoid)({}),i=new(r(0).Bus)({name:"https://linkedsoftwaredependencies.org/bundles/npm/@comunica/bus-init/Bus/Init"}),a=new(r(0).Bus)({name:"https://linkedsoftwaredependencies.org/bundles/npm/@comunica/bus-http/Bus/Http"}),s=new(r(0).Bus)({name:"https://linkedsoftwaredependencies.org/bundles/npm/@comunica/bus-rdf-parse/Bus/RdfParse"}),o=new(r(0).Bus)({name:"https://linkedsoftwaredependencies.org/bundles/npm/@comunica/bus-rdf-parse-html/Bus/RdfParseHtml"}),c=new(r(0).Bus)({name:"https://linkedsoftwaredependencies.org/bundles/npm/@comunica/bus-rdf-join/Bus/RdfJoin"}),u=new(r(0).Bus)({name:"https://linkedsoftwaredependencies.org/bundles/npm/@comunica/bus-rdf-dereference/Bus/RdfDereference"}),l=new(r(0).Bus)({name:"https://linkedsoftwaredependencies.org/bundles/npm/@comunica/bus-rdf-serialize/Bus/RdfSerialize"}),d=new(r(0).Bus)({name:"https://linkedsoftwaredependencies.org/bundles/npm/@comunica/bus-rdf-resolve-quad-pattern/Bus/RdfResolveQuadPattern"}),p=new(r(0).Bus)({name:"https://linkedsoftwaredependencies.org/bundles/npm/@comunica/bus-rdf-resolve-hypermedia/Bus/RdfResolveHypermedia"}),h=new(r(0).Bus)({name:"https://linkedsoftwaredependencies.org/bundles/npm/@comunica/bus-rdf-metadata-extract/Bus/RdfMetadataExtract"}),f=new(r(0).Bus)({name:"https://linkedsoftwaredependencies.org/bundles/npm/@comunica/bus-sparql-parse/Bus/SparqlParse"}),m=new(r(0).Bus)({name:"https://linkedsoftwaredependencies.org/bundles/npm/@comunica/bus-optimize-query-operation/Bus/OptimizeQueryOperation"}),g=new(r(0).Bus)({name:"https://linkedsoftwaredependencies.org/bundles/npm/@comunica/bus-sparql-serialize/Bus/SparqlSerialize"}),y=new(r(0).Bus)({name:"https://linkedsoftwaredependencies.org/bundles/npm/@comunica/bus-context-preprocess/Bus/ContextPreprocess"}),b=new(r(0).Bus)({name:"https://linkedsoftwaredependencies.org/bundles/npm/@comunica/bus-http-invalidate/Bus/HttpInvalidate"}),_=new(r(0).Bus)({name:"https://linkedsoftwaredependencies.org/bundles/npm/@comunica/bus-rdf-metadata/Bus/RdfMetadata"}),v=new(r(0).Bus)({name:"https://linkedsoftwaredependencies.org/bundles/npm/@comunica/bus-rdf-resolve-hypermedia-links/Bus/RdfResolveHypermediaLinks"}),w=new(r(0).BusIndexed)({actorIdentifierFields:["operationName"],actionIdentifierFields:["operation","type"],name:"https://linkedsoftwaredependencies.org/bundles/npm/@comunica/bus-query-operation/Bus/QueryOperation"}),S=new(r(36).MediatorNumber)({field:"time",type:"https://linkedsoftwaredependencies.org/bundles/npm/@comunica/mediator-number/Mediator/Number/type/TypeMin",ignoreErrors:!0,name:"https://linkedsoftwaredependencies.org/bundles/npm/@comunica/actor-init-sparql/^1.0.0/config/sets/http.json#mediatorHttp",bus:a}),E=new(r(455).ActorHttpNative)({agentOptions:'{ "keepAlive": true, "maxSockets": 5 }',name:"https://linkedsoftwaredependencies.org/bundles/npm/@comunica/actor-init-sparql/^1.0.0/config/sets/http.json#myHttpFetcher",bus:a}),T=new(r(204).ActionObserverHttp)({name:"https://linkedsoftwaredependencies.org/bundles/npm/@comunica/actor-sparql-serialize-stats/Actor/SparqlSerialize/Stats/httpObserver/default",bus:a}),O=new(r(87).ActorRdfParseN3)({mediaTypes:{"application/n-quads":"1.0","application/trig":"0.95","application/n-triples":"0.8","text/turtle":"0.6","text/n3":"0.35"},mediaTypeFormats:{"application/n-quads":"http://www.w3.org/ns/formats/N-Quads","application/trig":"http://www.w3.org/ns/formats/TriG","application/n-triples":"http://www.w3.org/ns/formats/N-Triples","text/turtle":"http://www.w3.org/ns/formats/Turtle","text/n3":"http://www.w3.org/ns/formats/N3"},priorityScale:"1",name:"https://linkedsoftwaredependencies.org/bundles/npm/@comunica/actor-init-sparql/^1.0.0/config/sets/rdf-parsers.json#myRdfParserN3",bus:s}),x=new(r(95).ActorRdfParseRdfXml)({mediaTypes:{"application/rdf+xml":"1.0"},mediaTypeFormats:{"application/rdf+xml":"http://www.w3.org/ns/formats/RDF_XML"},priorityScale:"5.0E-1",name:"https://linkedsoftwaredependencies.org/bundles/npm/@comunica/actor-init-sparql/^1.0.0/config/sets/rdf-parsers.json#myRdfParserRdfXml",bus:s}),A=new(r(102).ActorRdfParseXmlRdfa)({mediaTypes:{"application/xml":"1.0","text/xml":"1.0","image/svg+xml":"1.0"},mediaTypeFormats:{"application/xml":"http://www.w3.org/ns/formats/RDFa","text/xml":"http://www.w3.org/ns/formats/RDFa","image/svg+xml":"http://www.w3.org/ns/formats/RDFa"},priorityScale:"3.0E-1",name:"https://linkedsoftwaredependencies.org/bundles/npm/@comunica/actor-init-sparql/^1.0.0/config/sets/rdf-parsers.json#myRdfParserXmlRdfa",bus:s}),R=new(r(13).MediatorCombineUnion)({field:"mediaTypes",name:"https://linkedsoftwaredependencies.org/bundles/npm/@comunica/actor-init-sparql/^1.0.0/config/sets/rdf-parsers.json#mediatorRdfParseMediatypes",bus:s}),I=new(r(10).MediatorRace)({name:"https://linkedsoftwaredependencies.org/bundles/npm/@comunica/actor-init-sparql/^1.0.0/config/sets/rdf-parsers.json#mediatorRdfParseHandle",bus:s}),P=new(r(13).MediatorCombineUnion)({field:"mediaTypes",name:"https://linkedsoftwaredependencies.org/bundles/npm/@comunica/actor-init-sparql/^1.0.0/config/sets/rdf-dereference.json#mediatorRdfParseMediatypes",bus:s}),N=new(r(10).MediatorRace)({name:"https://linkedsoftwaredependencies.org/bundles/npm/@comunica/actor-init-sparql/^1.0.0/config/sets/rdf-dereference.json#mediatorRdfParseHandle",bus:s}),C=new(r(118).ActorRdfParseHtml)({busRdfParseHtml:o,mediaTypes:{"text/html":"1.0","application/xhtml+xml":"0.9"},mediaTypeFormats:{"text/html":"http://www.w3.org/ns/formats/HTML","application/xhtml+xml":"http://www.w3.org/ns/formats/HTML"},priorityScale:"2.0E-1",name:"https://linkedsoftwaredependencies.org/bundles/npm/@comunica/actor-init-sparql/^1.0.0/config/sets/rdf-parsers.json#myRdfParserHtml",bus:s}),j=new(r(119).ActorRdfParseHtmlRdfa)({name:"https://linkedsoftwaredependencies.org/bundles/npm/@comunica/actor-init-sparql/^1.0.0/config/sets/rdf-parsers.json#myRdfParserHtmlRdfa",bus:o}),D=new(r(10).MediatorRace)({name:"https://linkedsoftwaredependencies.org/bundles/npm/@comunica/actor-init-sparql/^1.0.0/config/sets/sparql-queryoperators.json#mediatorRdfJoin",bus:c}),k=new(r(121).ActorRdfJoinSymmetricHash)({name:"https://linkedsoftwaredependencies.org/bundles/npm/@comunica/actor-init-sparql/^1.0.0/config/sets/join.json#myRdfJoinActorSymmetricHash",bus:c}),L=new(r(128).ActorRdfJoinNestedLoop)({name:"https://linkedsoftwaredependencies.org/bundles/npm/@comunica/actor-init-sparql/^1.0.0/config/sets/join.json#myRdfJoinActorNestedLoop",bus:c}),M=new(r(10).MediatorRace)({name:"https://linkedsoftwaredependencies.org/bundles/npm/@comunica/actor-init-sparql/^1.0.0/config/sets/resolve-hypermedia.json#mediatorRdfDereference",bus:u}),F=new(r(466).ActorRdfSerializeN3)({mediaTypes:{"application/trig":"1.0","application/n-quads":"0.7","text/turtle":"0.6","application/n-triples":"0.3","text/n3":"0.2"},mediaTypeFormats:{"application/trig":"http://www.w3.org/ns/formats/TriG","application/n-quads":"http://www.w3.org/ns/formats/N-Quads","text/turtle":"http://www.w3.org/ns/formats/Turtle","application/n-triples":"http://www.w3.org/ns/formats/N-Triples","text/n3":"http://www.w3.org/ns/formats/N3"},name:"https://linkedsoftwaredependencies.org/bundles/npm/@comunica/actor-init-sparql/^1.0.0/config/sets/rdf-serializers.json#myRdfSerializerN3",bus:l}),q=new(r(69).ActorRdfSerializeJsonLd)({jsonStringifyIndentSpaces:2,mediaTypes:{"application/ld+json":"1.0"},mediaTypeFormats:{"application/ld+json":"http://www.w3.org/ns/formats/JSON-LD"},priorityScale:"9.0E-1",name:"https://linkedsoftwaredependencies.org/bundles/npm/@comunica/actor-init-sparql/^1.0.0/config/sets/rdf-serializers.json#myRdfSerializeJsonLd",bus:l}),B=new(r(10).MediatorRace)({name:"https://linkedsoftwaredependencies.org/bundles/npm/@comunica/actor-init-sparql/^1.0.0/config/sets/sparql-serializers.json#mediatorRdfSerialize",bus:l}),U=new(r(13).MediatorCombineUnion)({field:"mediaTypes",name:"_:b0bnode320",bus:l}),V=new(r(13).MediatorCombineUnion)({field:"mediaTypeFormats",name:"_:b1bnode320",bus:l}),Q=new(r(67).ActorRdfResolveQuadPatternRdfJsSource)({name:"https://linkedsoftwaredependencies.org/bundles/npm/@comunica/actor-init-sparql/^1.0.0/config/sets/resolve-rdfjs.json#myRdfRdfJsSourceQuadPatternResolver",bus:d}),H=new(r(10).MediatorRace)({name:"https://linkedsoftwaredependencies.org/bundles/npm/@comunica/actor-init-sparql/^1.0.0/config/sets/sparql-queryoperators.json#mediatorResolveQuadPattern",bus:d}),G=new(r(146).ActorRdfResolveHypermediaNone)({name:"https://linkedsoftwaredependencies.org/bundles/npm/@comunica/actor-init-sparql/^1.0.0/config/sets/resolve-hypermedia.json#myHypermediaNoneResolver",bus:p}),z=new(r(36).MediatorNumber)({field:"filterFactor",type:"https://linkedsoftwaredependencies.org/bundles/npm/@comunica/mediator-number/Mediator/Number/type/TypeMax",ignoreErrors:!0,name:"https://linkedsoftwaredependencies.org/bundles/npm/@comunica/actor-init-sparql/^1.0.0/config/sets/resolve-hypermedia.json#mediatorRdfResolveHypermedia",bus:p}),X=new(r(145).ActorRdfMetadataExtractSparqlService)({name:"https://linkedsoftwaredependencies.org/bundles/npm/@comunica/actor-init-sparql/^1.0.0/config/sets/resolve-sparql.json#myRdfMetadataExtractSparqlService",bus:h}),$=new(r(13).MediatorCombineUnion)({field:"metadata",name:"https://linkedsoftwaredependencies.org/bundles/npm/@comunica/actor-init-sparql/^1.0.0/config/sets/resolve-hypermedia.json#mediatorMetadataExtract",bus:h}),Y=new(r(135).ActorRdfMetadataExtractHydraControls)({name:"https://linkedsoftwaredependencies.org/bundles/npm/@comunica/actor-init-sparql/^1.0.0/config/sets/resolve-hypermedia.json#myRdfMetadataExtractHydraControls",bus:h}),J=new(r(144).ActorRdfMetadataExtractHydraCount)({predicates:["http://www.w3.org/ns/hydra/core#totalItems","http://rdfs.org/ns/void#triples"],name:"https://linkedsoftwaredependencies.org/bundles/npm/@comunica/actor-init-sparql/^1.0.0/config/sets/resolve-hypermedia.json#myRdfMetadataExtractHydraCount",bus:h}),W=new(r(471).ActorSparqlParseGraphql)({name:"https://linkedsoftwaredependencies.org/bundles/npm/@comunica/actor-init-sparql/^1.0.0/config/sets/graphql-parsers.json#myGraphqlParser",bus:f}),K=new(r(151).ActorSparqlParseAlgebra)({prefixes:{rdf:"http://www.w3.org/1999/02/22-rdf-syntax-ns#",rdfs:"http://www.w3.org/2000/01/rdf-schema#",owl:"http://www.w3.org/2002/07/owl#",xsd:"http://www.w3.org/2001/XMLSchema#",dc:"http://purl.org/dc/terms/",dcterms:"http://purl.org/dc/terms/",dc11:"http://purl.org/dc/elements/1.1/",foaf:"http://xmlns.com/foaf/0.1/",geo:"http://www.w3.org/2003/01/geo/wgs84_pos#",dbpedia:"http://dbpedia.org/resource/","dbpedia-owl":"http://dbpedia.org/ontology/",dbpprop:"http://dbpedia.org/property/",schema:"http://schema.org/",skos:"http://www.w3.org/2008/05/skos#"},name:"https://linkedsoftwaredependencies.org/bundles/npm/@comunica/actor-init-sparql/^1.0.0/config/sets/sparql-parsers.json#mySparqlParser",bus:f}),Z=new(r(10).MediatorRace)({name:"https://linkedsoftwaredependencies.org/bundles/npm/@comunica/actor-init-sparql/^1.0.0/config/sets/sparql-init.json#mediatorSparqlParse",bus:f}),ee=new(r(53).MediatorCombinePipeline)({name:"https://linkedsoftwaredependencies.org/bundles/npm/@comunica/actor-init-sparql/^1.0.0/config/sets/sparql-init.json#mediatorOptimizeQueryOperation",bus:m}),te=new(r(153).ActorOptimizeQueryOperationJoinBgp)({name:"https://linkedsoftwaredependencies.org/bundles/npm/@comunica/actor-init-sparql/^1.0.0/config/sets/sparql-optimize.json#myJoinBgpOptimizer",bus:m}),re=new(r(10).MediatorRace)({name:"https://linkedsoftwaredependencies.org/bundles/npm/@comunica/actor-init-sparql/^1.0.0/config/sets/sparql-init.json#mediatorSparqlSerialize",bus:g}),ne=new(r(13).MediatorCombineUnion)({field:"mediaTypes",name:"_:b0bnode314",bus:g}),ie=new(r(13).MediatorCombineUnion)({field:"mediaTypeFormats",name:"_:b1bnode314",bus:g}),ae=new(r(473).ActorSparqlSerializeJson)({mediaTypes:{"application/json":"1.0"},mediaTypeFormats:{"application/json":"https://comunica.linkeddatafragments.org/#results_JSON"},name:"https://linkedsoftwaredependencies.org/bundles/npm/@comunica/actor-init-sparql/^1.0.0/config/sets/sparql-serializers.json#myJsonSparqlSerializer",bus:g}),se=new(r(475).ActorSparqlSerializeSimple)({mediaTypes:{simple:"0.9"},mediaTypeFormats:{simple:"https://comunica.linkeddatafragments.org/#results_simple"},name:"https://linkedsoftwaredependencies.org/bundles/npm/@comunica/actor-init-sparql/^1.0.0/config/sets/sparql-serializers.json#mySimpleSparqlSerializer",bus:g}),oe=new(r(477).ActorSparqlSerializeSparqlCsv)({mediaTypes:{"text/csv":"0.75"},mediaTypeFormats:{"text/csv":"http://www.w3.org/ns/formats/SPARQL_Results_CSV"},name:"https://linkedsoftwaredependencies.org/bundles/npm/@comunica/actor-init-sparql/^1.0.0/config/sets/sparql-serializers.json#mySparqlCsvSparqlSerializer",bus:g}),ce=new(r(479).ActorSparqlSerializeSparqlJson)({mediaTypes:{"application/sparql-results+json":"0.8"},mediaTypeFormats:{"application/sparql-results+json":"http://www.w3.org/ns/formats/SPARQL_Results_JSON"},name:"https://linkedsoftwaredependencies.org/bundles/npm/@comunica/actor-init-sparql/^1.0.0/config/sets/sparql-serializers.json#mySparqlJsonSparqlSerializer",bus:g}),ue=new(r(481).ActorSparqlSerializeSparqlTsv)({mediaTypes:{"text/tab-separated-values":"0.75"},mediaTypeFormats:{"text/tab-separated-values":"http://www.w3.org/ns/formats/SPARQL_Results_TSV"},name:"https://linkedsoftwaredependencies.org/bundles/npm/@comunica/actor-init-sparql/^1.0.0/config/sets/sparql-serializers.json#mySparqlTsvSparqlSerializer",bus:g}),le=new(r(485).ActorSparqlSerializeSparqlXml)({mediaTypes:{"application/sparql-results+xml":"0.8"},mediaTypeFormats:{"application/sparql-results+xml":"http://www.w3.org/ns/formats/SPARQL_Results_XML"},name:"https://linkedsoftwaredependencies.org/bundles/npm/@comunica/actor-init-sparql/^1.0.0/config/sets/sparql-serializers.json#mySparqlXmlSparqlSerializer",bus:g}),de=new(r(489).ActorSparqlSerializeTable)({columnWidth:50,mediaTypes:{table:"0.6"},mediaTypeFormats:{table:"https://comunica.linkeddatafragments.org/#results_table"},name:"https://linkedsoftwaredependencies.org/bundles/npm/@comunica/actor-init-sparql/^1.0.0/config/sets/sparql-serializers.json#myTableSparqlSerializer",bus:g}),pe=new(r(200).ActorSparqlSerializeTree)({mediaTypes:{tree:"0.5"},mediaTypeFormats:{tree:"https://comunica.linkeddatafragments.org/#results_tree"},name:"https://linkedsoftwaredependencies.org/bundles/npm/@comunica/actor-init-sparql/^1.0.0/config/sets/sparql-serializers.json#myTreeSparqlSerializer",bus:g}),he=new(r(53).MediatorCombinePipeline)({name:"https://linkedsoftwaredependencies.org/bundles/npm/@comunica/actor-init-sparql/^1.0.0/config/sets/sparql-init.json#mediatorContextPreprocess",bus:y}),fe=new(r(150).MediatorAll)({name:"https://linkedsoftwaredependencies.org/bundles/npm/@comunica/actor-init-sparql/^1.0.0/config/sets/sparql-init.json#mediatorHttpInvalidate",bus:b}),me=new(r(148).ActorHttpInvalidateListenable)({name:"https://linkedsoftwaredependencies.org/bundles/npm/@comunica/actor-rdf-resolve-quad-pattern-hypermedia/Actor/RdfResolveQuadPattern/Hypermedia/httpInvalidator#default",bus:b}),ge=new(r(10).MediatorRace)({name:"https://linkedsoftwaredependencies.org/bundles/npm/@comunica/actor-init-sparql/^1.0.0/config/sets/resolve-hypermedia.json#mediatorMetadata",bus:_}),ye=new(r(131).ActorRdfMetadataPrimaryTopic)({metadataToData:!1,dataToMetadataOnInvalidMetadataGraph:!0,name:"https://linkedsoftwaredependencies.org/bundles/npm/@comunica/actor-init-sparql/^1.0.0/config/sets/resolve-hypermedia.json#myRdfMetadataPrimaryTopic",bus:_}),be=new(r(134).ActorRdfMetadataAll)({name:"https://linkedsoftwaredependencies.org/bundles/npm/@comunica/actor-init-sparql/^1.0.0/config/sets/resolve-hypermedia.json#myRdfMetadataAll",bus:_}),_e=new(r(10).MediatorRace)({name:"https://linkedsoftwaredependencies.org/bundles/npm/@comunica/actor-init-sparql/^1.0.0/config/sets/resolve-hypermedia.json#mediatorRdfResolveHypermediaLinks",bus:v}),ve=new(r(147).ActorRdfResolveHypermediaLinksNext)({name:"https://linkedsoftwaredependencies.org/bundles/npm/@comunica/actor-init-sparql/^1.0.0/config/sets/resolve-hypermedia.json#myHypermediaLinksNext",bus:v}),we=new(r(36).MediatorNumber)({field:"httpRequests",type:"https://linkedsoftwaredependencies.org/bundles/npm/@comunica/mediator-number/Mediator/Number/type/TypeMin",ignoreErrors:!0,name:"https://linkedsoftwaredependencies.org/bundles/npm/@comunica/actor-init-sparql/^1.0.0/config/sets/sparql-queryoperators.json#mediatorQueryOperation",bus:w}),Se=new(r(154).ActorQueryOperationBgpEmpty)({name:"https://linkedsoftwaredependencies.org/bundles/npm/@comunica/actor-init-sparql/^1.0.0/config/sets/sparql-queryoperators.json#myEmptyBgpQueryOperator",bus:w}),Ee=new(r(155).ActorQueryOperationValues)({name:"https://linkedsoftwaredependencies.org/bundles/npm/@comunica/actor-init-sparql/^1.0.0/config/sets/sparql-queryoperators.json#myValuesQueryOperator",bus:w}),Te=new(r(157).ActorRdfParseJsonLd)({mediatorHttp:S,mediaTypes:{"application/ld+json":"1.0","application/json":"0.5"},mediaTypeFormats:{"application/ld+json":"http://www.w3.org/ns/formats/JSON-LD","application/json":"http://www.w3.org/ns/formats/JSON-LD"},priorityScale:"9.0E-1",name:"https://linkedsoftwaredependencies.org/bundles/npm/@comunica/actor-init-sparql/^1.0.0/config/sets/rdf-parsers.json#myRdfParserJsonLd",bus:s}),Oe=new(r(491).ActorHttpMemento)({mediatorHttp:S,name:"https://linkedsoftwaredependencies.org/bundles/npm/@comunica/actor-init-sparql/^1.0.0/config/sets/http-memento.json#myHttpFetcher",bus:a}),xe=new(r(163).ActorRdfResolveHypermediaSparql)({mediatorHttp:S,checkUrlSuffix:!0,name:"https://linkedsoftwaredependencies.org/bundles/npm/@comunica/actor-init-sparql/^1.0.0/config/sets/resolve-sparql.json#mySparqlQuadPatternResolver",bus:p}),Ae=new(r(165).ActorQueryOperationSparqlEndpoint)({mediatorHttp:S,name:"https://linkedsoftwaredependencies.org/bundles/npm/@comunica/actor-init-sparql/^1.0.0/config/sets/resolve-sparql.json#mySparqlEndpointResolver",bus:w}),Re=new(r(204).ActorSparqlSerializeStats)({httpObserver:T,mediaTypes:{stats:"0.5"},mediaTypeFormats:{stats:"https://comunica.linkeddatafragments.org/#results_stats"},name:"https://linkedsoftwaredependencies.org/bundles/npm/@comunica/actor-init-sparql/^1.0.0/config/sets/sparql-serializers.json#myStatsSparqlSerializer",bus:g}),Ie=new(r(156).ActorRdfParseHtmlScript)({mediatorRdfParseMediatypes:R,mediatorRdfParseHandle:I,name:"https://linkedsoftwaredependencies.org/bundles/npm/@comunica/actor-init-sparql/^1.0.0/config/sets/rdf-parsers.json#myRdfParserHtmlScript",bus:o}),Pe=new(r(160).ActorRdfDereferenceHttpParse)({mediatorHttp:S,mediatorRdfParseMediatypes:P,mediatorRdfParseHandle:N,maxAcceptHeaderLength:1024,maxAcceptHeaderLengthBrowser:128,mediaMappings:{ttl:"text/turtle",turtle:"text/turtle",nt:"application/n-triples",ntriples:"application/n-triples",nq:"application/n-quads",nquads:"application/n-quads",rdf:"application/rdf+xml",rdfxml:"application/rdf+xml",owl:"application/rdf+xml",n3:"text/n3",trig:"application/trig",jsonld:"application/ld+json",json:"application/json",html:"text/html",htm:"text/html",xhtml:"application/xhtml+xml",xht:"application/xhtml+xml",xml:"application/xml",svg:"image/svg+xml",svgz:"image/svg+xml"},name:"https://linkedsoftwaredependencies.org/bundles/npm/@comunica/actor-init-sparql/^1.0.0/config/sets/rdf-dereference.json#myRdfDereferencer",bus:u}),Ne=new(r(167).ActorRdfJoinMultiSmallest)({mediatorJoin:D,name:"https://linkedsoftwaredependencies.org/bundles/npm/@comunica/actor-init-sparql/^1.0.0/config/sets/join.json#myRdfJoinMultiActor",bus:c}),Ce=new(r(493).ActorSparqlSerializeRdf)({mediatorRdfSerialize:B,mediatorMediaTypeCombiner:U,mediatorMediaTypeFormatCombiner:V,name:"https://linkedsoftwaredependencies.org/bundles/npm/@comunica/actor-init-sparql/^1.0.0/config/sets/sparql-serializers.json#myRdfSparqlSerializer",bus:g}),je=new(r(168).ActorRdfResolveQuadPatternFederated)({mediatorResolveQuadPattern:H,skipEmptyPatterns:!1,name:"https://linkedsoftwaredependencies.org/bundles/npm/@comunica/actor-init-sparql/^1.0.0/config/sets/resolve-federated.json#myFederatedQuadPatternResolver",bus:d}),De=new(r(171).ActorQueryOperationQuadpattern)({mediatorResolveQuadPattern:H,name:"https://linkedsoftwaredependencies.org/bundles/npm/@comunica/actor-init-sparql/^1.0.0/config/sets/sparql-queryoperators.json#myQuadPatternQueryOperator",bus:w}),ke=new(r(172).ActorRdfResolveHypermediaQpf)({mediatorMetadata:ge,mediatorMetadataExtract:$,mediatorRdfDereference:M,subjectUri:"http://www.w3.org/1999/02/22-rdf-syntax-ns#subject",predicateUri:"http://www.w3.org/1999/02/22-rdf-syntax-ns#predicate",objectUri:"http://www.w3.org/1999/02/22-rdf-syntax-ns#object",graphUri:"http://www.w3.org/ns/sparql-service-description#graph",name:"https://linkedsoftwaredependencies.org/bundles/npm/@comunica/actor-init-sparql/^1.0.0/config/sets/resolve-hypermedia.json#myHypermediaQpfResolver",bus:p}),Le=new(r(173).ActorRdfResolveQuadPatternHypermedia)({mediatorRdfDereference:M,mediatorMetadata:ge,mediatorMetadataExtract:$,mediatorRdfResolveHypermedia:z,mediatorRdfResolveHypermediaLinks:_e,cacheSize:100,httpInvalidator:me,name:"https://linkedsoftwaredependencies.org/bundles/npm/@comunica/actor-init-sparql/^1.0.0/config/sets/resolve-hypermedia.json#myQuadPatternHypermediaResolver",bus:d}),Me=new(r(495).ActorHttpProxy)({mediatorHttp:S,name:"https://linkedsoftwaredependencies.org/bundles/npm/@comunica/actor-init-sparql/^1.0.0/config/sets/http.json#myHttpProxy",bus:a,beforeActors:[E]}),Fe=new(r(199).ActorInitSparql)({mediatorOptimizeQueryOperation:ee,mediatorQueryOperation:we,mediatorSparqlParse:Z,mediatorSparqlSerialize:re,mediatorSparqlSerializeMediaTypeCombiner:ne,mediatorSparqlSerializeMediaTypeFormatCombiner:ie,mediatorContextPreprocess:he,mediatorHttpInvalidate:fe,logger:n,contextKeyShortcuts:{source:"@comunica/bus-rdf-resolve-quad-pattern:source",sources:"@comunica/bus-rdf-resolve-quad-pattern:sources",initialBindings:"@comunica/actor-init-sparql:initialBindings",queryFormat:"@comunica/actor-init-sparql:queryFormat",baseIRI:"@comunica/actor-init-sparql:baseIRI",log:"@comunica/core:log",datetime:"@comunica/actor-http-memento:datetime",queryTimestamp:"@comunica/actor-init-sparql:queryTimestamp",httpProxyHandler:"@comunica/actor-http-proxy:httpProxyHandler",lenient:"@comunica/actor-init-sparql:lenient",httpIncludeCredentials:"@comunica/bus-http:include-credentials",httpAuth:"@comunica/bus-http:auth"},name:"urn:comunica:sparqlinit",bus:i});new(r(205).ActorQueryOperationPathAlt)({mediatorQueryOperation:we,name:"https://linkedsoftwaredependencies.org/bundles/npm/@comunica/actor-init-sparql/^1.0.0/config/sets/sparql-queryoperator-path.json#myAltPathOperator",bus:w}),new(r(207).ActorQueryOperationPathInv)({mediatorQueryOperation:we,name:"https://linkedsoftwaredependencies.org/bundles/npm/@comunica/actor-init-sparql/^1.0.0/config/sets/sparql-queryoperator-path.json#myInvPathOperator",bus:w}),new(r(208).ActorQueryOperationPathLink)({mediatorQueryOperation:we,name:"https://linkedsoftwaredependencies.org/bundles/npm/@comunica/actor-init-sparql/^1.0.0/config/sets/sparql-queryoperator-path.json#myLinkPathOperator",bus:w}),new(r(209).ActorQueryOperationPathNps)({mediatorQueryOperation:we,name:"https://linkedsoftwaredependencies.org/bundles/npm/@comunica/actor-init-sparql/^1.0.0/config/sets/sparql-queryoperator-path.json#myNpsPathOperator",bus:w}),new(r(210).ActorQueryOperationPathOneOrMore)({mediatorQueryOperation:we,name:"https://linkedsoftwaredependencies.org/bundles/npm/@comunica/actor-init-sparql/^1.0.0/config/sets/sparql-queryoperator-path.json#myOneOrMorePathOperator",bus:w}),new(r(211).ActorQueryOperationPathSeq)({mediatorJoin:D,mediatorQueryOperation:we,name:"https://linkedsoftwaredependencies.org/bundles/npm/@comunica/actor-init-sparql/^1.0.0/config/sets/sparql-queryoperator-path.json#mySeqPathOperator",bus:w}),new(r(212).ActorQueryOperationPathZeroOrMore)({mediatorQueryOperation:we,name:"https://linkedsoftwaredependencies.org/bundles/npm/@comunica/actor-init-sparql/^1.0.0/config/sets/sparql-queryoperator-path.json#myZeroOrMorePathOperator",bus:w}),new(r(213).ActorQueryOperationPathZeroOrOne)({mediatorQueryOperation:we,name:"https://linkedsoftwaredependencies.org/bundles/npm/@comunica/actor-init-sparql/^1.0.0/config/sets/sparql-queryoperator-path.json#myZeroOrOnePathOperator",bus:w}),new(r(175).ActorQueryOperationAsk)({mediatorQueryOperation:we,name:"https://linkedsoftwaredependencies.org/bundles/npm/@comunica/actor-init-sparql/^1.0.0/config/sets/sparql-queryoperators.json#myAskQueryOperator",bus:w}),new(r(176).ActorQueryOperationService)({forceSparqlEndpoint:!1,mediatorQueryOperation:we,name:"https://linkedsoftwaredependencies.org/bundles/npm/@comunica/actor-init-sparql/^1.0.0/config/sets/sparql-queryoperators.json#myServiceQueryOperator",bus:w}),new(r(177).ActorQueryOperationSlice)({mediatorQueryOperation:we,name:"https://linkedsoftwaredependencies.org/bundles/npm/@comunica/actor-init-sparql/^1.0.0/config/sets/sparql-queryoperators.json#mySliceQueryOperator",bus:w}),new(r(178).ActorQueryOperationBgpSingle)({mediatorQueryOperation:we,name:"https://linkedsoftwaredependencies.org/bundles/npm/@comunica/actor-init-sparql/^1.0.0/config/sets/sparql-queryoperators.json#mySingleBgpQueryOperator",bus:w}),new(r(179).ActorQueryOperationBgpLeftDeepSmallest)({mediatorQueryOperation:we,name:"https://linkedsoftwaredependencies.org/bundles/npm/@comunica/actor-init-sparql/^1.0.0/config/sets/sparql-queryoperators.json#myLeftDeepSmallestBgpQueryOperator",bus:w}),new(r(180).ActorQueryOperationConstruct)({mediatorQueryOperation:we,name:"https://linkedsoftwaredependencies.org/bundles/npm/@comunica/actor-init-sparql/^1.0.0/config/sets/sparql-queryoperators.json#myConstructQueryOperator",bus:w}),new(r(181).ActorQueryOperationDescribeSubject)({mediatorQueryOperation:we,name:"https://linkedsoftwaredependencies.org/bundles/npm/@comunica/actor-init-sparql/^1.0.0/config/sets/sparql-queryoperators.json#myDescribeQueryOperator",bus:w}),new(r(182).ActorQueryOperationDistinctHash)({hashAlgorithm:"sha1",digestAlgorithm:"base64",mediatorQueryOperation:we,name:"https://linkedsoftwaredependencies.org/bundles/npm/@comunica/actor-init-sparql/^1.0.0/config/sets/sparql-queryoperators.json#myDistinctQueryOperator",bus:w}),new(r(184).ActorQueryOperationExtend)({mediatorQueryOperation:we,name:"https://linkedsoftwaredependencies.org/bundles/npm/@comunica/actor-init-sparql/^1.0.0/config/sets/sparql-queryoperators.json#myExtendQueryOperator",bus:w}),new(r(190).ActorQueryOperationReducedHash)({hashAlgorithm:"sha1",digestAlgorithm:"base64",cacheSize:100,mediatorQueryOperation:we,name:"https://linkedsoftwaredependencies.org/bundles/npm/@comunica/actor-init-sparql/^1.0.0/config/sets/sparql-queryoperators.json#myReducedQueryOperator",bus:w}),new(r(191).ActorQueryOperationFilterSparqlee)({mediatorQueryOperation:we,name:"https://linkedsoftwaredependencies.org/bundles/npm/@comunica/actor-init-sparql/^1.0.0/config/sets/sparql-queryoperators.json#myFilterQueryOperator",bus:w}),new(r(192).ActorQueryOperationFromQuad)({mediatorQueryOperation:we,name:"https://linkedsoftwaredependencies.org/bundles/npm/@comunica/actor-init-sparql/^1.0.0/config/sets/sparql-queryoperators.json#myFromQueryOperator",bus:w}),new(r(193).ActorQueryOperationGroup)({mediatorQueryOperation:we,name:"https://linkedsoftwaredependencies.org/bundles/npm/@comunica/actor-init-sparql/^1.0.0/config/sets/sparql-queryoperators.json#myGroupQueryOperator",bus:w}),new(r(194).ActorQueryOperationJoin)({mediatorJoin:D,mediatorQueryOperation:we,name:"https://linkedsoftwaredependencies.org/bundles/npm/@comunica/actor-init-sparql/^1.0.0/config/sets/sparql-queryoperators.json#myJoinQueryOperator",bus:w}),new(r(195).ActorQueryOperationLeftJoinLeftDeep)({mediatorQueryOperation:we,name:"https://linkedsoftwaredependencies.org/bundles/npm/@comunica/actor-init-sparql/^1.0.0/config/sets/sparql-queryoperators.json#myLeftJoinQueryOperator",bus:w}),new(r(196).ActorQueryOperationOrderBySparqlee)({mediatorQueryOperation:we,name:"https://linkedsoftwaredependencies.org/bundles/npm/@comunica/actor-init-sparql/^1.0.0/config/sets/sparql-queryoperators.json#myOrderByQueryOperator",bus:w}),new(r(197).ActorQueryOperationProject)({mediatorQueryOperation:we,name:"https://linkedsoftwaredependencies.org/bundles/npm/@comunica/actor-init-sparql/^1.0.0/config/sets/sparql-queryoperators.json#myProjectQueryOperator",bus:w}),new(r(74).ActorQueryOperationUnion)({mediatorQueryOperation:we,name:"https://linkedsoftwaredependencies.org/bundles/npm/@comunica/actor-init-sparql/^1.0.0/config/sets/sparql-queryoperators.json#myUnionQueryOperator",bus:w}),new(r(198).ActorQueryOperationMinus)({mediatorQueryOperation:we,name:"https://linkedsoftwaredependencies.org/bundles/npm/@comunica/actor-init-sparql/^1.0.0/config/sets/sparql-queryoperators.json#myMinusQueryOperator",bus:w});e.exports=Fe},function(e,t,r){"use strict";var n=this&&this.__createBinding||(Object.create?function(e,t,r,n){void 0===n&&(n=r),Object.defineProperty(e,n,{enumerable:!0,get:function(){return t[r]}})}:function(e,t,r,n){void 0===n&&(n=r),e[n]=t[r]}),i=this&&this.__exportStar||function(e,t){for(var r in e)"default"===r||Object.prototype.hasOwnProperty.call(t,r)||n(t,e,r)};Object.defineProperty(t,"__esModule",{value:!0}),i(r(456),t)},function(e,t,r){"use strict";(function(e,n){Object.defineProperty(t,"__esModule",{value:!0}),t.ActorHttpNative=void 0;const i=r(25);r(44);const a=r(457);class s extends i.ActorHttp{constructor(e){super(e),this.userAgent=s.createUserAgent(),this.requester=new a.default(e.agentOptions?JSON.parse(e.agentOptions):void 0)}static createUserAgent(){return`Comunica/actor-http-native (${"undefined"==typeof window?`Node.js ${e.version}; ${e.platform}`:"Browser-"+window.navigator.userAgent})`}async test(e){return{time:1/0}}async run(e){const t={};return e.input.url?(t.url=e.input.url,Object.assign(t,e.input)):t.url=e.input,e.init?(Object.assign(t,e.init),t.headers=new Headers(e.init.headers)):t.headers=e.input.headers,t.headers||(t.headers=new Headers),t.headers.has("user-agent")||t.headers.append("user-agent",this.userAgent),t.method=t.method||"GET",e.context&&e.context.get(i.KEY_CONTEXT_INCLUDE_CREDENTIALS)&&(t.withCredentials=!0),e.context&&e.context.get(i.KEY_CONTEXT_AUTH)&&(t.auth=e.context.get(i.KEY_CONTEXT_AUTH)),this.logInfo(e.context,"Requesting "+t.url,()=>({headers:i.ActorHttp.headersToHash(t.headers)})),new Promise((e,r)=>{const i=this.requester.createRequest(t);i.on("error",r),i.on("response",i=>{i.on("error",e=>{i=null,r(e)}),"HEAD"===t.method&&i.destroy(),n(()=>{if(i){i.cancel=()=>(i.destroy(),Promise.resolve());const r=i.headers,n={body:i,headers:r,ok:i.statusCode<300,redirected:t.url!==i.responseUrl,status:i.statusCode,url:r.has("content-location")?r.get("content-location"):i.responseUrl};e(n)}})})})}}t.ActorHttpNative=s}).call(this,r(12),r(46).setImmediate)},function(e,t,r){"use strict"; +/* ! @license MIT ©2013-2016 Ruben Verborgh, Ghent University - imec */Object.defineProperty(t,"__esModule",{value:!0});const n=r(43),i=r(2),a=r(202),s={"accept-encoding":!0,"user-agent":!0,referer:!0};t.default=class{constructor(){this.negotiatedResources={}}createRequest(e){this.negotiatedResources[this.removeQuery(e.url)]&&e.headers.delete("accept-datetime");const t=new XMLHttpRequest,r=e.headers;t.open(e.method,e.url,!0),t.timeout=e.timeout,t.withCredentials=e.withCredentials,r.forEach((e,r)=>{!(r in s)&&e&&t.setRequestHeader(r,e)});const o=new n.EventEmitter;return o.abort=()=>{t.abort()},t.onload=()=>{var n,s;const c=new i.Readable;c.push(t.responseText||""),c.push(null),c.statusCode=t.status,c.responseUrl=t.responseURL;const u=this.convertRequestHeadersToFetchHeaders(c.headers);c.headers=u;const l=t.getAllResponseHeaders()||"",d=/^([^\n\r:]+):[\t ]*([^\n\r]*)$/gmu;let p=d.exec(l);for(;p;)u.set(p[1].toLowerCase(),p[2]),p=d.exec(l);if(o.emit("response",c),r.has("accept-datetime")&&u.has("memento-datetime")){const t=this.removeQuery(null!==(n=u.get("content-location"))&&void 0!==n?n:e.url);if(!this.negotiatedResources[t]){const e=null!==(s=u.get("link")&&a(u.get("link")))&&void 0!==s?s:void 0;t!==this.removeQuery(e&&e.timegate&&e.timegate.url)&&(this.negotiatedResources[t]=!0)}}},t.onerror=()=>{o.emit("error",new Error("Error requesting "+e.url))},t.ontimeout=()=>{o.emit("error",new Error("Timeout requesting "+e.url))},t.send(),o}convertRequestHeadersToFetchHeaders(e){const t=new Headers;for(const r in e)t.append(r,e[r]);return t}removeQuery(e){return e?e.replace(/\?.*$/u,""):""}}},function(e,t,r){"use strict";function n(e,t){return Object.prototype.hasOwnProperty.call(e,t)}e.exports=function(e,t,r,a){t=t||"&",r=r||"=";var s={};if("string"!=typeof e||0===e.length)return s;var o=/\+/g;e=e.split(t);var c=1e3;a&&"number"==typeof a.maxKeys&&(c=a.maxKeys);var u=e.length;c>0&&u>c&&(u=c);for(var l=0;l=0?(d=m.substr(0,g),p=m.substr(g+1)):(d=m,p=""),h=decodeURIComponent(d),f=decodeURIComponent(p),n(s,h)?i(s[h])?s[h].push(f):s[h]=[s[h],f]:s[h]=f}return s};var i=Array.isArray||function(e){return"[object Array]"===Object.prototype.toString.call(e)}},function(e,t,r){"use strict";var n=function(e){switch(typeof e){case"string":return e;case"boolean":return e?"true":"false";case"number":return isFinite(e)?e:"";default:return""}};e.exports=function(e,t,r,o){return t=t||"&",r=r||"=",null===e&&(e=void 0),"object"==typeof e?a(s(e),(function(s){var o=encodeURIComponent(n(s))+r;return i(e[s])?a(e[s],(function(e){return o+encodeURIComponent(n(e))})).join(t):o+encodeURIComponent(n(e[s]))})).join(t):o?encodeURIComponent(n(o))+r+encodeURIComponent(n(e)):""};var i=Array.isArray||function(e){return"[object Array]"===Object.prototype.toString.call(e)};function a(e,t){if(e.map)return e.map(t);for(var r=[],n=0;n",'"',"`"," ","\r","\n","\t"]),l=["'"].concat(u),d=["%","/","?",";","#"].concat(l),p=["/","?","#"],h=/^[+a-z0-9A-Z_-]{0,63}$/,f=/^([+a-z0-9A-Z_-]{0,63})(.*)$/,m={javascript:!0,"javascript:":!0},g={javascript:!0,"javascript:":!0},y={http:!0,https:!0,ftp:!0,gopher:!0,file:!0,"http:":!0,"https:":!0,"ftp:":!0,"gopher:":!0,"file:":!0},b=r(203);function _(e,t,r){if(e&&i.isObject(e)&&e instanceof a)return e;var n=new a;return n.parse(e,t,r),n}a.prototype.parse=function(e,t,r){if(!i.isString(e))throw new TypeError("Parameter 'url' must be a string, not "+typeof e);var a=e.indexOf("?"),o=-1!==a&&a127?j+="x":j+=C[D];if(!j.match(h)){var L=P.slice(0,A),M=P.slice(A+1),F=C.match(f);F&&(L.push(F[1]),M.unshift(F[2])),M.length&&(_="/"+M.join(".")+_),this.hostname=L.join(".");break}}}this.hostname.length>255?this.hostname="":this.hostname=this.hostname.toLowerCase(),I||(this.hostname=n.toASCII(this.hostname));var q=this.port?":"+this.port:"",B=this.hostname||"";this.host=B+q,this.href+=this.host,I&&(this.hostname=this.hostname.substr(1,this.hostname.length-2),"/"!==_[0]&&(_="/"+_))}if(!m[S])for(A=0,N=l.length;A0)&&r.host.split("@"))&&(r.auth=I.shift(),r.host=r.hostname=I.shift());return r.search=e.search,r.query=e.query,i.isNull(r.pathname)&&i.isNull(r.search)||(r.path=(r.pathname?r.pathname:"")+(r.search?r.search:"")),r.href=r.format(),r}if(!E.length)return r.pathname=null,r.search?r.path="/"+r.search:r.path=null,r.href=r.format(),r;for(var O=E.slice(-1)[0],x=(r.host||e.host||E.length>1)&&("."===O||".."===O)||""===O,A=0,R=E.length;R>=0;R--)"."===(O=E[R])?E.splice(R,1):".."===O?(E.splice(R,1),A++):A&&(E.splice(R,1),A--);if(!w&&!S)for(;A--;A)E.unshift("..");!w||""===E[0]||E[0]&&"/"===E[0].charAt(0)||E.unshift(""),x&&"/"!==E.join("/").substr(-1)&&E.push("");var I,P=""===E[0]||E[0]&&"/"===E[0].charAt(0);T&&(r.hostname=r.host=P?"":E.length?E.shift():"",(I=!!(r.host&&r.host.indexOf("@")>0)&&r.host.split("@"))&&(r.auth=I.shift(),r.host=r.hostname=I.shift()));return(w=w||r.host&&E.length)&&!P&&E.unshift(""),E.length?r.pathname=E.join("/"):(r.pathname=null,r.path=null),i.isNull(r.pathname)&&i.isNull(r.search)||(r.path=(r.pathname?r.pathname:"")+(r.search?r.search:"")),r.auth=e.auth||r.auth,r.slashes=r.slashes||e.slashes,r.href=r.format(),r},a.prototype.parseHost=function(){var e=this.host,t=o.exec(e);t&&(":"!==(t=t[0])&&(this.port=t.substr(1)),e=e.substr(0,e.length-t.length)),e&&(this.hostname=e)}},function(e,t,r){(function(e,n){var i;/*! https://mths.be/punycode v1.4.1 by @mathias */!function(a){t&&t.nodeType,e&&e.nodeType;var s="object"==typeof n&&n;s.global!==s&&s.window!==s&&s.self;var o,c=2147483647,u=/^xn--/,l=/[^\x20-\x7E]/,d=/[\x2E\u3002\uFF0E\uFF61]/g,p={overflow:"Overflow: input needs wider integers to process","not-basic":"Illegal input >= 0x80 (not a basic code point)","invalid-input":"Invalid input"},h=Math.floor,f=String.fromCharCode;function m(e){throw new RangeError(p[e])}function g(e,t){for(var r=e.length,n=[];r--;)n[r]=t(e[r]);return n}function y(e,t){var r=e.split("@"),n="";return r.length>1&&(n=r[0]+"@",e=r[1]),n+g((e=e.replace(d,".")).split("."),t).join(".")}function b(e){for(var t,r,n=[],i=0,a=e.length;i=55296&&t<=56319&&i65535&&(t+=f((e-=65536)>>>10&1023|55296),e=56320|1023&e),t+=f(e)})).join("")}function v(e,t){return e+22+75*(e<26)-((0!=t)<<5)}function w(e,t,r){var n=0;for(e=r?h(e/700):e>>1,e+=h(e/t);e>455;n+=36)e=h(e/35);return h(n+36*e/(e+38))}function S(e){var t,r,n,i,a,s,o,u,l,d,p,f=[],g=e.length,y=0,b=128,v=72;for((r=e.lastIndexOf("-"))<0&&(r=0),n=0;n=128&&m("not-basic"),f.push(e.charCodeAt(n));for(i=r>0?r+1:0;i=g&&m("invalid-input"),((u=(p=e.charCodeAt(i++))-48<10?p-22:p-65<26?p-65:p-97<26?p-97:36)>=36||u>h((c-y)/s))&&m("overflow"),y+=u*s,!(u<(l=o<=v?1:o>=v+26?26:o-v));o+=36)s>h(c/(d=36-l))&&m("overflow"),s*=d;v=w(y-a,t=f.length+1,0==a),h(y/t)>c-b&&m("overflow"),b+=h(y/t),y%=t,f.splice(y++,0,b)}return _(f)}function E(e){var t,r,n,i,a,s,o,u,l,d,p,g,y,_,S,E=[];for(g=(e=b(e)).length,t=128,r=0,a=72,s=0;s=t&&ph((c-r)/(y=n+1))&&m("overflow"),r+=(o-t)*y,t=o,s=0;sc&&m("overflow"),p==t){for(u=r,l=36;!(u<(d=l<=a?1:l>=a+26?26:l-a));l+=36)S=u-d,_=36-d,E.push(f(v(d+S%_,0))),u=h(S/_);E.push(f(v(u,0))),a=w(r,y,n==i),r=0,++n}++r,++t}return E.join("")}o={version:"1.4.1",ucs2:{decode:b,encode:_},decode:S,encode:E,toASCII:function(e){return y(e,(function(e){return l.test(e)?"xn--"+E(e):e}))},toUnicode:function(e){return y(e,(function(e){return u.test(e)?S(e.slice(4).toLowerCase()):e}))}},void 0===(i=function(){return o}.call(t,r,t,e))||(e.exports=i)}()}).call(this,r(124)(e),r(17))},function(e,t,r){"use strict";e.exports={isString:function(e){return"string"==typeof e},isObject:function(e){return"object"==typeof e&&null!==e},isNull:function(e){return null===e},isNullOrUndefined:function(e){return null==e}}},function(e,t){e.exports=function(){for(var e={},t=0;t{};const s="bindings"===t.type?t.bindingsStream:t.quadStream,o=e.hrtime();let c=1;return this.pushHeader(a),s.on("error",e=>a.emit("error",e)),s.on("data",()=>this.pushStat(a,o,c++)),s.on("end",()=>this.pushFooter(a,o)),{data:a}}delay(t){const r=e.hrtime(t);return 1e3*r[0]+r[1]/1e6}}t.ActorSparqlSerializeStats=a}).call(this,r(12))},function(e,t,r){"use strict";var n=this&&this.__createBinding||(Object.create?function(e,t,r,n){void 0===n&&(n=r),Object.defineProperty(e,n,{enumerable:!0,get:function(){return t[r]}})}:function(e,t,r,n){void 0===n&&(n=r),e[n]=t[r]}),i=this&&this.__exportStar||function(e,t){for(var r in e)"default"===r||Object.prototype.hasOwnProperty.call(t,r)||n(t,e,r)};Object.defineProperty(t,"__esModule",{value:!0}),i(r(467),t)},function(e,t,r){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.ActorRdfSerializeN3=void 0;const n=r(468),i=r(42);class a extends n.ActorRdfSerializeFixedMediaTypes{constructor(e){super(e)}async runHandle(e,t,r){return{data:new i.StreamWriter({format:t}).import(e.quadStream),triples:"text/turtle"===t||"application/n-triples"===t||"text/n3"===t}}}t.ActorRdfSerializeN3=a},function(e,t,r){"use strict";var n=this&&this.__createBinding||(Object.create?function(e,t,r,n){void 0===n&&(n=r),Object.defineProperty(e,n,{enumerable:!0,get:function(){return t[r]}})}:function(e,t,r,n){void 0===n&&(n=r),e[n]=t[r]}),i=this&&this.__exportStar||function(e,t){for(var r in e)"default"===r||Object.prototype.hasOwnProperty.call(t,r)||n(t,e,r)};Object.defineProperty(t,"__esModule",{value:!0}),i(r(469),t),i(r(470),t)},function(e,t,r){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.ActorRdfSerialize=void 0;const n=r(32);class i extends n.ActorAbstractMediaTyped{constructor(e){super(e)}}t.ActorRdfSerialize=i},function(e,t,r){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.ActorRdfSerializeFixedMediaTypes=void 0;const n=r(32);class i extends n.ActorAbstractMediaTypedFixed{constructor(e){super(e)}async testHandleChecked(e){return!0}}t.ActorRdfSerializeFixedMediaTypes=i},function(e,t,r){"use strict";var n=this&&this.__createBinding||(Object.create?function(e,t,r,n){void 0===n&&(n=r),Object.defineProperty(e,n,{enumerable:!0,get:function(){return t[r]}})}:function(e,t,r,n){void 0===n&&(n=r),e[n]=t[r]}),i=this&&this.__exportStar||function(e,t){for(var r in e)"default"===r||Object.prototype.hasOwnProperty.call(t,r)||n(t,e,r)};Object.defineProperty(t,"__esModule",{value:!0}),i(r(472),t)},function(e,t,r){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.ActorSparqlParseGraphql=void 0;const n=r(152),i=r(69);class a extends n.ActorSparqlParse{constructor(e){super(e),this.graphqlToSparql=new i.Converter({requireContext:!0})}async test(e){if("graphql"!==e.queryFormat)throw new Error("This actor can only parse GraphQL queries");return!0}async run(e){const t=e.context&&e.context.has("@context")?e.context.get("@context"):{},r={singularizeVariables:e.context&&e.context.get("@comunica/actor-init-sparql:singularizeVariables")};return{operation:await this.graphqlToSparql.graphqlToSparqlAlgebra(e.query,t,r)}}}t.ActorSparqlParseGraphql=a},function(e,t,r){"use strict";var n=this&&this.__createBinding||(Object.create?function(e,t,r,n){void 0===n&&(n=r),Object.defineProperty(e,n,{enumerable:!0,get:function(){return t[r]}})}:function(e,t,r,n){void 0===n&&(n=r),e[n]=t[r]}),i=this&&this.__exportStar||function(e,t){for(var r in e)"default"===r||Object.prototype.hasOwnProperty.call(t,r)||n(t,e,r)};Object.defineProperty(t,"__esModule",{value:!0}),i(r(474),t)},function(e,t,r){"use strict";(function(e){Object.defineProperty(t,"__esModule",{value:!0}),t.ActorSparqlSerializeJson=void 0;const n=r(2),i=r(20),a=r(5);class s extends i.ActorSparqlSerializeFixedMediaTypes{constructor(e){super(e)}async testHandleChecked(e,t){if(!["bindings","quads","boolean"].includes(e.type))throw new Error("This actor can only handle bindings or quad streams.");return!0}async runHandle(t,r,i){const s=new n.Readable;s._read=()=>{};let o=!0;if("bindings"===t.type){const e=t.bindingsStream;s.push("["),e.on("error",e=>s.emit("error",e)),e.on("data",e=>{s.push(o?"\n":",\n"),s.push(JSON.stringify(e.map(a.termToString))),o=!1}),e.on("end",()=>{s.push(o?"]\n":"\n]\n"),s.push(null)})}else if("quads"===t.type){const e=t.quadStream;s.push("["),e.on("error",e=>s.emit("error",e)),e.on("data",e=>{s.push(o?"\n":",\n"),s.push(JSON.stringify(a.quadToStringQuad(e))),o=!1}),e.on("end",()=>{s.push(o?"]\n":"\n]\n"),s.push(null)})}else try{s.push(JSON.stringify(await t.booleanResult)+"\n"),s.push(null)}catch(t){e(()=>s.emit("error",t))}return{data:s}}}t.ActorSparqlSerializeJson=s}).call(this,r(46).setImmediate)},function(e,t,r){"use strict";var n=this&&this.__createBinding||(Object.create?function(e,t,r,n){void 0===n&&(n=r),Object.defineProperty(e,n,{enumerable:!0,get:function(){return t[r]}})}:function(e,t,r,n){void 0===n&&(n=r),e[n]=t[r]}),i=this&&this.__exportStar||function(e,t){for(var r in e)"default"===r||Object.prototype.hasOwnProperty.call(t,r)||n(t,e,r)};Object.defineProperty(t,"__esModule",{value:!0}),i(r(476),t)},function(e,t,r){"use strict";(function(e){Object.defineProperty(t,"__esModule",{value:!0}),t.ActorSparqlSerializeSimple=void 0;const n=r(2),i=r(20);class a extends i.ActorSparqlSerializeFixedMediaTypes{constructor(e){super(e)}async testHandleChecked(e,t){if(!["bindings","quads","boolean"].includes(e.type))throw new Error("This actor can only handle bindings streams, quad streams or booleans.");return!0}async runHandle(t,r,i){const a=new n.Readable;let s;if(a._read=()=>{},"bindings"===t.type)s=t.bindingsStream,s.on("error",e=>a.emit("error",e)),s.on("data",e=>a.push(e.map((e,t)=>`${t}: ${e.value}`).join("\n")+"\n\n")),s.on("end",()=>a.push(null));else if("quads"===t.type)s=t.quadStream,s.on("error",e=>a.emit("error",e)),s.on("data",e=>a.push(`subject: ${e.subject.value}\npredicate: ${e.predicate.value}\nobject: ${e.object.value}\ngraph: ${e.graph.value}\n\n`)),s.on("end",()=>a.push(null));else try{a.push(JSON.stringify(await t.booleanResult)+"\n"),a.push(null)}catch(t){e(()=>a.emit("error",t))}return{data:a}}}t.ActorSparqlSerializeSimple=a}).call(this,r(46).setImmediate)},function(e,t,r){"use strict";var n=this&&this.__createBinding||(Object.create?function(e,t,r,n){void 0===n&&(n=r),Object.defineProperty(e,n,{enumerable:!0,get:function(){return t[r]}})}:function(e,t,r,n){void 0===n&&(n=r),e[n]=t[r]}),i=this&&this.__exportStar||function(e,t){for(var r in e)"default"===r||Object.prototype.hasOwnProperty.call(t,r)||n(t,e,r)};Object.defineProperty(t,"__esModule",{value:!0}),i(r(478),t)},function(e,t,r){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.ActorSparqlSerializeSparqlCsv=void 0;const n=r(2),i=r(20);class a extends i.ActorSparqlSerializeFixedMediaTypes{constructor(e){super(e)}static bindingToCsvBindings(e){if(!e)return"";let t=e.value;return t="Literal"===e.termType?""+t:"BlankNode"===e.termType?"_:"+t:`<${t}>`,/[",\n\r]/u.exec(t)&&(t=`"${t.replace(/"/gu,'""')}"`),t}async testHandleChecked(e,t){if("bindings"!==e.type)throw new Error("This actor can only handle bindings streams.");return!0}async runHandle(e,t,r){const i=e,s=new n.Readable;return s._read=()=>{},s.push(i.variables.map(e=>e.slice(1)).join(",")+"\r\n"),i.bindingsStream.on("error",e=>{s.emit("error",e)}),i.bindingsStream.on("data",e=>{s.push(i.variables.map(t=>a.bindingToCsvBindings(e.get(t))).join(",")+"\r\n")}),i.bindingsStream.on("end",()=>{s.push(null)}),{data:s}}}t.ActorSparqlSerializeSparqlCsv=a},function(e,t,r){"use strict";var n=this&&this.__createBinding||(Object.create?function(e,t,r,n){void 0===n&&(n=r),Object.defineProperty(e,n,{enumerable:!0,get:function(){return t[r]}})}:function(e,t,r,n){void 0===n&&(n=r),e[n]=t[r]}),i=this&&this.__exportStar||function(e,t){for(var r in e)"default"===r||Object.prototype.hasOwnProperty.call(t,r)||n(t,e,r)};Object.defineProperty(t,"__esModule",{value:!0}),i(r(480),t)},function(e,t,r){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.ActorSparqlSerializeSparqlJson=void 0;const n=r(2),i=r(20);class a extends i.ActorSparqlSerializeFixedMediaTypes{constructor(e){super(e)}static bindingToJsonBindings(e){if("Literal"===e.termType){const t=e,r={value:t.value,type:"literal"},{language:n}=t,{datatype:i}=t;return n?r["xml:lang"]=n:i&&"http://www.w3.org/2001/XMLSchema#string"!==i.value&&(r.datatype=i.value),r}return"BlankNode"===e.termType?{value:e.value,type:"bnode"}:{value:e.value,type:"uri"}}async testHandleChecked(e,t){if(!["bindings","boolean"].includes(e.type))throw new Error("This actor can only handle bindings streams or booleans.");return!0}async runHandle(e,t,r){const i=new n.Readable;i._read=()=>{};const s={};"bindings"===e.type&&e.variables.length>0&&(s.vars=e.variables.map(e=>e.slice(1))),i.push(`{"head": ${JSON.stringify(s)},\n`);let o=!0;if("bindings"===e.type){const t=e.bindingsStream;t.on("error",e=>{i.emit("error",e)}),t.on("data",e=>{o?i.push('"results": { "bindings": [\n'):i.push(",\n");const t=e.filter((e,t)=>Boolean(e)&&t.startsWith("?"));i.push(JSON.stringify(t.mapEntries(([e,t])=>[e.slice(1),a.bindingToJsonBindings(t)]).toJSON())),o=!1}),t.on("end",()=>{o?i.push('"results": { "bindings": [] }}\n'):i.push("\n]}}\n"),i.push(null)})}else try{i.push(`"boolean":${await e.booleanResult}\n}\n`),i.push(null)}catch(e){i.once("newListener",()=>i.emit("error",e))}return{data:i}}}t.ActorSparqlSerializeSparqlJson=a},function(e,t,r){"use strict";var n=this&&this.__createBinding||(Object.create?function(e,t,r,n){void 0===n&&(n=r),Object.defineProperty(e,n,{enumerable:!0,get:function(){return t[r]}})}:function(e,t,r,n){void 0===n&&(n=r),e[n]=t[r]}),i=this&&this.__exportStar||function(e,t){for(var r in e)"default"===r||Object.prototype.hasOwnProperty.call(t,r)||n(t,e,r)};Object.defineProperty(t,"__esModule",{value:!0}),i(r(482),t)},function(e,t,r){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.ActorSparqlSerializeSparqlTsv=void 0;const n=r(2),i=r(20),a=r(483);class s extends i.ActorSparqlSerializeFixedMediaTypes{constructor(e){super(e)}static bindingToTsvBindings(e){return e?a.termToString(e).replace(/\t/gu,"\\t").replace(/\n/gu,"\\n").replace(/\r/gu,"\\r"):""}async testHandleChecked(e,t){if("bindings"!==e.type)throw new Error("This actor can only handle bindings streams.");return!0}async runHandle(e,t,r){const i=e,a=new n.Readable;return a._read=()=>{},a.push(i.variables.map(e=>e.slice(1)).join("\t")+"\n"),i.bindingsStream.on("error",e=>{a.emit("error",e)}),i.bindingsStream.on("data",e=>{a.push(i.variables.map(t=>s.bindingToTsvBindings(e.get(t))).join("\t")+"\n")}),i.bindingsStream.on("end",()=>{a.push(null)}),{data:a}}}t.ActorSparqlSerializeSparqlTsv=s},function(e,t,r){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.termToString=t.stringToTerm=t.stringQuadToQuad=t.quadToStringQuad=t.getLiteralValue=t.getLiteralType=t.getLiteralLanguage=void 0;const n=r(484);Object.defineProperty(t,"getLiteralLanguage",{enumerable:!0,get:function(){return n.getLiteralLanguage}}),Object.defineProperty(t,"getLiteralType",{enumerable:!0,get:function(){return n.getLiteralType}}),Object.defineProperty(t,"getLiteralValue",{enumerable:!0,get:function(){return n.getLiteralValue}}),Object.defineProperty(t,"quadToStringQuad",{enumerable:!0,get:function(){return n.quadToStringQuad}}),Object.defineProperty(t,"stringQuadToQuad",{enumerable:!0,get:function(){return n.stringQuadToQuad}}),Object.defineProperty(t,"stringToTerm",{enumerable:!0,get:function(){return n.stringToTerm}}),Object.defineProperty(t,"termToString",{enumerable:!0,get:function(){return n.termToString}})},function(e,t,r){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.stringQuadToQuad=t.quadToStringQuad=t.stringToTerm=t.getLiteralLanguage=t.getLiteralType=t.getLiteralValue=t.termToString=void 0;const n=new(r(6).DataFactory);function i(e){if(e)switch(e.termType){case"NamedNode":return"<"+e.value+">";case"BlankNode":return"_:"+e.value;case"Literal":const t=e;return'"'+t.value.replace(/"/gu,'\\"')+'"'+(t.datatype&&"http://www.w3.org/2001/XMLSchema#string"!==t.datatype.value&&"http://www.w3.org/1999/02/22-rdf-syntax-ns#langString"!==t.datatype.value?"^^<"+t.datatype.value+">":"")+(t.language?"@"+t.language:"");case"Quad":return`<<${i(e.subject)} ${i(e.predicate)} ${i(e.object)}${"DefaultGraph"===e.graph.termType?"":" "+i(e.graph)}>>`;case"Variable":return"?"+e.value;case"DefaultGraph":return e.value}}function a(e){const t=/^"([^]*)"((\^\^.*)|(@.*))?$/.exec(e);if(!t)throw new Error(e+" is not a literal");return t[1].replace(/\\"/gu,'"')}function s(e){const t=/^"[^]*"(?:\^\^<([^"]+)>|(@)[^@"]+)?$/.exec(e);if(!t)throw new Error(e+" is not a literal");return t[1]||(t[2]?"http://www.w3.org/1999/02/22-rdf-syntax-ns#langString":"http://www.w3.org/2001/XMLSchema#string")}function o(e){const t=/^"[^]*"(?:@([^@"]+)|\^\^[^"]+)?$/.exec(e);if(!t)throw new Error(e+" is not a literal");return t[1]?t[1].toLowerCase():""}function c(e,t){if(t=t||n,!e||!e.length)return t.defaultGraph();switch(e[0]){case"_":return t.blankNode(e.substr(2));case"?":if(!t.variable)throw new Error("Missing 'variable()' method on the given DataFactory");return t.variable(e.substr(1));case'"':const r=o(e),n=t.namedNode(s(e));return t.literal(a(e),r||n);case"<":default:if(e.startsWith("<<")&&e.endsWith(">>")){const r=e.slice(2,-2),n=[];let i=0,a=0;for(let t=0;t"===s){if(0===i)throw new Error("Found closing tag without opening tag in "+e);i--}" "===s&&0===i&&(n.push(r.slice(a,t)),a=t+1)}if(0!==i)throw new Error("Found opening tag without closing tag in "+e);if(n.push(r.slice(a,r.length)),3!==n.length&&4!==n.length)throw new Error("Nested quad syntax error "+e);return t.quad(c(n[0]),c(n[1]),c(n[2]),n[3]?c(n[3]):void 0)}if("<"!==e.charAt(0)||">"!==e.charAt(e.length-1))throw new Error("Detected invalid iri for named node (must be wrapped in <>): "+e);return t.namedNode(e.substring(1,e.length-1))}}t.termToString=i,t.getLiteralValue=a,t.getLiteralType=s,t.getLiteralLanguage=o,t.stringToTerm=c,t.quadToStringQuad=function(e){return{subject:i(e.subject),predicate:i(e.predicate),object:i(e.object),graph:i(e.graph)}},t.stringQuadToQuad=function(e,t){return(t=t||n).quad(c(e.subject,t),c(e.predicate,t),c(e.object,t),c(e.graph,t))}},function(e,t,r){"use strict";var n=this&&this.__createBinding||(Object.create?function(e,t,r,n){void 0===n&&(n=r),Object.defineProperty(e,n,{enumerable:!0,get:function(){return t[r]}})}:function(e,t,r,n){void 0===n&&(n=r),e[n]=t[r]}),i=this&&this.__exportStar||function(e,t){for(var r in e)"default"===r||Object.prototype.hasOwnProperty.call(t,r)||n(t,e,r)};Object.defineProperty(t,"__esModule",{value:!0}),i(r(486),t)},function(e,t,r){"use strict";(function(e){Object.defineProperty(t,"__esModule",{value:!0}),t.ActorSparqlSerializeSparqlXml=void 0;const n=r(2),i=r(20),a=r(487);class s extends i.ActorSparqlSerializeFixedMediaTypes{constructor(e){super(e)}static bindingToXmlBindings(e,t){let r;if("Literal"===e.termType){const t=e;r={literal:t.value};const{language:n}=t,{datatype:i}=t;n?r.literal=[{_attr:{"xml:lang":n}},r.literal]:i&&"http://www.w3.org/2001/XMLSchema#string"!==i.value&&(r.literal=[{_attr:{datatype:i.value}},r.literal])}else r="BlankNode"===e.termType?{bnode:e.value}:{uri:e.value};return{binding:[{_attr:{name:t.slice(1)}},r]}}async testHandleChecked(e,t){if(!["bindings","boolean"].includes(e.type))throw new Error("This actor can only handle bindings streams or booleans.");return!0}async runHandle(t,r,i){const o=new n.Readable;o._read=()=>{};const c=a.element({_attr:{xlmns:"http://www.w3.org/2005/sparql-results#"}});if(a({sparql:c},{stream:!0,indent:" ",declaration:!0}).on("data",e=>o.push(e+"\n")),"bindings"===t.type&&t.variables.length>0&&c.push({head:t.variables.map(e=>({variable:{_attr:{name:e.slice(1)}}}))}),"bindings"===t.type){const r=a.element({});c.push({results:r});const n=t.bindingsStream;n.on("error",e=>{o.emit("error",e)}),n.on("data",e=>{const t=e.filter((e,t)=>Boolean(e)&&t.startsWith("?"));r.push({result:t.map(s.bindingToXmlBindings)})}),n.on("end",()=>{r.close(),c.close(),e(()=>o.push(null))})}else try{c.push({boolean:await t.booleanResult}),c.close(),e(()=>o.push(null))}catch(t){e(()=>o.emit("error",t))}return{data:o}}}t.ActorSparqlSerializeSparqlXml=s}).call(this,r(46).setImmediate)},function(e,t,r){(function(t){var n=r(488),i=r(2).Stream;function a(e,t,r){r=r||0;var i,s,o=(i=t,new Array(r||0).join(i||"")),c=e;if("object"==typeof e&&((c=e[s=Object.keys(e)[0]])&&c._elem))return c._elem.name=s,c._elem.icount=r,c._elem.indent=t,c._elem.indents=o,c._elem.interrupt=c,c._elem;var u,l=[],d=[];function p(e){Object.keys(e).forEach((function(t){l.push(function(e,t){return e+'="'+n(t)+'"'}(t,e[t]))}))}switch(typeof c){case"object":if(null===c)break;c._attr&&p(c._attr),c._cdata&&d.push(("/g,"]]]]>")+"]]>"),c.forEach&&(u=!1,d.push(""),c.forEach((function(e){"object"==typeof e?"_attr"==Object.keys(e)[0]?p(e._attr):d.push(a(e,t,r+1)):(d.pop(),u=!0,d.push(n(e)))})),u||d.push(""));break;default:d.push(n(c))}return{name:s,interrupt:!1,attributes:l,content:d,icount:r,indents:o,indent:t}}function s(e,t,r){if("object"!=typeof t)return e(!1,t);var n=t.interrupt?1:t.content.length;function i(){for(;t.content.length;){var i=t.content.shift();if(void 0!==i){if(a(i))return;s(e,i)}}e(!1,(n>1?t.indents:"")+(t.name?"":"")+(t.indent&&!r?"\n":"")),r&&r()}function a(t){return!!t.interrupt&&(t.interrupt.append=e,t.interrupt.end=i,t.interrupt=!1,e(!0),!0)}if(e(!1,t.indents+(t.name?"<"+t.name:"")+(t.attributes.length?" "+t.attributes.join(" "):"")+(n?t.name?">":"":t.name?"/>":"")+(t.indent&&n>1?"\n":"")),!n)return e(!1,t.indent?"\n":"");a(t)||i()}e.exports=function(e,r){"object"!=typeof r&&(r={indent:r});var n,o,c=r.stream?new i:null,u="",l=!1,d=r.indent?!0===r.indent?" ":r.indent:"",p=!0;function h(e){p?t.nextTick(e):e()}function f(e,t){if(void 0!==t&&(u+=t),e&&!l&&(c=c||new i,l=!0),e&&l){var r=u;h((function(){c.emit("data",r)})),u=""}}function m(e,t){s(f,a(e,d,d?1:0),t)}function g(){if(c){var e=u;h((function(){c.emit("data",e),c.emit("end"),c.readable=!1,c.emit("close")}))}}return h((function(){p=!1})),r.declaration&&(n=r.declaration,o={version:"1.0",encoding:n.encoding||"UTF-8"},n.standalone&&(o.standalone=n.standalone),m({"?xml":{_attr:o}}),u=u.replace("/>","?>")),e&&e.forEach?e.forEach((function(t,r){var n;r+1===e.length&&(n=g),m(t,n)})):m(e,g),c?(c.readable=!0,c):u},e.exports.element=e.exports.Element=function(){var e=Array.prototype.slice.call(arguments),t={_elem:a(e),push:function(e){if(!this.append)throw new Error("not assigned to a parent!");var t=this,r=this._elem.indent;s(this.append,a(e,r,this._elem.icount+(r?1:0)),(function(){t.append(!0)}))},close:function(e){void 0!==e&&this.push(e),this.end&&this.end()}};return t}}).call(this,r(12))},function(e,t){var r={"&":"&",'"':""","'":"'","<":"<",">":">"};e.exports=function(e){return e&&e.replace?e.replace(/([&"<>'])/g,(function(e,t){return r[t]})):e}},function(e,t,r){"use strict";var n=this&&this.__createBinding||(Object.create?function(e,t,r,n){void 0===n&&(n=r),Object.defineProperty(e,n,{enumerable:!0,get:function(){return t[r]}})}:function(e,t,r,n){void 0===n&&(n=r),e[n]=t[r]}),i=this&&this.__exportStar||function(e,t){for(var r in e)"default"===r||Object.prototype.hasOwnProperty.call(t,r)||n(t,e,r)};Object.defineProperty(t,"__esModule",{value:!0}),i(r(490),t)},function(e,t,r){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.ActorSparqlSerializeTable=void 0;const n=r(2),i=r(20),a=r(18);class s extends i.ActorSparqlSerializeFixedMediaTypes{constructor(e){super(e),this.padding=s.repeat(" ",this.columnWidth)}static repeat(e,t){return new Array(t+1).join(e)}async testHandleChecked(e,t){if(!["bindings","quads"].includes(e.type))throw new Error("This actor can only handle bindings or quad streams.");return!0}pad(e){return e.length<=this.columnWidth?e+this.padding.slice(e.length):e.slice(0,this.columnWidth-1)+"…"}pushHeader(e,t){const r=t.map(e=>this.pad(e)).join(" ");e.push(`${r}\n${s.repeat("-",r.length)}\n`)}pushRow(e,t,r){e.push(t.map(e=>r.has(e)?r.get(e).value:"").map(e=>this.pad(e)).join(" ")+"\n")}async runHandle(e,t,r){const i=new n.Readable;let s;if(i._read=()=>{},"bindings"===e.type){s=e.bindingsStream;const t=e.variables;this.pushHeader(i,t),s.on("error",e=>i.emit("error",e)),s.on("data",e=>this.pushRow(i,t,e))}else s=e.quadStream,this.pushHeader(i,a.QUAD_TERM_NAMES),s.on("error",e=>i.emit("error",e)),s.on("data",e=>i.push(a.getTerms(e).map(e=>this.pad(e.value)).join(" ")+"\n"));return s.on("end",()=>i.push(null)),{data:i}}}t.ActorSparqlSerializeTable=s},function(e,t,r){"use strict";var n=this&&this.__createBinding||(Object.create?function(e,t,r,n){void 0===n&&(n=r),Object.defineProperty(e,n,{enumerable:!0,get:function(){return t[r]}})}:function(e,t,r,n){void 0===n&&(n=r),e[n]=t[r]}),i=this&&this.__exportStar||function(e,t){for(var r in e)"default"===r||Object.prototype.hasOwnProperty.call(t,r)||n(t,e,r)};Object.defineProperty(t,"__esModule",{value:!0}),i(r(492),t)},function(e,t,r){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.KEY_CONTEXT_DATETIME=t.ActorHttpMemento=void 0;const n=r(25);r(44);const i=r(202);class a extends n.ActorHttp{constructor(e){super(e)}async test(e){var r;if(!(e.context&&e.context.has(t.KEY_CONTEXT_DATETIME)&&e.context.get(t.KEY_CONTEXT_DATETIME)instanceof Date))throw new Error("This actor only handles request with a set valid datetime.");if(e.init&&new Headers(null!==(r=e.init.headers)&&void 0!==r?r:{}).has("accept-datetime"))throw new Error("The request already has a set datetime.");return!0}async run(e){var r;const n=e.init?Object.assign({},e.init):{},a=n.headers=new Headers(null!==(r=n.headers)&&void 0!==r?r:{});e.context&&e.context.has(t.KEY_CONTEXT_DATETIME)&&a.append("accept-datetime",e.context.get(t.KEY_CONTEXT_DATETIME).toUTCString());const s={context:e.context,input:e.input,init:n},o=await this.mediatorHttp.mediate(s);if(a.has("accept-datetime")&&o.headers&&!o.headers.has("memento-datetime")){const t=o.headers.has("link")&&i(o.headers.get("link"));if(t&&t.timegate){o.body&&await o.body.cancel();const r={context:e.context,input:t.timegate.url,init:n};return this.mediatorHttp.mediate(r)}}return o}}t.ActorHttpMemento=a,t.KEY_CONTEXT_DATETIME="@comunica/actor-http-memento:datetime"},function(e,t,r){"use strict";var n=this&&this.__createBinding||(Object.create?function(e,t,r,n){void 0===n&&(n=r),Object.defineProperty(e,n,{enumerable:!0,get:function(){return t[r]}})}:function(e,t,r,n){void 0===n&&(n=r),e[n]=t[r]}),i=this&&this.__exportStar||function(e,t){for(var r in e)"default"===r||Object.prototype.hasOwnProperty.call(t,r)||n(t,e,r)};Object.defineProperty(t,"__esModule",{value:!0}),i(r(494),t)},function(e,t,r){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.ActorSparqlSerializeRdf=void 0;const n=r(20);class i extends n.ActorSparqlSerialize{constructor(e){super(e)}async testHandle(e,t,r){if("quads"!==e.type)throw new Error(`Actor ${this.name} can only handle quad streams`);const{mediaTypes:n}=await this.mediatorMediaTypeCombiner.mediate({context:r,mediaTypes:!0});if(!(t in n))throw new Error(`Actor ${this.name} can not handle media type ${t}. All available types: ${Object.keys(n)}`);return!0}async runHandle(e,t,r){return(await this.mediatorRdfSerialize.mediate({context:r,handle:e,handleMediaType:t})).handle}async testMediaType(e){return!0}async getMediaTypes(e){return(await this.mediatorMediaTypeCombiner.mediate({context:e,mediaTypes:!0})).mediaTypes}async testMediaTypeFormats(e){return!0}async getMediaTypeFormats(e){return(await this.mediatorMediaTypeFormatCombiner.mediate({context:e,mediaTypeFormats:!0})).mediaTypeFormats}}t.ActorSparqlSerializeRdf=i},function(e,t,r){"use strict";var n=this&&this.__createBinding||(Object.create?function(e,t,r,n){void 0===n&&(n=r),Object.defineProperty(e,n,{enumerable:!0,get:function(){return t[r]}})}:function(e,t,r,n){void 0===n&&(n=r),e[n]=t[r]}),i=this&&this.__exportStar||function(e,t){for(var r in e)"default"===r||Object.prototype.hasOwnProperty.call(t,r)||n(t,e,r)};Object.defineProperty(t,"__esModule",{value:!0}),i(r(496),t),i(r(497),t),i(r(498),t)},function(e,t,r){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.KEY_CONTEXT_HTTPPROXYHANDLER=t.ActorHttpProxy=void 0;const n=r(25);class i extends n.ActorHttp{constructor(e){super(e)}async test(e){if(!e.context)throw new Error(`Actor ${this.name} could not find a context.`);const r=e.context.get(t.KEY_CONTEXT_HTTPPROXYHANDLER);if(!r)throw new Error(`Actor ${this.name} could not find a proxy handler in the context.`);if(!await r.getProxy(e))throw new Error(`Actor ${this.name} could not determine a proxy for the given request.`);return{time:1/0}}async run(e){var r;const n="string"==typeof e.input?e.input:e.input.url;if(!e.context)throw new Error("Illegal state: missing context");const i=e.context.get(t.KEY_CONTEXT_HTTPPROXYHANDLER),a=await this.mediatorHttp.mediate(Object.assign(Object.assign({},await i.getProxy(e)),{context:e.context.delete(t.KEY_CONTEXT_HTTPPROXYHANDLER)}));return a.url=null!==(r=a.headers.get("x-final-url"))&&void 0!==r?r:n,a}}t.ActorHttpProxy=i,t.KEY_CONTEXT_HTTPPROXYHANDLER="@comunica/actor-http-proxy:httpProxyHandler"},function(e,t,r){"use strict";Object.defineProperty(t,"__esModule",{value:!0})},function(e,t,r){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.ProxyHandlerStatic=void 0;t.ProxyHandlerStatic=class{constructor(e){this.prefixUrl=e}async getProxy(e){return{init:e.init,input:this.modifyInput(e.input)}}modifyInput(e){return"string"==typeof e?this.prefixUrl+e:new Request(this.prefixUrl+e.url,e)}}},function(e,t,r){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.ActorQueryOperationPathAlt=void 0;const n=r(28),i=r(1),a=r(3),s=r(7);class o extends n.ActorAbstractPath{constructor(e){super(e,s.Algebra.types.ALT)}async runOperation(e,t){const r=e.predicate,s=(await Promise.all([this.mediatorQueryOperation.mediate({context:t,operation:n.ActorAbstractPath.FACTORY.createPath(e.subject,r.left,e.object,e.graph)}),this.mediatorQueryOperation.mediate({context:t,operation:n.ActorAbstractPath.FACTORY.createPath(e.subject,r.right,e.object,e.graph)})])).map(e=>i.ActorQueryOperation.getSafeBindings(e)),o=new a.UnionIterator(s.map(e=>e.bindingsStream),{autoStart:!1}),c=[].concat.apply([],s.map(e=>e.variables));return{type:"bindings",bindingsStream:o,variables:[...new Set(c)],canContainUndefs:!1}}}t.ActorQueryOperationPathAlt=o},function(e,t,r){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.ActorQueryOperationPathInv=void 0;const n=r(28),i=r(7);class a extends n.ActorAbstractPath{constructor(e){super(e,i.Algebra.types.INV)}async runOperation(e,t){const r=e.predicate,i=n.ActorAbstractPath.FACTORY.createPath(e.object,r.path,e.subject,e.graph);return this.mediatorQueryOperation.mediate({operation:i,context:t})}}t.ActorQueryOperationPathInv=a},function(e,t,r){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.ActorQueryOperationPathLink=void 0;const n=r(28),i=r(7);class a extends n.ActorAbstractPath{constructor(e){super(e,i.Algebra.types.LINK)}async runOperation(e,t){const r=e.predicate,i=n.ActorAbstractPath.FACTORY.createPattern(e.subject,r.iri,e.object,e.graph);return this.mediatorQueryOperation.mediate({operation:i,context:t})}}t.ActorQueryOperationPathLink=a},function(e,t,r){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.ActorQueryOperationPathNps=void 0;const n=r(28),i=r(1),a=r(5),s=r(7);class o extends n.ActorAbstractPath{constructor(e){super(e,s.Algebra.types.NPS)}async runOperation(e,t){const r=e.predicate,s=this.generateVariable(e),o=a.termToString(s),c=n.ActorAbstractPath.FACTORY.createPattern(e.subject,s,e.object,e.graph),u=i.ActorQueryOperation.getSafeBindings(await this.mediatorQueryOperation.mediate({operation:c,context:t}));return{type:"bindings",bindingsStream:u.bindingsStream.transform({filter:e=>!r.iris.some(t=>t.equals(e.get(o))),transform(e,t,r){r(e.delete(o)),t()}}),variables:u.variables,canContainUndefs:!1}}}t.ActorQueryOperationPathNps=o},function(e,t,r){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.ActorQueryOperationPathOneOrMore=void 0;const n=r(28),i=r(1),a=r(3),s=r(5),o=r(7);class c extends n.ActorAbstractPath{constructor(e){super(e,o.Algebra.types.ONE_OR_MORE_PATH)}async runOperation(e,t){const r=await this.isPathArbitraryLengthDistinct(t,e);if(r.operation)return r.operation;t=r.context;const o=e.predicate,c="Variable"===e.subject.termType,u="Variable"===e.object.termType,l="Variable"===e.graph.termType;if(!c&&u){const r=n.ActorAbstractPath.FACTORY.createDistinct(n.ActorAbstractPath.FACTORY.createPath(e.subject,o.path,e.object,e.graph)),c=i.ActorQueryOperation.getSafeBindings(await this.mediatorQueryOperation.mediate({context:t,operation:r})),u=s.termToString(e.object),d={};return{type:"bindings",bindingsStream:new a.MultiTransformIterator(c.bindingsStream,{multiTransform:r=>{const n=r.get(u),c=l?r.get(s.termToString(e.graph)):e.graph;return new a.TransformIterator(async()=>{const r=new a.BufferedIterator;return await this.getObjectsPredicateStar(n,o.path,e.graph,t,d,r,{count:0}),r.transform({transform(t,r,n){let a=i.Bindings({[u]:t});l&&(a=a.set(s.termToString(e.graph),c)),n(a),r()}})},{maxBufferSize:128})},autoStart:!1}),variables:l?[u,s.termToString(e.graph)]:[u],canContainUndefs:!1}}if(c&&u){const r=n.ActorAbstractPath.FACTORY.createDistinct(n.ActorAbstractPath.FACTORY.createPath(e.subject,e.predicate.path,e.object,e.graph)),c=i.ActorQueryOperation.getSafeBindings(await this.mediatorQueryOperation.mediate({context:t,operation:r})),u=s.termToString(e.subject),d=s.termToString(e.object),p={};return{type:"bindings",bindingsStream:new a.MultiTransformIterator(c.bindingsStream,{multiTransform:r=>{const n=r.get(u),i=r.get(d),c=l?r.get(s.termToString(e.graph)):e.graph;return new a.TransformIterator(async()=>{const r=new a.BufferedIterator;return await this.getSubjectAndObjectBindingsPredicateStar(u,d,n,i,o.path,c,t,p,{},r,{count:0}),r.transform({transform(t,r,n){l&&(t=t.set(s.termToString(e.graph),c)),n(t),r()}})},{maxBufferSize:128})},autoStart:!1}),variables:l?[u,d,s.termToString(e.graph)]:[u,d],canContainUndefs:!1}}if(c&&!u)return this.mediatorQueryOperation.mediate({context:t,operation:n.ActorAbstractPath.FACTORY.createPath(e.object,n.ActorAbstractPath.FACTORY.createOneOrMorePath(n.ActorAbstractPath.FACTORY.createInv(o.path)),e.subject,e.graph)});const d=this.generateVariable(),p=s.termToString(d);return{type:"bindings",bindingsStream:i.ActorQueryOperation.getSafeBindings(await this.mediatorQueryOperation.mediate({context:t,operation:n.ActorAbstractPath.FACTORY.createPath(e.subject,o,d,e.graph)})).bindingsStream.transform({filter:t=>t.get(p).equals(e.object),transform(t,r,n){n(l?i.Bindings({[s.termToString(e.graph)]:t.get(s.termToString(e.graph))}):i.Bindings({})),r()}}),variables:l?[s.termToString(e.graph)]:[],canContainUndefs:!1}}}t.ActorQueryOperationPathOneOrMore=c},function(e,t,r){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.ActorQueryOperationPathSeq=void 0;const n=r(28),i=r(1),a=r(5),s=r(7);class o extends n.ActorAbstractPath{constructor(e){super(e,s.Algebra.types.SEQ)}async runOperation(e,t){const r=e.predicate,s=this.generateVariable(e),o=a.termToString(s),c=(await Promise.all([this.mediatorQueryOperation.mediate({context:t,operation:n.ActorAbstractPath.FACTORY.createPath(e.subject,r.left,s,e.graph)}),this.mediatorQueryOperation.mediate({context:t,operation:n.ActorAbstractPath.FACTORY.createPath(s,r.right,e.object,e.graph)})])).map(e=>i.ActorQueryOperation.getSafeBindings(e)),u=i.ActorQueryOperation.getSafeBindings(await this.mediatorJoin.mediate({entries:c})),l=u.bindingsStream.transform({transform(e,t,r){r(e.delete(o)),t()}}),d=u.variables,p=d.indexOf(o);return d.splice(p,1),{type:"bindings",bindingsStream:l,variables:d,canContainUndefs:!1}}}t.ActorQueryOperationPathSeq=o},function(e,t,r){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.ActorQueryOperationPathZeroOrMore=void 0;const n=r(28),i=r(1),a=r(3),s=r(5),o=r(7);class c extends n.ActorAbstractPath{constructor(e){super(e,o.Algebra.types.ZERO_OR_MORE_PATH)}async runOperation(e,t){const r=await this.isPathArbitraryLengthDistinct(t,e);if(r.operation)return r.operation;t=r.context;const o=e.predicate,c="Variable"===e.subject.termType,u="Variable"===e.object.termType,l="Variable"===e.graph.termType;if(c&&u){const r=this.generateVariable(e),c=n.ActorAbstractPath.FACTORY.createPattern(e.subject,r,e.object,e.graph),u=i.ActorQueryOperation.getSafeBindings(await this.mediatorQueryOperation.mediate({context:t,operation:c})),d=s.termToString(e.subject),p=s.termToString(e.object),h=new Set,f={};return{type:"bindings",bindingsStream:new a.MultiTransformIterator(u.bindingsStream,{multiTransform:r=>{const n=r.get(d),i=r.get(p),c=l?r.get(s.termToString(e.graph)):e.graph,u=s.termToString(n)+s.termToString(c),m=s.termToString(i)+s.termToString(c);return new a.TransformIterator(async()=>{if(h.has(u)&&h.has(m))return new a.EmptyIterator;const r=new a.BufferedIterator,g={count:0};return h.has(u)||(h.add(u),await this.getSubjectAndObjectBindingsPredicateStar(d,p,n,n,o.path,c,t,f,{},r,g)),h.has(m)||(h.add(m),await this.getSubjectAndObjectBindingsPredicateStar(d,p,i,i,o.path,c,t,f,{},r,g)),r.transform({transform(t,r,n){l&&(t=t.set(s.termToString(e.graph),c)),n(t),r()}})})}}),variables:l?[d,p,s.termToString(e.graph)]:[d,p],canContainUndefs:!1}}if(!c&&!u){const r=this.generateVariable();return{type:"bindings",bindingsStream:(await this.getObjectsPredicateStarEval(e.subject,r,o.path,e.graph,t)).transform({filter:t=>t.get(s.termToString(r)).equals(e.object),transform(t,r,n){n(l?i.Bindings({[s.termToString(e.graph)]:t.get(s.termToString(e.graph))}):i.Bindings({})),r()}}),variables:l?[s.termToString(e.graph)]:[],canContainUndefs:!1}}const d=c?e.object:e.subject,p=c?e.subject:e.object,h=c?n.ActorAbstractPath.FACTORY.createInv(o.path):o.path;return{type:"bindings",bindingsStream:(await this.getObjectsPredicateStarEval(d,p,h,e.graph,t)).transform({transform(e,t,r){r(e),t()}}),variables:l?[s.termToString(p),s.termToString(e.graph)]:[s.termToString(p)],canContainUndefs:!1}}}t.ActorQueryOperationPathZeroOrMore=c},function(e,t,r){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.ActorQueryOperationPathZeroOrOne=void 0;const n=r(206),i=r(1),a=r(3),s=r(5),o=r(7);class c extends n.ActorAbstractPath{constructor(e){super(e,o.Algebra.types.ZERO_OR_ONE_PATH)}async runOperation(e,t){const r=e.predicate,o="Variable"===e.subject.termType,c="Variable"===e.object.termType,u=[];if(!o&&!c&&e.subject.equals(e.object))return{type:"bindings",bindingsStream:new a.SingletonIterator(i.Bindings({})),variables:[],canContainUndefs:!1};if(o&&c)throw new Error("ZeroOrOne path expressions with 2 variables not supported yet");const l=await this.isPathArbitraryLengthDistinct(t,e);if(l.operation)return l.operation;t=l.context,o&&u.push(i.Bindings({[s.termToString(e.subject)]:e.object})),c&&u.push(i.Bindings({[s.termToString(e.object)]:e.subject}));const d=i.ActorQueryOperation.getSafeBindings(await this.mediatorQueryOperation.mediate({context:t,operation:n.ActorAbstractPath.FACTORY.createPath(e.subject,r.path,e.object,e.graph)}));return{type:"bindings",bindingsStream:d.bindingsStream.prepend(u),variables:d.variables,canContainUndefs:!1}}}t.ActorQueryOperationPathZeroOrOne=c},function(e,t,r){"use strict";r.r(t);const n={};async function i(e){const t=[];for await(const r of e)t.push(r);return t}function a(e){return e[Symbol.asyncIterator]().next().then(e=>e.value)}class s{constructor(e,...t){this._isAsync=e.async,this._isFunction=e.function,this._dataProperties=t}static sync(...e){return new s({async:!1},...e)}static syncFunction(...e){return new s({async:!1,function:!0},...e)}static async(...e){return new s({async:!0},...e)}static asyncFunction(...e){return new s({async:!0,function:!0},...e)}handle(e){return this._isFunction?()=>this._resolveDataPath(e):this._resolveDataPath(e)}_resolveDataPath(e){return this._isAsync?this._resolveAsyncDataPath(e):this._resolveSyncDataPath(e)}_resolveSyncDataPath(e){for(const t of this._dataProperties)e=e&&e[t];return e}async _resolveAsyncDataPath(e){for(const t of this._dataProperties)e=e&&await e[t];return e}}function o(e){return{then:c(e)}}function c(e){return(t,r)=>e().then(t,r)}function u(e){return"function"==typeof e&&(e=function(e){const t=[];let r=e[Symbol.asyncIterator]();return{[Symbol.asyncIterator](){let e=0;return{async next(){if(ee[Symbol.asyncIterator](),get then(){return c(()=>a(this))},catch(e){return this.then(null,e)},finally(e){return this.then().finally(e)}}}var l=r(4);const d="http://www.w3.org/2001/XMLSchema#",p=d+"boolean",h=d+"dateTime",f=d+"decimal",m=d+"double",g=d+"integer",y=Object(l.namedNode)(p),b=Object(l.namedNode)(h),_=Object(l.namedNode)(f),v=Object(l.namedNode)(m),w=Object(l.namedNode)(g),S=Object(l.literal)("true",y),E=Object(l.literal)("false",y),T=Object(l.literal)("NaN",v),O=Object(l.literal)("INF",v),x=Object(l.literal)("-INF",v),A={NaN:NaN,INF:1/0,"-INF":-1/0};function R(e){return e&&"function"==typeof e[Symbol.asyncIterator]}function I(e){return!(null===e||"object"!=typeof e||Array.isArray(e)||e instanceof Date||"function"==typeof e.then||"string"==typeof e.termType||R(e))}function P(e,t=!1){const r=e.some(I);if(r&&!t&&1!==e.length)throw new Error(`Expected only 1 plain object, but got ${e.length} arguments`);return r}function N(e){switch(typeof e){case"string":return Object(l.literal)(e);case"boolean":return e?S:E;case"number":return Number.isInteger(e)?Object(l.literal)(e.toString(),w):Number.isFinite(e)?Object(l.literal)(e.toString(),_):e===1/0?O:e===-1/0?x:T;default:if(e){if("string"==typeof e.termType)return e;if(e instanceof Date)return Object(l.literal)(e.toISOString(),b)}}throw new Error("Invalid object: "+e)}class C{constructor(e,t){this._mutationType=e,this._allowZeroArgs=t}handle(e,t){return(...r)=>{if(!this._allowZeroArgs&&!r.length)throw new Error("Mutation cannot be invoked without arguments");const n=o(()=>this.createMutationExpressions(e,t,r));return e.extendPath({mutationExpressions:n})}}async createMutationExpressions(e,t,r){if(!P(r))return[await this.createMutationExpression(e,t,r)];const n=Object.entries(r[0]),i=await Promise.all(n.map(([r,n])=>{return this.createMutationExpression(e,t[r],(i=n,Array.isArray(i)?i:i?[i]:[]));var i}));return[0===i.length?{}:{...i[0],predicateObjects:(a=i.map(e=>e.predicateObjects),[].concat(...a))}];var a}async createMutationExpression(e,t,r){const n=await t.pathExpression;if(!Array.isArray(n))throw new Error(e+" has no pathExpression property");if(n.length<2)throw new Error(e+" should at least contain a subject and a predicate");const{predicate:i,reverse:a}=n[n.length-1];if(!i)throw new Error("Expected predicate in "+e);const s=await this.extractObjects(e,t,r);return null!==s&&0===s.length?{}:{mutationType:this._mutationType,conditions:n.slice(0,-1),predicateObjects:[{predicate:i,reverse:a,objects:s}]}}async extractObjects(e,t,r){if(0===r.length)return null;const n=[];for(const e of r)R(e)?n.push(...await i(e)):n.push(await e);return n.map(N)}}class j extends C{constructor(){super("DELETE",!0)}}const D=/(SELECT\s+)(\?\S+)/,k=/\}[^}]*$/;function L(e){const{termType:t,value:r}=e;switch(t){case"NamedNode":return r;case"Literal":const{language:n,datatype:i}=e;return`${t}|${n}|${i.value}|${r}`;default:return`${t}|${r}`}}var M=r(8);class F{constructor(e="ASC"){this.order=e}handle(e,t){return(...r)=>{if(0===r.length)return t;const[n,...i]=r,{predicate:a}=t[n],s={property:n,predicate:a,sort:this.order},o=e.extendPath(s);return 0===i.length?o:o.sort(...i)}}}const q=/["\\\t\n\r\b\f\u0000-\u0019\ud800-\udbff]/,B=/["\\\t\n\r\b\f\u0000-\u0019]|[\ud800-\udbff][\udc00-\udfff]/g,U={"\\":"\\\\",'"':'\\"',"\t":"\\t","\n":"\\n","\r":"\\r","\b":"\\b","\f":"\\f"};class V{async handle(e,t){const r=await t.mutationExpressions;if(Array.isArray(r)&&r.length)return r.map(e=>this.mutationExpressionToQuery(e)).filter(Boolean).join("\n;\n");const n=await t.pathExpression;if(!Array.isArray(n))throw new Error(e+" has no pathExpression property");return this.pathExpressionToQuery(e,t,n)}pathExpressionToQuery(e,t,r){if(r.length<2&&!e.finalClause)throw new Error(e+" should at least contain a subject and a predicate");let n="?subject",i=[],a=[];r.length>1&&(n=this.createVar(e.property),({queryVar:n,sorts:i,clauses:a}=this.expressionToTriplePatterns(r,n))),e.finalClause&&a.push(e.finalClause(n));const s=`SELECT ${e.distinct?"DISTINCT ":""}${e.select?e.select:n}`,o=` WHERE {\n ${a.join("\n ")}\n}`,c=i.map(({order:e,variable:t})=>`${e}(${t})`);return`${s}${o}${0===c.length?"":"\nORDER BY "+c.join(" ")}`}mutationExpressionToQuery({mutationType:e,conditions:t,predicateObjects:r}){if(!e||!t||r&&0===r.length)return"";const n={};let i,a;if(1===t.length)i=this.termToString(t[0].subject),a=[];else{const e=t[t.length-1].predicate;i=this.createVar(e.value,n),({queryVar:i,clauses:a}=this.expressionToTriplePatterns(t,i,n))}const s=[];for(const{predicate:e,reverse:t,objects:a}of r){const r=a?a.map(e=>this.termToString(e)):[this.createVar(e.value,n)];s.push(...this.triplePatterns(i,e,r,t))}const o=`{\n ${s.join("\n ")}\n}`;return 0===a.length?`${e} DATA ${o}`:`${e} ${o} WHERE {\n ${a.join("\n ")}\n}`}expressionToTriplePatterns([e,...t],r,n={}){const i=t.length-1,a=[],s=[];let o=this.termToString(function(e){if("BlankNode"!==e.termType)return e;e.skolemized||(e.skolemized=Object(l.namedNode)("urn:ldflex:sk"+H++));return e.skolemized}(e.subject)),c=o,u=!1;return t.forEach((e,t)=>{const l=o,{predicate:d,reverse:p,sort:h,values:f}=e;let m;if(f&&f.length>0){if(!u)throw new Error("Specifying fixed values is not allowed here");m=f.map(this.termToString),u=!1}else o=t`;case"BlankNode":return"_:"+t;case"Literal":let r="";return e.language?r="@"+e.language:"http://www.w3.org/2001/XMLSchema#string"!==e.datatype.value&&(r=`^^<${e.datatype.value}>`),`"${t}"${r}`;default:throw new Error("Could not convert a term of type "+e.termType)}}triplePatterns(e,t,r,n=!1){let i=[e];n&&([i,r]=[r,i]);const a=r.join(", ");return i.map(e=>`${e} <${t.value}> ${a}.`)}}function Q(e){let t=U[e];return void 0===t&&(1===e.length?(t=e.charCodeAt(0).toString(16),t="\\u0000".substr(0,6-t.length)+t):(t=(1024*(e.charCodeAt(0)-55296)+e.charCodeAt(1)+9216).toString(16),t="\\U00000000".substr(0,10-t.length)+t)),t}let H=0;var G={__esModule:()=>{},then:new class{handle({subject:e},t){return e?e.then&&c(()=>t.subject):c(()=>a(t.results))}},[Symbol.asyncIterator]:new class{handle({subject:e},t){return e?()=>{return e=t.subject,{async next(){if(e!==n){const t=await e;return e=n,{value:t}}return{done:!0}}};var e}:()=>t.results[Symbol.asyncIterator]()}},get:new class{handle(e,t){return(...e)=>this.readProperties(t,1===e.length?e[0]:e,!0)}async readProperties(e,t,r=!1){if(R(t)&&(t=await i(t)),Array.isArray(t)){const r=t.map(t=>this.readProperties(e,t));return Promise.all(r)}if(I(t)){const r=Object.keys(t);t=r.map(e=>t[e]||e);const n={},i=await this.readProperties(e,t);for(let e=0;ee.extendPath({subject:t},null)):void 0}},predicate:new class{handle(e){const{predicate:t}=e;return t?Promise.resolve(t).then(t=>e.extendPath({subject:t},null)):void 0}},properties:new class{handle(e,t){return u(this._handle(e,t))}async*_handle(e,t){const r=await e.settings.parsedContext||{},n=new M.JsonLdContextNormalized(r);for await(const e of t.predicates)yield n.compactIri(""+await e,!0)}},predicates:new class{handle(e){return e.extendPath({distinct:!0,select:"?predicate",finalClause:e=>e+" ?predicate ?object.",property:e.property})}},pathExpression:new class{async handle(e){const t=[];let r=e;for(;r.parent;)r.predicate&&t.unshift({predicate:await r.predicate,reverse:await r.reverse,sort:r.sort,values:r.values}),r=r.parent;if(!r.subject)throw new Error("Expected root subject in "+r);const n=await r.subject;return t.unshift({subject:n}),t}},sparql:new V,subjects:new class{handle(e){return e.extendPath({distinct:!0,select:"?subject",finalClause:()=>"?subject ?predicate ?object.",property:e.property})}},results:new class{async*handle(e,t){const r=await e.resultsCache;if(r){for(const e of r)yield e;return}const{queryEngine:n}=e.settings;if(!n)throw new Error(e+" has no queryEngine setting");const i=await t.sparql;if(null==i)throw new Error(e+" has no sparql property");if(0!==i.length)for await(const t of n.execute(i))yield this.extractTerm(t,e)}extractTerm(e,t){if(1!==e.size)throw new Error("Only single-variable queries are supported");const r=e.values().next().value;return t.extendPath({subject:r},null)}},sort:new F("ASC"),sortDesc:new F("DESC"),preload:new class{handle(e,t){return async(...r)=>{if(r.length>0){const n=await Promise.all(r.map(async e=>(await t[e].predicate).value));e.resultsCache=await this.createResultsCache(n,e,t)}return t}}async createResultsCache(e,t,r){const{query:n,vars:i,resultVar:a}=await this.createQuery(e,r),{settings:{queryEngine:s}}=t,o=s.execute(n),c={},u={};for await(const r of o){const n=r.get(a),s=L(n);if(!(s in c)){const r=u[s]={};for(const t of e)r[t]=[];const i={subject:n,propertyCache:r};c[s]=t.extendPath(i,null)}const o=u[s];for(let n=0;n"?preload_"+t),s=e.map((e,t)=>` { ${i} <${e}> ${a[t]}. }`).join("\n UNION\n");return{query:r.replace(D,"$1$2 "+a.join(" ")).replace(k,` OPTIONAL {\n${s}\n }\n$&`),vars:a,resultVar:i}}},mutationExpressions:new class{async handle(e){const t=[];let r=e;for(;r;)r.mutationExpressions&&t.unshift(...await r.mutationExpressions),r=r.parent;return t}},add:new class extends C{constructor(){super("INSERT",!1)}},set:new class extends C{handle(e,t){return(...e)=>(P(e)?Object.keys(e[0]).reduce((e,t)=>e.delete({[t]:[]}),t):t.delete()).add(...e)}},replace:new class{handle(e,t){return function(e,...r){if(!e||!r.length)throw new Error("Replacing values requires at least two arguments, old value followed by all new values");return t.delete(e).add(...r)}}},delete:new j,termType:X("termType"),value:X("value"),datatype:X("datatype"),language:X("language"),canonical:X("canonical"),equals:s.sync("subject","equals"),toString:s.syncFunction("subject","value"),valueOf:$(),toPrimitive:$(),toArray:new class{handle(e,t){return async e=>{const r=[];if(R(t)){"function"!=typeof e&&(e=e=>e);let n=0;for await(const i of t)r.push(await e(i,n++))}return r}}},termTypes:z((e,t)=>t.toArray(e=>e.termType)),values:z((e,t)=>t.toArray(e=>e.value)),datatypes:z((e,t)=>t.toArray(e=>e.datatype)),languages:z((e,t)=>t.toArray(e=>e.language)),resolve:new class{handle(e,t){return(e="",r=t)=>{const n='"use strict";return ldflex'+e.replace(/^(https?:\/\/[^()[\]'"]+)$/,'["$1"]').replace(/^(?=[a-z$_])/i,".").replace(/\[([^'"`\](]*)\]/g,'["$1"]');let i;try{i=Function("ldflex",n)}catch({message:t}){throw new Error(`Expression "${e}" is invalid: ${t}`)}return i(r)}}}};function z(e){return{handle:e}}function X(e){return z(({subject:t},r)=>t&&e in t?t[e]:r.then&&r.then(t=>null==t?void 0:t[e]))}function $(){return z(({subject:e})=>()=>"string"!=typeof(null==e?void 0:e.termType)?void 0:function(e){const{termType:t,value:r}=e;if("Literal"===t){const t=e.datatype.value;if(t.startsWith(d))switch(t){case p:return"true"===r||"1"===r;case g:return Number.parseInt(r,10);case f:return Number.parseFloat(r);case m:case"http://www.w3.org/2001/XMLSchema#float":return r in A?A[r]:Number.parseFloat(r);case h:return new Date(Date.parse(r))}}return r}(e))}const Y=Object.create(null);class J{constructor({handlers:e=Y,resolvers:t=[]}={}){this._handlers=e,this._resolvers=t}createPath(e={},t){void 0===t&&([t,e]=[e,{}]);const{apply:r,...n}=t,i=r?Object.assign((function(...e){return r(e,i,a)}),n):n,a=new Proxy(i,this);if(i.proxy=a,i.settings=e,!i.extendPath){const t=this;i.extendPath=function r(n,i=this){return t.createPath(e,{parent:i,extendPath:r,...n})}}return a}get(e,t){const r=this._handlers[t];if(r&&"function"==typeof r.handle)return r.handle(e,e.proxy);for(const r of this._resolvers)if(r.supports(t))return r.resolve(t,e,e.proxy)}}class W{constructor(...e){this._context=Promise.resolve({}),this.extendContext(...e)}supports(e){return"string"==typeof e}resolve(e,t){const r=o(()=>this.expandProperty(e)),n=o(()=>this._context.then(({contextRaw:t})=>t[e]&&t[e]["@reverse"])),i=this.getResultsCache(t,r,n),a={property:e,predicate:r,resultsCache:i,reverse:n,apply:this.apply};return t.extendPath(a)}apply(e,t,r){if(0===e.length){const{property:e}=t;throw new Error(`Specify at least one term when calling .${e}() on a path`)}return t.values=e.map(N),r}async expandProperty(e){e=e.replace(/^([a-z][a-z0-9]*)[_$]/i,"$1:");const t=(await this._context).expandTerm(e,!0);if(!M.Util.isValidIri(t))throw new Error(`The JSON-LD context cannot expand the '${e}' property`);return Object(l.namedNode)(t)}async extendContext(...e){await(this._context=this._context.then(({contextRaw:t})=>(new M.ContextParser).parse([t,...e])))}getResultsCache(e,t,r){let{propertyCache:n}=e;return n&&o(async()=>(n=!await r&&await n,n&&n[(await t).value]))}}class K{constructor(e,t){this._settings=e={...e},this._data=t={...t};const r=e.handlers||G;for(const e in r)r[e]=Z(r[e]);for(const e of Object.getOwnPropertySymbols(r))r[e]=Z(r[e]);const n=(e.resolvers||[]).map(ee);e.context?(n.push(new W(e.context)),e.parsedContext=(new M.ContextParser).parse(e.context).then(({contextRaw:e})=>e)):e.context=e.parsedContext={},this._pathProxy=new J({handlers:r,resolvers:n}),delete e.handlers,delete e.resolvers}create(e={},t){return t||([t,e]=[e,null]),this._pathProxy.createPath(Object.assign(Object.create(null),this._settings,e),Object.assign(Object.create(null),this._data,t))}}function Z(e){return"function"==typeof e.handle?e:{handle:e}}function ee(e){return"function"==typeof e.resolve?e:{supports:te,resolve:e}}function te(){return!0}K.defaultHandlers=G;var re=r(30),ne=r(29),ie=r.n(ne);const{as:ae}=re["@context"];class se{constructor({activitiesPath:e="/public/activities"}={}){this.requireUser=!0,this.activitiesPath=e}handle(e,t){const r=this,{root:n}=t,{settings:{queryEngine:i}}=e;return(e="".concat(ae,"Like"))=>u((async function*(){let a;try{a=await n.user}catch(e){if(r.requireUser)throw e;return}const s=await n.user.pim$storage,o=new URL(r.activitiesPath,s||a).href,c=[],u=Object(l.namedNode)(a);e=Object(l.namedNode)(e);for await(const n of t)if("NamedNode"===n.termType){const t={actor:u,type:e,object:n};for await(const e of r.createResults(t,o,i))c.push(e)}for(const e of await r.processResults(c,o,i))yield n[e.value]}))}async processResults(e){return e}}const{termToString:oe}=V.prototype;function ce(e,t){for(const r in t)e=e.replace(new RegExp("_:".concat(r),"g"),oe(t[r]));return e}function ue(...e){return{size:e.length,values:()=>({next:()=>({value:e.shift()})})}}var le="undefined"!=typeof crypto&&crypto.getRandomValues&&crypto.getRandomValues.bind(crypto)||"undefined"!=typeof msCrypto&&"function"==typeof msCrypto.getRandomValues&&msCrypto.getRandomValues.bind(msCrypto),de=new Uint8Array(16);function pe(){if(!le)throw new Error("crypto.getRandomValues() not supported. See https://github.com/uuidjs/uuid#getrandomvalues-not-supported");return le(de)}for(var he=[],fe=0;fe<256;++fe)he[fe]=(fe+256).toString(16).substr(1);var me=function(e,t){var r=t||0,n=he;return[n[e[r++]],n[e[r++]],n[e[r++]],n[e[r++]],"-",n[e[r++]],n[e[r++]],"-",n[e[r++]],n[e[r++]],"-",n[e[r++]],n[e[r++]],"-",n[e[r++]],n[e[r++]],n[e[r++]],n[e[r++]],n[e[r++]],n[e[r++]]].join("")};var ge=function(e,t,r){var n=t&&r||0;"string"==typeof e&&(t="binary"===e?new Array(16):null,e=null);var i=(e=e||{}).random||(e.rng||pe)();if(i[6]=15&i[6]|64,i[8]=63&i[8]|128,t)for(var a=0;a<16;++a)t[n+a]=i[a];return t||me(i)};const{xsd:ye}=re["@context"];const be=["?subject","?predicate","?object"];class _e{constructor(e,t){this._paths=e,this._source=t}supports(e){return"string"==typeof e}resolve(e,{settings:t}){return this._createSubjectPath(Object(l.namedNode)(e),t)}_createSubjectPath(e,{createQueryEngine:t}){const r=t(this._source||Promise.resolve(e).catch(()=>null));return this._paths.create({queryEngine:r},{subject:e})}}class ve{constructor(e){this._paths=e}handle({settings:e}){return t=>new K({handlers:{...G},resolvers:[new _e(this._paths,t)]}).create(e,{})}}class we extends _e{handle({settings:e}){const t=this.getWebId().then(l.namedNode);return this._createSubjectPath(t,e)}async getWebId(){const e=await ie.a.currentSession();if(!e)throw new Error("Cannot resolve user path: no user logged in");return e.webId}}const{as:Se}=re["@context"],Ee=new class extends W{constructor(e){super(e);const t=this._exposedContext=Object.create(e["@context"]);Object.defineProperty(t,"extend",{value:(...e)=>this.extendContext(...e)}),Object.defineProperty(t,"then",{value:(e,t)=>this._context.then(e=>e.contextRaw).then(e,t)})}handle(){return this._exposedContext}}(re),Te={...G,put:new class{handle(e,t){const{root:r}=t;return(e="",n="text/turtle")=>u((async function*(){const i=new Set;for await(const e of t){const t=/^https?:\/\/[^#]+/.exec(e?e.value:"");t&&i.add(t[0])}const a=[...i].map(t=>ie.a.fetch(t,{method:"PUT",headers:{"Content-Type":n},body:e}));await Promise.all(a);for(const e of i)yield r[e]}))}},delete:new class extends j{async extractObjects(e,t,r){const n=await super.extractObjects(e,t,r),i=[];for await(const e of t)"BlankNode"!==e.termType&&i.push(e);return n?i.filter(e=>n.some(t=>t.equals(e))):i}},findActivity:new class extends se{constructor(...e){super(...e),this.requireUser=!1}async*createResults(e,t,r){const n=ce("SELECT ?activity WHERE {\n ?activity a _:type;\n _:actor;\n _:object.\n}\n",e);for await(const e of r.execute(n,t))yield e.values().next().value}},likes:(e,t)=>t.findActivity("".concat(Se,"Like")),dislikes:(e,t)=>t.findActivity("".concat(Se,"Dislike")),follows:(e,t)=>t.findActivity("".concat(Se,"Follow")),createActivity:new class extends se{async*createResults(e,t){const r=Object(l.namedNode)(new URL("#".concat(ge()),t).href),n=ce("_:id a _:type;\n _:actor;\n _:object;\n _:published.\n",e={id:r,published:Object(l.literal)((new Date).toISOString(),"".concat(ye,"dateTime")),...e});yield{id:r,insert:n}}async processResults(e,t,r){const n="INSERT {\n".concat(e.map(e=>e.insert).join(""),"}");return await r.executeUpdate(n,t).next(),e.map(e=>e.id)}},like:(e,t)=>()=>t.createActivity("".concat(Se,"Like")),dislike:(e,t)=>()=>t.createActivity("".concat(Se,"Dislike")),follow:(e,t)=>()=>t.createActivity("".concat(Se,"Follow")),deleteActivity:new class extends se{async*createResults(e,t,r){const n=ce("SELECT ?subject ?predicate ?object WHERE {\n ?subject a _:type;\n _:actor;\n _:object.\n ?subject ?predicate ?object.\n}\n",e);for await(const e of r.execute(n,t)){const t=be.map(t=>oe(e.get(t)));yield"".concat(t.join(" "),".\n")}}async processResults(e,t,r){const n="DELETE {\n".concat(e.join(""),"}");return await r.executeUpdate(n,t).next(),[]}},unlike:(e,t)=>()=>t.deleteActivity("".concat(Se,"Like")),undislike:(e,t)=>()=>t.deleteActivity("".concat(Se,"Dislike")),unfollow:(e,t)=>()=>t.deleteActivity("".concat(Se,"Follow"))};class Oe{constructor(e,t){this._source=this.getUpdateSource(e),this._source.catch(()=>null),this._engine=t}async*execute(e,t){yield*/^\s*(?:INSERT|DELETE)/i.test(e)?this.executeUpdate(e,t):this._engine.execute(e,t)}executeUpdate(e,t){let r=!1;return{next:async()=>{if(r)return{done:r};r=!0;const n=await(t?this.getUpdateSource(t):this._source),{ok:i,status:a,statusText:s}=await ie.a.fetch(n,{method:"PATCH",headers:{"Content-Type":"application/sparql-update"},body:e});if(!i)throw new Error("Update query failed (".concat(a,"): ").concat(s));return await this.clearCache(n),{value:ue({ok:i})}},return:xe,throw:xe,[Symbol.asyncIterator](){return this}}}async getUpdateSource(e){let t=await e;if(t instanceof URL?t=t.href:t&&"string"==typeof t.value&&(t=t.value),"string"==typeof t){if(!/^https?:\/\//.test(t))throw new Error("Can only update an HTTP(S) document.");return t.replace(/#.*/,"")}if(Array.isArray(t)){if(t=await Promise.all(t.map(e=>this.getUpdateSource(e))),t=[].concat(...t).filter(e=>!!e),1!==t.length)throw new Error("Can only update a single source.");return t[0]}throw new Error("Unsupported source: ".concat(t))}clearCache(e){return this._engine.clearCache(e)}}function xe(){}var Ae=r(215),Re=r.n(Ae);var Ie=class{constructor(e){this._engine=Re.a,this._sources=this.parseSources(e),this._sources.catch(()=>null)}async*execute(e,t){/^\s*(?:INSERT|DELETE)/i.test(e)&&(yield*this.executeUpdate(e,t));const r=await(t?this.parseSources(t):this._sources);if(0!==r.length){const t=await this._engine.query(e,{sources:r});yield*this.streamToAsyncIterable(t.bindingsStream)}}async*executeUpdate(e,t){throw new Error("SPARQL UPDATE queries are unsupported, received: "+e)}async parseSources(e){let t=await e;if(!t)return[];if(t instanceof URL?t=t.href:"NamedNode"===t.termType&&(t=t.value),"string"==typeof t)t=[t.replace(/#.*/,"")];else if(Array.isArray(t))t=await async function(e){return[].concat(...await Promise.all(e))}(t.map(e=>this.parseSources(e)));else if("function"==typeof t.match)t=[Object.assign({type:"rdfjsSource"},t)];else{if("string"!=typeof e.value)throw new Error("Unsupported source: "+e);t=[t]}return t.map(e=>({value:e.value||e,type:e.type}))}streamToAsyncIterable(e){let t,r,n=!1;return e.on("readable",a),e.on("error",s),e.on("end",s),{next:()=>new Promise(i),[Symbol.asyncIterator](){return this}};function i(e,t){r={resolve:e,reject:t},a()}function a(){if(n||t)s();else if(r){const t=e.read();null!==t&&(r.resolve({value:t}),r=null)}}function s(i){t||(n=!0,t=i),r&&(t?r.reject(t):r.resolve({done:n}),r=null),e.on("readable",a),e.on("error",s),e.on("end",s)}}async clearCache(e){await this._engine.invalidateHttpCache(e)}};t.default=new function(e){let t=null;const r=new K({handlers:{...Te,root:()=>t},resolvers:[Ee]});return t=new K({handlers:{...G,from:new ve(r),user:new we(r),clearCache:({settings:e})=>t=>e.createQueryEngine().clearCache(t),context:Ee},resolvers:[new _e(r)],...e}).create(),t}({createQueryEngine:e=>new Oe(e,new Ie(e))})}]).default; //# sourceMappingURL=solid-query-ldflex.bundle.js.map \ No newline at end of file diff --git a/build/solid-query-ldflex.bundle.js.map b/build/solid-query-ldflex.bundle.js.map index 3b18172..c7c248f 100644 --- a/build/solid-query-ldflex.bundle.js.map +++ b/build/solid-query-ldflex.bundle.js.map @@ -1 +1 @@ -{"version":3,"sources":["webpack://solid.data/webpack/bootstrap","webpack://solid.data/./node_modules/@comunica/core/index.js","webpack://solid.data/./node_modules/@rdfjs/data-model/index.js","webpack://solid.data/./node_modules/readable-stream/readable-browser.js","webpack://solid.data/./node_modules/@comunica/bus-query-operation/index.js","webpack://solid.data/./node_modules/asynciterator/asynciterator.js","webpack://solid.data/./node_modules/rdf-string/index.js","webpack://solid.data/./node_modules/n3/src/IRIs.js","webpack://solid.data/./node_modules/sparqlalgebrajs/index.js","webpack://solid.data/./node_modules/jsonld-context-parser/index.js","webpack://solid.data/./node_modules/@comunica/mediator-race/index.js","webpack://solid.data/./node_modules/inherits/inherits_browser.js","webpack://solid.data/(webpack)/buildin/global.js","webpack://solid.data/./browser/process.js","webpack://solid.data/./node_modules/@comunica/mediator-combine-union/index.js","webpack://solid.data/./node_modules/timers-browserify/main.js","webpack://solid.data/./node_modules/buffer/index.js","webpack://solid.data/./node_modules/safe-buffer/index.js","webpack://solid.data/./node_modules/sparqlee/dist/lib/util/Consts.js","webpack://solid.data/./node_modules/sparqlee/dist/lib/util/Errors.js","webpack://solid.data/./node_modules/immutable/dist/immutable.js","webpack://solid.data/./node_modules/@comunica/bus-rdf-resolve-quad-pattern/index.js","webpack://solid.data/./node_modules/asynciterator-promiseproxy/index.js","webpack://solid.data/./node_modules/rdf-terms/index.js","webpack://solid.data/./node_modules/@comunica/bus-sparql-serialize/index.js","webpack://solid.data/./node_modules/sparqlee/dist/lib/expressions/Expressions.js","webpack://solid.data/./node_modules/relative-to-absolute-iri/index.js","webpack://solid.data/./node_modules/@comunica/bus-http/index.js","webpack://solid.data/./node_modules/jsonld-streaming-parser/lib/Util.js","webpack://solid.data/./node_modules/jsonld-streaming-parser/lib/entryhandler/keyword/EntryHandlerKeyword.js","webpack://solid.data/./node_modules/@comunica/actor-abstract-path/index.js","webpack://solid.data/external [\"solid\",\"auth\"]","webpack://solid.data/./node_modules/readable-stream/errors-browser.js","webpack://solid.data/./node_modules/readable-stream/lib/_stream_duplex.js","webpack://solid.data/./node_modules/@comunica/mediator-number/index.js","webpack://solid.data/./node_modules/@comunica/actor-abstract-mediatyped/index.js","webpack://solid.data/./node_modules/rdf-literal/lib/Translator.js","webpack://solid.data/./node_modules/sparqljs/sparql.js","webpack://solid.data/./node_modules/sparqlee/dist/lib/expressions/index.js","webpack://solid.data/./node_modules/sha.js/hash.js","webpack://solid.data/./node_modules/n3/src/N3DataFactory.js","webpack://solid.data/./node_modules/n3/src/N3Parser.js","webpack://solid.data/./node_modules/n3/src/N3Writer.js","webpack://solid.data/./node_modules/n3/src/N3Store.js","webpack://solid.data/./node_modules/n3/src/N3StreamParser.js","webpack://solid.data/./node_modules/n3/src/N3StreamWriter.js","webpack://solid.data/./node_modules/n3/src/N3Util.js","webpack://solid.data/./node_modules/uuid/dist/esm-browser/bytesToUuid.js","webpack://solid.data/./node_modules/isomorphic-fetch/fetch-npm-browserify.js","webpack://solid.data/./node_modules/lodash.assign/index.js","webpack://solid.data/./node_modules/events/events.js","webpack://solid.data/./node_modules/@comunica/bus-rdf-parse/index.js","webpack://solid.data/./node_modules/domutils/lib/tagtypes.js","webpack://solid.data/./node_modules/sparqlee/dist/index.js","webpack://solid.data/./node_modules/jsonld-context-parser/lib/ErrorCoded.js","webpack://solid.data/./node_modules/string_decoder/lib/string_decoder.js","webpack://solid.data/(webpack)/buildin/module.js","webpack://solid.data/./node_modules/sparqlalgebrajs/lib/algebra.js","webpack://solid.data/./node_modules/sparqlalgebrajs/lib/factory.js","webpack://solid.data/./node_modules/@comunica/mediator-combine-pipeline/index.js","webpack://solid.data/./node_modules/jsonld-streaming-parser/lib/entryhandler/EntryHandlerPredicate.js","webpack://solid.data/./node_modules/asynciterator-union/index.js","webpack://solid.data/./node_modules/sparqlee/dist/lib/Transformation.js","webpack://solid.data/./node_modules/sparqlee/dist/lib/util/Parsing.js","webpack://solid.data/./node_modules/sparqlee/dist/lib/functions/Helpers.js","webpack://solid.data/./node_modules/n3/src/N3Lexer.js","webpack://solid.data/./node_modules/uuid/dist/esm-browser/rng.js","webpack://solid.data/./node_modules/jsonld-context-parser/lib/Util.js","webpack://solid.data/./node_modules/readable-stream/lib/internal/streams/end-of-stream.js","webpack://solid.data/./node_modules/domelementtype/lib/index.js","webpack://solid.data/./node_modules/rdfa-streaming-parser/lib/RdfaProfile.js","webpack://solid.data/./node_modules/@comunica/bus-rdf-join/index.js","webpack://solid.data/./node_modules/@comunica/bus-rdf-metadata-extract/index.js","webpack://solid.data/external \"null\"","webpack://solid.data/./node_modules/sparqljson-parse/index.js","webpack://solid.data/./node_modules/JSONStream/index.js","webpack://solid.data/./node_modules/@comunica/bus-rdf-resolve-hypermedia/index.js","webpack://solid.data/./node_modules/sparqlalgebrajs/lib/util.js","webpack://solid.data/./node_modules/lru-cache/index.js","webpack://solid.data/./node_modules/@comunica/actor-query-operation-union/index.js","webpack://solid.data/./node_modules/@comunica/actor-abstract-bindings-hash/index.js","webpack://solid.data/./node_modules/sparqlee/dist/lib/functions/index.js","webpack://solid.data/./node_modules/sparqlee/dist/lib/functions/Core.js","webpack://solid.data/./node_modules/uuid/dist/esm-browser/v1.js","webpack://solid.data/./node_modules/uuid/dist/esm-browser/v35.js","webpack://solid.data/./node_modules/uuid/dist/esm-browser/md5.js","webpack://solid.data/./node_modules/uuid/dist/esm-browser/v3.js","webpack://solid.data/./node_modules/uuid/dist/esm-browser/sha1.js","webpack://solid.data/./node_modules/uuid/dist/esm-browser/v5.js","webpack://solid.data/./node_modules/jsonld-context-parser/lib/ContextParser.js","webpack://solid.data/./node_modules/jsonld-context-parser/lib/FetchDocumentLoader.js","webpack://solid.data/./node_modules/jsonld-context-parser/lib/JsonLdContextNormalized.js","webpack://solid.data/./node_modules/canonicalize/lib/canonicalize.js","webpack://solid.data/./node_modules/@rdfjs/data-model/lib/default-graph.js","webpack://solid.data/./node_modules/@rdfjs/data-model/lib/named-node.js","webpack://solid.data/./node_modules/uuid/dist/esm-browser/v4.js","webpack://solid.data/./node_modules/@comunica/logger-void/index.js","webpack://solid.data/./node_modules/@comunica/core/lib/Bus.js","webpack://solid.data/./node_modules/@comunica/core/lib/Logger.js","webpack://solid.data/./node_modules/web-streams-node/index.js","webpack://solid.data/./node_modules/readable-stream/lib/_stream_readable.js","webpack://solid.data/./node_modules/readable-stream/lib/internal/streams/stream-browser.js","webpack://solid.data/./node_modules/readable-stream/lib/internal/streams/destroy.js","webpack://solid.data/./node_modules/readable-stream/lib/internal/streams/state.js","webpack://solid.data/./node_modules/readable-stream/lib/_stream_writable.js","webpack://solid.data/./node_modules/readable-stream/lib/_stream_transform.js","webpack://solid.data/./node_modules/web-streams-ponyfill/dist/polyfill-ie11.min.js","webpack://solid.data/./node_modules/@comunica/actor-rdf-parse-n3/index.js","webpack://solid.data/./node_modules/@comunica/actor-abstract-mediatyped/lib/ActorAbstractMediaTyped.js","webpack://solid.data/./node_modules/@comunica/actor-rdf-parse-rdfxml/index.js","webpack://solid.data/./node_modules/sax/lib/sax.js","webpack://solid.data/./node_modules/@comunica/actor-rdf-parse-xml-rdfa/index.js","webpack://solid.data/./node_modules/rdfa-streaming-parser/index.js","webpack://solid.data/./node_modules/htmlparser2/lib/index.js","webpack://solid.data/./node_modules/htmlparser2/lib/Parser.js","webpack://solid.data/./node_modules/htmlparser2/lib/Tokenizer.js","webpack://solid.data/./node_modules/entities/lib/decode_codepoint.js","webpack://solid.data/./node_modules/domhandler/lib/index.js","webpack://solid.data/./node_modules/htmlparser2/lib/FeedHandler.js","webpack://solid.data/./node_modules/domutils/lib/index.js","webpack://solid.data/./node_modules/entities/lib/decode.js","webpack://solid.data/./node_modules/entities/lib/encode.js","webpack://solid.data/./node_modules/domutils/lib/querying.js","webpack://solid.data/./node_modules/rdfa-streaming-parser/lib/Util.js","webpack://solid.data/./node_modules/@comunica/actor-rdf-join-symmetrichash/index.js","webpack://solid.data/./node_modules/lodash.union/index.js","webpack://solid.data/./node_modules/@comunica/actor-rdf-parse-html/index.js","webpack://solid.data/./node_modules/@comunica/actor-rdf-parse-html-rdfa/index.js","webpack://solid.data/./node_modules/@comunica/bus-rdf-parse-html/index.js","webpack://solid.data/./node_modules/@comunica/actor-rdf-resolve-quad-pattern-rdfjs-source/index.js","webpack://solid.data/./node_modules/@comunica/bus-rdf-resolve-quad-pattern/lib/ActorRdfResolveQuadPattern.js","webpack://solid.data/./node_modules/@comunica/actor-rdf-metadata-primary-topic/index.js","webpack://solid.data/./node_modules/@comunica/bus-rdf-metadata/index.js","webpack://solid.data/./node_modules/@comunica/bus-rdf-metadata/lib/ActorRdfMetadata.js","webpack://solid.data/./node_modules/@comunica/actor-rdf-metadata-all/index.js","webpack://solid.data/./node_modules/@comunica/actor-rdf-metadata-extract-hydra-controls/index.js","webpack://solid.data/./node_modules/@comunica/bus-rdf-metadata-extract/lib/ActorRdfMetadataExtract.js","webpack://solid.data/./node_modules/sparqljson-to-tree/index.js","webpack://solid.data/./node_modules/rdf-literal/lib/handler/index.js","webpack://solid.data/./node_modules/sparqljson-parse/lib/SparqlJsonBindingsTransformer.js","webpack://solid.data/./node_modules/jsonparse/jsonparse.js","webpack://solid.data/./node_modules/rdf-store-stream/index.js","webpack://solid.data/./node_modules/@comunica/bus-rdf-metadata-extract/lib/GraphQlQueryEngine.js","webpack://solid.data/./node_modules/stream-to-string/index.js","webpack://solid.data/./node_modules/@comunica/actor-rdf-metadata-extract-hydra-count/index.js","webpack://solid.data/./node_modules/@comunica/actor-rdf-metadata-extract-sparql-service/index.js","webpack://solid.data/./node_modules/@comunica/actor-rdf-resolve-hypermedia-none/index.js","webpack://solid.data/./node_modules/@comunica/actor-rdf-resolve-hypermedia-links-next/index.js","webpack://solid.data/./node_modules/@comunica/bus-http-invalidate/index.js","webpack://solid.data/./node_modules/@comunica/bus-http-invalidate/lib/ActorHttpInvalidate.js","webpack://solid.data/./node_modules/@comunica/mediator-all/index.js","webpack://solid.data/./node_modules/@comunica/actor-optimize-query-operation-join-bgp/index.js","webpack://solid.data/./node_modules/sparqljs/lib/Wildcard.js","webpack://solid.data/./node_modules/@comunica/actor-sparql-parse-algebra/index.js","webpack://solid.data/./node_modules/@comunica/bus-sparql-parse/index.js","webpack://solid.data/./node_modules/@comunica/actor-query-operation-bgp-empty/index.js","webpack://solid.data/./node_modules/@comunica/bus-query-operation/lib/ActorQueryOperation.js","webpack://solid.data/./node_modules/@comunica/bus-query-operation/lib/Bindings.js","webpack://solid.data/./node_modules/@comunica/bus-query-operation/lib/ActorQueryOperationTyped.js","webpack://solid.data/./node_modules/@comunica/actor-query-operation-values/index.js","webpack://solid.data/./node_modules/@comunica/actor-rdf-parse-jsonld/index.js","webpack://solid.data/./node_modules/jsonld-streaming-parser/lib/JsonLdParser.js","webpack://solid.data/./node_modules/jsonld-streaming-parser/lib/entryhandler/EntryHandlerContainer.js","webpack://solid.data/./node_modules/@comunica/actor-rdf-resolve-hypermedia-sparql/index.js","webpack://solid.data/./node_modules/@comunica/actor-query-operation-sparql-endpoint/index.js","webpack://solid.data/./node_modules/sparqlxml-parse/lib/SparqlXmlBindingsTransformer.js","webpack://solid.data/./node_modules/@comunica/actor-rdf-dereference-http-parse/index.js","webpack://solid.data/./node_modules/@comunica/actor-rdf-dereference-http-parse/lib/ActorRdfDereferenceHttpParseBase.js","webpack://solid.data/./node_modules/@comunica/bus-rdf-dereference/lib/ActorRdfDereference.js","webpack://solid.data/./node_modules/@comunica/actor-rdf-parse-html-script/index.js","webpack://solid.data/./node_modules/@comunica/actor-rdf-join-multi-smallest/index.js","webpack://solid.data/./node_modules/@comunica/actor-rdf-resolve-quad-pattern-federated/index.js","webpack://solid.data/./node_modules/@comunica/actor-rdf-resolve-quad-pattern-federated/lib/FederatedQuadSource.js","webpack://solid.data/./node_modules/@comunica/data-factory/index.js","webpack://solid.data/./node_modules/@comunica/actor-query-operation-quadpattern/index.js","webpack://solid.data/./node_modules/@comunica/actor-rdf-resolve-hypermedia-qpf/index.js","webpack://solid.data/./node_modules/@comunica/actor-rdf-resolve-quad-pattern-hypermedia/index.js","webpack://solid.data/./node_modules/@comunica/actor-rdf-resolve-quad-pattern-hypermedia/lib/MediatedQuadSource.js","webpack://solid.data/./node_modules/@comunica/actor-init-sparql/index-browser.js","webpack://solid.data/./node_modules/asyncreiterable/index.js","webpack://solid.data/./node_modules/@comunica/actor-sparql-serialize-tree/index.js","webpack://solid.data/./node_modules/@comunica/actor-sparql-serialize-tree/lib/ActorSparqlSerializeTree.js","webpack://solid.data/./node_modules/parse-link-header/index.js","webpack://solid.data/./node_modules/querystring-es3/index.js","webpack://solid.data/./node_modules/@comunica/actor-sparql-serialize-stats/index.js","webpack://solid.data/./node_modules/@comunica/actor-query-operation-ask/index.js","webpack://solid.data/./node_modules/@comunica/actor-query-operation-service/index.js","webpack://solid.data/./node_modules/@comunica/actor-query-operation-slice/index.js","webpack://solid.data/./node_modules/@comunica/actor-query-operation-bgp-single/index.js","webpack://solid.data/./node_modules/@comunica/actor-query-operation-bgp-left-deep-smallest/index.js","webpack://solid.data/./node_modules/lodash.uniq/index.js","webpack://solid.data/./node_modules/@comunica/actor-query-operation-construct/index.js","webpack://solid.data/./node_modules/@comunica/actor-query-operation-describe-subject/index.js","webpack://solid.data/./node_modules/@comunica/actor-query-operation-distinct-hash/index.js","webpack://solid.data/./node_modules/@comunica/actor-abstract-bindings-hash/lib/AbstractFilterHash.js","webpack://solid.data/./node_modules/@comunica/actor-query-operation-extend/index.js","webpack://solid.data/./node_modules/hash-base/index.js","webpack://solid.data/./node_modules/sha.js/sha256.js","webpack://solid.data/./node_modules/sha.js/sha512.js","webpack://solid.data/./node_modules/sparqlee/dist/lib/evaluators/RecursiveExpressionEvaluator.js","webpack://solid.data/./node_modules/sparqlee/dist/lib/evaluators/SyncEvaluator.js","webpack://solid.data/./node_modules/@comunica/actor-query-operation-reduced-hash/index.js","webpack://solid.data/./node_modules/@comunica/actor-query-operation-filter-sparqlee/index.js","webpack://solid.data/./node_modules/@comunica/actor-query-operation-from-quad/index.js","webpack://solid.data/./node_modules/@comunica/actor-query-operation-group/index.js","webpack://solid.data/./node_modules/@comunica/actor-query-operation-join/index.js","webpack://solid.data/./node_modules/@comunica/actor-query-operation-leftjoin-left-deep/index.js","webpack://solid.data/./node_modules/@comunica/actor-query-operation-orderby-sparqlee/index.js","webpack://solid.data/./node_modules/@comunica/actor-query-operation-project/index.js","webpack://solid.data/./node_modules/@comunica/actor-query-operation-minus/index.js","webpack://solid.data/./node_modules/@comunica/actor-query-operation-path-alt/index.js","webpack://solid.data/./node_modules/@comunica/actor-abstract-path/lib/ActorAbstractPath.js","webpack://solid.data/./node_modules/@comunica/actor-query-operation-path-inv/index.js","webpack://solid.data/./node_modules/@comunica/actor-query-operation-path-link/index.js","webpack://solid.data/./node_modules/@comunica/actor-query-operation-path-nps/index.js","webpack://solid.data/./node_modules/@comunica/actor-query-operation-path-one-or-more/index.js","webpack://solid.data/./node_modules/@comunica/actor-query-operation-path-seq/index.js","webpack://solid.data/./node_modules/@comunica/actor-query-operation-path-zero-or-more/index.js","webpack://solid.data/./node_modules/@comunica/actor-query-operation-path-zero-or-one/index.js","webpack://solid.data/./node_modules/@ldflex/comunica/lib/comunica-engine.js","webpack://solid.data/./node_modules/whatwg-fetch/fetch.js","webpack://solid.data/./node_modules/relative-to-absolute-iri/lib/Resolve.js","webpack://solid.data/./node_modules/@rdfjs/data-model/lib/data-factory.js","webpack://solid.data/./node_modules/@rdfjs/data-model/lib/blank-node.js","webpack://solid.data/./node_modules/@rdfjs/data-model/lib/literal.js","webpack://solid.data/./node_modules/@rdfjs/data-model/lib/quad.js","webpack://solid.data/./node_modules/@rdfjs/data-model/lib/variable.js","webpack://solid.data/./node_modules/@comunica/logger-void/lib/LoggerVoid.js","webpack://solid.data/./browser/setImmediate.js","webpack://solid.data/./node_modules/@comunica/core/lib/BusIndexed.js","webpack://solid.data/./node_modules/@comunica/core/lib/ActionObserver.js","webpack://solid.data/./node_modules/@comunica/core/lib/Actor.js","webpack://solid.data/./node_modules/@comunica/core/lib/Mediator.js","webpack://solid.data/./node_modules/@comunica/actor-http-solid-auth-fetch/index.js","webpack://solid.data/./node_modules/@comunica/actor-http-solid-auth-fetch/lib/ActorHttpSolidAuthFetch.js","webpack://solid.data/./node_modules/@comunica/bus-http/lib/ActorHttp.js","webpack://solid.data/./node_modules/@comunica/bus-http/node_modules/is-stream/index.js","webpack://solid.data/./node_modules/base64-js/index.js","webpack://solid.data/./node_modules/ieee754/index.js","webpack://solid.data/./node_modules/isarray/index.js","webpack://solid.data/./node_modules/readable-stream/lib/internal/streams/buffer_list.js","webpack://solid.data/./node_modules/util-deprecate/browser.js","webpack://solid.data/./node_modules/readable-stream/lib/internal/streams/async_iterator.js","webpack://solid.data/./node_modules/readable-stream/lib/internal/streams/from-browser.js","webpack://solid.data/./node_modules/readable-stream/lib/_stream_passthrough.js","webpack://solid.data/./node_modules/readable-stream/lib/internal/streams/pipeline.js","webpack://solid.data/./node_modules/is-stream/index.js","webpack://solid.data/./node_modules/web-streams-node/lib/conversions.js","webpack://solid.data/./node_modules/readable-stream-node-to-web/index.js","webpack://solid.data/./node_modules/@comunica/mediator-number/lib/MediatorNumber.js","webpack://solid.data/./node_modules/@comunica/mediator-combine-union/lib/MediatorCombineUnion.js","webpack://solid.data/./node_modules/lodash.defaults/index.js","webpack://solid.data/./node_modules/@comunica/mediator-race/lib/MediatorRace.js","webpack://solid.data/./node_modules/@comunica/actor-rdf-parse-n3/lib/ActorRdfParseN3.js","webpack://solid.data/./node_modules/@comunica/bus-rdf-parse/lib/ActorRdfParse.js","webpack://solid.data/./node_modules/@comunica/actor-abstract-mediatyped/lib/ActorAbstractMediaTypedFixed.js","webpack://solid.data/./node_modules/lodash.mapvalues/index.js","webpack://solid.data/./node_modules/@comunica/bus-rdf-parse/lib/ActorRdfParseFixedMediaTypes.js","webpack://solid.data/./node_modules/@comunica/actor-rdf-parse-rdfxml/lib/ActorRdfParseRdfXml.js","webpack://solid.data/./node_modules/rdfxml-streaming-parser/index.js","webpack://solid.data/./node_modules/rdfxml-streaming-parser/lib/RdfXmlParser.js","webpack://solid.data/./node_modules/rdfxml-streaming-parser/lib/ParseError.js","webpack://solid.data/./node_modules/@comunica/actor-rdf-parse-xml-rdfa/lib/ActorRdfParseXmlRdfa.js","webpack://solid.data/./node_modules/rdfa-streaming-parser/lib/RdfaParser.js","webpack://solid.data/./node_modules/domhandler/lib/node.js","webpack://solid.data/./node_modules/domutils/lib/stringify.js","webpack://solid.data/./node_modules/dom-serializer/index.js","webpack://solid.data/./node_modules/entities/lib/index.js","webpack://solid.data/./node_modules/domutils/lib/traversal.js","webpack://solid.data/./node_modules/domutils/lib/manipulation.js","webpack://solid.data/./node_modules/domutils/lib/legacy.js","webpack://solid.data/./node_modules/domutils/lib/helpers.js","webpack://solid.data/./node_modules/htmlparser2/lib/CollectingHandler.js","webpack://solid.data/./node_modules/htmlparser2/lib/MultiplexHandler.js","webpack://solid.data/./node_modules/@comunica/actor-rdf-join-symmetrichash/lib/ActorRdfJoinSymmetricHash.js","webpack://solid.data/./node_modules/@comunica/bus-rdf-join/lib/ActorRdfJoin.js","webpack://solid.data/./node_modules/lodash.intersection/index.js","webpack://solid.data/./node_modules/asyncjoin/index.js","webpack://solid.data/./node_modules/asyncjoin/join/DynamicNestedLoopJoin.js","webpack://solid.data/./node_modules/asyncjoin/join/HashJoin.js","webpack://solid.data/./node_modules/asyncjoin/join/NestedLoopJoin.js","webpack://solid.data/./node_modules/asyncjoin/join/SymmetricHashJoin.js","webpack://solid.data/./node_modules/asyncjoin/util/MergeIterator.js","webpack://solid.data/./node_modules/@comunica/actor-rdf-parse-html/lib/ActorRdfParseHtml.js","webpack://solid.data/./node_modules/@comunica/actor-rdf-parse-html-rdfa/lib/ActorRdfParseHtmlRdfa.js","webpack://solid.data/./node_modules/@comunica/bus-rdf-parse-html/lib/ActorRdfParseHtml.js","webpack://solid.data/./node_modules/@comunica/actor-rdf-resolve-quad-pattern-rdfjs-source/lib/ActorRdfResolveQuadPatternRdfJsSource.js","webpack://solid.data/./node_modules/@comunica/bus-rdf-resolve-quad-pattern/lib/ActorRdfResolveQuadPatternSource.js","webpack://solid.data/./node_modules/@comunica/actor-rdf-metadata-primary-topic/lib/ActorRdfMetadataPrimaryTopic.js","webpack://solid.data/./node_modules/@comunica/bus-rdf-metadata/lib/ActorRdfMetadataQuadPredicate.js","webpack://solid.data/./node_modules/@comunica/actor-rdf-metadata-all/lib/ActorRdfMetadataAll.js","webpack://solid.data/./node_modules/@comunica/actor-rdf-metadata-extract-hydra-controls/lib/ActorRdfMetadataExtractHydraControls.js","webpack://solid.data/./node_modules/@comunica/bus-rdf-metadata-extract/lib/ActorRdfMetadataExtractQuery.js","webpack://solid.data/./node_modules/graphql-ld/index.js","webpack://solid.data/./node_modules/graphql-ld/lib/Client.js","webpack://solid.data/./node_modules/sparqljson-to-tree/lib/Converter.js","webpack://solid.data/./node_modules/rdf-literal/index.js","webpack://solid.data/./node_modules/rdf-literal/lib/handler/TypeHandlerBoolean.js","webpack://solid.data/./node_modules/rdf-literal/lib/handler/TypeHandlerDate.js","webpack://solid.data/./node_modules/rdf-literal/lib/handler/TypeHandlerNumberDouble.js","webpack://solid.data/./node_modules/rdf-literal/lib/handler/TypeHandlerNumberInteger.js","webpack://solid.data/./node_modules/rdf-literal/lib/handler/TypeHandlerString.js","webpack://solid.data/./node_modules/sparqljson-parse/lib/SparqlJsonParser.js","webpack://solid.data/./node_modules/through/index.js","webpack://solid.data/./node_modules/promise-polyfill/Promise.js","webpack://solid.data/./node_modules/uritemplate/bin/uritemplate.js","webpack://solid.data/./node_modules/@comunica/actor-rdf-metadata-extract-hydra-count/lib/ActorRdfMetadataExtractHydraCount.js","webpack://solid.data/./node_modules/@comunica/actor-rdf-metadata-extract-sparql-service/lib/ActorRdfMetadataExtractSparqlService.js","webpack://solid.data/./node_modules/@comunica/actor-rdf-resolve-hypermedia-none/lib/ActorRdfResolveHypermediaNone.js","webpack://solid.data/./node_modules/@comunica/bus-rdf-resolve-hypermedia/lib/ActorRdfResolveHypermedia.js","webpack://solid.data/./node_modules/@comunica/actor-rdf-resolve-hypermedia-none/lib/RdfSourceMetadata.js","webpack://solid.data/./node_modules/@comunica/actor-rdf-resolve-hypermedia-links-next/lib/ActorRdfResolveHypermediaLinksNext.js","webpack://solid.data/./node_modules/@comunica/bus-rdf-resolve-hypermedia-links/index.js","webpack://solid.data/./node_modules/@comunica/bus-rdf-resolve-hypermedia-links/lib/ActorRdfResolveHypermediaLinks.js","webpack://solid.data/./node_modules/@comunica/bus-http-invalidate/lib/ActorHttpInvalidateListenable.js","webpack://solid.data/./node_modules/@comunica/mediator-all/lib/MediatorAll.js","webpack://solid.data/./node_modules/@comunica/actor-optimize-query-operation-join-bgp/lib/ActorOptimizeQueryOperationJoinBgp.js","webpack://solid.data/./node_modules/@comunica/bus-optimize-query-operation/index.js","webpack://solid.data/./node_modules/@comunica/bus-optimize-query-operation/lib/ActorOptimizeQueryOperation.js","webpack://solid.data/./node_modules/sparqlalgebrajs/lib/sparqlAlgebra.js","webpack://solid.data/./node_modules/rdf-string/lib/TermUtil.js","webpack://solid.data/./node_modules/sparqljs/lib/SparqlParser.js","webpack://solid.data/./node_modules/sparqljs/lib/SparqlGenerator.js","webpack://solid.data/./node_modules/fast-deep-equal/index.js","webpack://solid.data/./node_modules/sparqlalgebrajs/lib/sparql.js","webpack://solid.data/./node_modules/@comunica/mediator-combine-pipeline/lib/MediatorCombinePipeline.js","webpack://solid.data/./node_modules/@comunica/actor-sparql-parse-algebra/lib/ActorSparqlParseAlgebra.js","webpack://solid.data/./node_modules/@comunica/bus-sparql-parse/lib/ActorSparqlParse.js","webpack://solid.data/./node_modules/@comunica/actor-query-operation-bgp-empty/lib/ActorQueryOperationBgpEmpty.js","webpack://solid.data/./node_modules/@comunica/bus-query-operation/lib/ActorQueryOperationTypedMediated.js","webpack://solid.data/./node_modules/@comunica/actor-query-operation-values/lib/ActorQueryOperationValues.js","webpack://solid.data/./node_modules/@comunica/actor-rdf-parse-jsonld/lib/ActorRdfParseJsonLd.js","webpack://solid.data/./node_modules/jsonld-streaming-parser/index.js","webpack://solid.data/./node_modules/jsonld-streaming-parser/lib/entryhandler/EntryHandlerArrayValue.js","webpack://solid.data/./node_modules/jsonld-streaming-parser/lib/containerhandler/ContainerHandlerIdentifier.js","webpack://solid.data/./node_modules/jsonld-streaming-parser/lib/containerhandler/ContainerHandlerIndex.js","webpack://solid.data/./node_modules/jsonld-streaming-parser/lib/containerhandler/ContainerHandlerLanguage.js","webpack://solid.data/./node_modules/jsonld-streaming-parser/lib/containerhandler/ContainerHandlerType.js","webpack://solid.data/./node_modules/jsonld-streaming-parser/lib/entryhandler/EntryHandlerInvalidFallback.js","webpack://solid.data/./node_modules/jsonld-streaming-parser/lib/entryhandler/keyword/EntryHandlerKeywordContext.js","webpack://solid.data/./node_modules/jsonld-streaming-parser/lib/entryhandler/keyword/EntryHandlerKeywordGraph.js","webpack://solid.data/./node_modules/jsonld-streaming-parser/lib/entryhandler/keyword/EntryHandlerKeywordId.js","webpack://solid.data/./node_modules/jsonld-streaming-parser/lib/entryhandler/keyword/EntryHandlerKeywordIncluded.js","webpack://solid.data/./node_modules/jsonld-streaming-parser/lib/entryhandler/keyword/EntryHandlerKeywordNest.js","webpack://solid.data/./node_modules/jsonld-streaming-parser/lib/entryhandler/keyword/EntryHandlerKeywordType.js","webpack://solid.data/./node_modules/jsonld-streaming-parser/lib/entryhandler/keyword/EntryHandlerKeywordUnknownFallback.js","webpack://solid.data/./node_modules/jsonld-streaming-parser/lib/entryhandler/keyword/EntryHandlerKeywordValue.js","webpack://solid.data/./node_modules/jsonld-streaming-parser/lib/ParsingContext.js","webpack://solid.data/./node_modules/jsonld-streaming-parser/lib/ContextTree.js","webpack://solid.data/./node_modules/http-link-header/lib/link.js","webpack://solid.data/./node_modules/@comunica/actor-rdf-parse-jsonld/lib/DocumentLoaderMediated.js","webpack://solid.data/./node_modules/@comunica/actor-rdf-resolve-hypermedia-sparql/lib/ActorRdfResolveHypermediaSparql.js","webpack://solid.data/./node_modules/@comunica/actor-rdf-resolve-hypermedia-sparql/lib/RdfSourceSparql.js","webpack://solid.data/./node_modules/asynciterator-promiseproxy/lib/PromiseProxyIterator.js","webpack://solid.data/./node_modules/rdf-terms/lib/QuadTermUtil.js","webpack://solid.data/./node_modules/rdf-terms/lib/TermUtil.js","webpack://solid.data/./node_modules/lodash.uniqwith/index.js","webpack://solid.data/./node_modules/@comunica/actor-query-operation-sparql-endpoint/lib/ActorQueryOperationSparqlEndpoint.js","webpack://solid.data/./node_modules/@comunica/utils-datasource/index.js","webpack://solid.data/./node_modules/@comunica/utils-datasource/lib/DataSourceUtils.js","webpack://solid.data/./node_modules/arrayify-stream/index.js","webpack://solid.data/./node_modules/fetch-sparql-endpoint/index.js","webpack://solid.data/./node_modules/fetch-sparql-endpoint/lib/SparqlEndpointFetcher.js","webpack://solid.data/./node_modules/sparqlxml-parse/index.js","webpack://solid.data/./node_modules/sparqlxml-parse/lib/SparqlXmlParser.js","webpack://solid.data/./node_modules/sax-stream/index.js","webpack://solid.data/./node_modules/sax-stream/lib/xmlnode.js","webpack://solid.data/./node_modules/util/util.js","webpack://solid.data/./node_modules/util/support/isBufferBrowser.js","webpack://solid.data/./node_modules/util/node_modules/inherits/inherits_browser.js","webpack://solid.data/./node_modules/sax-stream/lib/elem.js","webpack://solid.data/./node_modules/sax-stream/node_modules/debug/src/browser.js","webpack://solid.data/./node_modules/sax-stream/node_modules/debug/src/debug.js","webpack://solid.data/./node_modules/sax-stream/node_modules/ms/index.js","webpack://solid.data/./node_modules/fetch-sparql-endpoint/node_modules/is-stream/index.js","webpack://solid.data/./node_modules/@comunica/bus-rdf-dereference/index.js","webpack://solid.data/./node_modules/@comunica/bus-rdf-dereference/lib/ActorRdfDereferenceMediaMappings.js","webpack://solid.data/./node_modules/@comunica/actor-rdf-dereference-http-parse/lib/ActorRdfDereferenceHttpParse-browser.js","webpack://solid.data/./node_modules/@comunica/actor-rdf-parse-html-script/lib/ActorRdfParseHtmlScript.js","webpack://solid.data/./node_modules/@comunica/actor-rdf-parse-html-script/lib/HtmlScriptListener.js","webpack://solid.data/./node_modules/@comunica/actor-rdf-join-multi-smallest/lib/ActorRdfJoinMultiSmallest.js","webpack://solid.data/./node_modules/@comunica/actor-rdf-resolve-quad-pattern-federated/lib/ActorRdfResolveQuadPatternFederated.js","webpack://solid.data/./node_modules/@comunica/data-factory/lib/BlankNodeScoped.js","webpack://solid.data/./node_modules/asynciterator-union/lib/RoundRobinUnionIterator.js","webpack://solid.data/./node_modules/@comunica/actor-query-operation-quadpattern/lib/ActorQueryOperationQuadpattern.js","webpack://solid.data/./node_modules/@comunica/actor-rdf-resolve-hypermedia-qpf/lib/ActorRdfResolveHypermediaQpf.js","webpack://solid.data/./node_modules/@comunica/actor-rdf-resolve-hypermedia-qpf/lib/RdfSourceQpf.js","webpack://solid.data/./node_modules/@comunica/actor-rdf-resolve-quad-pattern-hypermedia/lib/ActorRdfResolveQuadPatternHypermedia.js","webpack://solid.data/./node_modules/yallist/yallist.js","webpack://solid.data/./node_modules/yallist/iterator.js","webpack://solid.data/./node_modules/@comunica/actor-rdf-resolve-quad-pattern-hypermedia/lib/MediatedLinkedRdfSourcesAsyncRdfIterator.js","webpack://solid.data/./node_modules/@comunica/actor-rdf-resolve-quad-pattern-hypermedia/lib/LinkedRdfSourcesAsyncRdfIterator.js","webpack://solid.data/./node_modules/@comunica/actor-init-sparql/lib/ActorInitSparql-browser.js","webpack://solid.data/./node_modules/@comunica/bus-init/index.js","webpack://solid.data/./node_modules/@comunica/bus-init/lib/ActorInit.js","webpack://solid.data/./node_modules/asyncreiterable/lib/AsyncReiterableArray.js","webpack://solid.data/./node_modules/@comunica/bus-sparql-serialize/lib/ActorSparqlSerialize.js","webpack://solid.data/./node_modules/@comunica/bus-sparql-serialize/lib/ActorSparqlSerializeFixedMediaTypes.js","webpack://solid.data/./node_modules/@comunica/actor-init-sparql/engine-default.js","webpack://solid.data/./node_modules/@comunica/actor-http-native/index.js","webpack://solid.data/./node_modules/@comunica/actor-http-native/lib/ActorHttpNative.js","webpack://solid.data/./node_modules/@comunica/actor-http-native/lib/Requester-browser.js","webpack://solid.data/./node_modules/querystring-es3/decode.js","webpack://solid.data/./node_modules/querystring-es3/encode.js","webpack://solid.data/./node_modules/url/url.js","webpack://solid.data/./node_modules/node-libs-browser/node_modules/punycode/punycode.js","webpack://solid.data/./node_modules/url/util.js","webpack://solid.data/./node_modules/xtend/immutable.js","webpack://solid.data/./node_modules/@comunica/actor-sparql-serialize-stats/lib/ActionObserverHttp.js","webpack://solid.data/./node_modules/@comunica/actor-sparql-serialize-stats/lib/ActorSparqlSerializeStats.js","webpack://solid.data/./node_modules/@comunica/actor-rdf-serialize-n3/index.js","webpack://solid.data/./node_modules/@comunica/actor-rdf-serialize-n3/lib/ActorRdfSerializeN3.js","webpack://solid.data/./node_modules/@comunica/bus-rdf-serialize/index.js","webpack://solid.data/./node_modules/@comunica/bus-rdf-serialize/lib/ActorRdfSerialize.js","webpack://solid.data/./node_modules/@comunica/bus-rdf-serialize/lib/ActorRdfSerializeFixedMediaTypes.js","webpack://solid.data/./node_modules/@comunica/actor-sparql-parse-graphql/index.js","webpack://solid.data/./node_modules/@comunica/actor-sparql-parse-graphql/lib/ActorSparqlParseGraphql.js","webpack://solid.data/./node_modules/@comunica/actor-sparql-serialize-json/index.js","webpack://solid.data/./node_modules/@comunica/actor-sparql-serialize-json/lib/ActorSparqlSerializeJson.js","webpack://solid.data/./node_modules/@comunica/actor-sparql-serialize-simple/index.js","webpack://solid.data/./node_modules/@comunica/actor-sparql-serialize-simple/lib/ActorSparqlSerializeSimple.js","webpack://solid.data/./node_modules/@comunica/actor-sparql-serialize-sparql-json/index.js","webpack://solid.data/./node_modules/@comunica/actor-sparql-serialize-sparql-json/lib/ActorSparqlSerializeSparqlJson.js","webpack://solid.data/./node_modules/@comunica/actor-sparql-serialize-sparql-xml/index.js","webpack://solid.data/./node_modules/@comunica/actor-sparql-serialize-sparql-xml/lib/ActorSparqlSerializeSparqlXml.js","webpack://solid.data/./node_modules/xml/lib/xml.js","webpack://solid.data/./node_modules/xml/lib/escapeForXML.js","webpack://solid.data/./node_modules/@comunica/actor-sparql-serialize-table/index.js","webpack://solid.data/./node_modules/@comunica/actor-sparql-serialize-table/lib/ActorSparqlSerializeTable.js","webpack://solid.data/./node_modules/@comunica/actor-http-memento/index.js","webpack://solid.data/./node_modules/@comunica/actor-http-memento/lib/ActorHttpMemento.js","webpack://solid.data/./node_modules/@comunica/actor-sparql-serialize-rdf/index.js","webpack://solid.data/./node_modules/@comunica/actor-sparql-serialize-rdf/lib/ActorSparqlSerializeRdf.js","webpack://solid.data/./node_modules/@comunica/actor-http-proxy/index.js","webpack://solid.data/./node_modules/@comunica/actor-http-proxy/lib/ActorHttpProxy.js","webpack://solid.data/./node_modules/@comunica/actor-http-proxy/lib/ProxyHandlerStatic.js","webpack://solid.data/./node_modules/@comunica/actor-query-operation-ask/lib/ActorQueryOperationAsk.js","webpack://solid.data/./node_modules/@comunica/actor-query-operation-service/lib/ActorQueryOperationService.js","webpack://solid.data/./node_modules/@comunica/actor-query-operation-slice/lib/ActorQueryOperationSlice.js","webpack://solid.data/./node_modules/@comunica/actor-query-operation-bgp-single/lib/ActorQueryOperationBgpSingle.js","webpack://solid.data/./node_modules/@comunica/actor-query-operation-bgp-left-deep-smallest/lib/ActorQueryOperationBgpLeftDeepSmallest.js","webpack://solid.data/./node_modules/@comunica/actor-query-operation-construct/lib/ActorQueryOperationConstruct.js","webpack://solid.data/./node_modules/@comunica/actor-query-operation-construct/lib/BindingsToQuadsIterator.js","webpack://solid.data/./node_modules/@comunica/actor-query-operation-describe-subject/lib/ActorQueryOperationDescribeSubject.js","webpack://solid.data/./node_modules/@comunica/actor-query-operation-union/lib/ActorQueryOperationUnion.js","webpack://solid.data/./node_modules/@comunica/actor-query-operation-distinct-hash/lib/ActorQueryOperationDistinctHash.js","webpack://solid.data/./node_modules/@comunica/actor-abstract-bindings-hash/lib/AbstractBindingsHash.js","webpack://solid.data/./browser/crypto.js","webpack://solid.data/./node_modules/json-stable-stringify/index.js","webpack://solid.data/./node_modules/jsonify/index.js","webpack://solid.data/./node_modules/jsonify/lib/parse.js","webpack://solid.data/./node_modules/jsonify/lib/stringify.js","webpack://solid.data/./node_modules/@comunica/actor-query-operation-extend/lib/ActorQueryOperationExtend.js","webpack://solid.data/./node_modules/sparqlee/dist/lib/evaluators/AsyncEvaluator.js","webpack://solid.data/./node_modules/sparqlee/dist/lib/expressions/Variable.js","webpack://solid.data/./node_modules/sparqlee/dist/lib/expressions/Term.js","webpack://solid.data/./node_modules/sparqlee/dist/lib/expressions/Operator.js","webpack://solid.data/./node_modules/sparqlee/dist/lib/expressions/SpecialOperator.js","webpack://solid.data/./node_modules/sparqlee/dist/lib/expressions/Named.js","webpack://solid.data/./node_modules/sparqlee/dist/lib/expressions/Aggregate.js","webpack://solid.data/./node_modules/sparqlee/dist/lib/expressions/Existence.js","webpack://solid.data/./node_modules/sparqlee/dist/lib/functions/NamedFunctions.js","webpack://solid.data/./node_modules/sparqlee/dist/lib/functions/RegularFunctions.js","webpack://solid.data/./node_modules/create-hash/browser.js","webpack://solid.data/./node_modules/md5.js/index.js","webpack://solid.data/./node_modules/ripemd160/index.js","webpack://solid.data/./node_modules/sha.js/index.js","webpack://solid.data/./node_modules/sha.js/sha.js","webpack://solid.data/./node_modules/sha.js/sha1.js","webpack://solid.data/./node_modules/sha.js/sha224.js","webpack://solid.data/./node_modules/sha.js/sha384.js","webpack://solid.data/./node_modules/cipher-base/index.js","webpack://solid.data/./node_modules/decimal.js/decimal.js","webpack://solid.data/./node_modules/sparqlee/dist/lib/functions/XPathFunctions.js","webpack://solid.data/./node_modules/sparqlee/dist/lib/functions/SpecialFunctions.js","webpack://solid.data/./node_modules/uri-js/dist/es5/uri.all.js","webpack://solid.data/./node_modules/sparqlee/dist/lib/evaluators/AggregateEvaluator.js","webpack://solid.data/./node_modules/@comunica/actor-query-operation-reduced-hash/lib/ActorQueryOperationReducedHash.js","webpack://solid.data/./node_modules/@comunica/actor-query-operation-filter-sparqlee/lib/ActorQueryOperationFilterSparqlee.js","webpack://solid.data/./node_modules/@comunica/actor-query-operation-from-quad/lib/ActorQueryOperationFromQuad.js","webpack://solid.data/./node_modules/lodash.find/index.js","webpack://solid.data/./node_modules/@comunica/actor-query-operation-group/lib/ActorQueryOperationGroup.js","webpack://solid.data/./node_modules/@comunica/actor-query-operation-group/lib/GroupsState.js","webpack://solid.data/./node_modules/@comunica/actor-query-operation-join/lib/ActorQueryOperationJoin.js","webpack://solid.data/./node_modules/@comunica/actor-query-operation-leftjoin-left-deep/lib/ActorQueryOperationLeftJoinLeftDeep.js","webpack://solid.data/./node_modules/@comunica/actor-query-operation-orderby-sparqlee/lib/ActorQueryOperationOrderBySparqlee.js","webpack://solid.data/./node_modules/@comunica/actor-query-operation-orderby-sparqlee/lib/SortIterator.js","webpack://solid.data/./node_modules/@comunica/actor-query-operation-project/lib/ActorQueryOperationProject.js","webpack://solid.data/./node_modules/@comunica/actor-query-operation-minus/lib/ActorQueryOperationMinus.js","webpack://solid.data/./node_modules/@comunica/actor-query-operation-minus/lib/BindingsIndex.js","webpack://solid.data/./node_modules/@comunica/actor-query-operation-path-alt/lib/ActorQueryOperationPathAlt.js","webpack://solid.data/./node_modules/@comunica/actor-query-operation-path-inv/lib/ActorQueryOperationPathInv.js","webpack://solid.data/./node_modules/@comunica/actor-query-operation-path-link/lib/ActorQueryOperationPathLink.js","webpack://solid.data/./node_modules/@comunica/actor-query-operation-path-nps/lib/ActorQueryOperationPathNps.js","webpack://solid.data/./node_modules/@comunica/actor-query-operation-path-one-or-more/lib/ActorQueryOperationPathOneOrMore.js","webpack://solid.data/./node_modules/@comunica/actor-query-operation-path-seq/lib/ActorQueryOperationPathSeq.js","webpack://solid.data/./node_modules/@comunica/actor-query-operation-path-zero-or-more/lib/ActorQueryOperationPathZeroOrMore.js","webpack://solid.data/./node_modules/@comunica/actor-query-operation-path-zero-or-one/lib/ActorQueryOperationPathZeroOrOne.js","webpack://solid.data/./node_modules/ldflex/module/iterableUtils.js","webpack://solid.data/./node_modules/ldflex/module/DataHandler.js","webpack://solid.data/./node_modules/ldflex/module/promiseUtils.js","webpack://solid.data/./node_modules/ldflex/module/valueUtils.js","webpack://solid.data/./node_modules/ldflex/module/MutationFunctionHandler.js","webpack://solid.data/./node_modules/ldflex/module/DeleteFunctionHandler.js","webpack://solid.data/./node_modules/ldflex/module/ExecuteQueryHandler.js","webpack://solid.data/./node_modules/ldflex/module/PreloadHandler.js","webpack://solid.data/./node_modules/ldflex/module/PropertiesHandler.js","webpack://solid.data/./node_modules/ldflex/module/SortHandler.js","webpack://solid.data/./node_modules/ldflex/module/SparqlHandler.js","webpack://solid.data/./node_modules/ldflex/module/defaultHandlers.js","webpack://solid.data/./node_modules/ldflex/module/ThenHandler.js","webpack://solid.data/./node_modules/ldflex/module/AsyncIteratorHandler.js","webpack://solid.data/./node_modules/ldflex/module/GetFunctionHandler.js","webpack://solid.data/./node_modules/ldflex/module/SubjectHandler.js","webpack://solid.data/./node_modules/ldflex/module/PredicateHandler.js","webpack://solid.data/./node_modules/ldflex/module/PredicatesHandler.js","webpack://solid.data/./node_modules/ldflex/module/PathExpressionHandler.js","webpack://solid.data/./node_modules/ldflex/module/SubjectsHandler.js","webpack://solid.data/./node_modules/ldflex/module/MutationExpressionsHandler.js","webpack://solid.data/./node_modules/ldflex/module/InsertFunctionHandler.js","webpack://solid.data/./node_modules/ldflex/module/SetFunctionHandler.js","webpack://solid.data/./node_modules/ldflex/module/ReplaceFunctionHandler.js","webpack://solid.data/./node_modules/ldflex/module/ToArrayHandler.js","webpack://solid.data/./node_modules/ldflex/module/StringToLDflexHandler.js","webpack://solid.data/./node_modules/ldflex/module/PathProxy.js","webpack://solid.data/./node_modules/ldflex/module/JSONLDResolver.js","webpack://solid.data/./node_modules/ldflex/module/PathFactory.js","webpack://solid.data/./module/handlers/PutHandler.js","webpack://solid.data/./module/handlers/ActivityHandler.js","webpack://solid.data/./module/util.js","webpack://solid.data/./module/handlers/FindActivityHandler.js","webpack://solid.data/./module/handlers/CreateActivityHandler.js","webpack://solid.data/./module/handlers/DeleteActivityHandler.js","webpack://solid.data/./module/resolvers/SubjectPathResolver.js","webpack://solid.data/./module/handlers/SourcePathHandler.js","webpack://solid.data/./module/handlers/UserPathHandler.js","webpack://solid.data/./module/RootPath.js","webpack://solid.data/./module/resolvers/ContextResolver.js","webpack://solid.data/./module/handlers/SolidDeleteFunctionHandler.js","webpack://solid.data/./module/SolidUpdateEngine.js","webpack://solid.data/./node_modules/@ldflex/comunica/src/index.js","webpack://solid.data/./node_modules/@ldflex/comunica/src/ComunicaEngine.js","webpack://solid.data/./module/exports/comunica.js"],"names":["installedModules","__webpack_require__","moduleId","exports","module","i","l","modules","call","m","c","d","name","getter","o","Object","defineProperty","enumerable","get","r","Symbol","toStringTag","value","t","mode","__esModule","ns","create","key","bind","n","object","property","prototype","hasOwnProperty","p","s","__export","process","env","COMUNICA_DEBUG","Error","stackTraceLimit","DataFactory","Stream","Readable","Writable","Duplex","Transform","PassThrough","finished","pipeline","EventEmitter","STATES","AsyncIterator","this","on","waitForDataListener","_state","_readable","emit","self","eventName","end","destroy","_end","endAsync","setImmediate","removeListener","_addSingleListener","emitData","readable","item","_hasListeners","read","done","func","copyProperty","source","destination","propertyName","getProperty","setProperty","EmptyIterator","_changeState","SingletonIterator","_item","close","ArrayIterator","items","length","_buffer","Array","slice","IntegerIterator","options","limit","step","last","next","start","_step","isFinite","Infinity","_last","_next","BufferedIterator","maxBufferSize","autoStart","_pushedCount","_reading","init","_init","fillBufferAsync","fillBufferAsyncCallback","_fillBuffer","TransformIterator","isFunction","_optional","optional","_destroySource","destroySource","getSource","_source","destinationEmitError","error","_destination","destinationCloseWhenDone","_closeWhenDone","destinationFillBuffer","readAndTransform","ended","optionalTransform","_transform","pushedCount","_push","SimpleTransformIterator","offset","filter","map","transform","prepend","append","_limit","_offset","Math","max","_filter","_map","_prepender","_appender","readAndTransformSimple","count","closed","mappedItem","MultiTransformIterator","_transformerQueue","ClonedIterator","_readPosition","getSourceProperty","clone","callback","_properties","HistoryReader","clones","history","readAt","pos","endsAt","register","push","unregister","cloneIndex","indexOf","splice","clonesMakeReadable","clonesEmitError","clonesEnd","forEach","state","id","subclass","Constructor","constructor","configurable","writable","newState","eventAsync","valid","each","_events","listener","listeners","cause","_destroy","removeAllListeners","set","propertyCallbacks","properties","_propertyCallbacks","callbacks","getProperties","copy","setProperties","copyProperties","propertyNames","toString","details","_toStringDetails","buffer","shift","current","range","_maxBufferSize","_begin","_read","neededItems","_completeClose","min","_flush","_validateSource","allowDestination","wrap","_insert","inserter","mapper","surround","skip","take","head","transformer","transformerQueue","_createTransformer","hasProperty","base","empty","single","fromArray","TermUtil_1","getLiteralLanguage","getLiteralType","getLiteralValue","quadToStringQuad","stringQuadToQuad","stringToTerm","termToString","RDF","XSD","SWAP","xsd","decimal","boolean","double","integer","string","rdf","type","nil","first","rest","langString","owl","sameAs","forSome","forAll","log","implies","sparqlAlgebra_1","translate","default","Algebra","factory_1","Factory","sparql_1","toSparql","toSparqlJs","util_1","Util","ctor","superCtor","super_","TempCtor","g","Function","e","window","noop","nextTick","title","browser","argv","version","versions","addListener","once","off","prependListener","prependOnceListener","binding","cwd","chdir","dir","umask","apply","Timeout","clearFn","_id","_clearFn","setTimeout","scope","arguments","clearTimeout","setInterval","clearInterval","timeout","unref","ref","enroll","msecs","_idleTimeoutId","_idleTimeout","unenroll","_unrefActive","active","_onTimeout","global","clearImmediate","base64","ieee754","isArray","kMaxLength","Buffer","TYPED_ARRAY_SUPPORT","createBuffer","that","RangeError","Uint8Array","__proto__","arg","encodingOrOffset","allocUnsafe","from","TypeError","ArrayBuffer","array","byteOffset","byteLength","undefined","fromArrayLike","fromArrayBuffer","encoding","isEncoding","actual","write","fromString","obj","isBuffer","len","checked","val","data","fromObject","assertSize","size","isView","loweredCase","utf8ToBytes","base64ToBytes","toLowerCase","slowToString","hexSlice","utf8Slice","asciiSlice","latin1Slice","base64Slice","utf16leSlice","swap","b","bidirectionalIndexOf","isNaN","arrayIndexOf","lastIndexOf","arr","indexSize","arrLength","valLength","String","buf","readUInt16BE","foundIndex","found","j","hexWrite","Number","remaining","strLen","parsed","parseInt","substr","utf8Write","blitBuffer","asciiWrite","str","byteArray","charCodeAt","asciiToBytes","latin1Write","base64Write","ucs2Write","units","hi","lo","utf16leToBytes","fromByteArray","res","secondByte","thirdByte","fourthByte","tempCodePoint","firstByte","codePoint","bytesPerSequence","codePoints","fromCharCode","decodeCodePointsArray","SlowBuffer","alloc","INSPECT_MAX_BYTES","foo","subarray","typedArraySupport","poolSize","_augment","species","fill","allocUnsafeSlow","_isBuffer","compare","a","x","y","concat","list","swap16","swap32","swap64","equals","inspect","match","join","target","thisStart","thisEnd","thisCopy","targetCopy","includes","toJSON","_arr","ret","out","toHex","bytes","checkOffset","ext","checkInt","objectWriteUInt16","littleEndian","objectWriteUInt32","checkIEEE754","writeFloat","noAssert","writeDouble","newBuf","sliceLen","readUIntLE","mul","readUIntBE","readUInt8","readUInt16LE","readUInt32LE","readUInt32BE","readIntLE","pow","readIntBE","readInt8","readInt16LE","readInt16BE","readInt32LE","readInt32BE","readFloatLE","readFloatBE","readDoubleLE","readDoubleBE","writeUIntLE","writeUIntBE","writeUInt8","floor","writeUInt16LE","writeUInt16BE","writeUInt32LE","writeUInt32BE","writeIntLE","sub","writeIntBE","writeInt8","writeInt16LE","writeInt16BE","writeInt32LE","writeInt32BE","writeFloatLE","writeFloatBE","writeDoubleLE","writeDoubleBE","targetStart","code","INVALID_BASE64_RE","leadSurrogate","toByteArray","trim","replace","stringtrim","base64clean","src","dst","copyProps","SafeBuffer","RDFDM","immutable_1","TypeURL","NumericTypeURL","DerivedIntegerTypeURL","TRUE_STR","FALSE_STR","EVB_ERR_STR","make","dt","namedNode","NumericTypeURLs","Set","values","DerivedIntegerTypeURLs","commonTerms","true","literal","XSD_BOOLEAN","false","PrimitiveNumericTypes","typeURL","XSD_ANY_URI","XSD_STRING","RDF_LANG_STRING","XSD_DATE_TIME","XSD_DECIMAL","XSD_FLOAT","XSD_DOUBLE","XSD_INTEGER","XSD_NON_POSITIVE_INTEGER","XSD_NEGATIVE_INTEGER","XSD_LONG","XSD_INT","XSD_SHORT","XSD_BYTE","XSD_NON_NEGATIVE_INTEGER","XSD_UNSIGNED_LONG","XSD_UNSIGNED_INT","XSD_UNSIGNED_SHORT","XSD_UNSIGNED_BYTE","XSD_POSITIVE_INTEGER","_decategorize","Map","RegularOperator","SpecialOperator","SetFunction","decategorize","cat","RegularOperators","SpecialOperators","Operators","union","SetFunctions","NamedOperators","XSD_DATE","ExpressionError","isExpressionError","InvalidLexicalForm","super","pp","UnboundVariableError","variable","bindings","EBVCoercionError","RDFEqualTypeError","args","CoalesceError","errors","InError","err","InvalidArgumentTypes","op","CastError","cast","InvalidTimezoneCall","dateString","IncompatibleLanguageOperation","arg1","arg2","EmptyAggregateError","UnexpectedError","message","payload","UnimplementedError","feature","InvalidArity","InvalidExpression","expr","InvalidExpressionType","InvalidTermType","term","UnknownOperator","UnknownNamedOperator","NoAggregator","NoExistenceHook","JSON","stringify","SLICE$0","createClass","superClass","Iterable","isIterable","Seq","KeyedIterable","isKeyed","KeyedSeq","IndexedIterable","isIndexed","IndexedSeq","SetIterable","isAssociative","SetSeq","maybeIterable","IS_ITERABLE_SENTINEL","maybeKeyed","IS_KEYED_SENTINEL","maybeIndexed","IS_INDEXED_SENTINEL","maybeAssociative","isOrdered","maybeOrdered","IS_ORDERED_SENTINEL","Keyed","Indexed","NOT_SET","CHANGE_LENGTH","DID_ALTER","MakeRef","SetRef","OwnerID","arrCopy","newArr","ii","ensureSize","iter","__iterate","returnTrue","wrapIndex","index","uint32Index","NaN","wholeSlice","begin","resolveBegin","resolveIndex","resolveEnd","defaultIndex","EMPTY_SEQ","EMPTY_REPEAT","EMPTY_RANGE","REAL_ITERATOR_SYMBOL","iterator","ITERATOR_SYMBOL","Iterator","iteratorValue","k","v","iteratorResult","iteratorDone","hasIterator","getIteratorFn","isIterator","maybeIterator","getIterator","iterable","iteratorFn","isArrayLike","emptySequence","toSeq","seq","maybeIndexedSeqFromValue","ObjectSeq","seqFromValue","toKeyedSeq","fromEntrySeq","keyedSeqFromValue","entrySeq","toIndexedSeq","indexedSeqFromValue","toSetSeq","ArraySeq","_array","keys","_object","_keys","IterableSeq","_iterable","IteratorSeq","_iterator","_iteratorCache","isSeq","maybeSeq","seqIterate","fn","reverse","useKeys","cache","_cache","maxIndex","entry","__iterateUncached","seqIterator","__iteratorUncached","fromJS","json","converter","fromJSWith","parentJSON","isPlainObj","fromJSDefault","toList","toMap","is","valueA","valueB","valueOf","deepEqual","__hash","notAssociative","entries","every","flipped","cacheResult","_","allEqual","bSize","has","Repeat","times","_value","invariant","condition","Range","abs","_start","ceil","Collection","KeyedCollection","IndexedCollection","SetCollection","KEYS","VALUES","ENTRIES","toSource","of","__toString","toArray","__iterator","notSetValue","iterations","searchValue","this$0","other","possibleIndex","offsetValue","imul","smi","i32","hash","h","STRING_HASH_CACHE_MIN_STRLEN","stringHashCache","hashString","STRING_HASH_CACHE_SIZE","STRING_HASH_CACHE_MAX_SIZE","cachedHashString","hashCode","usingWeakMap","weakMap","UID_HASH_KEY","canDefineProperty","propertyIsEnumerable","node","nodeType","uniqueID","documentElement","getIENodeHash","objHashUID","isExtensible","hashJSObj","WeakMap","assertNotInfinite","emptyMap","isMap","withMutations","maybeMap","IS_MAP_SENTINEL","keyValues","_root","updateMap","setIn","keyPath","updateIn","remove","deleteIn","update","updater","updatedValue","updateInDeepMap","existing","keyPathIter","isNotSet","existingValue","newValue","nextExisting","nextUpdated","forceIterator","clear","__ownerID","__altered","merge","mergeIntoMapWith","mergeWith","merger","iters","mergeIn","mergeDeep","deepMerger","mergeDeepWith","deepMergerWith","mergeDeepIn","sort","comparator","OrderedMap","sortFactory","sortBy","mutable","asMutable","wasAltered","__ensureOwner","asImmutable","MapIterator","iterate","ownerID","makeMap","EMPTY_MAP","MapPrototype","ArrayMapNode","BitmapIndexedNode","bitmap","nodes","HashArrayMapNode","HashCollisionNode","keyHash","ValueNode","_type","_reverse","_stack","mapIteratorFrame","mapIteratorValue","prev","__prev","root","newRoot","newSize","didChangeSize","didAlter","updateNode","isLeafNode","mergeIntoNode","newNode","idx1","SIZE","idx2","iterables","mergeIntoCollectionWith","nextValue","collection","mergeIntoMap","popCount","idx","canEdit","newArray","removeIn","removed","exists","MAX_ARRAY_MAP_SIZE","createNodes","isEditable","newEntries","pop","bit","keyHashFrag","MAX_BITMAP_INDEXED_SIZE","including","expandedNodes","expandNodes","newBitmap","newNodes","newLen","after","spliceOut","spliceIn","newCount","MIN_HASH_ARRAY_MAP_SIZE","excluding","packedII","packedNodes","packNodes","keyMatch","stack","subNode","List","emptyList","isList","makeList","VNode","setSize","maybeList","IS_LIST_SENTINEL","listNodeFor","_origin","setListBounds","newTail","_tail","getTailOffset","_capacity","updateVNode","_level","updateList","insert","oldSize","unshift","mergeIntoListWith","iterateList","DONE","ListPrototype","removeBefore","level","originIndex","newChild","removingFirst","oldChild","editable","editableVNode","removeAfter","sizeIndex","EMPTY_LIST","EMPTY_ORDERED_MAP","left","right","tailPos","tail","iterateNodeOrLeaf","to","iterateLeaf","iterateNode","origin","capacity","nodeHas","lowerNode","newLowerNode","rawIndex","owner","oldOrigin","oldCapacity","newOrigin","newCapacity","newLevel","offsetShift","oldTailOffset","newTailOffset","oldTail","beginIndex","maxSize","emptyOrderedMap","isOrderedMap","maybeOrderedMap","makeOrderedMap","omap","_list","updateOrderedMap","newMap","newList","flip","ToKeyedSequence","indexed","_iter","_useKeys","ToIndexedSequence","ToSetSequence","FromEntriesSequence","flipFactory","flipSequence","makeSequence","reversedSequence","cacheResultThrough","mapFactory","context","mappedSequence","reverseFactory","filterFactory","predicate","filterSequence","sliceFactory","originalSize","resolvedBegin","resolvedEnd","sliceSize","resolvedSize","sliceSeq","skipped","isSkipping","skipWhileFactory","skipSequence","skipping","concatFactory","isKeyedIterable","singleton","concatSeq","flatten","reduce","sum","flattenFactory","depth","flatSequence","stopped","flatDeep","currentDepth","defaultComparator","maxFactory","maxCompare","comp","zipWithFactory","keyIter","zipper","zipSequence","iterators","isDone","steps","some","reify","validateEntry","resolveSize","iterableClass","Record","defaultValues","hasInitialized","RecordType","names","setProp","setProps","RecordTypePrototype","_name","_defaultValues","RecordPrototype","valueSeq","indexedIterable","recordName","defaultVal","_empty","makeRecord","likeRecord","record","getPrototypeOf","emptySet","isSet","add","maybeSet","IS_SET_SENTINEL","fromKeys","keySeq","updateSet","intersect","originalSet","subtract","OrderedSet","__make","EMPTY_SET","SetPrototype","__empty","makeSet","emptyOrderedSet","isOrderedSet","maybeOrderedSet","EMPTY_ORDERED_SET","OrderedSetPrototype","makeOrderedSet","Stack","emptyStack","isStack","unshiftAll","maybeStack","IS_STACK_SENTINEL","_head","peek","makeStack","pushAll","EMPTY_STACK","StackPrototype","mixin","methods","keyCopier","getOwnPropertySymbols","toJS","__toJS","toObject","toOrderedMap","toOrderedSet","toSet","toStack","__toStringMapper","returnValue","find","findEntry","sideEffect","separator","joined","isFirst","reducer","initialReduction","reduction","useFirst","reduceRight","reversed","not","butLast","isEmpty","countBy","grouper","groups","countByFactory","entriesSequence","entryMapper","filterNot","findKey","findLast","findLastEntry","findLastKey","flatMap","coerce","flatMapFactory","searchKey","getIn","searchKeyPath","nested","groupBy","isKeyedIter","groupByFactory","hasIn","isSubset","isSuperset","keyOf","keyMapper","lastKeyOf","maxBy","neg","defaultNegComparator","minBy","amount","skipLast","skipWhile","skipUntil","takeLast","takeWhile","takeSequence","iterating","takeWhileFactory","takeUntil","ordered","keyed","murmurHashOfSize","hashMerge","hashIterable","IterablePrototype","quoteString","chain","contains","mapEntries","mapKeys","KeyedIterablePrototype","defaultZipper","findIndex","removeNum","numArgs","spliced","findLastIndex","interpose","interposedSequence","interposeFactory","interleave","zipped","interleaved","zip","zipWith","factory","QuadTermUtil_1","collectNamedTerms","everyTerms","filterQuadTermNames","filterTerms","forEachTerms","getNamedTerms","getTerms","mapTerms","matchPattern","matchPatternComplete","QUAD_TERM_NAMES","reduceTerms","someTerms","TRIPLE_TERM_NAMES","getBlankNodes","getDefaultGraphs","getLiterals","getNamedNodes","getTermsOfType","getVariables","TERM_TYPES","uniqTerms","ExpressionType","jsonld_context_parser_1","EntryHandlerContainer_1","canonicalizeJson","parsingContext","dataFactory","rdfFirst","rdfRest","rdfNil","rdfType","rdfJson","contextKey","fallback","getContextRaw","getContextValue","valueType","parentKey","isContextValueReverse","iri","isValidIri","needle","haystack","validateValueIndexes","indexHashes","existingIndexValue","ErrorCoded","ERROR_CODES","CONFLICTING_INDEXES","getContextValueType","valueToJsonString","getContextValueContainer","idStack","getContextSelfOrPropertyScoped","parseContext","getContext","unaliasKeywords","valueLanguage","valueDirection","valueIndex","subValue","INVALID_VALUE_OBJECT","unaliasKeyword","INVALID_VALUE_OBJECT_VALUE","INVALID_INDEX_VALUE","INVALID_LANGUAGE_TAGGED_VALUE","ContextParser","validateLanguage","strictValues","INVALID_LANGUAGE_TAGGED_STRING","normalizeLanguageTags","activeProcessingMode","validateDirection","rdfDirection","nullableTermToArray","createLanguageDirectionLiteral","INVALID_TYPE_VALUE","typeTerm","createVocabOrBaseTerm","INVALID_TYPED_VALUE","termType","valueToTerm","JsonLdContextNormalized","INVALID_SET_OR_LIST_OBJECT","listValue","graphContainerEntries","graphContainerTermStack","blankNode","resourceToTerm","emittedStack","stringValueToTerm","Boolean","emitError","contextKeyEntry","expanded","expandTerm","getExpandOptions","produceGeneralizedRdf","INVALID_IRI_MAPPING","startsWith","expandOptions","datatype","toExponential","defaultDatatype","contextType","intToString","contextLanguage","getContextValueLanguage","contextDirection","getContextValueDirection","language","direction","valueNode","graph","getDefaultGraph","emitQuad","quad","disableCache","isInteger","cachedUnaliasedKeyword","unaliasedKeywordCacheStack","isPotentialKeyword","unliased","isValidKeyword","newHash","literalStack","jsonLiteralStack","containers","EntryHandlerContainer","getContainerHandler","isComplexGraphContainer","subject","INVALID_REVERSE_PROPERTY_VALUE","defaultGraph","depthContainer","graphContainerIndex","getContainerGraphIndex","graphId","keyUnaliased","getContainerKey","lastValidDepth","EntryHandlerKeyword","keyword","util","inProperty","solid","codes","createErrorType","Base","NodeError","_Base","subClass","arg3","getMessage","oneOf","expected","thing","determiner","search","msg","this_len","substring","endsWith","objectKeys","method","allowHalfOpen","onend","_writableState","onEndNT","highWaterMark","getBuffer","_readableState","destroyed","Translator","supportedRdfDatatypes","fromRdfHandlers","toRdfHandlers","handler","rdfDatatypes","javaScriptDataTypes","rdfDatatype","javaScriptDataType","existingToRdfHandlers","validate","fromRdf","handlers","toRdf","Parser","Generator","Wildcard","N3","prefixes","baseIRI","prefixesCopy","prefix","parser","parse","_resetBlanks","Hash","blockSize","finalSize","_block","_finalSize","_blockSize","_len","enc","block","accum","assigned","remainder","_update","digest","rem","bits","lowBits","highBits","_hash","DEFAULTGRAPH","_blankNodeCounter","Term","NamedNode","Literal","atPos","datatypeString","ch","dtPos","BlankNode","Variable","DefaultGraph","Quad","languageOrDataType","triple","internal","Triple","fromId","endPos","toId","blankNodePrefix","_contextStack","_graph","_setBase","initDataFactory","format","isTurtle","isTriG","isNTriples","test","isNQuads","isN3","_n3Mode","isLineMode","_supportsNamedGraphs","_readPredicateOrNamedGraph","_readPredicate","_supportsQuads","_resolveRelativeIRI","_blankNodePrefix","_lexer","lexer","N3Lexer","lineMode","n3","_explicitQuantifiers","explicitQuantifiers","fragmentPos","_base","_basePath","_baseRoot","_baseScheme","n3Mode","inverse","_inversePredicate","blankPrefix","_prefixes","quantified","_quantified","_subject","_predicate","token","_error","_callback","_sparqlStyle","_readPrefix","_readBaseIRI","_readSubject","_readNamedGraphLabel","quantifier","_resolveIRI","_namedNode","_blankNode","_variable","_saveContext","_readBlankNodeHead","RDF_NIL","_readListItem","_readPunctuation","N3_FORSOME","_quantifier","_readQuantifierList","N3_FORALL","_literalValue","_completeSubjectLiteral","_literal","_readEntity","_getPathReader","ABBREVIATIONS","_readBlankNodeTail","_readObject","_readDataTypeOrLang","_getContextEndReader","_readGraph","_readBlankNodePunctuation","_emit","_restoreContext","_readPredicateAfterBlank","previousList","parent","RDF_FIRST","_readListItemDataTypeOrLang","RDF_REST","_completeObjectLiteral","_completeLiteral","listItem","completed","_readCallback","inversePredicate","_readFormulaTail","_readInTopContext","_readQuadPunctuation","_prefix","_readPrefixIRI","prefixNode","_prefixCallback","_readDeclarationPunctuation","_readNamedGraphBlankLabel","entity","QUANTIFIERS_GRAPH","_readQuantifierPunctuation","afterPath","_afterPath","_readPath","_readForwardPath","_readBackwardPath","contextStack","_quad","line","previousToken","_removeDotSegments","result","pathStart","segmentStart","input","quadCallback","prefixCallback","quads","tokenize","N3DataFactory","escapeAll","escapedCharacters","N3Writer","outputStream","_prefixRegex","_lists","lists","_outputStream","_endStream","output","chunk","_writeQuad","_writeQuadLine","_prefixIRIs","addPrefixes","_write","_inDefaultGraph","_encodeIriOrBlank","_encodeObject","_encodePredicate","_prefixMatch","quadToString","characterReplacer","prefixMatch","exec","_encodeLiteral","addQuad","prefixIRIs","hasPrefixes","IRIlist","prefixList","prefixIRI","RegExp","child","children","contents","elements","_blockedWrite","singleDone","character","_size","_graphs","_ids","_entities","_blankNodeIndex","_factory","addQuads","subjects","graphs","graphKey","subjectKey","predicateKey","index0","key0","key1","key2","index1","index2","existed","name0","name1","name2","tmp","entityKeys","value0","entity0","value1","entity1","parts","isString","uniqueIds","entities","graphItem","predicates","objects","freeze","ids","changed","_addToIndex","stream","_removeFromIndex","removeQuad","removeMatches","content","subjectId","predicateId","objectId","_getGraphs","_findInIndex","objectMode","getQuads","_countInIndex","results","forSubjects","_uniqueEntities","_loopBy2Keys","_loopByKey1","_loopByKey0","_loop","forPredicates","forObjects","forGraphs","suggestedName","ignoreErrors","onError","tails","toRemove","tailQuad","headPos","malformed","objectQuads","subjectQuads","removeQuads","decodeStrings","onData","onEnd","event","uri","writer","_writer","addPrefix","isNamedNode","isBlankNode","isLiteral","isVariable","isDefaultGraph","inDefaultGraph","defaultPrefixes","processPrefix","local","byteToHex","bth","fetch","reIsUint","thisArg","objectProto","objectToString","nativeKeys","nativeMax","nonEnumShadows","arrayLikeKeys","inherited","isObjectLike","isArrayLikeObject","isArguments","iteratee","baseTimes","skipIndexes","isIndex","assignValue","objValue","eq","isPrototype","Ctor","isLength","tag","isObject","assigner","assign","props","customizer","copyObject","baseKeys","otherArgs","baseRest","sources","guard","isIterateeCall","ReflectOwnKeys","R","Reflect","ReflectApply","receiver","ownKeys","getOwnPropertyNames","NumberIsNaN","_eventsCount","_maxListeners","defaultMaxListeners","checkListener","_getMaxListeners","_addListener","events","warning","newListener","warned","w","emitter","console","warn","onceWrapper","fired","wrapFn","_onceWrap","wrapped","_listeners","unwrap","evlistener","unwrapListeners","arrayClone","listenerCount","setMaxListeners","getMaxListeners","doError","er","position","originalListener","spliceOne","rawListeners","eventNames","domelementtype_1","isTag","isCDATA","isText","isComment","hasChildren","AsyncEvaluator_1","AsyncEvaluator","SyncEvaluator_1","SyncEvaluator","AggregateEvaluator_1","AggregateEvaluator","Errors_1","StringDecoder","nb","nenc","retried","_normalizeEncoding","normalizeEncoding","text","utf16Text","utf16End","fillLast","utf8FillLast","base64Text","base64End","simpleWrite","simpleEnd","lastNeed","lastTotal","lastChar","utf8CheckByte","byte","utf8CheckExtraBytes","total","utf8CheckIncomplete","webpackPolyfill","deprecate","paths","types","ALT","ASK","BGP","CONSTRUCT","DESC","DESCRIBE","DISTINCT","EXPRESSION","EXTEND","FILTER","FROM","GRAPH","GROUP","INV","JOIN","LEFT_JOIN","LINK","MINUS","NPS","ONE_OR_MORE_PATH","ORDER_BY","PATH","PATTERN","PROJECT","REDUCED","SEQ","SERVICE","SLICE","UNION","ZERO_OR_MORE_PATH","ZERO_OR_ONE_PATH","expressionTypes","AGGREGATE","EXISTENCE","NAMED","OPERATOR","TERM","WILDCARD","rdf_string_1","stringType","createTerm","aggregate","expression","distinct","createAggregateExpression","patterns","template","terms","def","named","variables","aggregates","path","iris","expressions","pattern","silent","aggregator","expressionType","operator","wildcard","Util_1","EntryHandlerPredicate","depthProperties","getPropertiesDepth","depthOffsetGraph","getDepthOffsetGraph","depthPropertiesGraph","validateReverseSubject","getUnidentifiedGraphBufferSafe","getGraphContainerValue","getUnidentifiedValueBufferSafe","predicateToTerm","testResult","keyOriginal","isPropertyReverse","unaliasKeywordParent","listValueContainer","listPointer","allowSubjectList","handlePredicateObject","RDFString","sparqlalgebrajs_1","E","C","Err","P","functions_1","Consts_1","transformAlgebra","transformTerm","specialFunctions","checkArity","applyAsync","applySync","regularFunctions","arity","hasCorrectArity","Operator","transformOperator","transformNamed","transformExistence","transformAggregate","transformWildcard","transformLiteral","lit","LangStringLiteral","StringLiteral","Date","getTime","NonLexicalLiteral","DateTimeLiteral","BooleanLiteral","parseXSDDecimal","NumericLiteral","parseXSDFloat","funcName","namedFunctions","Named","Aggregate","Existence","transformRDFTermUnsafe","numb","parseXSDInteger","parseXSDDateTime","posT","date","year","month","day","split","hours","minutes","seconds","timezone","timeAndTimeZone","time","_timeZoneChopped","timezoneOrNull","Core_1","declare","Builder","implementations","impl","argTypes","Impl","_from","typedValue","a1","a2","a3","a4","_args","invalidLexicalForm","numeric","promotionType","promote","resultType","number","bool","toRDF","impls","implDefaults","params","typeImplPair","toPair","num","numberFromString","lang","dateTime","typeCheckLit","allowed","escapeSequence","escapeReplacements","illegalIriChars","lineModeRegExps","_iri","_unescapedIri","_simpleQuotedString","_langcode","_blank","_newline","_comment","_whitespace","_endOfFile","invalidRegExp","_simpleApostropheString","_prefixed","_number","_boolean","_keyword","_sparqlKeyword","_shortPredicates","_lineMode","_comments","comments","_literalClosingPos","inputFinished","_input","outputComments","whiteSpaceMatch","comment","_line","firstChar","matchLength","inconclusive","_previousMarker","_unescape","reportSyntaxError","_parseLiteral","toUpperCase","_syntaxError","sequence","unicode4","unicode8","escapedChar","charCode","replacement","opening","openingLength","closingPos","backslashCount","raw","lines","issue","tokens","_tokenizeToEnd","_pendingBuffer","setEncoding","getRandomValues","crypto","msCrypto","rnds8","rng","separatorPos","charAt","contextValue","allowPrefixNonGenDelims","isPrefixIriEndingWithGenDelim","KEYWORD_REGEX","prefixIri","ENDS_WITH_GEN_DELIM","IRI_REGEX","IRI_REGEX_WEAK","VALID_KEYWORDS","isTermProtected","REGEX_LANGUAGE_TAG","REGEX_DIRECTION_TAG","EXPAND_KEYS_BLACKLIST","ALIAS_DOMAIN_BLACKLIST","ALIAS_RANGE_BLACKLIST","CONTAINERS","CONTAINERS_1_0","ERR_STREAM_PREMATURE_CLOSE","eos","opts","called","_key","onlegacyfinish","onfinish","writableEnded","readableEnded","endEmitted","onerror","onclose","onrequest","req","setHeader","abort","isRequest","elem","Text","Directive","Comment","Script","Style","Tag","CDATA","Doctype","RDFA_FEATURES","baseTag","xmlBase","langAttribute","onlyAllowUriRelRevIfProperty","inheritSubjectInHeadBody","datetimeAttribute","timeTag","htmlDatatype","copyRdfaPatterns","xmlnsPrefixMappings","xhtmlInitialContext","roleAttribute","RDFA_CONTENTTYPES","through","bufferFrom","check","header","footer","queue","emitKey","recurse","onValue","emitPath","setHeaderFooter","nextKey","isFrozen","actualPath","element","_onToken","onToken","sep","cl","indent","anyData","stringifyObject","algebra_1","addVariable","v2","recurseOperation","service","doRecursion","recurseOp","alt","construct","extend","group","leftJoin","minus","order","mapOp","mapOperation","createAlt","ask","createAsk","bgp","createBgp","createConstruct","describe","createDescribe","createDistinct","mapExpression","createExtend","createFilter","createFrom","createGraph","createGroup","inv","createInv","createJoin","createLeftJoin","link","createLink","createMinus","nps","createNps","oom","createOneOrMorePath","createOrderBy","createPath","createPattern","project","createProject","reduced","createReduced","createSeq","createService","createSlice","createUnion","createValues","zom","createZeroOrMorePath","zoo","createZeroOrOnePath","bound","createBoundAggregate","exist","createExistenceExpression","createNamedExpression","createOperatorExpression","createTermExpression","createWildcardExpression","label","counter","labelLoop","Yallist","MAX","LENGTH","LENGTH_CALCULATOR","ALLOW_STALE","MAX_AGE","DISPOSE","NO_DISPOSE_ON_SET","LRU_LIST","CACHE","UPDATE_AGE_ON_GET","naiveLength","doUse","hit","isStale","del","now","unshiftNode","maxAge","diff","walker","delete","removeNode","Entry","forEachStep","thisp","lc","stale","dispose","noDisposeOnSet","updateAgeOnGet","reset","mL","allowStale","mA","lC","expiresAt","NamedFunctions_1","RegularFunctions_1","SpecialFunctions_1","definitions","RegularFunction","specialDefinitions","SpecialFunction","namedDefinitions","NamedFunction","BaseFunction","definition","monomorph","handleInvalidTypes","overloads","Typer","asConcreteTypes","asTermTypes","asGenericTerms","functionClass","_promote","float","_nodeId","_clockseq","_lastMSecs","_lastNSecs","clockseq","seedBytes","random","nsecs","tl","tmh","bytesToUuid","generateUUID","namespace","unescape","encodeURIComponent","stringToBytes","uuid","hex","uuidToBytes","hashfunc","DNS","URL","safeAdd","lsw","md5cmn","q","cnt","md5ff","md5gg","md5hh","md5ii","v35","length32","md5ToHexEncodedArray","olda","oldb","oldc","oldd","wordsToMd5","length8","bytesToWords","f","z","ROTL","K","H","N","M","W","T","__awaiter","_arguments","generator","Promise","resolve","reject","fulfilled","rejected","then","relative_to_absolute_iri_1","ErrorCoded_1","FetchDocumentLoader_1","JsonLdContextNormalized_1","documentLoader","FetchDocumentLoader","documentCache","validateContext","skipValidation","expandContentTypeToBase","remoteContextsDepthLimit","strictRange","errorCode","INVALID_BASE_DIRECTION","contextRaw","isReservedInternalKeyword","keyValue","KEYWORD_REDEFINITION","getContextValueId","INVALID_KEYWORD_ALIAS","INVALID_TERM_DEFINITION","isPrefixValue","canAddIdEntry","newId","processingMode","containerValue","contextBefore","contextAfter","isPrefix","isSimpleTermDefinitionPrefix","valueBefore","PROTECTED_TERM_REDEFINITION","INVALID_VOCAB_MAPPING","INVALID_BASE_IRI","INVALID_DEFAULT_LANGUAGE","INVALID_VERSION_VALUE","INVALID_CONTEXT_ENTRY","INVALID_PROPAGATE_VALUE","getPrefix","CYCLIC_IRI_MAPPING","isValidIriWeak","isCompactIri","objectKey","objectValue","INVALID_TYPE_MAPPING","INVALID_REVERSE_PROPERTY","INVALID_CONTAINER_MAPPING","INVALID_LANGUAGE_MAPPING","INVALID_PREFIX_VALUE","INVALID_NEST_VALUE","inheritFromParent","parentContext","external","contextIri","ignoreProtection","ignoreRemoteScopedContexts","INVALID_SCOPED_CONTEXT","minimalProcessing","DEFAULT_PROCESSING_MODE","parentContextInitial","remoteContexts","CONTEXT_OVERFLOW","hasProtectedTerms","INVALID_CONTEXT_NULLIFICATION","applyBaseEntry","normalizeContextIri","overriddenLoad","getOverriddenLoad","parsedStringContext","load","contextIris","contexts","all","subContext","reducedContexts","accContextPromise","contextEntry","accContext","newContext","containersToHash","importContext","INVALID_IMPORT_VALUE","loadImportContext","newContextWrapped","parseInnerContexts","validateKeywordRedefinitions","defaultExpandOptions","idifyReverseTerms","expandPrefixedTerms","normalize","applyScopedProtected","INVALID_LOCAL_CONTEXT","url","cached","document","LOADING_REMOTE_CONTEXT_FAILED","INVALID_REMOTE_CONTEXT","RECURSIVE_CONTEXT_INCLUSION","importContextIri","allowPrefixForcing","allowVocabRelativeToBase","response","headers","accept","ok","statusText","status","ContextParser_1","expandVocab","validIriMapping","vocab","vocabRelative","potentialKeyword","contextPrefixValue","shortestPrefixing","suffix","serialize","cv","ci","rnds","Bus","actors","observers","dependencyLinks","actor","reorderForDependencies","observer","action","reply","onRun","dependent","dependencies","dependency","existingDependencies","actorsAfter","actorAfter","dependentPos","activeActorAfterId","validLink","activeActorAfter","Logger","LEVELS","trace","debug","info","fatal","KEY_CONTEXT_LOG","isNodeStream","conversions","toNodeReadable","ReadableStream","getReader","webToNode","toWebReadableStream","nodeToWeb","arrayToWeb","ReadableState","EElistenerCount","OurUint8Array","debugUtil","debuglog","createReadableStreamAsyncIterator","BufferList","destroyImpl","getHighWaterMark","_require$codes","ERR_INVALID_ARG_TYPE","ERR_STREAM_PUSH_AFTER_EOF","ERR_METHOD_NOT_IMPLEMENTED","ERR_STREAM_UNSHIFT_AFTER_END_EVENT","errorOrDestroy","kProxyEvents","isDuplex","readableObjectMode","pipes","pipesCount","flowing","reading","sync","needReadable","emittedReadable","readableListening","resumeScheduled","paused","emitClose","autoDestroy","defaultEncoding","awaitDrain","readingMore","decoder","readableAddChunk","addToFront","skipChunkCheck","emitReadable","emitReadable_","onEofChunk","chunkInvalid","_uint8ArrayToBuffer","addChunk","maybeReadMore","_undestroy","undestroy","cb","isPaused","howMuchToRead","computeNewHighWaterMark","flow","maybeReadMore_","updateReadableListening","resume","nReadingNextTick","resume_","fromList","consume","endReadable","endReadableNT","wState","xs","nOrig","doRead","pipe","dest","pipeOpts","endFn","stdout","stderr","unpipe","onunpipe","unpipeInfo","hasUnpiped","ondrain","ondata","cleanedUp","needDrain","pipeOnDrain","pause","dests","ev","_this","asyncIterator","_fromList","emitErrorAndCloseNT","emitErrorNT","emitCloseNT","readableDestroyed","writableDestroyed","errorEmitted","ending","finalCalled","prefinished","rState","ERR_INVALID_OPT_VALUE","duplexKey","hwm","highWaterMarkFrom","CorkedRequest","finish","corkReq","pendingcb","corkedRequestsFree","onCorkedFinish","WritableState","internalUtil","realHasInstance","ERR_MULTIPLE_CALLBACK","ERR_STREAM_CANNOT_PIPE","ERR_STREAM_DESTROYED","ERR_STREAM_NULL_VALUES","ERR_STREAM_WRITE_AFTER_END","ERR_UNKNOWN_ENCODING","nop","writableObjectMode","noDecode","writing","corked","bufferProcessing","onwrite","writecb","writelen","onwriteStateUpdate","finishMaybe","onwriteError","needFinish","bufferedRequest","clearBuffer","afterWrite","lastBufferedRequest","bufferedRequestCount","writev","_writev","final","_final","doWrite","onwriteDrain","holder","allBuffers","isBuf","callFinal","need","prefinish","hasInstance","writeAfterEnd","validChunk","newChunk","decodeChunk","writeOrBuffer","cork","uncork","setDefaultEncoding","endWritable","ERR_TRANSFORM_ALREADY_TRANSFORMING","ERR_TRANSFORM_WITH_LENGTH_0","afterTransform","ts","_transformState","transforming","writechunk","rs","needTransform","writeencoding","flush","err2","u","1","_dereq_","WritableStream","ByteLengthQueuingStrategy","CountQueuingStrategy","TransformStream","interfaces","2","pToString","DataView","getName","functionsHaveNames","regex","truncate","fail","assert","AssertionError","stackStartFunction","_deepEqual","isDate","isRegExp","multiline","lastIndex","ignoreCase","Float32Array","Float64Array","isPrimitive","pSlice","objEquiv","expectedException","isPrototypeOf","_throws","_tryBlock","isError","hasOwn","generatedMessage","captureStackTrace","inherits","equal","notEqual","deepStrictEqual","notDeepEqual","notDeepStrictEqual","strictEqual","notStrictEqual","throws","doesNotThrow","ifError","3","4","defaultSetTimout","defaultClearTimeout","runTimeout","cachedSetTimeout","cleanUpNextTick","draining","currentQueue","queueIndex","drainQueue","run","cachedClearTimeout","runClearTimeout","Item","fun","5","6","7","seen","stylize","stylizeNoColor","colors","isBoolean","showHidden","_extend","isUndefined","customInspect","stylizeWithColor","formatValue","styles","isNumber","isNull","formatPrimitive","arrayToHash","formatError","toUTCString","formatProperty","formatArray","reduceToSingleString","getOwnPropertyDescriptor","pad","timestamp","getHours","getMinutes","getSeconds","getDate","months","getMonth","formatRegExp","noDeprecation","throwDeprecation","traceDeprecation","debugEnviron","debugs","NODE_DEBUG","pid","bold","italic","underline","white","grey","black","blue","cyan","green","magenta","red","yellow","special","null","regexp","isNullOrUndefined","isSymbol","8","_createClass","defineProperties","createDataProperty","_classCallCheck","9","10","Call","PromiseCall","_typeof","isFakeDetached","typeIsObject","createArrayFromList","ArrayBufferCopy","CreateIterResultObject","IsFiniteNonNegativeNumber","IsNonNegativeNumber","CreateAlgorithmFromUnderlyingMethod","InvokeOrNoop","TransferArrayBuffer","IsDetachedBuffer","ValidateAndNormalizeHighWaterMark","MakeSizeAlgorithmFromSizeFunction","11","DequeueValue","_queue","_queueTotalSize","EnqueueValueWithSize","PeekQueueValue","ResetQueue","12","AcquireReadableStreamBYOBReader","ReadableStreamBYOBReader","AcquireReadableStreamDefaultReader","ReadableStreamDefaultReader","CreateReadableStream","InitializeReadableStream","SetUpReadableStreamDefaultController","ReadableStreamDefaultController","_reader","_storedError","_disturbed","IsReadableStream","IsReadableStreamLocked","ReadableStreamAddReadIntoRequest","_resolve","_reject","_readIntoRequests","ReadableStreamAddReadRequest","_readRequests","ReadableStreamCancel","ReadableStreamClose","_readableStreamController","CancelSteps","IsReadableStreamDefaultReader","return","_closedPromise_resolve","_closedPromise_reject","defaultReaderClosedPromiseResolve","ReadableStreamError","defaultReaderClosedPromiseReject","_closedPromise","catch","ReadableStreamFulfillReadRequest","ReadableStreamGetNumReadIntoRequests","ReadableStreamGetNumReadRequests","ReadableStreamHasBYOBReader","IsReadableStreamBYOBReader","ReadableStreamHasDefaultReader","ReadableStreamReaderGenericInitialize","_ownerReadableStream","defaultReaderClosedPromiseInitialize","defaultReaderClosedPromiseInitializeAsResolved","defaultReaderClosedPromiseInitializeAsRejected","ReadableStreamReaderGenericCancel","ReadableStreamReaderGenericRelease","defaultReaderClosedPromiseResetToRejected","ReadableStreamBYOBReaderRead","_controlledReadableByteStream","BYTES_PER_ELEMENT","bytesFilled","elementSize","readerType","_pendingPullIntos","ReadableByteStreamControllerFillPullIntoDescriptorFromQueue","ReadableByteStreamControllerConvertPullIntoDescriptor","ReadableByteStreamControllerHandleQueueDrain","_closeRequested","ReadableByteStreamControllerError","ReadableByteStreamControllerCallPullIfNeeded","ReadableByteStreamControllerPullInto","ReadableStreamDefaultReaderRead","PullSteps","IsReadableStreamDefaultController","ReadableStreamDefaultControllerCallPullIfNeeded","ReadableStreamDefaultControllerShouldCallPull","_pulling","_pullAlgorithm","_pullAgain","ReadableStreamDefaultControllerErrorIfNeeded","rethrowAssertionErrorRejection","_controlledReadableStream","ReadableStreamDefaultControllerCanCloseOrEnqueue","_started","ReadableStreamDefaultControllerGetDesiredSize","ReadableStreamDefaultControllerClose","ReadableStreamDefaultControllerEnqueue","_strategySizeAlgorithm","ReadableStreamDefaultControllerError","_strategyHWM","_cancelAlgorithm","SetUpReadableStreamDefaultControllerFromUnderlyingSource","IsReadableByteStreamController","IsReadableStreamBYOBRequest","ReadableByteStreamControllerGetDesiredSize","ReadableByteStreamControllerShouldCallPull","ReadableByteStreamControllerClearPendingPullIntos","ReadableByteStreamControllerInvalidateBYOBRequest","ReadableByteStreamControllerCommitPullIntoDescriptor","ReadableStreamFulfillReadIntoRequest","ReadableByteStreamControllerEnqueueChunkToQueue","ReadableByteStreamControllerFillHeadPullIntoDescriptor","_byobRequest","_associatedReadableByteStreamController","_view","ReadableByteStreamControllerProcessPullIntoDescriptorsUsingQueue","ReadableByteStreamControllerShiftPendingPullInto","ReadableByteStreamControllerRespondInternal","ReadableByteStreamControllerRespondInClosedState","ReadableByteStreamControllerRespondInReadableState","SetUpReadableByteStreamController","_autoAllocateChunkSize","SetUpReadableByteStreamControllerFromUnderlyingSource","ReadableByteStreamController","autoAllocateChunkSize","streamBrandCheckException","readerLockException","defaultReaderBrandCheckException","byobReaderBrandCheckException","defaultControllerBrandCheckException","byobRequestBrandCheckException","byteStreamControllerBrandCheckException","_require","_require3","_require4","AcquireWritableStreamDefaultWriter","IsWritableStream","IsWritableStreamLocked","WritableStreamAbort","WritableStreamDefaultWriterCloseWithErrorPropagation","WritableStreamDefaultWriterRelease","WritableStreamDefaultWriterWrite","WritableStreamCloseQueuedOrInFlight","ifIsObjectAndHasAPromiseIsHandledInternalSlotSetPromiseIsHandledToTrue","pipeTo","preventClose","preventAbort","preventCancel","waitForWritesToFinish","isOrBecomesErrored","shutdownWithAction","doTheRest","finalize","shutdown","pipeLoop","_readyPromise","pullAlgorithm","startAlgorithm","ReadableStreamTee","CreateReadableByteStream","IsReadableStreamDisturbed","ReadableStreamDefaultControllerHasBackpressure","ReadableStreamBYOBRequest","ReadableByteStreamControllerRespond","ReadableByteStreamControllerRespondWithNewView","ReadableByteStreamControllerClose","ReadableByteStreamControllerEnqueue","SetUpReadableStreamBYOBRequest","13","InitializeTransformStream","_writable","CreateWritableStream","verbose","_transformStreamController","_backpressure","_backpressureChangePromise","_transformAlgorithm","TransformStreamDefaultSinkWriteAlgorithm","_flushAlgorithm","TransformStreamError","TransformStreamDefaultSinkCloseAlgorithm","TransformStreamDefaultSinkAbortAlgorithm","TransformStreamSetBackpressure","TransformStreamDefaultSourcePullAlgorithm","TransformStreamErrorWritableAndUnblockWrite","_backpressureChangePromise_resolve","IsTransformStream","WritableStreamDefaultControllerErrorIfNeeded","_writableStreamController","IsTransformStreamDefaultController","SetUpTransformStreamDefaultController","_controlledTransformStream","SetUpTransformStreamDefaultControllerFromTransformer","TransformStreamDefaultController","TransformStreamDefaultControllerEnqueue","_require2","readableType","writableType","TransformStreamDefaultControllerError","TransformStreamDefaultControllerTerminate","CreateTransformStream","14","15","WritableStreamDefaultWriter","InitializeWritableStream","_writeRequests","_inFlightWriteRequest","_closeRequest","_inFlightCloseRequest","_pendingAbortRequest","_reason","_wasAlreadyErroring","WritableStreamStartErroring","WritableStreamDealWithRejection","WritableStreamFinishErroring","WritableStreamDefaultWriterEnsureReadyPromiseRejected","WritableStreamHasOperationMarkedInFlight","ErrorSteps","WritableStreamRejectCloseAndClosedPromiseIfNeeded","AbortSteps","defaultWriterClosedPromiseReject","WritableStreamUpdateBackpressure","_readyPromise_resolve","_readyPromise_reject","_readyPromiseState","defaultWriterReadyPromiseReset","defaultWriterReadyPromiseResolve","IsWritableStreamDefaultWriter","WritableStreamDefaultWriterClose","_ownerWritableStream","WritableStreamDefaultControllerAdvanceQueueIfNeeded","WritableStreamDefaultControllerClose","WritableStreamDefaultWriterEnsureClosedPromiseRejected","_closedPromiseState","defaultWriterClosedPromiseResetToRejected","defaultWriterReadyPromiseReject","defaultWriterReadyPromiseResetToRejected","WritableStreamDefaultControllerGetChunkSize","defaultWriterLockException","WritableStreamAddWriteRequest","_controlledWritableStream","WritableStreamDefaultControllerGetBackpressure","WritableStreamDefaultControllerWrite","SetUpWritableStreamDefaultController","_writeAlgorithm","_closeAlgorithm","_abortAlgorithm","SetUpWritableStreamDefaultControllerFromUnderlyingSink","WritableStreamDefaultController","WritableStreamDefaultControllerGetDesiredSize","WritableStreamMarkCloseRequestInFlight","defaultWriterClosedPromiseResolve","WritableStreamFinishInFlightClose","WritableStreamFinishInFlightCloseWithError","WritableStreamDefaultControllerProcessClose","WritableStreamMarkFirstWriteRequestInFlight","WritableStreamFinishInFlightWrite","WritableStreamFinishInFlightWriteWithError","WritableStreamDefaultControllerProcessWrite","WritableStreamDefaultControllerError","defaultWriterBrandCheckException","defaultWriterClosedPromiseInitialize","defaultWriterReadyPromiseInitializeAsRejected","defaultWriterReadyPromiseInitializeAsResolved","defaultWriterReadyPromiseInitialize","defaultWriterClosedPromiseInitializeAsResolved","defaultWriterClosedPromiseInitializeAsRejected","WritableStreamDefaultWriterAbort","IsWritableStreamDefaultController","16","callsite","fs","NO_ASSERT","getFileName","getLineNumber","readFileSync","getFunction","17","prepareStackTrace","callee","18","storage","DEBUG","formatArgs","useColors","humanize","color","save","removeItem","navigator","userAgent","style","WebkitAppearance","firebug","exception","table","$1","chrome","localStorage","localstorage","formatters","enable","19","createDebug","enabled","curr","selectColor","instances","disable","skips","20","parseFloat","fmtShort","round","fmtLong","plural","long","core_1","ActorAbstractMediaTyped","Actor","typedAction","handle","runHandle","handleMediaType","mediaTypes","getMediaTypes","mediaTypeFormats","getMediaTypeFormats","testHandle","testMediaType","testMediaTypeFormats","sax","strict","opt","SAXParser","SAXStream","createStream","MAX_BUFFER_LENGTH","buffers","clearBuffers","bufferCheckPosition","lowercase","lowercasetags","looseCase","tags","closedRoot","sawRoot","noscript","S","BEGIN","strictEntities","ENTITIES","XML_ENTITIES","attribList","xmlns","rootNS","trackPosition","column","EVENTS","F","BEGIN_WHITESPACE","beginWhiteSpace","TEXT","starti","textNode","isWhitespace","strictFail","TEXT_ENTITY","OPEN_WAKA","startTagPosition","SCRIPT","SCRIPT_ENDING","script","CLOSE_TAG","SGML_DECL","sgmlDecl","isMatch","nameStart","OPEN_TAG","tagName","PROC_INST","procInstName","procInstBody","emitNode","cdata","COMMENT","DOCTYPE","doctype","isQuote","SGML_DECL_QUOTED","DOCTYPE_DTD","DOCTYPE_QUOTED","DOCTYPE_DTD_QUOTED","COMMENT_ENDING","COMMENT_ENDED","textopts","CDATA_ENDING","CDATA_ENDING_2","PROC_INST_ENDING","PROC_INST_BODY","body","nameBody","newTag","openTag","OPEN_TAG_SLASH","ATTRIB","closeTag","attribName","attribValue","ATTRIB_NAME","ATTRIB_VALUE","attrib","ATTRIB_NAME_SAW_WHITE","attributes","ATTRIB_VALUE_QUOTED","ATTRIB_VALUE_UNQUOTED","ATTRIB_VALUE_ENTITY_Q","ATTRIB_VALUE_CLOSED","isAttribEnd","ATTRIB_VALUE_ENTITY_U","CLOSE_TAG_SAW_WHITE","notMatch","returnState","parseEntity","entityBody","entityStart","maxAllowed","maxActual","closeText","checkBufferLength","ex","streamWraps","_parser","me","_decoder","SD","XML_NAMESPACE","xml","stringFromCharCode","fromCodePoint","STATE","COMMENT_STARTING","qname","attribute","qualName","qn","selfClosing","nv","isSelfClosing","closeTo","entityLC","numStr","highSurrogate","lowSurrogate","MAX_SIZE","codeUnits","__importStar","mod","Parser_1","domhandler_1","DomHandler","DefaultHandler","parseDOM","dom","createDomStream","elementCb","Tokenizer_1","Tokenizer","ElementType","cdatastart","cdataend","processinginstruction","commentend","closetag","opentag","opentagname","DomUtils","FeedHandler_1","RssHandler","FeedHandler","extendStatics","__extends","setPrototypeOf","__","__importDefault","events_1","formTags","pTag","openImpliesClose","tr","th","td","li","h1","h2","h3","h4","h5","h6","select","button","datalist","textarea","option","optgroup","dd","address","article","aside","blockquote","div","dl","fieldset","figcaption","figure","form","hr","main","nav","ol","pre","section","ul","rt","rp","tbody","tfoot","voidElements","foreignContextElements","htmlIntegrationElements","reNameEnd","_super","cbs","_tagname","_attribname","_attribvalue","_attribs","_foreignContext","startIndex","endIndex","parseChunk","_options","_cbs","_lowerCaseTagNames","lowerCaseTags","xmlMode","_lowerCaseAttributeNames","lowerCaseAttributeNames","_tokenizer","onparserinit","_updatePosition","initialOffset","_sectionStart","getAbsoluteIndex","ontext","onopentagname","el","onclosetag","onopentag","onopentagend","_closeCurrentTag","onselfclosingtag","recognizeSelfClosing","onattribname","onattribdata","onattribend","onattribute","_getInstructionName","ondeclaration","onprocessinginstruction","name_1","name_2","oncomment","oncommentend","oncdata","recognizeCDATA","oncdatastart","oncdataend","onreset","parseComplete","decode_codepoint_1","entities_json_1","legacy_json_1","xml_json_1","whitespace","ifElseState","upper","SUCCESS","FAILURE","lower","_index","consumeSpecialNameChar","NEXT_STATE","stateBeforeCdata1","stateBeforeCdata2","stateBeforeCdata3","stateBeforeCdata4","stateBeforeCdata5","stateBeforeScript1","stateBeforeScript2","stateBeforeScript3","stateBeforeScript4","stateAfterScript1","stateAfterScript2","stateAfterScript3","stateAfterScript4","stateBeforeStyle1","stateBeforeStyle2","stateBeforeStyle3","stateAfterStyle1","stateAfterStyle2","stateAfterStyle3","stateBeforeEntity","stateBeforeNumericEntity","_bufferOffset","_baseState","_special","_running","_ended","_xmlMode","_decodeEntities","decodeEntities","_stateText","_getSection","_stateBeforeTagName","_stateInTagName","_emitToken","_stateBeforeClosingTagName","_stateInClosingTagName","_stateAfterClosingTagName","_stateBeforeAttributeName","_stateInSelfClosingTag","_stateInAttributeName","_stateAfterAttributeName","_stateBeforeAttributeValue","_stateInAttributeValueDoubleQuotes","_stateInAttributeValueSingleQuotes","_stateInAttributeValueNoQuotes","_stateBeforeDeclaration","_stateInDeclaration","_stateInProcessingInstruction","_stateBeforeComment","_stateInComment","_stateAfterComment1","_stateAfterComment2","_stateBeforeCdata6","_stateInCdata","_stateAfterCdata1","_stateAfterCdata2","_stateBeforeSpecial","_stateBeforeSpecialEnd","_stateBeforeScript5","_stateAfterScript5","_stateBeforeStyle4","_stateAfterStyle4","_parseNamedEntityStrict","_emitPartial","_parseLegacyEntity","_stateInNamedEntity","_decodeNumericEntity","sectionStart","_stateInNumericEntity","_stateInHexEntity","_cleanup","_parse","_finish","_handleTrailingData","decode_json_1","node_1","Node","Element","DataNode","NodeWithChildren","reWhitespace","defaultOpts","normalizeWhitespace","withStartIndices","withEndIndices","elementCB","_done","_tagStack","_lastNode","_elementCB","handleCallback","attribs","addNode","ProcessingInstruction","siblings","previousSibling","addDataNode","feed","feedRoot","getOneElement","isValidFeed","childs","addConditionally","href","getAttribute","updated","getElements","description","pubDate","what","where","getElementsByTagName","getText","prop","defaultOptions","parseFeed","getStrictDecoder","getReplacer","re","decodeXML","decodeHTMLStrict","sorter","secondChar","decodeHTML","legacy","replacer","inverseXML","getInverseObj","xmlReplacer","getInverseReplacer","encodeXML","getInverse","inverseHTML","htmlReplacer","multiple","_i","_a","encodeHTML","reNonASCII","singleCharReplacer","codePointAt","reXmlChars","escape","tagtypes_1","nodes_1","findOneChild","findOne","existsOne","findAll","RdfaProfile_1","baseIRIDocument","parentPrefixes","additionalPrefixes","PREFIX_REGEX","activeTag","colonIndex","prefixElement","prefixesAll","expandedTerm","toLocaleLowerCase","contentType","baseIriValue","fragmentIndex","getBaseIriTerm","localBaseIRI","allowTerms","allowBlankNode","createIri","interpretObjectAsTime","TIME_REGEXES","blankNodeFactory","allowSafeCurie","expandPrefixedTerm","RDFA","reIsHostCtor","freeGlobal","freeSelf","arrayIncludes","fromIndex","fromRight","baseFindIndex","baseIsNaN","baseIndexOf","arrayIncludesWith","arrayPush","cacheHas","setToArray","uid","arrayProto","funcProto","coreJsData","maskSrcKey","IE_PROTO","funcToString","reIsNative","spreadableSymbol","isConcatSpreadable","getNative","nativeCreate","ListCache","MapCache","SetCache","__data__","assocIndexOf","baseIsNative","isHostObject","getMapData","createSet","getValue","isFlattenable","arrays","isCommon","outer","computed","seenIndex","baseUniq","baseFlatten","isStrict","ActorRdfResolveQuadPattern","KEY_CONTEXT_SOURCES","KEY_CONTEXT_SOURCE","fileUrl","getDataSourceValue","hashPosition","getContextSource","requiredType","getDataSourceType","dataSource","ActorRdfMetadata","ActorRdfMetadataExtract","stream_1","SparqlJsonBindingsTransformer","parseJsonBindings","LEFT_BRACE","RIGHT_BRACE","LEFT_BRACKET","RIGHT_BRACKET","COLON","COMMA","TRUE","FALSE","NULL","STRING","NUMBER","START","STOP","TRUE1","TRUE2","TRUE3","FALSE1","FALSE2","FALSE3","FALSE4","NULL1","NULL2","NULL3","NUMBER1","NUMBER3","STRING1","STRING2","STRING3","STRING4","STRING5","STRING6","VALUE","KEY","OBJECT","ARRAY","BACK_SLASH","FORWARD_SLASH","BACKSPACE","FORM_FEED","NEWLINE","CARRIAGE_RETURN","TAB","tState","stringBuffer","stringBufferOffset","unicode","bytes_remaining","bytes_in_sequence","temp_buffs","toknam","proto","charError","appendStringChar","char","appendStringBuf","intVal","parseError","n3_1","storeStream","store","Store","import","stringifyStream","GraphQlQueryEngine","comunicaEngine","query","resultToString","ActorHttpInvalidate","Bindings_1","ActorQueryOperation","validateQueryOutput","metadata","lastReturn","expectedType","mediatorQueryOperation","KEY_CONTEXT_QUERY_TIMESTAMP","KEY_CONTEXT_BASEIRI","createExistenceResolver","async","operation","materializeOperation","outputRaw","mediate","getSafeBindings","bindingsStream","KEY_CONTEXT_BGP_CURRENTMETADATA","KEY_CONTEXT_BGP_PARENTMETADATA","KEY_CONTEXT_BGP_PATTERNBINDINGS","KEY_CONTEXT_PATTERN_PARENTMETADATA","Bindings","isBindings","maybeBindings","materializeTerm","ensureBindings","strictTargetVariables","valueBindings","newBinding","ActorQueryOperation_1","ActorQueryOperationTyped","operationName","testOperation","KEY_CONTEXT_QUERYOPERATION","runOperation","cachifyMetadata","EntryHandlerArrayValue_1","EntryHandlerInvalidFallback_1","EntryHandlerPredicate_1","EntryHandlerKeywordContext_1","EntryHandlerKeywordGraph_1","EntryHandlerKeywordId_1","EntryHandlerKeywordIncluded_1","EntryHandlerKeywordNest_1","EntryHandlerKeywordType_1","EntryHandlerKeywordUnknownFallback_1","EntryHandlerKeywordValue_1","ParsingContext_1","http_link_header_1","JsonLdParser","ParsingContext","jsonParser","contextJobs","typeJobs","contextAwaitingJobs","lastDepth","lastKeys","lastOnValueJob","attachJsonParserListeners","mediaType","streamingProfile","LOADING_DOCUMENT_FAILED","linkHeader","MULTIPLE_CONTEXT_LINK_HEADERS","lastDepthCheck","flushStacks","listPointerStack","listId","listHead","listRootDepth","isBufferableContainerHandler","pendingContainerFlushBuffers","flushBuffer","handleKey","INVALID_REVERSE_PROPERTY_MAP","validationStack","validationResult","validateKey","entryHandler","ENTRY_HANDLERS","isStackProcessor","processingStack","processingType","graphStack","valueBuffer","unidentifiedValuesBuffer","bufferedValue","subGraphBuffer","graphBuffer","unidentifiedGraphsBuffer","topLevelProperties","isPropertyHandler","isParsingContextInner","valueJobCb","newOnValueJob","contextTree","jobs","job","executeBufferedJobs","applicableTypeJobs","applicableTypeJobIds","typeJob","isPrefixArray","sortedTypeJobs","job1","job2","sortedApplicableTypeJobIds","jobId","EntryHandlerArrayValue","EntryHandlerKeywordContext","EntryHandlerKeywordId","EntryHandlerKeywordIncluded","EntryHandlerKeywordGraph","EntryHandlerKeywordNest","EntryHandlerKeywordType","EntryHandlerKeywordValue","EntryHandlerKeywordUnknownFallback","EntryHandlerInvalidFallback","ContainerHandlerIdentifier_1","ContainerHandlerIndex_1","ContainerHandlerLanguage_1","ContainerHandlerType_1","isSimpleGraphContainer","checkGraphContainer","containersSelf","containersParent","graphContainer","containerHandleName","CONTAINER_HANDLERS","canCombineWithGraph","containerName","ContainerHandlerIdentifier","ContainerHandlerIndex","ContainerHandlerLanguage","ContainerHandlerType","SparqlXmlBindingsTransformer","parseXmlBindings","bus_http_1","bus_rdf_dereference_1","ActorRdfDereferenceHttpParseBase","ActorRdfDereferenceMediaMappings","mediatorRdfParseMediatypes","acceptHeader","mediaTypesToAcceptString","getMaxAcceptHeaderLength","Headers","httpAction","httpResponse","mediatorHttp","handleDereferenceError","outputHeaders","responseStream","ActorHttp","REGEX_MEDIATYPE","getMediaTypeFromExtension","parseAction","parseOutput","mediatorRdfParseHandle","handleDereferenceStreamErrors","triples","maxLength","sortedMediaTypes","priority","partsLength","part","toFixed","ActorRdfDereference","KEY_CONTEXT_LENIENT","isHardError","logError","bus_rdf_resolve_quad_pattern_1","data_factory_1","asynciterator_1","asynciterator_promiseproxy_1","asynciterator_union_1","rdf_terms_1","FederatedQuadSource","mediatorResolveQuadPattern","emptyPatterns","skipEmptyPatterns","contextDefault","sourceIds","algebraFactory","isTermBound","sourceId","BlankNodeScoped","SKOLEM_PREFIX","skolemizeTerm","skolemized","colonSeparator","termLabel","emptyPattern","isSubPatternOf","totalItems","remainingSources","sourcesCount","checkEmitMetadata","currentTotalItems","lastMetadata","isSourceEmpty","it","sourcesIt","proxyIt","getSourceId","PromiseProxyIterator","deskolemizeTerm","subMetadata","skolemizeQuad","RoundRobinUnionIterator","proxy","loadSource","matchLazy","MediatedLinkedRdfSourcesAsyncRdfIterator_1","MediatedQuadSource","cacheSize","firstUrl","forceSourceType","mediators","MediatedLinkedRdfSourcesAsyncRdfIterator","sourcesState","setSourcesState","actor_sparql_serialize_tree_1","newEngine","bindingsStreamToGraphQl","evaluateQuery","ActorSparqlSerializeTree","bus_sparql_serialize_1","sparqljson_to_tree_1","ActorSparqlSerializeFixedMediaTypes","converterSettings","actionContext","ensureActionContext","bindingsArray","Converter","schema","singularizeVariables","rawBindings","reKeyedBindings","bindingValue","bindingsToTree","resultStream","materializeRdfJsTerms","qs","xtend","hasRel","rel","intoRels","acc","createObjects","parseLink","linkUrl","parsedUrl","qry","decode","encode","bus_query_operation_1","crypto_1","AbstractFilterHash","ActorQueryOperationTypedMediated","doesHashAlgorithmExist","hashAlgorithm","doesDigestAlgorithmExist","digestAlgorithm","getHashes","createHash","HashBase","_blockOffset","_length","_finalized","throwIfNotStringOrBuffer","carry","_digest","Sha256","_w","maj","sigma0","sigma1","gamma0","_b","_c","_d","_e","_f","_g","_h","T1","T2","Sha512","Ch","xl","Gamma0","Gamma0l","Gamma1","Gamma1l","getCarry","_ah","_bh","_ch","_dh","_eh","_fh","_gh","_hh","_al","_bl","_cl","_dl","_el","_fl","_gl","_hl","ah","bh","dh","eh","fh","gh","hh","al","bl","fl","gl","hl","xh","gamma0l","gamma1","gamma1l","Wi7h","Wi7l","Wi16h","Wi16l","Wil","Wih","majh","majl","sigma0h","sigma0l","sigma1h","sigma1l","Kih","Kil","chh","chl","t1l","t1h","t2l","t2h","writeInt64BE","Transformation_1","sharedEvaluators","mapping","AsyncRecursiveEvaluator","subEvaluators","evalOperator","evalSpecialOperator","evalNamed","evalExistence","evalAggregate","evaluator","argPromises","evaluate","argResults","bnode","_mapping","SyncRecursiveEvaluator","UnsupportedOperation","RecursiveExpressionEvaluator_1","algExpr","config","coerceEBV","data_model_1","ActorAbstractPath","predicateType","generateBlankNode","ALP","V","bString","FACTORY","__b16bnode109","https___linkedsoftwaredependencies_org_bundles_npm__comunica_bus_init_Bus_Init","https___linkedsoftwaredependencies_org_bundles_npm__comunica_bus_http_Bus_Http","https___linkedsoftwaredependencies_org_bundles_npm__comunica_bus_rdf_parse_Bus_RdfParse","https___linkedsoftwaredependencies_org_bundles_npm__comunica_bus_rdf_dereference_Bus_RdfDereference","https___linkedsoftwaredependencies_org_bundles_npm__comunica_bus_rdf_join_Bus_RdfJoin","https___linkedsoftwaredependencies_org_bundles_npm__comunica_bus_rdf_parse_html_Bus_RdfParseHtml","https___linkedsoftwaredependencies_org_bundles_npm__comunica_bus_rdf_resolve_quad_pattern_Bus_RdfResolveQuadPattern","https___linkedsoftwaredependencies_org_bundles_npm__comunica_bus_rdf_metadata_Bus_RdfMetadata","https___linkedsoftwaredependencies_org_bundles_npm__comunica_bus_rdf_metadata_extract_Bus_RdfMetadataExtract","https___linkedsoftwaredependencies_org_bundles_npm__comunica_bus_rdf_resolve_hypermedia_Bus_RdfResolveHypermedia","https___linkedsoftwaredependencies_org_bundles_npm__comunica_bus_rdf_resolve_hypermedia_links_Bus_RdfResolveHypermediaLinks","https___linkedsoftwaredependencies_org_bundles_npm__comunica_bus_http_invalidate_Bus_HttpInvalidate","https___linkedsoftwaredependencies_org_bundles_npm__comunica_bus_optimize_query_operation_Bus_OptimizeQueryOperation","https___linkedsoftwaredependencies_org_bundles_npm__comunica_bus_sparql_parse_Bus_SparqlParse","https___linkedsoftwaredependencies_org_bundles_npm__comunica_bus_sparql_serialize_Bus_SparqlSerialize","https___linkedsoftwaredependencies_org_bundles_npm__comunica_bus_context_preprocess_Bus_ContextPreprocess","https___linkedsoftwaredependencies_org_bundles_npm__comunica_bus_query_operation_Bus_QueryOperation","https___linkedsoftwaredependencies_org_bundles_npm__comunica_actor_init_sparql__1_0_0_config_sets_http_json_myHttpFetcher","https___linkedsoftwaredependencies_org_bundles_npm__comunica_actor_init_sparql__1_0_0_config_sets_http_json_mediatorHttp","https___linkedsoftwaredependencies_org_bundles_npm__comunica_actor_init_sparql__1_0_0_config_sets_rdf_dereference_json_mediatorRdfParseMediatypes","https___linkedsoftwaredependencies_org_bundles_npm__comunica_actor_init_sparql__1_0_0_config_sets_rdf_dereference_json_mediatorRdfParseHandle","https___linkedsoftwaredependencies_org_bundles_npm__comunica_actor_init_sparql__1_0_0_config_sets_rdf_parsers_json_myRdfParserN3","https___linkedsoftwaredependencies_org_bundles_npm__comunica_actor_init_sparql__1_0_0_config_sets_rdf_parsers_json_myRdfParserRdfXml","https___linkedsoftwaredependencies_org_bundles_npm__comunica_actor_init_sparql__1_0_0_config_sets_rdf_parsers_json_myRdfParserXmlRdfa","https___linkedsoftwaredependencies_org_bundles_npm__comunica_actor_init_sparql__1_0_0_config_sets_rdf_parsers_json_mediatorRdfParseMediatypes","https___linkedsoftwaredependencies_org_bundles_npm__comunica_actor_init_sparql__1_0_0_config_sets_rdf_parsers_json_mediatorRdfParseHandle","https___linkedsoftwaredependencies_org_bundles_npm__comunica_actor_init_sparql__1_0_0_config_sets_resolve_hypermedia_json_mediatorRdfDereference","https___linkedsoftwaredependencies_org_bundles_npm__comunica_actor_init_sparql__1_0_0_config_sets_sparql_queryoperators_json_mediatorRdfJoin","https___linkedsoftwaredependencies_org_bundles_npm__comunica_actor_init_sparql__1_0_0_config_sets_join_json_myRdfJoinActor","https___linkedsoftwaredependencies_org_bundles_npm__comunica_actor_init_sparql__1_0_0_config_sets_rdf_parsers_json_myRdfParserHtml","https___linkedsoftwaredependencies_org_bundles_npm__comunica_actor_init_sparql__1_0_0_config_sets_rdf_parsers_json_myRdfParserHtmlRdfa","https___linkedsoftwaredependencies_org_bundles_npm__comunica_actor_init_sparql__1_0_0_config_sets_sparql_queryoperators_json_mediatorResolveQuadPattern","config_sets_resolve_file_json_myRdfRdfJsSourceQuadPatternResolver","https___linkedsoftwaredependencies_org_bundles_npm__comunica_actor_init_sparql__1_0_0_config_sets_resolve_hypermedia_json_mediatorMetadata","https___linkedsoftwaredependencies_org_bundles_npm__comunica_actor_init_sparql__1_0_0_config_sets_resolve_hypermedia_json_myRdfMetadataPrimaryTopic","https___linkedsoftwaredependencies_org_bundles_npm__comunica_actor_init_sparql__1_0_0_config_sets_resolve_hypermedia_json_myRdfMetadataAll","https___linkedsoftwaredependencies_org_bundles_npm__comunica_actor_init_sparql__1_0_0_config_sets_resolve_hypermedia_json_mediatorMetadataExtract","https___linkedsoftwaredependencies_org_bundles_npm__comunica_actor_init_sparql__1_0_0_config_sets_resolve_hypermedia_json_myRdfMetadataExtractHydraControls","https___linkedsoftwaredependencies_org_bundles_npm__comunica_actor_init_sparql__1_0_0_config_sets_resolve_hypermedia_json_myRdfMetadataExtractHydraCount","https___linkedsoftwaredependencies_org_bundles_npm__comunica_actor_init_sparql__1_0_0_config_sets_resolve_sparql_json_myRdfMetadataExtractSparqlService","https___linkedsoftwaredependencies_org_bundles_npm__comunica_actor_init_sparql__1_0_0_config_sets_resolve_hypermedia_json_myHypermediaNoneResolver","https___linkedsoftwaredependencies_org_bundles_npm__comunica_actor_init_sparql__1_0_0_config_sets_resolve_hypermedia_json_mediatorRdfResolveHypermedia","https___linkedsoftwaredependencies_org_bundles_npm__comunica_actor_init_sparql__1_0_0_config_sets_resolve_hypermedia_json_mediatorRdfResolveHypermediaLinks","https___linkedsoftwaredependencies_org_bundles_npm__comunica_actor_init_sparql__1_0_0_config_sets_resolve_hypermedia_json_myHypermediaLinksNext","https___linkedsoftwaredependencies_org_bundles_npm__comunica_actor_rdf_resolve_quad_pattern_hypermedia_Actor_RdfResolveQuadPattern_Hypermedia_httpInvalidator_default","https___linkedsoftwaredependencies_org_bundles_npm__comunica_actor_init_sparql__1_0_0_config_sets_sparql_init_json_mediatorHttpInvalidate","https___linkedsoftwaredependencies_org_bundles_npm__comunica_actor_init_sparql__1_0_0_config_sets_sparql_optimize_json_myJoinBgpOptimizer","https___linkedsoftwaredependencies_org_bundles_npm__comunica_actor_init_sparql__1_0_0_config_sets_sparql_init_json_mediatorOptimizeQueryOperation","https___linkedsoftwaredependencies_org_bundles_npm__comunica_actor_init_sparql__1_0_0_config_sets_sparql_parsers_json_mySparqlParser","https___linkedsoftwaredependencies_org_bundles_npm__comunica_actor_init_sparql__1_0_0_config_sets_sparql_init_json_mediatorSparqlParse","https___linkedsoftwaredependencies_org_bundles_npm__comunica_actor_init_sparql__1_0_0_config_sets_sparql_init_json_mediatorSparqlSerialize","__b0bnode251","__b1bnode251","https___linkedsoftwaredependencies_org_bundles_npm__comunica_actor_init_sparql__1_0_0_config_sets_sparql_init_json_mediatorContextPreprocess","https___linkedsoftwaredependencies_org_bundles_npm__comunica_actor_init_sparql__1_0_0_config_sets_sparql_queryoperators_json_mediatorQueryOperation","https___linkedsoftwaredependencies_org_bundles_npm__comunica_actor_init_sparql__1_0_0_config_sets_sparql_queryoperators_json_myEmptyBgpQueryOperator","https___linkedsoftwaredependencies_org_bundles_npm__comunica_actor_init_sparql__1_0_0_config_sets_sparql_queryoperators_json_myValuesQueryOperator","https___linkedsoftwaredependencies_org_bundles_npm__comunica_actor_init_sparql__1_0_0_config_sets_rdf_parsers_json_myRdfParserJsonLd","https___linkedsoftwaredependencies_org_bundles_npm__comunica_actor_init_sparql__1_0_0_config_sets_resolve_sparql_json_mySparqlQuadPatternResolver","https___linkedsoftwaredependencies_org_bundles_npm__comunica_actor_init_sparql__1_0_0_config_sets_resolve_sparql_json_mySparqlEndpointResolver","https___linkedsoftwaredependencies_org_bundles_npm__comunica_actor_init_sparql__1_0_0_config_sets_rdf_dereference_json_myRdfDereferencer","https___linkedsoftwaredependencies_org_bundles_npm__comunica_actor_init_sparql__1_0_0_config_sets_rdf_parsers_json_myRdfParserHtmlScript","https___linkedsoftwaredependencies_org_bundles_npm__comunica_actor_init_sparql__1_0_0_config_sets_join_json_myRdfJoinMultiActor","https___linkedsoftwaredependencies_org_bundles_npm__comunica_actor_init_sparql__1_0_0_config_sets_resolve_federated_json_myFederatedQuadPatternResolver","https___linkedsoftwaredependencies_org_bundles_npm__comunica_actor_init_sparql__1_0_0_config_sets_sparql_queryoperators_json_myQuadPatternQueryOperator","https___linkedsoftwaredependencies_org_bundles_npm__comunica_actor_init_sparql__1_0_0_config_sets_resolve_hypermedia_json_myHypermediaQpfResolver","https___linkedsoftwaredependencies_org_bundles_npm__comunica_actor_init_sparql__1_0_0_config_sets_resolve_hypermedia_json_myQuadPatternHypermediaResolver","urn_comunica_sparqlinit","support","Blob","viewClasses","isArrayBufferView","normalizeName","normalizeValue","iteratorFor","consumed","bodyUsed","fileReaderReady","reader","onload","readBlobAsArrayBuffer","blob","FileReader","promise","readAsArrayBuffer","bufferClone","view","Body","_initBody","_bodyInit","_bodyText","_bodyBlob","FormData","_bodyFormData","URLSearchParams","_bodyArrayBuffer","arrayBuffer","readAsText","chars","readArrayBufferAsText","formData","oldValue","Request","upcased","credentials","signal","referrer","decodeURIComponent","Response","bodyInit","redirectStatuses","redirect","location","DOMException","request","aborted","xhr","XMLHttpRequest","abortXhr","rawHeaders","getAllResponseHeaders","responseURL","responseText","ontimeout","onabort","open","withCredentials","responseType","setRequestHeader","addEventListener","onreadystatechange","readyState","removeEventListener","send","polyfill","removeDotSegments","segmentBuffers","isCharacterAllowedAfterRelativePathSegment","removeDotSegmentsOfPath","colonPosition","searchOffset","pathSeparator","relativeIRI","baseFragmentPos","baseQueryPos","valueColonPos","baseColonPos","baseIRIScheme","baseSlashAfterColonPos","baseIRIPath","baseIRILastSlashPos","languageOrDatatype","defaultGraphInstance","nextId","stringDatatype","langStringDatatype","LoggerVoid","resolved","Bus_1","BusIndexed","actorsIndex","actorId","getActorIdentifier","subscribe","unsubscribe","actionId","getActionIdentifier","_undefined_","publish","actorIdentifierFields","field","actionIdentifierFields","ActionObserver","Logger_1","beforeActors","bus","addDependencies","logger","getContextLogger","getDefaultLogData","ActionContext","maybeActionContext","Mediator","mediateWith","mediateActor","runObservable","ActorHttpSolidAuthFetch","isStream","duplex","b64","lens","getLens","validLen","placeHoldersLen","Arr","_byteLength","curByte","revLookup","uint8","extraBytes","len2","encodeChunk","lookup","isLE","mLen","nBytes","eLen","eMax","eBias","nBits","LN2","enumerableOnly","symbols","sym","_defineProperty","_defineProperties","descriptor","custom","instance","protoProps","staticProps","hasStrings","_getString","_getBuffer","getOwnPropertyDescriptors","_objectSpread","_Object$setPrototypeO","kLastResolve","kLastReject","kError","kEnded","kLastPromise","kHandlePromise","kStream","createIterResult","readAndResolve","onReadable","AsyncIteratorPrototype","ReadableStreamAsyncIteratorPrototype","lastPromise","wrapForNext","_this2","_Object$create","ERR_MISSING_ARGS","destroyer","popCallback","streams","destroys","readableNodeToWeb","NodeReadable","webStream","_webStream","_doneReading","releaseLock","_handleDestroy","cancel","controller","enqueue","nodeStream","WEBSTREAM_SUPPORT","onDestroy","pull","MediatorNumber","indexPicker","createIndexPicker","MIN","tests","getOrDefault","defaultValue","testResults","promises","dummy","MediatorCombineUnion","combiner","createCombiner","assignInDefaults","srcValue","baseKeysIn","nativeKeysIn","isProto","assignInWith","srcIndex","keysIn","defaults","MediatorRace","bus_rdf_parse_1","ActorRdfParseN3","ActorRdfParseFixedMediaTypes","StreamParser","actor_abstract_mediatyped_1","ActorRdfParse","ActorAbstractMediaTyped_1","ActorAbstractMediaTypedFixed","scale","priorityScale","testHandleChecked","argsTag","mapTag","objectTag","setTag","reIsDeepProp","reIsPlainProp","reLeadingDot","rePropName","reEscapeChar","typedArrayTags","freeExports","freeModule","freeProcess","nodeUtil","nodeIsTypedArray","isTypedArray","arraySome","mapToArray","dataViewCtorString","mapCtorString","promiseCtorString","setCtorString","weakMapCtorString","symbolProto","symbolValueOf","symbolToString","pairs","LARGE_ARRAY_SIZE","baseFor","keysFunc","baseGet","isKey","castPath","toKey","baseHasIn","baseIsEqual","bitmask","equalFunc","objIsArr","othIsArr","objTag","othTag","getTag","objIsObj","othIsObj","isSameTag","equalArrays","convert","isPartial","stacked","equalByTag","objIsWrapped","othIsWrapped","objUnwrapped","othUnwrapped","objProps","objLength","othLength","skipCtor","othValue","compared","objCtor","othCtor","equalObjects","baseIsEqualDeep","isMasked","baseIteratee","identity","isStrictComparable","matchesStrictComparable","hasFunc","hasPath","UNORDERED_COMPARE_FLAG","baseMatchesProperty","matchData","getMatchData","noCustomizer","baseIsMatch","baseMatches","basePropertyDeep","stringToPath","arrValue","othIndex","ctorString","memoize","baseToString","quote","resolver","memoized","Cache","baseUnary","baseForOwn","rdfxml_streaming_parser_1","ActorRdfParseRdfXml","RdfXmlParser","sax_1","ParseError_1","activeTagStack","nodeIds","saxStream","attachSaxListeners","parentTag","thisNs","hasNs","attributeKey","parentNs","DEFAULT_NS","defaultNamespace","nsElement","ParseError","uriToNamedNode","newParseError","NCNAME_MATCHER","onTag","onText","onCloseTag","onDoctype","currentParseType","ParseType","RESOURCE","hadChildren","childrenParseType","childrenStringTags","tagString","stringActiveTag","childrenStringEmitClosingTag","parseNamespace","onTagResource","onTagProperty","rootTag","tagExpanded","PROPERTY","typedNode","FORBIDDEN_NODE_ELEMENTS","activeSubjectValue","claimSubjectNodeId","subjectValueBlank","explicitType","attributeValue","attributeKeyExpanded","validateNcname","XML","valueToUri","claimNodeId","emitTriple","reifiedStatementId","childrenCollectionSubject","linkTerm","childrenCollectionPredicate","predicateSubPredicates","predicateSubObjects","predicateEmitted","listItemCounter","FORBIDDEN_PROPERTY_ELEMENTS","parseType","attributedProperty","activeSubSubjectValue","subSubjectValueBlank","propertyAttributeKey","propertyAttributeValue","propertyAttributeKeyExpanded","nestedBNode","childrenTagsToString","subjectParent","statementId","allowDuplicateRdfIds","poppedTag","MIME_TYPE","XMLNS","saxParser","rdfa_streaming_parser_1","ActorRdfParseXmlRdfa","RdfaParser","profile","htmlparser2_1","INITIAL_CONTEXT_XHTML","INITIAL_CONTEXT","contentTypeToProfile","features","htmlParseListener","rdfaPatterns","pendingRdfaPatternCopies","initializeParser","incompleteTriples","inlist","listMapping","listMappingLocal","prefixesCustom","skipElement","parentTagI","collectChildTags","attributesSerialized","skipHandlingXmlLiteralChildren","newSubject","currentObjectResource","typedResource","allowTermsInRelPredicates","allowTermsInRevPredicates","rev","collectedPatternTag","patternTag","referenced","rootPattern","typeof","copyTargetPatternId","resource","emitPatternCopy","getBaseIRI","parsePrefixes","role","roleSubject","createBlankNode","vocabOld","createVocabIris","isRootTag","about","explicitNewSubject","isInheritSubjectInHeadBody","getResourceOrBaseIri","addListMapping","localObjectResource","createLiteral","datetime","incompleteTriplesCompleted","incompleteTriple","firstInListTag","patternId","textSegments","predicateValue","bnodes","onTagOpen","onTagClose","bNode","predicateList","rootPatternId","constructedBlankNodes","blankNodeIndex","emitPatternCopyAbsolute","nodeTypes","dom_serializer_1","getOuterHTML","getInnerHTML","foreignNames","elementNames","attributeNames","unencodedElements","xmp","iframe","noembed","noframes","plaintext","singleTag","area","basefont","br","col","command","embed","frame","img","isindex","keygen","meta","param","track","wbr","render","cheerio","renderTag","renderDirective","renderComment","renderCdata","renderText","foreignModeIntegrationPoints","formatAttrs","decode_1","encode_1","decodeStrict","encode_2","encodeHTML4","encodeHTML5","decode_2","decodeHTML4","decodeHTML5","decodeHTML4Strict","decodeHTML5Strict","decodeXMLStrict","getChildren","getParent","getSiblings","getAttributeValue","hasAttrib","removeElement","replaceElement","appendChild","sibling","currNext","querying_1","isTextNode","Checks","tag_name","tag_type","tag_contains","getAttribCheck","combineFuncs","compileTest","funcs","testElement","getElementById","getElementsByTagType","compareDocumentPosition","nodeA","nodeB","aParents","bParents","sharedParent","aSibling","bSibling","removeSubsets","ancestor","uniqueSort","relative","CollectingHandler","restart","MultiplexHandler","_func","bus_rdf_join_1","asyncjoin_1","ActorRdfJoinSymmetricHash","ActorRdfJoin","overlappingVariables","SymmetricHashJoin","joinVariables","limitEntries","limitEntriesMin","iteratorsHaveMetadata","getIterations","getOutput","metadatas","unwrapped","oldMetadata","arrayMap","nativeMin","castArrayLikeObject","intersection","mapped","caches","baseIntersection","DynamicNestedLoopJoin","HashJoin","NestedLoopJoin","MergeStream","funRight","funJoin","leftItem","rightItem","funHash","leftMap","matches","matchIdx","hasResults","usedLeft","rightMap","_removeStream","attempts","ActorRdfParseHtml","endBarrier","htmlAction","busRdfParseHtml","outputs","htmlParseListeners","bus_rdf_parse_html_1","ActorRdfParseHtmlRdfa","onTagEndOld","ActorRdfResolveQuadPatternRdfJsSource","ActorRdfResolveQuadPatternSource","hasContextSingleSourceOfType","ActorRdfResolveQuadPattern_1","variableToNull","getMetadata","bus_rdf_metadata_1","ActorRdfMetadataPrimaryTopic","attachListeners","endpointIdentifier","primaryTopics","metadataGraph","graphName","metadataToData","dataToMetadataOnInvalidMetadataGraph","ActorRdfMetadata_1","ActorRdfMetadataQuadPredicate","isMetadata","ActorRdfMetadataAll","bus_rdf_metadata_extract_1","uritemplate_1","ActorRdfMetadataExtractHydraControls","parsedUriTemplateCache","pageUrl","hydraProperties","LINK_TYPES","links","linkTargets","cachedUriTemplate","searchFormData","searchForms","dataset","searchFormId","searchTemplates","searchTemplate","parseUriTemplateCached","mappings","getUri","expand","HYDRA","subjectProperties","getHydraProperties","getLinks","getSearchForms","graphql_ld_1","rdf_store_stream_1","ActorRdfMetadataExtract_1","GraphQlQueryEngine_1","ActorRdfMetadataExtractQuery","graphqlClient","Client","queryEngine","sparqlOperation","graphQlToSparql","dataStream","initialBindings","queryEngineOptions","graphql_to_sparql_1","contextParser","graphqlToSparqlConverter","requireContext","sparqlJsonToTreeConverter","sparqlAlgebra","sparqlJsonResult","sparqlJsonResultsToTree","variablesDict","graphqlToSparqlAlgebra","rdf_literal_1","sparqljson_parse_1","settings","delimiter","prefixVariableQuestionMark","SparqlJsonParser","tree","lastKeyPath","singularize","nextNode","addValueToTree","tree1","tree2","merged","mergedElement","mergeTrees","getTermRaw","materializeTree","materialized","sparqlResponse","parseJsonResults","singularRoot","subTree","handler_1","Translator_1","translator","registerHandler","TypeHandlerString","TYPES","TypeHandlerBoolean","TYPE","TypeHandlerNumberDouble","TypeHandlerNumberInteger","TypeHandlerDate","getSupportedRdfDatatypes","getSupportedJavaScriptPrimitives","incorrectRdfDataType","VALIDATORS","partsMonthDay","valueString","getUTCDate","getUTCMonth","getUTCFullYear","toISOString","gDay","gMonthDay","gYear","gYearMonth","MAX_INT","MIN_INT","DefaultDataFactory","SparqlJsonBindingsTransformer_1","sparqlResponseStream","rawValue","drain","asap","_deferreds","doResolve","deferred","onFulfilled","onRejected","finale","Handler","reason","race","exportCallback","UriTemplateError","objectHelper","deepFreeze","deepFreezeUsingObjectFreeze","charHelper","isDigit","chr","isAlpha","isHexDigit","pctEncoder","utf8","firstCharCode","isPercentDigitDigit","parseHex2","encodeCharacter","octet","octets","isPctEncoded","numBytes","byteNumber","pctCharAt","utf8CharCode","rfcCharHelper","isVarchar","isUnreserved","isReserved","encodingHelper","passReserved","encodePassReserved","encodeLiteral","encodeLiteralCharacter","operators","bySymbol","symbol","ifEmpty","isDefined","LiteralExpression","parseExpression","expressionText","varspecs","varspec","varnameStart","maxLengthStart","closeVarname","varname","exploded","closeMaxLength","operatorText","VariableExpression","uriTemplateText","braceOpenIndex","literalStart","templateText","UriTemplate","prettyPrint","propertyArray","expandSimpleValue","valueDefined","nameValue","expandNotExploded","expandExplodedNamed","listElement","expandExplodedUnnamed","ActorRdfMetadataExtractHydraCount","ActorRdfMetadataExtractSparqlService","sparqlService","bus_rdf_resolve_hypermedia_1","RdfSourceMetadata_1","ActorRdfResolveHypermediaNone","ActorRdfResolveHypermedia","filterFactor","logInfo","RdfSourceMetadata","sourceType","testMetadata","streamOut","streamIn","bus_rdf_resolve_hypermedia_links_1","ActorRdfResolveHypermediaLinksNext","ActorRdfResolveHypermediaLinks","urls","ActorHttpInvalidate_1","ActorHttpInvalidateListenable","invalidateListeners","MediatorAll","validActors","bus_optimize_query_operation_1","ActorOptimizeQueryOperationJoinBgp","ActorOptimizeQueryOperation","varCount","useQuads","translateQuery","sparql","blankToVariable","vars","inScopeVariables","thingy","inScope","queryType","isWildcard","translateGroupGraphPattern","A","mapAggregates","having","aggregation","translateExpression","translateBoundAggregate","generateFreshVar","translateInlineData","PV","exp","descending","translateTriple","translateAggregates","translateBlankNodesToVariables","blankToVariableMapping","variablesRaw","createUniqueVariable","filters","nonfilters","joins","translatePath","translateBgp","recurseGraph","typeVals","proj","translateGraph","accumulateGroupGraphPattern","isTerm","function","simplifyPath","translatePathPredicate","pathType","normals","inverted","normalElement","invertedElement","G","simplifiedJoin","subthingy","literalValue","stringQuad","SparqlParser","$V0","$V1","$V2","$V3","$V4","$V5","$V6","$V7","$V8","$V9","$Va","$Vb","$Vc","$Vd","$Ve","$Vf","$Vg","$Vh","$Vi","$Vj","$Vk","$Vl","$Vm","$Vn","$Vo","$Vp","$Vq","$Vr","$Vs","$Vt","$Vu","$Vv","$Vw","$Vx","$Vy","$Vz","$VA","$VB","$VC","$VD","$VE","$VF","$VG","$VH","$VI","$VJ","$VK","$VL","$VM","$VN","$VO","$VP","$VQ","$VR","$VS","$VT","$VU","$VV","$VW","$VX","$VY","$VZ","$V_","$V$","$V01","$V11","$V21","$V31","$V41","$V51","$V61","$V71","$V81","$V91","$Va1","$Vb1","$Vc1","$Vd1","$Ve1","$Vf1","$Vg1","$Vh1","$Vi1","$Vj1","$Vk1","$Vl1","$Vm1","$Vn1","$Vo1","$Vp1","$Vq1","$Vr1","$Vs1","$Vt1","$Vu1","$Vv1","$Vw1","$Vx1","$Vy1","$Vz1","$VA1","$VB1","$VC1","$VD1","$VE1","$VF1","$VG1","$VH1","$VI1","$VJ1","$VK1","$VL1","$VM1","$VN1","$VO1","$VP1","$VQ1","$VR1","$VS1","$VT1","$VU1","$VV1","$VW1","$VX1","$VY1","$VZ1","$V_1","$V$1","$V02","$V12","$V22","$V32","$V42","$V52","$V62","$V72","$V82","$V92","$Va2","$Vb2","$Vc2","$Vd2","$Ve2","$Vf2","$Vg2","$Vh2","$Vi2","$Vj2","$Vk2","$Vl2","$Vm2","$Vn2","$Vo2","$Vp2","$Vq2","$Vr2","$Vs2","$Vt2","$Vu2","$Vv2","$Vw2","yy","symbols_","terminals_","26","28","34","35","37","38","40","44","45","47","49","54","57","67","68","74","77","80","82","85","86","87","89","92","98","105","114","115","117","118","120","121","130","131","133","136","138","139","165","166","168","171","172","189","193","214","219","221","222","224","225","229","233","237","252","254","255","256","257","258","260","261","263","264","267","269","273","274","276","277","278","279","280","281","282","283","284","285","286","287","288","289","290","291","295","296","299","300","301","302","303","304","305","306","307","308","309","310","312","313","314","315","316","317","318","319","320","321","322","323","324","productions_","performAction","yytext","yyleng","yylineno","yystate","$$","_$","propertyList","$0","basePath","baseRoot","$","resolveIRI","groupDatasets","toVar","appendAllTo","toInt","valuesObject","updates","appendTo","updateType","unionAll","degroupSingle","objectListToTriples","RDF_TYPE","blank","listItems","listTriples","createList","createOperationTree","createTypedLiteral","unescapeString","namePos","expansion","uriString","292","101","39","48","53","102","22","25","293","88","103","108","111","122","126","135","23","41","43","50","59","297","298","55","27","33","29","294","90","104","106","109","112","116","119","123","127","56","60","42","177","178","179","51","36","226","230","234","238","246","250","94","110","141","113","140","142","149","150","124","128","21","63","73","61","58","24","62","66","97","151","181","183","242","244","275","52","227","231","235","236","239","247","71","72","81","251","253","259","262","91","93","107","137","143","125","129","64","76","75","83","30","153","154","160","161","46","180","182","186","191","184","185","195","220","228","232","240","241","248","249","175","96","144","152","132","65","84","155","162","197","69","70","187","192","194","243","245","173","176","265","268","270","95","145","134","78","79","156","157","164","163","196","199","205","206","198","201","223","188","174","266","99","31","32","158","167","169","200","207","208","190","271","272","100","146","159","170","209","213","202","210","211","147","203","212","311","215","216","148","204","217","218","defaultActions","408","409","464","465","478","479","480","481","488","489","513","518","523","526","527","577","recoverable","vstack","lstack","recovering","TERROR","EOF","sharedState","setInput","yylloc","yyloc","ranges","preErrorSymbol","lex","yyval","errStr","showPosition","loc","first_line","last_line","first_column","last_column","operatorName","attr","initialExpression","operationList","fromClauses","groupName","fromClause","blankId","trimLength","objectList","otherTriples","_more","_backtrack","matched","conditionStack","unput","oldLines","more","backtrack_lexer","less","pastInput","past","upcomingInput","test_match","indexed_rule","backup","tempMatch","rules","_currentRules","flex","popState","conditions","topState","pushState","stateStackSize","yy_","$avoiding_name_collisions","YY_START","exit","_prefixByIri","prefixIris","iriList","_usedPrefixes","_indent","newline","toQuery","mapJoin","toEntity","toExpression","variableToString","toUpdate","baseAndPrefixes","allPrefixes","toPattern","encodeTriples","inline","valuesList","lparen","rparen","escapeReplacer","lexical","encodeIRI","using","flags","SparqlGenerator","eTypes","resetContext","translateOperation","removeQuadsRecursive","keyGraphs","globalNames","newGraphs","graphNames","potentialGraphFromPatterns","graphNameSet","translateProject","translatePattern","translateConstruct","translateDistinct","translateExtend","translateFrom","translateFilter","aggs","translateGroup","translateJoin","leftjoin","translateLeftJoin","translateMinus","translateOrderBy","translatePathComponent","translateReduced","translateService","translateSlice","translateUnion","translateValues","translateAggregateExpression","translateExistenceExpression","translateNamedExpression","translateOperatorExpression","translateTermExpression","translateWildcardExpression","translateAlt","translateInv","translateLink","translateNps","translateOneOrMorePath","translateSeq","translateZeroOrMorePath","translateZeroOrOnePath","translateTerm","replaceAggregatorVariables","st","aggregators","agg","extensions","objectContainsValues","vals","MediatorCombinePipeline","bus_sparql_parse_1","sparqljs_1","ActorSparqlParseAlgebra","ActorSparqlParse","queryFormat","parsedSyntax","ActorQueryOperationBgpEmpty","ActorQueryOperationTyped_1","ActorQueryOperationValues","jsonld_streaming_parser_1","DocumentLoaderMediated_1","ActorRdfParseJsonLd","fromHttpResponse","DocumentLoaderMediated","listRootKey","keyOption","handleListElement","shiftStack","removeContext","listRootKeys","newLinkTerm","maybeId","handlePendingContainerFlushBuffers","indexKey","indexPropertyRaw","getContextValueIndex","indexProperty","indexValues","indexValue","depthOffset","INVALID_LANGUAGE_MAP_VALUE","entryHasIdentifier","EntryHandlerKeyword_1","INVALID_STREAMING_KEY_ORDER","setContext","emitContext","INVALID_ID_VALUE","COLLIDING_KEYWORDS","INVALID_INCLUDED_VALUE","valueUnliased","scopedContext","hasTypedScopedContext","typeContext","streamingProfileAllowOutOfOrderPlainType","keywordType","VALID_KEYWORDS_TYPES","INVALID_REVERSE_VALUE","ContextTree_1","JsonLdParser_1","ContextTree","rootContext","activeVersion","PROCESSING_MODE_CONFLICT","keysOriginal","contextData","getContextPropagationAware","propagate","originalDepth","hasApplicablePropertyScopedContext","lastKey","lastKeyValue","pendingFlushBuffer","EXPAND_OPTIONS","deeperIdStack","1.1","subTrees","COMPATIBLE_ENCODING_PATTERN","WS_TRIM_PATTERN","WS_CHAR_PATTERN","WS_FOLD_PATTERN","DELIMITER_PATTERN","WS_DELIMITER_PATTERN","hasWhitespace","skipWhitespace","needsQuotes","Link","refs","attrValue","isSingleOccurenceAttr","parseExtendedValue","formatAttribute","isCompatibleEncoding","isTokenAttr","escapeQuotes","formatExtendedAttribute","RdfSourceSparql_1","ActorRdfResolveHypermediaSparql","checkUrlSuffix","RdfSourceSparql","variableNames","blankMap","patternToBgp","variableName","endpoint","initialized","superRead","fetchBindingsStream","rawBindingsStream","parseJsonResultsStream","replaceBlankNodes","materializeOptionalTerm","countQuery","patternToCountQuery","selectQuery","patternToSelectQuery","queryBindings","boundValue","sourceGetter","ignoreDefaultGraph","namedTerms","defaultCb","namedTerm","initialValue","checker","termA","termB","utils_datasource_1","fetch_sparql_endpoint_1","ActorQueryOperationSparqlEndpoint","endpointFetcher","SparqlEndpointFetcher","lastContext","DataSourceUtils","getSingleSource","httpRequests","getQueryType","executeQuery","booleanResult","fetchAsk","fetchTriples","fetchBindings","rawStream","rawData","quadStream","datasources","isEnded","datasourcesArray","actualType","getSingleSourceType","sparqlxml_parse_1","fetchCb","sparqlJsonParser","sparqlXmlParser","SparqlXmlParser","sparqlParsers","CONTENTTYPE_SPARQL_JSON","parseBooleanStream","parseJsonBooleanStream","parseResultsStream","CONTENTTYPE_SPARQL_XML","parseXmlBooleanStream","parseXmlResultsStream","parsedQuery","fetchRawStream","CONTENTTYPE_SPARQL","CONTENTTYPE_TURTLE","SparqlXmlBindingsTransformer_1","XmlNode","records","createSaxParser","prepareParserOptions","matchesTag","addChild","addText","concatText","descriptors","ctx","styleType","recurseTimes","primitive","simple","visibleKeys","braces","cur","numLinesEst","desc","ar","kCustomPromisifiedSymbol","callbackifyOnRejected","newReason","promisify","original","promiseResolve","promiseReject","callbackify","callbackified","maybeCb","rej","lastC","namespaces","prevTime","ms","formatter","logFn","ActorRdfDereference_1","dotIndex","mediaMappings","ActorRdfDereferenceHttpParseBase_1","ActorRdfDereferenceHttpParse","maxAcceptHeaderLengthBrowser","HtmlScriptListener_1","ActorRdfParseHtmlScript","supportedTypes","HtmlScriptListener","cbQuad","cbError","cbEnd","textChunks","textChunksJsonLd","passedScripts","isFinalJsonLdProcessing","onlyFirstScript","targetScriptId","newErrorCoded","requiresCustomJsonLdHandling","textStream","textChunksLocal","textChunk","ActorRdfJoinMultiSmallest","smallestId","smallestCount","entriesTotalItems","smallestIndex1","getSmallestPatternId","smallestItem1","smallestIndex2","smallestItem2","firstEntry","mediatorJoin","FederatedQuadSource_1","ActorRdfResolveQuadPatternFederated","getContextSources","sourcedEnded","currentSource","listenersAttached","sourceIterator","_checkClose","ActorQueryOperationQuadpattern","isTermVariable","variableElements","duplicateVariables","duplicateElementLinks","remainingElements","elementVariables","quadBindingsReducer","filteredOutput","getDuplicateElementLinks","element1","element2","RdfSourceQpf_1","ActorRdfResolveHypermediaQpf","searchForm","createSource","handledDatasets","RdfSourceQpf","mediatorMetadata","mediatorMetadataExtract","mediatorRdfDereference","subjectUri","predicateUri","objectUri","graphUri","initialQuads","cachedQuads","getSearchForm","wrappedQuads","reverseMapQuadsToDefaultGraph","cacheQuads","modifiedGraph","getCachedQuads","createFragmentUri","rdfDereferenceOutput","rdfMetadataOuput","actualDefaultGraph","getPatternId","quadsOriginal","LRUCache","MediatedQuadSource_1","ActorRdfResolveQuadPatternHypermedia","httpInvalidator","addInvalidateListener","hasContextSingleSource","contextSource","getContextSourceUrl","mediatorRdfResolveHypermedia","mediatorRdfResolveHypermediaLinks","inserted","pushNode","forEachReverse","getReverse","mapReverse","initial","reduceReverse","toArrayReverse","sliceReverse","deleteCount","LinkedRdfSourcesAsyncRdfIterator_1","LinkedRdfSourcesAsyncRdfIterator","handledUrls","nextUrls","started","getNextSourceCached","nextSource","getNextUrls","nextUrl","nextSourceState","startIterator","sourceState","getNextSource","startSource","emitMetadata","currentMetadata","bus_init_1","asyncreiterable_1","ActorInitSparql","ActorInit","contextKeyShortcuts","existingEntry","AsyncReiterableArray","fromFixedData","KEY_CONTEXT_QUERYFORMAT","KEY_CONTEXT_GRAPHQL_SINGULARIZEVARIABLES","mediatorContextPreprocess","queryParseOutput","mediatorSparqlParse","KEY_CONTEXT_INITIALBINDINGS","mediatorOptimizeQueryOperation","mediatorSparqlSerializeMediaTypeCombiner","mediatorSparqlSerializeMediaTypeFormatCombiner","queryResult","mediatorSparqlSerialize","mediatorHttpInvalidate","ALGEBRA_TYPES","terminate","initialData","fromInitialData","pushToIterator","ActorSparqlSerialize","__b16bnode132","https___linkedsoftwaredependencies_org_bundles_npm__comunica_bus_rdf_serialize_Bus_RdfSerialize","https___linkedsoftwaredependencies_org_bundles_npm__comunica_actor_sparql_serialize_stats_Actor_SparqlSerialize_Stats_httpObserver_default","https___linkedsoftwaredependencies_org_bundles_npm__comunica_actor_init_sparql__1_0_0_config_sets_rdf_serializers_json_myRdfSerializerN3","https___linkedsoftwaredependencies_org_bundles_npm__comunica_actor_init_sparql__1_0_0_config_sets_rdf_serializers_json_myRdfSerializeJsonLd","https___linkedsoftwaredependencies_org_bundles_npm__comunica_actor_init_sparql__1_0_0_config_sets_sparql_serializers_json_mediatorRdfSerialize","__b0bnode318","__b1bnode318","https___linkedsoftwaredependencies_org_bundles_npm__comunica_actor_init_sparql__1_0_0_config_sets_graphql_parsers_json_myGraphqlParser","__b0bnode312","__b1bnode312","https___linkedsoftwaredependencies_org_bundles_npm__comunica_actor_init_sparql__1_0_0_config_sets_sparql_serializers_json_myJsonSparqlSerializer","https___linkedsoftwaredependencies_org_bundles_npm__comunica_actor_init_sparql__1_0_0_config_sets_sparql_serializers_json_mySimpleSparqlSerializer","https___linkedsoftwaredependencies_org_bundles_npm__comunica_actor_init_sparql__1_0_0_config_sets_sparql_serializers_json_mySparqlJsonSparqlSerializer","https___linkedsoftwaredependencies_org_bundles_npm__comunica_actor_init_sparql__1_0_0_config_sets_sparql_serializers_json_mySparqlXmlSparqlSerializer","https___linkedsoftwaredependencies_org_bundles_npm__comunica_actor_init_sparql__1_0_0_config_sets_sparql_serializers_json_myTableSparqlSerializer","https___linkedsoftwaredependencies_org_bundles_npm__comunica_actor_init_sparql__1_0_0_config_sets_sparql_serializers_json_myTreeSparqlSerializer","https___linkedsoftwaredependencies_org_bundles_npm__comunica_actor_init_sparql__1_0_0_config_sets_http_memento_json_myHttpFetcher","https___linkedsoftwaredependencies_org_bundles_npm__comunica_actor_init_sparql__1_0_0_config_sets_sparql_serializers_json_myStatsSparqlSerializer","https___linkedsoftwaredependencies_org_bundles_npm__comunica_actor_init_sparql__1_0_0_config_sets_sparql_serializers_json_myRdfSparqlSerializer","https___linkedsoftwaredependencies_org_bundles_npm__comunica_actor_init_sparql__1_0_0_config_sets_http_json_myHttpProxy","Requester_1","ActorHttpNative","createUserAgent","requester","agentOptions","platform","createRequest","statusCode","redirected","responseUrl","UNSAFE_REQUEST_HEADERS","negotiatedResources","removeQuery","reqHeaders","requestProxy","resHeaders","headerMatcher","timegate","maxKeys","kstr","vstr","stringifyPrimitive","ks","punycode","Url","protocol","slashes","auth","host","port","hostname","pathname","urlParse","resolveObject","protocolPattern","portPattern","simplePathPattern","unwise","autoEscape","nonHostChars","hostEndingChars","hostnamePartPattern","hostnamePartStart","unsafeProtocol","hostlessProtocol","slashedProtocol","querystring","parseQueryString","slashesDenoteHost","queryIndex","splitter","uSplit","simplePath","lowerProto","atSign","hostEnd","hec","parseHost","ipv6Hostname","hostparts","newpart","validParts","notHost","toASCII","ae","esc","qm","tkeys","tk","tkey","rkeys","rk","rkey","relPath","isSourceAbs","isRelAbs","mustEndAbs","removeAllDots","srcPath","psychotic","authInHost","hasTrailingSlash","up","isAbsolute","maxInt","regexPunycode","regexNonASCII","regexSeparators","mapDomain","ucs2decode","extra","ucs2encode","digitToBasic","digit","flag","adapt","delta","numPoints","firstTime","baseMinusTMin","basic","oldi","baseMinusT","inputLength","bias","handledCPCount","basicLength","currentValue","handledCPCountPlusOne","qMinusT","ActionObserverHttp","requests","subscribeObserver","ActorSparqlSerializeStats","startTime","row","delay","httpObserver","hrtime","pushHeader","pushStat","pushFooter","bus_rdf_serialize_1","ActorRdfSerializeN3","ActorRdfSerializeFixedMediaTypes","n3Triples","StreamWriter","ActorRdfSerialize","ActorSparqlParseGraphql","graphqlToSparql","RdfString","ActorSparqlSerializeJson","ActorSparqlSerializeSimple","ActorSparqlSerializeSparqlJson","jsonValue","realBindings","bindingToJsonBindings","ActorSparqlSerializeSparqlXml","xmlValue","_attr","xlmns","declaration","bindingToXmlBindings","indent_count","indent_spaces","_elem","icount","indents","interrupt","isStringContent","get_attributes","escapeForXML","_cdata","proceed","interrupted","instant","standalone","XML_CHARACTER_MAP","ActorSparqlSerializeTable","padding","repeat","columnWidth","labels","ActorHttpMemento","KEY_CONTEXT_DATETIME","followLink","ActorSparqlSerializeRdf","mediatorMediaTypeCombiner","mediatorRdfSerialize","mediatorMediaTypeFormatCombiner","ActorHttpProxy","proxyHandler","KEY_CONTEXT_HTTPPROXYHANDLER","getProxy","requestedUrl","ProxyHandlerStatic","prefixUrl","modifyInput","ActorQueryOperationAsk","ActorQueryOperationService","forceSparqlEndpoint","ActorQueryOperationSlice","sliceMetadata","bindingsOutput","sliceStream","quadOutput","hasLength","ActorQueryOperationBgpSingle","ActorQueryOperationBgpLeftDeepSmallest","baseStream","patternBinder","bindingsMerger","subBindings","materializePatterns","patternOutputs","patternOutput","getTotalItems","smallestPattern","otherPatterns","otherPattern","materializePattern","bindingsOut","termPosition","materializedTerm","subPattern","hasOneEmptyPatternOutput","logDebug","remainingPatterns","remainingMetadatas","createLeftDeepStream","getCombinedVariables","estimateCombinedTotalItems","BindingsToQuadsIterator_1","ActorQueryOperationConstruct","BindingsToQuadsIterator","blankNodeCounter","boundTerm","bindTerm","localizeBlankNode","bindQuad","localizeQuad","bindTemplate","actor_query_operation_union_1","ActorQueryOperationDescribeSubject","operations","templatePattern","variablePatterns","getSafeQuads","ActorQueryOperationUnion","unionMetadata","unionVariables","actor_abstract_bindings_hash_1","ActorQueryOperationDistinctHash","AbstractBindingsHash","hashes","AbstractFilterHash_1","newHashFilter","pow2to35","H0","H1","H2","H3","H4","rotl","toHexStr","sha1","cmp","space","cycles","aobj","bobj","at","escapee","uffff","word","reviver","walk","gap","rep","escapable","partial","mind","sparqlee_1","ActorQueryOperationExtend","extendKey","getExpressionContext","extended","logWarn","Expressions_1","STR","_nextID","nextID","strValue","specificFormatters","jsExponential","jsMantisse","jsExponent","exponent","shouldBeCategory","Parsing_1","Helpers_1","onTerm1","collect","toFloat","onNumeric1","onBoolean1Typed","onUnary","toDouble","toDecimal","toInteger","toDatetime","toBoolean","_definitions","decimal_js_1","X","RDFTermEqual","_left","_right","regex2","regex3","parseDate","dateLit","arithmetic","Decimal","toNumber","onBinaryTyped","numberTest","stringTest","localeCompare","booleanTest","dateTimeTest","onLiteral1","onBinary","v4","onStringly1","startingLoc","onTernaryTyped","onTernary","onString1Typed","onLangString1","onStringly1Typed","encodeURI","langMatches","onQuaternaryTyped","onDateTime1","duration","formatDayTimeDuration","XSD_DAYTIME_DURATION","MD5","RIPEMD160","sha","alg","ARRAY16","fnF","fnG","fnH","fnI","zl","zr","sl","sr","fn1","fn2","fn3","fn4","fn5","words","cr","dr","algorithm","Algorithm","sha224","sha256","sha384","sha512","Sha","rotl30","ft","Sha1","rotl5","Sha224","SHA512","Sha384","CipherBase","hashMode","_finalOrDigest","__final","_encoding","inputEnc","outputEnc","outData","_toString","setAutoPadding","getAuthTag","setAuthTag","setAAD","fin","globalScope","inexact","quadrant","EXP_LIMIT","NUMERALS","LN10","PI","DEFAULTS","precision","rounding","modulo","toExpNeg","toExpPos","minE","maxE","invalidArgument","decimalError","mathfloor","mathpow","isBinary","isHex","isOctal","isDecimal","BASE","LN10_PRECISION","PI_PRECISION","digitsToString","ws","indexOfLastWord","getZeroString","checkInt32","checkRoundingDigits","rm","repeating","di","rd","convertBase","baseIn","baseOut","arrL","strL","absoluteValue","finalise","comparedTo","xdL","ydL","xd","yd","ys","cosine","cos","pr","sd","tinyPow","taylorSeries","cos2x","plus","toLessThanHalfPi","cubeRoot","cbrt","t3","t3plusx","isZero","divide","decimalPlaces","dp","dividedBy","dividedToIntegerBy","divToInt","greaterThan","gt","greaterThanOrEqualTo","gte","hyperbolicCosine","cosh","one","cosh2_x","d8","hyperbolicSine","sinh","sqrt","sinh2_x","d5","d16","d20","hyperbolicTangent","tanh","inverseCosine","acos","halfPi","isNeg","getPi","asin","inverseHyperbolicCosine","acosh","lte","ln","inverseHyperbolicSine","asinh","inverseHyperbolicTangent","atanh","wpr","inverseSine","atan","inverseTangent","px","x2","isInt","isNegative","isPositive","isPos","lessThan","lt","lessThanOrEqualTo","logarithm","isBase10","denominator","inf","naturalLogarithm","getLn10","xe","xLTy","getBase10Exponent","naturalExponential","negated","getPrecision","sine","sin","sin2_x","squareRoot","tangent","tan","rL","toBinary","toStringBinary","toDecimalPlaces","toDP","finiteToString","toFraction","maxD","d0","d1","d2","n0","n1","toHexadecimal","toNearest","toOctal","toPower","yn","intPow","toPrecision","toSignificantDigits","toSD","truncated","trunc","multiplyInteger","temp","aL","bL","logBase","prod","prodL","qd","remL","rem0","xi","xL","yd0","yL","yz","sign","isTruncated","digits","roundUp","xdi","isExp","nonFiniteToString","zs","isOdd","maxOrMin","ltgt","c0","numerator","x1","parseDecimal","parseOther","divisor","isFloat","isHyperbolic","pi","atan2","useDefaults","ps","randomBytes","hypot","isDecimalInstance","log2","log10","Uint32Array","ROUND_UP","ROUND_DOWN","ROUND_CEIL","ROUND_FLOOR","ROUND_HALF_UP","ROUND_HALF_DOWN","ROUND_HALF_EVEN","ROUND_HALF_CEIL","ROUND_HALF_FLOOR","EUCLID","_isWildCard","_matchLangTag","reg","langTags","rangeTags","lI","rI","h1Raw","h2Raw","m1Raw","m2Raw","m1","m2","URI","index_1","_bound","BOUND","langAllEqual","lits","IRI","IRI_","BNODE_","_specialDefinitions","valFirst","leftExpr","rightExpr","leftTerm","leftErr","inRecursiveAsync","EQUAL","inRecursiveSync","_in","IN","isIn","pLits","pTerm","CONCAT","strInput","BNODE","sets","subexp","typeOf","buildExps","isIRI","HEXDIG$$","PCT_ENCODED$","SUB_DELIMS$$","RESERVED$$","IPRIVATE$$","UNRESERVED$$","SCHEME$","USERINFO$","DEC_OCTET_RELAXED$","IPV4ADDRESS$","H16$","LS32$","IPV6ADDRESS1$","IPV6ADDRESS2$","IPV6ADDRESS3$","IPV6ADDRESS4$","IPV6ADDRESS5$","IPV6ADDRESS6$","IPV6ADDRESS7$","IPV6ADDRESS8$","IPV6ADDRESS9$","IPV6ADDRESS$","ZONEID$","IPV6ADDRZ_RELAXED$","IPVFUTURE$","IP_LITERAL$","REG_NAME$","HOST$","PORT$","DIGIT$$","AUTHORITY$","PCHAR$","SEGMENT$","SEGMENT_NZ$","SEGMENT_NZ_NC$","PATH_ABEMPTY$","PATH_ABSOLUTE$","PATH_NOSCHEME$","PATH_ROOTLESS$","PATH_EMPTY$","QUERY$","FRAGMENT$","HIER_PART$","URI$","RELATIVE_PART$","RELATIVE$","NOT_SCHEME","NOT_USERINFO","NOT_HOST","NOT_PATH","NOT_PATH_NOSCHEME","NOT_QUERY","NOT_FRAGMENT","ESCAPE","UNRESERVED","OTHER_CHARS","PCT_ENCODED","IPV4ADDRESS","IPV6ADDRESS","URI_PROTOCOL","IRI_PROTOCOL","slicedToArray","_n","_s","sliceIterator","error$1","encoded","_iteratorNormalCompletion","_didIteratorError","_iteratorError","_currentValue2","_iteratorNormalCompletion2","_didIteratorError2","_iteratorError2","_step2","_iterator2","_iteratorNormalCompletion3","_didIteratorError3","_iteratorError3","_step3","_iterator3","_currentValue","SCHEMES","pctEncChar","pctDecChars","newStr","il","c2","c3","_normalizeComponentEncoding","components","decodeUnreserved","decStr","scheme","userinfo","fragment","_stripLeadingZeros","_normalizeIPv4","_normalizeIPv6","_matches2","zone","_address$toLowerCase$","_address$toLowerCase$2","firstFields","lastFields","isLastFieldIPv4Address","fieldCount","lastFieldsStart","fields","longestZeroFields","lastLongest","newHost","newFirst","newLast","URI_PARSE","NO_MATCH_IS_UNDEFINED","reference","schemeHandler","unicodeSupport","domainHost","_recomposeAuthority","uriTokens","$2","RDS1","RDS2","RDS3","RDS5","im","authority","absolutePath","resolveComponents","skipNormalization","tolerant","unescapeComponent","handler$1","O","VCHAR$$","NOT_LOCAL_PART","NOT_HFNAME","NOT_HFVALUE","handler$2","mailtoComponents","unknownHeaders","hfields","hfield","toAddrs","_x","_xl","_x2","_xl2","addr","toAddr","atIdx","localPart","domain","URN_PARSE","handler$3","urnComponents","nid","nss","urnScheme","uriComponents","UUID","handler$4","uuidComponents","baseURI","relativeURI","schemelessOptions","uriA","uriB","escapeComponent","throwError","emptyValue","put","__put","__result","safeThrow","startTerm","BaseAggregator","extractNumericValueAndTypeOrError","summer","ADDITION","internalTerm","minNum","minTerm","maxNum","maxTerm","avg","divider","DIVISION","group_concat","sample","LRU","ActorQueryOperationReducedHash","ActorQueryOperationFilterSparqlee","evaluateAsEBV","ActorQueryOperationFromQuad","recursiveCb","copiedOperation","defaultGraphs","joinOperations","bgps","unionOperations","copyOperation","subOperation","applyOperationDefaultGraph","namedGraphs","patternGraph","applyOperationNamedGraph","namedGraph","createOperation","reTrim","reIsBadHex","reIsBinary","reIsOctal","freeParseInt","findIndexFunc","toFinite","GroupsState_1","ActorQueryOperationGroup","sparqleeConfig","GroupsState","collectResults","consumeBindings","groupVariables","distinctHashes","groupHash","hashBindings","bindingsHash","rows","groupBindings","aggBindings","ActorQueryOperationJoin","ActorQueryOperationLeftJoinLeftDeep","leftStream","rightOperation","operationBinder","SortIterator_1","ActorQueryOperationOrderBySparqlee","extractSortExpression","isAscending","transformedStream","sortedStream","SortIterator","orderA","orderB","windowLength","sorted","mid","ActorQueryOperationProject","deleteVariables","missingVariables","deleteVariable","missingVariable","BindingsIndex_1","ActorQueryOperationMinus","commons","getCommonVariables","BindingsIndex","array1","array2","isBindingsValid","dataIt","dataKey","hashTerm","subDataIt","containsRecursive","validKeys","dataIndexes","subDatas","actor_abstract_path_1","ActorQueryOperationPathAlt","subOperations","ActorQueryOperationPathInv","invPath","ActorQueryOperationPathLink","ActorQueryOperationPathNps","blankName","ActorQueryOperationPathOneOrMore","sVar","oVar","ActorQueryOperationPathSeq","ActorQueryOperationPathZeroOrMore","pred","ALPeval","ActorAbstractPath_1","ActorQueryOperationPathZeroOrOne","iterableToArray","_asyncIterator","getFirstItem","DataHandler","dataProperties","_isAsync","_isFunction","_dataProperties","pathData","_resolveDataPath","_resolveAsyncDataPath","_resolveSyncDataPath","lazyThenable","createPromise","getThen","onResolved","toIterablePromise","memoizeIterable","finally","isAsyncIterable","isPlainObject","hasPlainObjectArgs","allowMultiple","hasPlainObject","mutationType","allowZeroArgs","_mutationType","_allowZeroArgs","mutationExpressions","createMutationExpressions","extendPath","createMutationExpression","predicateObjects","pathExpression","extractObjects","_awaitAsyncGenerator","_AwaitValue","_AsyncGenerator","gen","front","back","wrappedAwait","settle","_invoke","throw","VARIABLE","QUERY_TAIL","SortHandler","pathProxy","childData","childPath","NEEDS_ESCAPE","ESCAPE_ALL","ESCAPED_CHARS","SparqlHandler","mutationExpressionToQuery","pathExpressionToQuery","finalClause","queryVar","sorts","clauses","createVar","expressionToTriplePatterns","orderClauses","lastPredicate","mutations","objectStrings","triplePatterns","mutationClauses","lastVar","skolemId","skolemize","allowValues","segment","suggestion","escapeCharacter","subjectString","predicateTerm","subjectStrings","readProperties","wrapSingleValues","_handle","parsedContext","compactIri","segments","resultsCache","execute","extractTerm","sortDesc","preload","createResultsCache","resultVar","createQuery","propertyCaches","propertyCache","resultData","valuePath","parentQuery","variableMatch","preloadClauses","previousPath","newValues","termPropertyHandler","canonical","syncFunction","toPrimitive","termTypes","datatypes","languages","ldflex","subjectValue","_objectWithoutProperties","excluded","sourceKeys","_objectWithoutPropertiesLoose","sourceSymbolKeys","EMPTY","PathProxy","resolvers","_handlers","_resolvers","Proxy","newData","supports","_context","extendContext","expandProperty","getResultsCache","expandedProperty","_settings","_data","defaultHandlers","toHandler","toResolver","_pathProxy","_wrapAsyncGenerator","as","ActivityHandler","activitiesPath","requireUser","user","pim$storage","activity","_value2","createResults","processResults","replaceVariables","asList","SubjectPathResolver","pathFactory","_paths","_createSubjectPath","createQueryEngine","SourcePathHandler","PathFactory","UserPathHandler","getWebId","session","currentSession","webId","contextResolver","JSONLDResolver","exposedContext","_exposedContext","subjectHandlers","DeleteFunctionHandler","findActivity","likes","dislikes","follows","createActivity","uuidv4","published","executeUpdate","like","dislike","follow","deleteActivity","unlike","undislike","unfollow","SolidUpdateEngine","baseEngine","getUpdateSource","_engine","inner","awaitWrap","waiting","pump","_asyncGeneratorDelegate","clearCache","defaultSource","_sources","parseSources","streamToAsyncIterable","flattenAsync","pendingError","readNext","yieldValue","pending","invalidateHttpCache","defaultSettings","rootPath","subjectPathFactory","doc","ComunicaEngine"],"mappings":"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AI,KAAKC,EAAI,CAAC,GAAG,GAAG,IAAI,IAAI,KAAKC,EAAI,CAAC,EAAE,IAAIC,EAAI,CAAC,EAAE,IAAIC,EAAI,CAAC,EAAE,IAAIC,EAAI,CAAC,IAAI,IAAI,IAAI,IAAI,KAAKC,EAAI,CAAC,GAAG,GAAG,IAAI,IAAI,IAAI,KAAKC,EAAI,CAAC,EAAE,KAAKC,EAAI,CAAC,EAAE,KAAKC,EAAI,CAAC,EAAE,IAAIC,EAAI,CAAC,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,KAAKC,EAAI,CAAC,EAAE,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,IAAIC,EAAI,CAAC,EAAE,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,KAAKC,EAAI,CAAC,EAAE,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,KAAKC,EAAI,CAAC,GAAG,GAAG,GAAG,GAAG,IAAIC,EAAI,CAAC,GAAG,GAAG,GAAG,GAAG,GAAG,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,KAAKC,EAAI,CAAC,EAAE,KAAKC,EAAI,CAAC,EAAE,KAAKC,EAAI,CAAC,EAAE,KAAKC,EAAI,CAAC,EAAE,KAAKC,EAAI,CAAC,EAAE,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,KAAKC,EAAI,CAAC,EAAE,KAAKC,EAAI,CAAC,EAAE,KAAKC,EAAI,CAAC,EAAE,KAAKC,EAAI,CAAC,EAAE,KAAKC,EAAI,CAAC,EAAE,KAAKC,EAAI,CAAC,EAAE,KAAKC,EAAI,CAAC,GAAG,KAAKC,EAAI,CAAC,EAAE,GAAG,GAAG,GAAG,GAAG,IAAIC,EAAI,CAAC,EAAE,KAAKC,EAAI,CAAC,EAAE,KAAKC,EAAI,CAAC,EAAE,KAAKC,EAAI,CAAC,EAAE,GAAG,GAAG,GAAG,GAAG,GAAG,IAAIC,EAAI,CAAC,EAAE,KAAKC,EAAI,CAAC,EAAE,KAAKC,EAAI,CAAC,EAAE,KAAKC,GAAI,CAAC,EAAE,KAAKC,GAAI,CAAC,EAAE,KAAKC,GAAI,CAAC,EAAE,KAAKC,GAAI,CAAC,EAAE,KAAKC,GAAI,CAAC,EAAE,KAAKC,GAAI,CAAC,EAAE,KAAKC,GAAI,CAAC,EAAE,KAAKC,GAAI,CAAC,EAAE,KAAKC,GAAI,CAAC,EAAE,KAAKC,GAAI,CAAC,EAAE,KAAKC,GAAI,CAAC,EAAE,KAAKC,GAAI,CAAC,EAAE,KAAKC,GAAK,CAAC,EAAE,KAAKC,GAAK,CAAC,EAAE,KAAKC,GAAK,CAAC,EAAE,KAAKC,GAAK,CAAC,EAAE,KAAKC,GAAK,CAAC,EAAE,KAAKC,GAAK,CAAC,EAAE,KAAKC,GAAK,CAAC,EAAE,KAAKC,GAAK,CAAC,EAAE,GAAG,GAAG,GAAG,GAAG,GAAG,IAAIC,GAAK,CAAC,GAAG,GAAG,IAAI,IAAI,KAAKC,GAAK,CAAC,GAAG,GAAG,IAAI,IAAI,IAAI,KAAKC,GAAK,CAAC,GAAG,GAAG,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,KAAKC,GAAK,CAAC,GAAG,GAAG,GAAG,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,KAAKC,GAAK,CAAC,EAAE,KAAKC,GAAK,CAAC,EAAE,KAAKC,GAAK,CAAC,EAAE,KAAKC,GAAK,CAAC,EAAE,KAAKC,GAAK,CAAC,EAAE,KAAKC,GAAK,CAAC,EAAE,KAAKC,GAAK,CAAC,EAAE,KAAKC,GAAK,CAAC,EAAE,KAAKC,GAAK,CAAC,EAAE,KAAKC,GAAK,CAAC,EAAE,KAAKC,GAAK,CAAC,EAAE,KAAKC,GAAK,CAAC,EAAE,KAAKC,GAAK,CAAC,EAAE,KAAKC,GAAK,CAAC,EAAE,KAAKC,GAAK,CAAC,EAAE,KAAKC,GAAK,CAAC,EAAE,KAAKC,GAAK,CAAC,EAAE,KAAKC,GAAK,CAAC,EAAE,KAAKC,GAAK,CAAC,GAAG,GAAG,GAAG,GAAG,GAAG,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,KAAKC,GAAK,CAAC,GAAG,IAAIC,GAAK,CAAC,GAAG,IAAIC,GAAK,CAAC,EAAE,IAAI,KAAKC,GAAK,CAAC,GAAG,KAAKC,GAAK,CAAC,EAAE,GAAG,GAAG,GAAG,IAAIC,GAAK,CAAC,EAAE,KAAKC,GAAK,CAAC,EAAE,KAAKC,GAAK,CAAC,EAAE,KAAKC,GAAK,CAAC,EAAE,KAAKC,GAAK,CAAC,GAAG,IAAI,KAAKC,GAAK,CAAC,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,KAAKC,GAAK,CAAC,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,KAAKC,GAAK,CAAC,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,KAAKC,GAAK,CAAC,GAAG,GAAG,GAAG,GAAG,GAAG,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,KAAKC,GAAK,CAAC,EAAE,KAAKC,GAAK,CAAC,EAAE,KAAKC,GAAK,CAAC,EAAE,KAAKC,GAAK,CAAC,EAAE,KAAKC,GAAK,CAAC,EAAE,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,KAAKC,GAAK,CAAC,EAAE,KAAKC,GAAK,CAAC,EAAE,KAAKC,GAAK,CAAC,GAAG,IAAIC,GAAK,CAAC,EAAE,KAAKC,GAAK,CAAC,EAAE,KAAKC,GAAK,CAAC,EAAE,GAAG,IAAIC,GAAK,CAAC,EAAE,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,KAAKC,GAAK,CAAC,EAAE,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,KAAKC,GAAK,CAAC,GAAG,GAAG,GAAG,IAAI,IAAI,IAAI,IAAI,IAAI,KAAKC,GAAK,CAAC,EAAE,KAAKC,GAAK,CAAC,EAAE,KAAKC,GAAK,CAAC,EAAE,KAAKC,GAAK,CAAC,EAAE,KAAKC,GAAK,CAAC,GAAG,IAAI,IAAI,IAAI,KAAKC,GAAK,CAAC,EAAE,KAAKC,GAAK,CAAC,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,KAAKC,GAAK,CAAC,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,KAAKC,GAAK,CAAC,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,KAAKC,GAAK,CAAC,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,KAAKC,GAAK,CAAC,GAAG,IAAIC,GAAK,CAAC,EAAE,KAAKC,GAAK,CAAC,EAAE,KAAKC,GAAK,CAAC,EAAE,KAAKC,GAAK,CAAC,EAAE,KAAKC,GAAK,CAAC,EAAE,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,KAAKC,GAAK,CAAC,GAAG,GAAG,GAAG,IAAI,IAAI,IAAI,KAAKC,GAAK,CAAC,EAAE,KAAKC,GAAK,CAAC,EAAE,KAAKC,GAAK,CAAC,GAAG,GAAG,GAAG,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,KAAKC,GAAK,CAAC,EAAE,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,KAAKC,GAAK,CAAC,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,KAAKC,GAAK,CAAC,EAAE,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,KAAKC,GAAK,CAAC,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,KAAKC,GAAK,CAAC,GAAG,GAAG,GAAG,KAAKC,GAAK,CAAC,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,KAAKC,GAAK,CAAC,EAAE,KAAKC,GAAK,CAAC,GAAG,GAAG,GAAG,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,KAAKC,GAAK,CAAC,EAAE,KAAKC,GAAK,CAAC,GAAG,GAAG,GAAG,IAAI,IAAI,KAAKC,GAAK,CAAC,GAAG,GAAG,GAAG,GAAG,GAAG,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,KAAKC,GAAK,CAAC,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,KAAKC,GAAK,CAAC,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,KAAKC,GAAK,CAAC,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,KAAKC,GAAK,CAAC,EAAE,KAAKC,GAAK,CAAC,EAAE,KAAKC,GAAK,CAAC,EAAE,KAAKC,GAAK,CAAC,GAAG,GAAG,GAAG,IAAI,IAAI,KAC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AC,IAAI,GAAG,CAAC,GAAG,GAAG,CAAC,GAAG,GAAG,CAAC,IAAI,GAAG,CAAC,IAAI,GAAG,CAAC,IAAI,GAAG,CAAC,IAAI,GAAG,CAAC,IAAI,GAAG,CAAC,IAAI,GAAG,CAAC,IAAI,GAAG,CAAC,IAAI,GAAG,CAAC,IAAI,GAAG,CAAC,IAAI,GAAG,CAAC,IAAI,GAAG,CAAC,GAAG,GAAG,CAAC,GAAG,GAAG,CAAC,GAAG,GAAG,CAAC,GAAG,GAAG,CAAC,GAAG,GAAG,CAAC,IAAI,GAAG,CAAC,IAAI,GAAG,CAAC,GAAG,GAAG,CAAC,IAAI,GAAG,CAAC,IAAI,GAAG,CAAC,IAAI,GAAG,CAAC,IAAI,GAAG,CAAC,IAAI,GAAG,CAAC,IAAI,GAAG,CAAC,IAAI,GAAG,CAAC,IAAI,GAAG,CAAC,IAAI,GAAG,CAAC,IAAI,GAAG,CAAC,IAAI,GAAG,CAAC,IAAI,GAAG,CAAC,IAAI,GAAG,CAAC,IAAI,GAAG,CAAC,IAAI,GAAG,CAAC,IAAI,GAAG,CAAC,IAAI,GAAG,CAAC,IAAI,GAAG,CAAC,IAAI,GAAG,CAAC,IAAI,GAAG,CAAC,IAAI,GAAG,CAAC,IAAI,GAAG,CAAC,IAAI,GAAG,CAAC,IAAI,GAAG,CAAC,IAAI,GAAG,CAAC,IAAI,GAAG,CAAC,IAAI,GAAG,CAAC,IAAI,GAAG,CAAC,IAAI,GAAG,CAAC,IAAI,GAAG,CAAC,IAAI,GAAG,CAAC,IAAI,GAAG,CAAC,IAAI,GAAG,CAAC,IAAI,GAAG,CAAC,IAAI,GAAG,CAAC,IAAI,GAAG,CAAC,IAAI,GAAG,CAAC,IAAI,GAAG,CAAC,IAAI,GAAG,CAAC,IAAI,GAAG,CAAC,IAAI,GAAG,CAAC,IAAI,GAAG,CAAC,IAAI,GAAG,CAAC,IAAI,GAAG,CAAC,IAAI,GAAG,CAAC,GAAG,GAAG,CAAC,IAAI,GAAG,CAAC,IAAI,GAAG,CAAC,IAAI,GAAG,CAAC,IAAI,GAAG,CAAC,IAAI,GAAG,CAAC,IAAI,GAAG,CAAC,IAAI,GAAG,CAAC,IAAI,GAAG,CAAC,IAAI,GAAG,CAAC,IAAI,GAAG,CAAC,IAAI,GAAG,CAAC,IAAI,GAAG,CAAC,IAAI,GAAG,CAAC,IAAI,GAAG,CAAC,IAAI,GAAG,CAAC,IAAI,GAAG,CAAC,IAAI,GAAG,CAAC,IAAI,GAAG,CAAC,IAAI,GAAG,CAAC,IAAI,GAAG,CAAC,IAAI,GAAG,CAAC,GAAG,GAAG,CAAC,GAAG,GAAG,CAAC,GAAG,GAAG,CAAC,GAAG,GAAG,CAAC,GAAG,GAAG,CAAC,GAAG,GAAG,CAAC,GAAG,GAAG,CAAC,GAAG,GAAG,CAAC,GAAG,GAAG,CAAC,GAAG,GAAG,CAAC,GAAG,GAAG,CAAC,IAAI,GAAG,CAAC,IAAI,GAAG,CAAC,IAAI,GAAG,CAAC,IAAI,GAAG,CAAC,GAAG,GAAG,CAAC,GAAG,GAAG,CAAC,GAAG,GAAG,CAAC,GAAG,GAAG,CAAC,GAAG,GAAG,CAAC,GAAG,GAAG,CAAC,GAAG,GAAG,CAAC,GAAG,GAAG,CAAC,GAAG,GAAG,CAAC,IAAI,GAAG,CAAC,IAAI,GAAG,CAAC,IAAI,GAAG,CAAC,IAAI,GAAG,CAAC,IAAI,GAAG,CAAC,IAAI,GAAG,CAAC,IAAI,GAAG,CAAC,IAAI,GAAG,CAAC,IAAI,GAAG,CAAC,IAAI,GAAG,CAAC,GAAG,GAAG,CAAC,GAAG,GAAG,CAAC,GAAG,GAAG,CAAC,IAAI,GAAG,CAAC,IAAI,GAAG,CAAC,EAAE,GAAG,CAAC,EAAE,GAAG,CAAC,IAAI,GAAG,CAAC,IAAI,GAAG,CAAC,EAAE,GAAG,CAAC,EAAE,GAAG,CAAC,EAAE,GAAG,CAAC,EAAE,GAAG,CAAC,EAAE,GAAG,CAAC,EAAE,GAAG,CAAC,GAAG,GAAG,CAAC,GAAG,GAAG,CAAC,GAAG,GAAG,CAAC,GAAG,GAAG,CAAC,GAAG,GAAG,CAAC,GAAG,GAAG,CAAC,GAAG,GAAG,CAAC,GAAG,GAAG,CAAC,IAAI,GAAG,CAAC,IAAI,GAAG,CAAC,GAAG,GAAG,CAAC,GAAG,GAAG,CAAC,GAAG,GAAG,CAAC,GAAG,GAAG,CAAC,GAAG,GAAG,CAAC,GAAG,GAAG,CAAC,GAAG,GAAG,CAAC,GAAG,GAAG,CAAC,GAAG,GAAG,CAAC,GAAG,GAAG,CAAC,GAAG,GAAG,CAAC,GAAG,GAAG,CAAC,IAAI,GAAG,CAAC,IAAI,GAAG,CAAC,IAAI,GAAG,CAAC,IAAI,GAAG,CAAC,GAAG,GAAG,CAAC,GAAG,GAAG,CAAC,GAAG,GAAG,CAAC,GAAG,GAAG,CAAC,GAAG,GAAG,CAAC,GAAG,GAAG,CAAC,GAAG,GAAG,CAAC,GAAG,GAAG,CAAC,GAAG,GAAG,CAAC,GAAG,GAAG,CAAC,GAAG,GAAG,CAAC,GAAG,GAAG,CAAC,GAAG,GAAG,CAAC,GAAG,GAAG,CAAC,GAAG,GAAG,CAAC,GAAG,GAAG,CAAC,GAAG,GAAG,CAAC,GAAG,GAAG,CAAC,GAAG,GAAG,CAAC,GAAG,GAAG,CAAC,GAAG,GAAG,CAAC,GAAG,GAAG,CAAC,GAAG,GAAG,CAAC,GAAG,GAAG,CAAC,GAAG,GAAG,CAAC,GAAG,GAAG,CAAC,GAAG,GAAG,CAAC,GAAG,GAAG,CAAC,GAAG,GAAG,CAAC,GAAG,GAAG,CAAC,GAAG,GAAG,CAAC,GAAG,GAAG,CAAC,GAAG,GAAG,CAAC,GAAG,GAAG,CAAC,IAAI,GAAG,CAAC,IAAI,GAAG,CAAC,IAAI,GAAG,CAAC,IAAI,GAAG,CAAC,IAAI,GAAG,CAAC,IAAI,GAAG,CAAC,IAAI,GAAG,CAAC,IAAI,GAAG,CAAC,IAAI,GAAG,CAAC,IAAI,GAAG,CAAC,IAAI,GAAG,CAAC,IAAI,GAAG,CAAC,IAAI,GAAG,CAAC,IAAI,GAAG,CAAC,IAAI,GAAG,CAAC,IAAI,GAAG,CAAC,IAAI,GAAG,CAAC,IAAI,GAAG,CAAC,IAAI,GAAG,CAAC,IAAI,GAAG,CAAC,IAAI,GAAG,CAAC,IAAI,GAAG,CAAC,IAAI,GAAG,CAAC,IAAI,GAAG,CAAC,IAAI,GAAG,CAAC,IAAI,GAAG,CAAC,IAAI,GAAG,CAAC,IAAI,GAAG,CAAC,IAAI,GAAG,CAAC,IAAI,GAAG,CAAC,IAAI,GAAG,CAAC,IAAI,GAAG,CAAC,IAAI,GAAG,CAAC,IAAI,GAAG,CAAC,IAAI,GAAG,CAAC,IAAI,GAAG,CAAC,IAAI,GAAG,CAAC,IAAI,GAAG,CAAC,IAAI,GAAG,CAAC,IAAI,GAAG,CAAC,IAAI,GAAG,CAAC,IAAI,GAAG,CAAC,IAAI,GAAG,CAAC,IAAI,GAAG,CAAC,IAAI,GAAG,CAAC,IAAI,GAAG,CAAC,IAAI,GAAG,CAAC,IAAI,GAAG,CAAC,IAAI,GAAG,CAAC,IAAI,GAAG,CAAC,IAAI,GAAG,CAAC,IAAI,GAAG,CAAC,IAAI,GAAG,CAAC,IAAI,GAAG,CAAC,IAAI,GAAG,CAAC,IAAI,GAAG,CAAC,IAAI,GAAG,CAAC,IAAI,GAAG,CAAC,IAAI,GAAG,CAAC,IAAI,GAAG,CAAC,IAAI,GAAG,CAAC,IAAI,GAAG,CAAC,IAAI,GAAG,CAAC,IAAI,GAAG,CAAC,IAAI,GAAG,CAAC,IAAI,GAAG,CAAC,IAAI,GAAG,CAAC,IAAI,GAAG,CAAC,IAAI,GAAG,CAAC,IAAI,GAAG,CAAC,IAAI,GAAG,CAAC,IAAI,GAAG,CAAC,IAAI,GAAG,CAAC,IAAI,GAAG,CAAC,IAAI,GAAG,CAAC,IAAI,GAAG,CAAC,IAAI,GAAG,CAAC,IAAI,GAAG,CAAC,IAAI,GAAG,CAAC,IAAI,GAAG,CAAC,IAAI,GAAG,CAAC,IAAI,GAAG,CAAC,IAAI,GAAG,CAAC,IAAI,GAAG,CAAC,IAAI,GAAG,CAAC,IAAI,GAAG,CAAC,IAAI,GAAG,CAAC,IAAI,GAAG,CAAC,IAAI,GAAG,CAAC,IAAI,GAAG,CAAC,IAAI,GAAG,CAAC,IAAI,GAAG,CAAC,IAAI,GAAG,CAAC,IAAI,GAAG,CAAC,IAAI,GAAG,CAAC,IAAI,GAAG,CAAC,IAAI,GAAG,CAAC,IAAI,GAAG,CAAC,IAAI,GAAG,CAAC,IAAI,GAAG,CAAC,IAAI,GAAG,CAAC,IAAI,GAAG,CAAC,IAAI,GAAG,CAAC,IAAI,GAAG,CAAC,IAAI,GAAG,CAAC,IAAI,GAAG,CAAC,IAAI,GAAG,CAAC,IAAI,GAAG,CAAC,IAAI,GAAG,CAAC,IAAI,GAAG,CAAC,IAAI,GAAG,CAAC,IAAI,GAAG,CAAC,IAAI,GAAG,CAAC,IAAI,GAAG,CAAC,IAAI,GAAG,CAAC,IAAI,GAAG,CAAC,IAAI,GAAG,CAAC,IAAI,GAAG,CAAC,IAAI,GAAG,CAAC,IAAI,GAAG,CAAC,IAAI,GAAG,CAAC,IAAI,GAAG,CA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KAAK,EAAE,OAAO,GAEd,KAAK,EAAE,OAAO,GAEd,KAAK,EAAE,OAAO,IAEd,KAAK,EAAE,OAAO,IAEd,KAAK,EAAE,OAAO,GAEd,KAAK,EAAE,OAAO,GAEd,KAAK,EAAE,OAAO,GAEd,KAAK,EAAE,OAAO,GAEd,KAAK,GAAG,OAAO,GAEf,KAAK,GAAG,OAAO,GAEf,KAAK,GAAG,OAAO,GAEf,KAAK,GAAG,OAAO,GAEf,KAAK,GAAG,OAAO,GAEf,KAAK,GAAG,OAAO,GAEf,KAAK,GAAG,OAAO,GAEf,KAAK,GAAG,OAAO,IAEf,KAAK,GAAG,OAAO,GAEf,KAAK,GAAG,OAAO,GAEf,KAAK,GAAG,OAAO,GAEf,KAAK,GAAG,OAAO,GAEf,KAAK,GAAG,OAAO,GAEf,KAAK,GAAG,OAAO,GAEf,KAAK,GAAG,OAAO,GAEf,KAAK,GAAG,OAAO,GAEf,KAAK,GAAG,OAAO,GAEf,KAAK,GAAG,OAAO,IAEf,KAAK,GAAG,OAAO,IAEf,KAAK,GAAG,OAAO,IAEf,KAAK,GAAG,OAAO,IAEf,KAAK,GAAG,OAAO,IAEf,KAAK,GAAG,OAAO,IAEf,KAAK,GAAG,OAAO,IAEf,KAAK,GAAG,OAAO,IAEf,KAAK,GAAG,OAAO,IAEf,KAAK,GAAG,OAAO,IAEf,KAAK,GAAG,OAAO,IAEf,KAAK,GAAG,OAAO,IAEf,KAAK,GAAG,OAAO,IAEf,KAAK,GAAG,OAAO,IAEf,KAAK,GAAG,OAAO,IAEf,KAAK,GAAG,OAAO,IAEf,KAAK,GAAG,OAAO,IAEf,KAAK,GAAG,OAAO,IAEf,KAAK,GAAG,OAAO,IAEf,KAAK,GAAG,OAAO,IAEf,KAAK,GAAG,OAAO,IAEf,KAAK,GAAG,OAAO,IAEf,KAAK,GAAG,OAAO,IAEf,KAAK,GAAG,OAAO,IAEf,KAAK,GAAG,OAAO,IAEf,KAAK,GAAG,OAAO,GAEf,KAAK,GAAG,OAAO,IAEf,KAAK,GAAG,OAAO,IAEf,KAAK,GAAG,OAAO,IAEf,KAAK,GAAG,OAAO,IAEf,KAAK,GAAG,OAAO,IAEf,KAAK,GAAG,OAAO,IAEf,KAAK,GAAG,OAAO,IAEf,KAAK,GAAG,OAAO,IAEf,KAAK,GAAG,OAAO,IAEf,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","file":"solid-query-ldflex.bundle.js","sourcesContent":[" \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 \t\t}\n \t\t// Create a new module (and put it into the cache)\n \t\tvar module = installedModules[moduleId] = {\n \t\t\ti: moduleId,\n \t\t\tl: false,\n \t\t\texports: {}\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.l = 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// define getter function for harmony exports\n \t__webpack_require__.d = function(exports, name, getter) {\n \t\tif(!__webpack_require__.o(exports, name)) {\n \t\t\tObject.defineProperty(exports, name, { enumerable: true, get: getter });\n \t\t}\n \t};\n\n \t// define __esModule on exports\n \t__webpack_require__.r = function(exports) {\n \t\tif(typeof Symbol !== 'undefined' && Symbol.toStringTag) {\n \t\t\tObject.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });\n \t\t}\n \t\tObject.defineProperty(exports, '__esModule', { value: true });\n \t};\n\n \t// create a fake namespace object\n \t// mode & 1: value is a module id, require it\n \t// mode & 2: merge all properties of value into the ns\n \t// mode & 4: return value when already ns object\n \t// mode & 8|1: behave like require\n \t__webpack_require__.t = function(value, mode) {\n \t\tif(mode & 1) value = __webpack_require__(value);\n \t\tif(mode & 8) return value;\n \t\tif((mode & 4) && typeof value === 'object' && value && value.__esModule) return value;\n \t\tvar ns = Object.create(null);\n \t\t__webpack_require__.r(ns);\n \t\tObject.defineProperty(ns, 'default', { enumerable: true, value: value });\n \t\tif(mode & 2 && typeof value != 'string') for(var key in value) __webpack_require__.d(ns, key, function(key) { return value[key]; }.bind(null, key));\n \t\treturn ns;\n \t};\n\n \t// getDefaultExport function for compatibility with non-harmony modules\n \t__webpack_require__.n = function(module) {\n \t\tvar getter = module && module.__esModule ?\n \t\t\tfunction getDefault() { return module['default']; } :\n \t\t\tfunction getModuleExports() { return module; };\n \t\t__webpack_require__.d(getter, 'a', getter);\n \t\treturn getter;\n \t};\n\n \t// Object.prototype.hasOwnProperty.call\n \t__webpack_require__.o = function(object, property) { return Object.prototype.hasOwnProperty.call(object, property); };\n\n \t// __webpack_public_path__\n \t__webpack_require__.p = \"\";\n\n\n \t// Load entry module and return exports\n \treturn __webpack_require__(__webpack_require__.s = 500);\n","\"use strict\";\nfunction __export(m) {\n for (var p in m) if (!exports.hasOwnProperty(p)) exports[p] = m[p];\n}\nObject.defineProperty(exports, \"__esModule\", { value: true });\nif (!process || (process.env.NODE_ENV === 'production' && !process.env.COMUNICA_DEBUG)) {\n Error.stackTraceLimit = false;\n}\n__export(require(\"./lib/Bus\"));\n__export(require(\"./lib/BusIndexed\"));\n__export(require(\"./lib/ActionObserver\"));\n__export(require(\"./lib/Actor\"));\n__export(require(\"./lib/Logger\"));\n__export(require(\"./lib/Mediator\"));\n//# sourceMappingURL=index.js.map","var DataFactory = require('./lib/data-factory')\n\nmodule.exports = DataFactory\n","exports = module.exports = require('./lib/_stream_readable.js');\nexports.Stream = exports;\nexports.Readable = exports;\nexports.Writable = require('./lib/_stream_writable.js');\nexports.Duplex = require('./lib/_stream_duplex.js');\nexports.Transform = require('./lib/_stream_transform.js');\nexports.PassThrough = require('./lib/_stream_passthrough.js');\nexports.finished = require('./lib/internal/streams/end-of-stream.js');\nexports.pipeline = require('./lib/internal/streams/pipeline.js');\n","\"use strict\";\nfunction __export(m) {\n for (var p in m) if (!exports.hasOwnProperty(p)) exports[p] = m[p];\n}\nObject.defineProperty(exports, \"__esModule\", { value: true });\n__export(require(\"./lib/ActorQueryOperation\"));\n__export(require(\"./lib/ActorQueryOperationTyped\"));\n__export(require(\"./lib/ActorQueryOperationTypedMediated\"));\n__export(require(\"./lib/Bindings\"));\n//# sourceMappingURL=index.js.map","var EventEmitter = require('events').EventEmitter;\n\n/**\n Names of possible iterator states.\n The state's position in the array corresponds to its ID.\n\n @name AsyncIterator.STATES\n @type String[]\n @protected\n*/\nvar STATES = AsyncIterator.STATES = ['INIT', 'OPEN', 'CLOSING', 'CLOSED', 'ENDED', 'DESTROYED'];\nvar INIT = 0, OPEN = 1, CLOSING = 2, CLOSED = 3, ENDED = 4, DESTROYED = 5;\nSTATES.forEach(function (state, id) { AsyncIterator[state] = id; });\n\n/**\n ID of the INIT state.\n An iterator is initializing if it is preparing main item generation.\n It can already produce items.\n\n @name AsyncIterator.INIT\n @type integer\n @protected\n*/\n\n/**\n ID of the OPEN state.\n An iterator is open if it can generate new items.\n\n @name AsyncIterator.OPEN\n @type integer\n @protected\n*/\n\n/**\n ID of the CLOSING state.\n An iterator is closing if item generation is pending but will not be scheduled again.\n\n @name AsyncIterator.CLOSING\n @type integer\n @protected\n*/\n\n/**\n ID of the CLOSED state.\n An iterator is closed if it no longer actively generates new items.\n Items might still be available.\n\n @name AsyncIterator.CLOSED\n @type integer\n @protected\n*/\n\n/**\n ID of the ENDED state.\n An iterator has ended if no further items will become available.\n The 'end' event is guaranteed to have been called when in this state.\n\n @name AsyncIterator.ENDED\n @type integer\n @protected\n*/\n\n/**\n ID of the DESTROYED state.\n An iterator has been destroyed after calling {@link AsyncIterator#destroy}.\n The 'end' event has not been called, as pending elements were voided.\n\n @name AsyncIterator.DESTROYED\n @type integer\n @protected\n */\n\n\n\n\n/**\n Creates a new `AsyncIterator`.\n\n @public\n @constructor\n @classdesc An asynchronous iterator provides pull-based access to a stream of objects.\n @extends EventEmitter\n**/\nfunction AsyncIterator() {\n if (!(this instanceof AsyncIterator))\n return new AsyncIterator();\n EventEmitter.call(this);\n this.on('newListener', waitForDataListener);\n this._state = OPEN;\n this._readable = false;\n}\n\n/**\n Makes the prototype of the current constructor a prototype for the given constructor.\n\n @protected\n @function AsyncIterator.subclass\n @param {Function} Constructor The constructor that should inherit from the current constructor\n @returns {AsyncIterator} The constructor's prototype\n**/\n(function subclass(Constructor) {\n Constructor.prototype = Object.create(this.prototype,\n { constructor: { value: Constructor, configurable: true, writable: true } });\n Constructor.subclass = subclass;\n}).call(EventEmitter, AsyncIterator);\n\n/**\n Changes the iterator to the given state if possible and necessary,\n possibly emitting events to signal that change.\n\n @protected\n @param {integer} newState The ID of the new state (from the `STATES` array)\n @param {boolean} [eventAsync=false] Whether resulting events should be emitted asynchronously\n @returns {boolean} Whether the state was changed\n @emits AsyncIterator.end\n**/\nAsyncIterator.prototype._changeState = function (newState, eventAsync) {\n // Validate the state change\n var valid = newState > this._state && this._state < ENDED;\n if (valid) {\n this._state = newState;\n // Emit the `end` event when changing to ENDED\n if (newState === ENDED)\n eventAsync ? setImmediate(emit, this, 'end') : this.emit('end');\n }\n return valid;\n};\n// Emits the event on the given EventEmitter\nfunction emit(self, eventName) { self.emit(eventName); }\n\n/**\n Tries to read the next item from the iterator.\n\n This is the main method for reading the iterator in _on-demand mode_,\n where new items are only created when needed by consumers.\n If no items are currently available, this methods returns `null`.\n The {@link AsyncIterator.event:readable} event will then signal when new items might be ready.\n\n To read all items from the iterator,\n switch to _flow mode_ by subscribing to the {@link AsyncIterator.event:data} event.\n When in flow mode, do not use the `read` method.\n\n @returns {object?} The next item, or `null` if none is available\n**/\nAsyncIterator.prototype.read = function () { return null; };\n\n/**\n Emitted when the iterator might have new items available\n after having had no items available right before this event.\n\n If the iterator is not in flow mode,\n items can be retrieved by calling {@link AsyncIterator#read}.\n\n @event AsyncIterator.readable\n**/\n\n/**\n Invokes the callback for each remaining item in the iterator.\n\n Switches the iterator to flow mode.\n\n @param {Function} callback A function that will be called with each item\n @param {object?} self The `this` pointer for the callback\n**/\nAsyncIterator.prototype.each = function (callback, self) {\n this.on('data', self ? callback.bind(self) : callback);\n};\n\n/**\n Verifies whether the iterator has listeners for the given event.\n\n @private\n @param {string} eventName The name of the event\n @returns {boolean} Whether the iterator has listeners\n**/\nAsyncIterator.prototype._hasListeners = function (eventName) {\n return this._events && (eventName in this._events);\n};\n\n/**\n Adds the listener to the event, if it has not been added previously.\n\n @private\n @param {string} eventName The name of the event\n @param {Function} listener The listener to add\n**/\nAsyncIterator.prototype._addSingleListener = function (eventName, listener) {\n var listeners = this._events && this._events[eventName];\n if (!listeners ||\n (isFunction(listeners) ? listeners !== listener : listeners.indexOf(listener) < 0))\n this.on(eventName, listener);\n};\n\n/**\n Stops the iterator from generating new items.\n\n Already generated items or terminating items can still be emitted.\n After this, the iterator will end asynchronously.\n\n @emits AsyncIterator.end\n**/\nAsyncIterator.prototype.close = function () {\n if (this._changeState(CLOSED))\n endAsync(this);\n};\n\n/**\n Destroy the iterator and stop it from generating new items.\n\n This will not do anything if the iterator was already ended or destroyed.\n\n All internal resources will be released an no new items will be emitted,\n even not already generated items.\n\n Implementors should not override this method,\n but instead implement {@link AsyncIterator#_destroy}.\n\n @param {Error} [cause] An optional error to emit.\n @emits AsyncIterator.end\n @emits AsyncIterator.error Only emitted if an error is passed.\n **/\nAsyncIterator.prototype.destroy = function (cause) {\n if (!this.done) {\n var self = this;\n this._destroy(cause, function (error) {\n cause = cause || error;\n if (cause)\n self.emit('error', cause);\n end(self, true);\n });\n }\n};\n\n/**\n Called by {@link AsyncIterator#destroy}.\n Implementers can override this, but this should not be called directly.\n\n @param {?Error} cause The reason why the iterator is destroyed.\n @param {Function} callback A callback function with an optional error argument.\n */\nAsyncIterator.prototype._destroy = function (cause, callback) {\n callback();\n};\n\n/**\n Asynchronously ends the iterator and cleans up.\n\n Should never be called before {@link AsyncIterator#close};\n typically, `close` is responsible for calling `_end`.\n\n @param {boolean} [destroy] If the iterator should be forcefully destroyed.\n @protected\n @emits AsyncIterator.end\n**/\nAsyncIterator.prototype._end = function (destroy) {\n if (this._changeState(destroy ? DESTROYED : ENDED)) {\n this._readable = false;\n this.removeAllListeners('readable');\n this.removeAllListeners('data');\n this.removeAllListeners('end');\n }\n};\nfunction end(self, destroy) { self._end(destroy); }\nfunction endAsync(self) { setImmediate(end, self); }\n\n/**\n Emitted after the last item of the iterator has been read.\n\n @event AsyncIterator.end\n**/\n\n/**\n Gets or sets whether this iterator might have items available for read.\n\n A value of `false` means there are _definitely_ no items available;\n a value of `true` means items _might_ be available.\n\n @name AsyncIterator#readable\n @type boolean\n @emits AsyncIterator.readable\n**/\nObject.defineProperty(AsyncIterator.prototype, 'readable', {\n get: function () { return this._readable; },\n set: function (readable) {\n readable = !!readable && !this.done;\n // Set the readable value only if it has changed\n if (this._readable !== readable) {\n this._readable = readable;\n // If the iterator became readable, emit the `readable` event\n if (readable)\n setImmediate(emit, this, 'readable');\n }\n },\n enumerable: true,\n});\n\n/**\n Gets whether the iterator has stopped generating new items.\n\n @name AsyncIterator#closed\n @type boolean\n @readonly\n**/\nObject.defineProperty(AsyncIterator.prototype, 'closed', {\n get: function () { return this._state >= CLOSING; },\n enumerable: true,\n});\n\n/**\n Gets whether the iterator has finished emitting items.\n\n @name AsyncIterator#ended\n @type boolean\n @readonly\n**/\nObject.defineProperty(AsyncIterator.prototype, 'ended', {\n get: function () { return this._state === ENDED; },\n enumerable: true,\n});\n\n/**\n Gets whether the iterator has been destroyed.\n\n @name AsyncIterator#destroyed\n @type boolean\n @readonly\n **/\nObject.defineProperty(AsyncIterator.prototype, 'destroyed', {\n get: function () { return this._state === DESTROYED; },\n enumerable: true,\n});\n\n/**\n Gets whether the iterator will not emit anymore items,\n either due to being closed or due to being destroyed.\n\n @name AsyncIterator#done\n @type boolean\n @readonly\n **/\nObject.defineProperty(AsyncIterator.prototype, 'done', {\n get: function () { return this._state >= ENDED; },\n enumerable: true,\n});\n\n/**\n The iterator emits a `data` event with a new item as soon as it becomes available.\n\n When one or more listeners are attached to the `data` event,\n the iterator switches to _flow mode_,\n generating and emitting new items as fast as possible.\n This drains the source and might create backpressure on the consumers,\n so only subscribe to this event if this behavior is intended.\n In flow mode, don't use the {@link AsyncIterator#read} method.\n\n To switch back to _on-demand mode_, remove all listeners from the `data` event.\n You can then obtain items through {@link AsyncIterator#read} again.\n\n @event AsyncIterator.data\n @param {object} item The new item\n**/\n\n// Starts emitting `data` events when `data` listeners are added\nfunction waitForDataListener(eventName) {\n if (eventName === 'data') {\n this.removeListener('newListener', waitForDataListener);\n this._addSingleListener('readable', emitData);\n if (this.readable)\n setImmediate(call, emitData, this);\n }\n}\n// Emits new items though `data` events as long as there are `data` listeners\nfunction emitData() {\n // While there are `data` listeners and items, emit them\n var item;\n while (this._hasListeners('data') && (item = this.read()) !== null)\n this.emit('data', item);\n // Stop draining the source if there are no more `data` listeners\n if (!this._hasListeners('data') && !this.done) {\n this.removeListener('readable', emitData);\n this._addSingleListener('newListener', waitForDataListener);\n }\n}\n// Calls the given function with the specified argument as `this` value\nfunction call(func, self) { func.call(self); }\n\n/**\n Retrieves the property with the given name from the iterator.\n\n If no callback is passed, it returns the value of the property\n or `undefined` if the property is not set.\n\n If a callback is passed, it returns `undefined`\n and calls the callback with the property the moment it is set.\n\n @param {string} propertyName The name of the property to retrieve\n @param {Function} [callback] A one-argument callback to receive the property value\n @returns {object?} The value of the property (if set and no callback is given)\n**/\nAsyncIterator.prototype.getProperty = function (propertyName, callback) {\n var properties = this._properties, propertyCallbacks;\n // If no callback was passed, return the property value\n if (!callback)\n return properties && properties[propertyName];\n // If the value has been set, send it through the callback\n if (properties && (propertyName in properties))\n setImmediate(callback, properties[propertyName]);\n // If the value was not set, store the callback for when the value will be set\n else {\n if (!(propertyCallbacks = this._propertyCallbacks))\n this._propertyCallbacks = propertyCallbacks = Object.create(null);\n if (propertyName in propertyCallbacks)\n propertyCallbacks[propertyName].push(callback);\n else\n propertyCallbacks[propertyName] = [callback];\n }\n};\n\n/**\n Sets the property with the given name to the value.\n\n @param {string} propertyName The name of the property to set\n @param {object?} value The new value of the property\n**/\nAsyncIterator.prototype.setProperty = function (propertyName, value) {\n var properties = this._properties || (this._properties = Object.create(null));\n properties[propertyName] = value;\n // Execute getter callbacks that were waiting for this property to be set\n var propertyCallbacks = this._propertyCallbacks, callbacks;\n if (callbacks = propertyCallbacks && propertyCallbacks[propertyName]) {\n delete propertyCallbacks[propertyName];\n if (callbacks.length === 1)\n setImmediate(callbacks[0], value);\n else {\n setImmediate(function () {\n for (var i = 0; i < callbacks.length; i++)\n callbacks[i](value);\n });\n }\n // Remove _propertyCallbacks if no pending callbacks are left\n for (propertyName in propertyCallbacks) return;\n delete this._propertyCallbacks;\n }\n};\n\n/**\n Retrieves all properties of the iterator.\n\n @returns {object} An object with property names as keys.\n**/\nAsyncIterator.prototype.getProperties = function () {\n var properties = this._properties, copy = {};\n for (var name in properties)\n copy[name] = properties[name];\n return copy;\n};\n\n/**\n Sets all of the given properties.\n\n @param {object} properties Key/value pairs of properties to set\n**/\nAsyncIterator.prototype.setProperties = function (properties) {\n for (var propertyName in properties)\n this.setProperty(propertyName, properties[propertyName]);\n};\n\n/**\n Copies the given properties from the source iterator.\n\n @param {AsyncIterator} source The iterator to copy from\n @param {Array} propertyNames List of property names to copy\n**/\nAsyncIterator.prototype.copyProperties = function (source, propertyNames) {\n for (var i = 0; i < propertyNames.length; i++)\n copyProperty(source, this, propertyNames[i]);\n};\nfunction copyProperty(source, destination, propertyName) {\n source.getProperty(propertyName, function (value) {\n destination.setProperty(propertyName, value);\n });\n}\n\n/* Generates a textual representation of the iterator. */\nAsyncIterator.prototype.toString = function () {\n var details = this._toStringDetails();\n return '[' + this.constructor.name + (details ? ' ' + details + ']' : ']');\n};\n\n/**\n Generates details for a textual representation of the iterator.\n\n @protected\n**/\nAsyncIterator.prototype._toStringDetails = function () { };\n\n\n\n/**\n Creates a new `EmptyIterator`.\n\n @constructor\n @classdesc An iterator that doesn't emit any items.\n @extends AsyncIterator\n**/\nfunction EmptyIterator() {\n if (!(this instanceof EmptyIterator))\n return new EmptyIterator();\n AsyncIterator.call(this);\n this._changeState(ENDED, true);\n}\nAsyncIterator.subclass(EmptyIterator);\n\n\n\n/**\n Creates a new `SingletonIterator`.\n\n @constructor\n @classdesc An iterator that emits a single item.\n @param {object} item The item that will be emitted.\n @extends AsyncIterator\n**/\nfunction SingletonIterator(item) {\n if (!(this instanceof SingletonIterator))\n return new SingletonIterator(item);\n AsyncIterator.call(this);\n\n this._item = item;\n if (item === null)\n this.close();\n else\n this.readable = true;\n}\nAsyncIterator.subclass(SingletonIterator);\n\n/* Reads the item from the iterator. */\nSingletonIterator.prototype.read = function () {\n var item = this._item;\n this._item = null;\n this.close();\n return item;\n};\n\n/* Generates details for a textual representation of the iterator. */\nSingletonIterator.prototype._toStringDetails = function () {\n return this._item === null ? '' : '(' + this._item + ')';\n};\n\n\n\n/**\n Creates a new `ArrayIterator`.\n\n @constructor\n @classdesc An iterator that emits the items of a given array.\n @param {Array} items The items that will be emitted.\n @extends AsyncIterator\n**/\nfunction ArrayIterator(items) {\n if (!(this instanceof ArrayIterator))\n return new ArrayIterator(items);\n AsyncIterator.call(this);\n\n if (!(items && items.length > 0))\n return this.close();\n\n this._buffer = Array.prototype.slice.call(items);\n this.readable = true;\n}\nAsyncIterator.subclass(ArrayIterator);\n\n/* Reads an item from the iterator. */\nArrayIterator.prototype.read = function () {\n var buffer = this._buffer, item = null;\n if (buffer) {\n item = buffer.shift();\n if (!buffer.length) {\n delete this._buffer;\n this.close();\n }\n }\n return item;\n};\n\n/* Generates details for a textual representation of the iterator. */\nArrayIterator.prototype._toStringDetails = function () {\n return '(' + (this._buffer && this._buffer.length || 0) + ')';\n};\n\n/* Called by {@link AsyncIterator#destroy} */\nArrayIterator.prototype._destroy = function (error, callback) {\n delete this._buffer;\n callback();\n};\n\n\n\n/**\n Creates a new `IntegerIterator`.\n\n @constructor\n @classdesc An iterator that enumerates integers in a certain range.\n @param {object} [options] Settings of the iterator\n @param {integer} [options.start=0] The first number to emit\n @param {integer} [options.end=Infinity] The last number to emit\n @param {integer} [options.step=1] The increment between two numbers\n @extends AsyncIterator\n**/\nfunction IntegerIterator(options) {\n if (!(this instanceof IntegerIterator))\n return new IntegerIterator(options);\n AsyncIterator.call(this);\n\n // Set start, end, and step\n options = options || {};\n var step = options.step, limit, last = options.end, next = options.start;\n this._step = step = isFinite(step) ? ~~step : 1;\n limit = step >= 0 ? Infinity : -Infinity; // counting towards plus or minus infinity?\n this._last = last = isFinite(last) ? ~~last : (last === -limit ? last : limit);\n this._next = next = typeof next !== 'number' ? 0 : (isFinite(next) ? ~~next : next);\n\n // Start iteration if there is at least one item; close otherwise\n if (!isFinite(next) || (step >= 0 ? next > last : next < last))\n this.close();\n else\n this.readable = true;\n}\nAsyncIterator.subclass(IntegerIterator);\n\n/* Reads an item from the iterator. */\nIntegerIterator.prototype.read = function () {\n if (this.closed)\n return null;\n var current = this._next, step = this._step, last = this._last, next = this._next += step;\n if (step >= 0 ? next > last : next < last)\n this.close();\n return current;\n};\n\n/* Generates details for a textual representation of the iterator. */\nIntegerIterator.prototype._toStringDetails = function () {\n return '(' + this._next + '...' + this._last + ')';\n};\n\n/**\n Creates an iterator of natural numbers within the given range.\n\n The current iterator may not be read anymore until the returned iterator ends.\n\n @param {integer} [start=0] The first number to emit\n @param {integer} [end=Infinity] The last number to emit\n @param {integer} [step=1] The increment between two numbers\n @returns {IntegerIterator} An iterator of natural numbers within the given range\n**/\nAsyncIterator.range = function (start, end, step) {\n return new IntegerIterator({ start: start, end: end, step: step });\n};\n\n\n\n/**\n Creates a new `BufferedIterator`.\n\n @constructor\n @classdesc A iterator that maintains an internal buffer of items.\n\n This class serves as a base class for other iterators\n with a typically complex item generation process.\n @param {object} [options] Settings of the iterator\n @param {integer} [options.maxBufferSize=4] The number of items to preload in the internal buffer\n @param {boolean} [options.autoStart=true] Whether buffering starts directly after construction\n @extends AsyncIterator\n**/\nfunction BufferedIterator(options) {\n if (!(this instanceof BufferedIterator))\n return new BufferedIterator(options);\n AsyncIterator.call(this);\n\n options = options || {};\n\n // Set up the internal buffer\n var maxBufferSize = options.maxBufferSize, autoStart = options.autoStart;\n this._state = INIT;\n this._buffer = [];\n this._pushedCount = 0;\n this.maxBufferSize = maxBufferSize;\n\n // Acquire reading lock to read initialization items\n this._reading = true;\n setImmediate(init, this, autoStart !== false || autoStart);\n}\nAsyncIterator.subclass(BufferedIterator);\n\n/**\n Gets or sets the maximum number of items to preload in the internal buffer.\n\n A `BufferedIterator` tries to fill its buffer as far as possible.\n Set to `Infinity` to fully drain the source.\n\n @name BufferedIterator#maxBufferSize\n @type number\n**/\nObject.defineProperty(BufferedIterator.prototype, 'maxBufferSize', {\n set: function (maxBufferSize) {\n // Allow only positive integers and infinity\n if (maxBufferSize !== Infinity)\n maxBufferSize = isFinite(maxBufferSize) ? Math.max(~~maxBufferSize, 1) : 4;\n // Only set the maximum buffer size if it changes\n if (this._maxBufferSize !== maxBufferSize) {\n this._maxBufferSize = maxBufferSize;\n // Ensure sufficient elements are buffered\n if (this._state === OPEN)\n this._fillBuffer();\n }\n },\n get: function () { return this._maxBufferSize; },\n enumerable: true,\n});\n\n/**\n Initializing the iterator by calling {@link BufferedIterator#_begin}\n and changing state from INIT to OPEN.\n\n @protected\n @param {boolean} autoStart Whether reading of items should immediately start after OPEN.\n**/\nBufferedIterator.prototype._init = function (autoStart) {\n // Perform initialization tasks\n var self = this;\n this._reading = true;\n this._begin(function () {\n if (!self)\n throw new Error('done callback called multiple times');\n // Open the iterator and start buffering\n self._reading = false;\n self._changeState(OPEN);\n if (autoStart)\n fillBufferAsync(self);\n // If reading should not start automatically, the iterator doesn't become readable.\n // Therefore, mark the iterator as (potentially) readable so consumers know it might be read.\n else\n self.readable = true;\n self = null;\n });\n};\nfunction init(self, autoStart) { self._init(autoStart); }\n\n/**\n Writes beginning items and opens iterator resources.\n\n Should never be called before {@link BufferedIterator#_init};\n typically, `_init` is responsible for calling `_begin`.\n\n @protected\n @param {function} done To be called when initialization is complete\n**/\nBufferedIterator.prototype._begin = function (done) { done(); };\n\n/**\n Tries to read the next item from the iterator.\n\n If the buffer is empty,\n this method calls {@link BufferedIterator#_read} to fetch items.\n @returns {object?} The next item, or `null` if none is available\n**/\nBufferedIterator.prototype.read = function () {\n if (this.done)\n return null;\n\n // Try to retrieve an item from the buffer\n var buffer = this._buffer, item;\n if (buffer.length)\n item = buffer.shift();\n else {\n item = null;\n this.readable = false;\n }\n\n // If the buffer is becoming empty, either fill it or end the iterator\n if (!this._reading && buffer.length < this._maxBufferSize) {\n // If the iterator is not closed and thus may still generate new items, fill the buffer\n if (!this.closed)\n fillBufferAsync(this);\n // No new items will be generated, so if none are buffered, the iterator ends here\n else if (!buffer.length)\n endAsync(this);\n }\n\n return item;\n};\n\n/**\n Tries to generate the given number of items.\n\n Implementers should add `count` items through {@link BufferedIterator#_push}.\n\n @protected\n @param {integer} count The number of items to generate\n @param {function} done To be called when reading is complete\n**/\nBufferedIterator.prototype._read = function (count, done) { done(); };\n\n/**\n Adds an item to the internal buffer.\n\n @protected\n @param {object} item The item to add\n @emits AsyncIterator.readable\n**/\nBufferedIterator.prototype._push = function (item) {\n if (!this.done) {\n this._pushedCount++;\n this._buffer.push(item);\n this.readable = true;\n }\n};\n\n/**\n Fills the internal buffer until `this._maxBufferSize` items are present.\n\n This method calls {@link BufferedIterator#_read} to fetch items.\n\n @protected\n @emits AsyncIterator.readable\n**/\nBufferedIterator.prototype._fillBuffer = function () {\n var self = this, neededItems;\n // Avoid recursive reads\n if (this._reading)\n return;\n // If iterator closing started in the meantime, don't generate new items anymore\n else if (this.closed)\n this._completeClose();\n // Otherwise, try to fill empty spaces in the buffer by generating new items\n else if ((neededItems = Math.min(this._maxBufferSize - this._buffer.length, 128)) > 0) {\n // Acquire reading lock and start reading, counting pushed items\n this._pushedCount = 0;\n this._reading = true;\n this._read(neededItems, function () {\n // Verify the callback is only called once\n if (!neededItems)\n throw new Error('done callback called multiple times');\n neededItems = 0;\n // Release reading lock\n self._reading = false;\n // If the iterator was closed while reading, complete closing\n if (self.closed)\n self._completeClose();\n // If the iterator pushed one or more items,\n // it might currently be able to generate additional items\n // (even though all pushed items might already have been read)\n else if (self._pushedCount) {\n self.readable = true;\n // If the buffer is insufficiently full, continue filling\n if (self._buffer.length < self._maxBufferSize / 2)\n fillBufferAsync(self);\n }\n });\n }\n};\nfunction fillBufferAsync(self) {\n // Acquire reading lock to avoid recursive reads\n if (!self._reading) {\n self._reading = true;\n setImmediate(fillBufferAsyncCallback, self);\n }\n}\nfunction fillBufferAsyncCallback(self) {\n // Release reading lock so _fillBuffer` can take it\n self._reading = false;\n self._fillBuffer();\n}\n\n/**\n Stops the iterator from generating new items\n after a possible pending read operation has finished.\n\n Already generated, pending, or terminating items can still be emitted.\n After this, the iterator will end asynchronously.\n\n @emits AsyncIterator.end\n**/\nBufferedIterator.prototype.close = function () {\n // If the iterator is not currently reading, we can close immediately\n if (!this._reading)\n this._completeClose();\n // Closing cannot complete when reading, so temporarily assume CLOSING state\n // `_fillBuffer` becomes responsible for calling `_completeClose`\n else\n this._changeState(CLOSING);\n};\n\n/**\n Stops the iterator from generating new items,\n switching from `CLOSING` state into `CLOSED` state.\n\n @protected\n @emits AsyncIterator.end\n**/\nBufferedIterator.prototype._completeClose = function () {\n if (this._changeState(CLOSED)) {\n // Write possible terminating items\n var self = this;\n this._reading = true;\n this._flush(function () {\n if (!self._reading)\n throw new Error('done callback called multiple times');\n self._reading = false;\n // If no items are left, end the iterator\n // Otherwise, `read` becomes responsible for ending the iterator\n if (!self._buffer.length)\n endAsync(self);\n });\n }\n};\n\n/* Called by {@link AsyncIterator#destroy} */\nBufferedIterator.prototype._destroy = function (error, callback) {\n this._buffer = [];\n callback();\n};\n\n/**\n Writes terminating items and closes iterator resources.\n\n Should never be called before {@link BufferedIterator#close};\n typically, `close` is responsible for calling `_flush`.\n\n @protected\n @param {function} done To be called when termination is complete\n**/\nBufferedIterator.prototype._flush = function (done) { done(); };\n\n/* Generates details for a textual representation of the iterator. */\nBufferedIterator.prototype._toStringDetails = function () {\n var buffer = this._buffer, length = buffer.length;\n return '{' + (length ? 'next: ' + buffer[0] + ', ' : '') + 'buffer: ' + length + '}';\n};\n\n\n\n\n/**\n Creates a new `TransformIterator`.\n\n This class serves as a base class for other iterators.\n\n @constructor\n @classdesc An iterator that generates items based on a source iterator.\n @param {AsyncIterator|Readable} [source] The source this iterator generates items from\n @param {object} [options] Settings of the iterator\n @param {integer} [options.maxBufferSize=4] The maximum number of items to keep in the buffer\n @param {boolean} [options.autoStart=true] Whether buffering starts directly after construction\n @param {boolean} [options.optional=false] If transforming is optional, the original item is pushed when its transformation yields no items\n @param {boolean} [options.destroySource=true] Whether the source should be destroyed when this transformed iterator is closed or destroyed\n @param {AsyncIterator} [options.source] The source this iterator generates items from\n @extends BufferedIterator\n**/\nfunction TransformIterator(source, options) {\n if (!(this instanceof TransformIterator))\n return new TransformIterator(source, options);\n // Shift arguments if the first is not a source\n if (!source || !isFunction(source.read)) {\n if (!options) options = source;\n source = options && options.source;\n }\n BufferedIterator.call(this, options);\n if (source) this.source = source;\n this._optional = !!(options && options.optional);\n this._destroySource = !options || options.destroySource !== false;\n}\nBufferedIterator.subclass(TransformIterator);\n\n/**\n Gets or sets the source this iterator generates items from.\n\n @name TransformIterator#source\n @type AsyncIterator\n**/\nObject.defineProperty(TransformIterator.prototype, 'source', {\n set: function (source) {\n // Validate and set source\n this._validateSource(source);\n this._source = source;\n source._destination = this;\n\n // Close this iterator if the source has already ended\n if (source.ended)\n this.close();\n // Otherwise, react to source events\n else {\n source.on('end', destinationCloseWhenDone);\n source.on('readable', destinationFillBuffer);\n source.on('error', destinationEmitError);\n }\n },\n get: getSource,\n enumerable: true,\n});\nfunction getSource() { return this._source; }\nfunction destinationEmitError(error) { this._destination.emit('error', error); }\nfunction destinationCloseWhenDone() { this._destination._closeWhenDone(); }\nfunction destinationFillBuffer() { this._destination._fillBuffer(); }\n\n/**\n Validates whether the given iterator can be used as a source.\n\n @protected\n @param {object} source The source to validate\n @param {boolean} allowDestination Whether the source can already have a destination\n**/\nTransformIterator.prototype._validateSource = function (source, allowDestination) {\n if (this._source)\n throw new Error('The source cannot be changed after it has been set');\n if (!source || !isFunction(source.read) || !isFunction(source.on))\n throw new Error('Invalid source: ' + source);\n if (!allowDestination && source._destination)\n throw new Error('The source already has a destination');\n};\n\n/* Tries to read a transformed item */\nTransformIterator.prototype._read = function (count, done) {\n var self = this;\n readAndTransform(self, function next() {\n // Continue transforming until at least `count` items have been pushed\n if (self._pushedCount < count && !self.closed)\n setImmediate(readAndTransform, self, next, done);\n else\n done();\n }, done);\n};\nfunction readAndTransform(self, next, done) {\n // If the source exists and still can read items,\n // try to read and transform the next item.\n var source = self._source, item;\n if (source && !source.ended && (item = source.read()) !== null) {\n if (!self._optional)\n self._transform(item, next);\n else\n optionalTransform(self, item, next);\n }\n else\n done();\n}\n// Tries to transform the item;\n// if the transformation yields no items, pushes the original item\nfunction optionalTransform(self, item, done) {\n var pushedCount = self._pushedCount;\n self._transform(item, function () {\n if (pushedCount === self._pushedCount)\n self._push(item);\n done();\n });\n}\n\n/**\n Generates items based on the item from the source.\n\n Implementers should add items through {@link BufferedIterator#_push}.\n The default implementation pushes the source item as-is.\n\n @protected\n @param {object} item The last read item from the source\n @param {function} done To be called when reading is complete\n**/\nTransformIterator.prototype._transform = function (item, done) {\n this._push(item), done();\n};\n\n/**\n Closes the iterator when pending items are transformed.\n\n @protected\n**/\nTransformIterator.prototype._closeWhenDone = function () {\n this.close();\n};\n\n/* Cleans up the source iterator and ends. */\nTransformIterator.prototype._end = function (destroy) {\n var source = this._source;\n if (source) {\n source.removeListener('end', destinationCloseWhenDone);\n source.removeListener('error', destinationEmitError);\n source.removeListener('readable', destinationFillBuffer);\n delete source._destination;\n if (this._destroySource)\n source.destroy();\n }\n BufferedIterator.prototype._end.call(this, destroy);\n};\n\n/**\n Creates an iterator that wraps around a given iterator or readable stream.\n\n Use this to convert an iterator-like object into a full-featured AsyncIterator.\n\n After this operation, only read the returned iterator instead of the given one.\n\n @function\n @param {AsyncIterator|Readable} [source] The source this iterator generates items from\n @param {object} [options] Settings of the iterator\n @returns {AsyncIterator} A new iterator with the items from the given iterator\n**/\nAsyncIterator.wrap = TransformIterator;\n\n\n\n\n/**\n Creates a new `SimpleTransformIterator`.\n\n @constructor\n @classdesc An iterator that generates items based on a source iterator\n and simple transformation steps passed as arguments.\n @param {AsyncIterator|Readable} [source] The source this iterator generates items from\n @param {object|Function} [options] Settings of the iterator, or the transformation function\n @param {integer} [options.maxbufferSize=4] The maximum number of items to keep in the buffer\n @param {boolean} [options.autoStart=true] Whether buffering starts directly after construction\n @param {AsyncIterator} [options.source] The source this iterator generates items from\n @param {integer} [options.offset] The number of items to skip\n @param {integer} [options.limit] The maximum number of items\n @param {Function} [options.filter] A function to synchronously filter items from the source\n @param {Function} [options.map] A function to synchronously transform items from the source\n @param {Function} [options.transform] A function to asynchronously transform items from the source\n @param {boolean} [options.optional=false] If transforming is optional, the original item is pushed when its mapping yields `null` or its transformation yields no items\n @param {Array|AsyncIterator} [options.prepend] Items to insert before the source items\n @param {Array|AsyncIterator} [options.append] Items to insert after the source items\n @extends TransformIterator\n**/\nfunction SimpleTransformIterator(source, options) {\n if (!(this instanceof SimpleTransformIterator))\n return new SimpleTransformIterator(source, options);\n TransformIterator.call(this, source, options);\n\n // Set transformation steps from the options\n if (options = options || !isFunction(source && source.read) && source) {\n var limit = options.limit, offset = options.offset,\n filter = options.filter, map = options.map,\n transform = isFunction(options) ? options : options.transform,\n prepend = options.prepend, append = options.append;\n // Don't emit any items when bounds are unreachable\n if (offset === Infinity || limit === -Infinity)\n this._limit = 0;\n else {\n if (isFinite(offset)) this._offset = Math.max(~~offset, 0);\n if (isFinite(limit)) this._limit = Math.max(~~limit, 0);\n if (isFunction(filter)) this._filter = filter;\n if (isFunction(map)) this._map = map;\n if (isFunction(transform)) this._transform = transform;\n }\n if (prepend) this._prepender = prepend.on ? prepend : new ArrayIterator(prepend);\n if (append) this._appender = append.on ? append : new ArrayIterator(append);\n }\n}\nTransformIterator.subclass(SimpleTransformIterator);\n\n// Default settings\nSimpleTransformIterator.prototype._offset = 0;\nSimpleTransformIterator.prototype._limit = Infinity;\nSimpleTransformIterator.prototype._filter = function () { return true; };\nSimpleTransformIterator.prototype._map = null;\nSimpleTransformIterator.prototype._transform = null;\n\n/* Tries to read and transform items */\nSimpleTransformIterator.prototype._read = function (count, done) {\n var self = this;\n readAndTransformSimple(self, count, function next() {\n setImmediate(readAndTransformSimple, self, count, next, done);\n }, done);\n};\nfunction readAndTransformSimple(self, count, next, done) {\n // Verify we have a readable source\n var source = self._source, item;\n if (!source || source.ended) {\n done();\n return;\n }\n // Verify we are still below the limit\n if (self._limit === 0)\n self.close();\n\n // Try to read the next item until at least `count` items have been pushed\n while (!self.closed && self._pushedCount < count && (item = source.read()) !== null) {\n // Verify the item passes the filter and we've reached the offset\n if (!self._filter(item) || self._offset !== 0 && self._offset--)\n continue;\n\n // Synchronously map the item\n var mappedItem = self._map === null ? item : self._map(item);\n // Skip `null` items, pushing the original item if the mapping was optional\n if (mappedItem === null) {\n if (self._optional)\n self._push(item);\n }\n // Skip the asynchronous phase if no transformation was specified\n else if (self._transform === null)\n self._push(mappedItem);\n // Asynchronously transform the item, and wait for `next` to call back\n else {\n if (!self._optional)\n self._transform(mappedItem, next);\n else\n optionalTransform(self, mappedItem, next);\n return;\n }\n\n // Stop when we've reached the limit\n if (--self._limit === 0)\n self.close();\n }\n done();\n}\n\n// Prepends items to the iterator\nSimpleTransformIterator.prototype._begin = function (done) {\n this._insert(this._prepender, done);\n delete this._prepender;\n};\n\n// Appends items to the iterator\nSimpleTransformIterator.prototype._flush = function (done) {\n this._insert(this._appender, done);\n delete this._appender;\n};\n\n// Inserts items in the iterator\nSimpleTransformIterator.prototype._insert = function (inserter, done) {\n var self = this;\n if (!inserter || inserter.ended)\n done();\n else {\n inserter.on('data', push);\n inserter.on('end', end);\n }\n function push(item) { self._push(item); }\n function end() {\n inserter.removeListener('data', push);\n inserter.removeListener('end', end);\n done();\n }\n};\n\n/**\n Transforms items from this iterator.\n\n After this operation, only read the returned iterator instead of the current one.\n\n @param {object|Function} [options] Settings of the iterator, or the transformation function\n @param {integer} [options.maxbufferSize=4] The maximum number of items to keep in the buffer\n @param {boolean} [options.autoStart=true] Whether buffering starts directly after construction\n @param {integer} [options.offset] The number of items to skip\n @param {integer} [options.limit] The maximum number of items\n @param {Function} [options.filter] A function to synchronously filter items from the source\n @param {Function} [options.map] A function to synchronously transform items from the source\n @param {Function} [options.transform] A function to asynchronously transform items from the source\n @param {boolean} [options.optional=false] If transforming is optional, the original item is pushed when its mapping yields `null` or its transformation yields no items\n @param {Array|AsyncIterator} [options.prepend] Items to insert before the source items\n @param {Array|AsyncIterator} [options.append] Items to insert after the source items\n @returns {AsyncIterator} A new iterator that maps the items from this iterator\n**/\nAsyncIterator.prototype.transform = function (options) {\n return new SimpleTransformIterator(this, options);\n};\n\n/**\n Maps items from this iterator using the given function.\n\n After this operation, only read the returned iterator instead of the current one.\n\n @param {Function} mapper A mapping function to call on this iterator's (remaining) items\n @param {object?} self The `this` pointer for the mapping function\n @returns {AsyncIterator} A new iterator that maps the items from this iterator\n**/\nAsyncIterator.prototype.map = function (mapper, self) {\n return this.transform({ map: self ? mapper.bind(self) : mapper });\n};\n\n/**\n Return items from this iterator that match the filter.\n\n After this operation, only read the returned iterator instead of the current one.\n\n @param {Function} filter A filter function to call on this iterator's (remaining) items\n @param {object?} self The `this` pointer for the filter function\n @returns {AsyncIterator} A new iterator that filters items from this iterator\n**/\nAsyncIterator.prototype.filter = function (filter, self) {\n return this.transform({ filter: self ? filter.bind(self) : filter });\n};\n\n/**\n Prepends the items after those of the current iterator.\n\n After this operation, only read the returned iterator instead of the current one.\n\n @param {Array|AsyncIterator} items Items to insert before this iterator's (remaining) items\n @returns {AsyncIterator} A new iterator that prepends items to this iterator\n**/\nAsyncIterator.prototype.prepend = function (items) {\n return this.transform({ prepend: items });\n};\n\n/**\n Appends the items after those of the current iterator.\n\n After this operation, only read the returned iterator instead of the current one.\n\n @param {Array|AsyncIterator} items Items to insert after this iterator's (remaining) items\n @returns {AsyncIterator} A new iterator that appends items to this iterator\n**/\nAsyncIterator.prototype.append = function (items) {\n return this.transform({ append: items });\n};\n\n/**\n Surrounds items of the current iterator with the given items.\n\n After this operation, only read the returned iterator instead of the current one.\n\n @param {Array|AsyncIterator} prepend Items to insert before this iterator's (remaining) items\n @param {Array|AsyncIterator} append Items to insert after this iterator's (remaining) items\n @returns {AsyncIterator} A new iterator that appends and prepends items to this iterator\n**/\nAsyncIterator.prototype.surround = function (prepend, append) {\n return this.transform({ prepend: prepend, append: append });\n};\n\n/**\n Skips the given number of items from the current iterator.\n\n The current iterator may not be read anymore until the returned iterator ends.\n\n @param {integer} offset The number of items to skip\n @returns {AsyncIterator} A new iterator that skips the given number of items\n**/\nAsyncIterator.prototype.skip = function (offset) {\n return this.transform({ offset: offset });\n};\n\n/**\n Limits the current iterator to the given number of items.\n\n The current iterator may not be read anymore until the returned iterator ends.\n\n @param {integer} limit The maximum number of items\n @returns {AsyncIterator} A new iterator with at most the given number of items\n**/\nAsyncIterator.prototype.take = function (limit) {\n return this.transform({ limit: limit });\n};\n\n/**\n Limits the current iterator to the given range.\n\n The current iterator may not be read anymore until the returned iterator ends.\n\n @param {integer} start Index of the first item to return\n @param {integer} end Index of the last item to return\n @returns {AsyncIterator} A new iterator with items in the given range\n**/\nAsyncIterator.prototype.range = function (start, end) {\n return this.transform({ offset: start, limit: Math.max(end - start + 1, 0) });\n};\n\n\n\n\n/**\n Creates a new `MultiTransformIterator`.\n\n @constructor\n @classdesc An iterator that generates items by transforming each item of a source\n with a different iterator.\n @param {AsyncIterator|Readable} [source] The source this iterator generates items from\n @param {object} [options] Settings of the iterator\n @extends TransformIterator\n**/\nfunction MultiTransformIterator(source, options) {\n if (!(this instanceof MultiTransformIterator))\n return new MultiTransformIterator(source, options);\n TransformIterator.call(this, source, options);\n this._transformerQueue = [];\n}\nTransformIterator.subclass(MultiTransformIterator);\n\n/* Tries to read and transform items */\nMultiTransformIterator.prototype._read = function (count, done) {\n // Remove transformers that have ended\n var item, head, transformer, transformerQueue = this._transformerQueue,\n source = this._source, optional = this._optional;\n while ((head = transformerQueue[0]) && head.transformer.ended) {\n // If transforming is optional, push the original item if none was pushed\n if (optional && head.item !== null)\n this._push(head.item), count--;\n // Remove listeners from the transformer\n head = transformerQueue.shift(), transformer = head.transformer;\n transformer.removeListener('end', destinationFillBuffer);\n transformer.removeListener('readable', destinationFillBuffer);\n transformer.removeListener('error', destinationEmitError);\n }\n\n // Create new transformers if there are less than the maximum buffer size\n while (source && !source.ended && transformerQueue.length < this._maxBufferSize) {\n // Read an item to create the next transformer\n item = this._source.read();\n if (item === null)\n break;\n // Create the transformer and listen to its events\n transformer = this._createTransformer(item) || new EmptyIterator();\n transformer._destination = this;\n transformer.on('end', destinationFillBuffer);\n transformer.on('readable', destinationFillBuffer);\n transformer.on('error', destinationEmitError);\n transformerQueue.push({ transformer: transformer, item: item });\n }\n\n // Try to read `count` items from the transformer\n head = transformerQueue[0];\n if (head) {\n transformer = head.transformer;\n while (count-- > 0 && (item = transformer.read()) !== null) {\n this._push(item);\n // If a transformed item was pushed, no need to push the original anymore\n if (optional)\n head.item = null;\n }\n }\n // End the iterator if the source has ended\n else if (source && source.ended)\n this.close();\n done();\n};\n\n/**\n Creates a transformer for the given item.\n\n @param {object} item The last read item from the source\n @returns {AsyncIterator} An iterator that transforms the given item\n**/\nMultiTransformIterator.prototype._createTransformer = SingletonIterator;\n\n/* Closes the iterator when pending items are transformed. */\nMultiTransformIterator.prototype._closeWhenDone = function () {\n // Only close if all transformers are read\n if (!this._transformerQueue.length)\n this.close();\n};\n\n\n\n\n/**\n Creates a new `ClonedIterator`.\n\n @constructor\n @classdesc An iterator that copies items from another iterator.\n @param {AsyncIterator|Readable} [source] The source this iterator copies items from\n @extends TransformIterator\n**/\nfunction ClonedIterator(source) {\n if (!(this instanceof ClonedIterator))\n return new ClonedIterator(source);\n // Although ClonedIterator inherits from TransformIterator and hence BufferedIterator,\n // we do not need the buffering because items arrive directly from a history buffer.\n // Therefore, initialize as an AsyncIterator, which does not set up buffering.\n AsyncIterator.call(this);\n\n this._readPosition = 0;\n if (source) this.source = source;\n}\nTransformIterator.subclass(ClonedIterator);\n\n// The source this iterator copies items from\nObject.defineProperty(ClonedIterator.prototype, 'source', {\n set: function (source) {\n // Validate and set the source\n var history = source && source._destination;\n this._validateSource(source, !history || history instanceof HistoryReader);\n this._source = source;\n // Create a history reader for the source if none already existed\n if (!history)\n history = source._destination = new HistoryReader(source);\n\n // Close this clone if history is empty and the source has ended\n if (history.endsAt(0))\n this.close();\n else {\n // Subscribe to history events\n history.register(this);\n // If there are already items in history, this clone is readable\n if (history.readAt(0) !== null)\n this.readable = true;\n }\n\n // Hook pending property callbacks to the source\n var propertyCallbacks = this._propertyCallbacks;\n for (var propertyName in propertyCallbacks) {\n var callbacks = propertyCallbacks[propertyName];\n for (var i = 0; i < callbacks.length; i++)\n getSourceProperty(this, source, propertyName, callbacks[i]);\n }\n },\n get: getSource,\n enumerable: true,\n});\n\n// Retrieves the property with the given name from the clone or its source.\nClonedIterator.prototype.getProperty = function (propertyName, callback) {\n var properties = this._properties, source = this._source,\n hasProperty = properties && (propertyName in properties);\n // If no callback was passed, return the property value\n if (!callback)\n return hasProperty ? properties[propertyName] : source && source.getProperty(propertyName);\n // Try to look up the property in this clone\n AsyncIterator.prototype.getProperty.call(this, propertyName, callback);\n // If the property is not set on this clone, it might become set on the source first\n if (source && !hasProperty)\n getSourceProperty(this, source, propertyName, callback);\n};\n// Retrieves the property with the given name from the source\nfunction getSourceProperty(clone, source, propertyName, callback) {\n source.getProperty(propertyName, function (value) {\n // Only send the source's property if it was not set on the clone in the meantime\n if (!clone._properties || !(propertyName in clone._properties))\n callback(value);\n });\n}\n\n// Retrieves all properties of the iterator and its source.\nClonedIterator.prototype.getProperties = function () {\n var base = this._source ? this._source.getProperties() : {}, properties = this._properties;\n for (var name in properties)\n base[name] = properties[name];\n return base;\n};\n\n/* Generates details for a textual representation of the iterator. */\nClonedIterator.prototype._toStringDetails = function () {\n var source = this._source;\n return '{source: ' + (source ? source.toString() : 'none') + '}';\n};\n\n// Stores the history of a source, so it can be cloned\nfunction HistoryReader(source) {\n var history = [], clones;\n\n // Tries to read the item at the given history position\n this.readAt = function (pos) {\n var item = null;\n // Retrieve an item from history when available\n if (pos < history.length)\n item = history[pos];\n // Read a new item from the source when possible\n else if (!source.ended && (item = source.read()) !== null)\n history[pos] = item;\n return item;\n };\n\n // Determines whether the given position is the end of the source\n this.endsAt = function (pos) {\n return pos === history.length && source.ended;\n };\n\n // Registers a clone for history updates\n this.register = function (clone) { clones && clones.push(clone); };\n\n // Unregisters a clone for history updates\n this.unregister = function (clone) {\n var cloneIndex;\n if (clones && (cloneIndex = clones.indexOf(clone)) >= 0)\n clones.splice(cloneIndex, 1);\n };\n\n // Listen to source events to trigger events in subscribed clones\n if (!source.ended) {\n clones = [];\n // When the source becomes readable, make all clones readable\n source.on('readable', clonesMakeReadable);\n function clonesMakeReadable() {\n for (var i = 0; i < clones.length; i++)\n clones[i].readable = true;\n }\n // When the source ends, close all clones that are fully read\n source.on('end', clonesEnd);\n function clonesEnd() {\n for (var i = 0; i < clones.length; i++) {\n if (clones[i]._readPosition === history.length)\n clones[i].close();\n }\n clones = null;\n source.removeListener('end', clonesEnd);\n source.removeListener('error', clonesEmitError);\n source.removeListener('readable', clonesMakeReadable);\n }\n // When the source errors, re-emit the error\n source.on('error', clonesEmitError);\n function clonesEmitError(error) {\n for (var i = 0; i < clones.length; i++)\n clones[i].emit('error', error);\n }\n }\n}\n\n/* Tries to read an item */\nClonedIterator.prototype.read = function () {\n var source = this._source, item = null;\n if (!this.done && source) {\n // Try to read an item at the current point in history\n var history = source._destination;\n if ((item = history.readAt(this._readPosition)) !== null)\n this._readPosition++;\n else\n this.readable = false;\n // Close the iterator if we are at the end of the source\n if (history.endsAt(this._readPosition))\n this.close();\n }\n return item;\n};\n\n/* End the iterator and cleans up. */\nClonedIterator.prototype._end = function (destroy) {\n // Unregister from a possible history reader\n var history = this._source && this._source._destination;\n if (history) history.unregister(this);\n\n // Don't call TransformIterator#_end,\n // as it would make the source inaccessible for other clones\n BufferedIterator.prototype._end.call(this, destroy);\n};\n\n// Disable buffer cleanup\nClonedIterator.prototype.close = AsyncIterator.prototype.close;\n\n/**\n Creates a copy of the current iterator,\n containing all items emitted from this point onward.\n\n Further copies can be created; they will all start from this same point.\n After this operation, only read the returned copies instead of the original iterator.\n\n @returns {AsyncIterator} A new iterator that contains all future items of this iterator\n**/\nAsyncIterator.prototype.clone = function () {\n return new ClonedIterator(this);\n};\n\n\n\n\n// Determines whether the given object is a function\nfunction isFunction(object) { return typeof object === 'function'; }\n\n// Export all submodules\nmodule.exports = AsyncIterator;\nAsyncIterator.AsyncIterator = AsyncIterator;\nAsyncIterator.EmptyIterator = AsyncIterator.empty = EmptyIterator;\nAsyncIterator.SingletonIterator = AsyncIterator.single = SingletonIterator;\nAsyncIterator.ArrayIterator = AsyncIterator.fromArray = ArrayIterator;\nAsyncIterator.IntegerIterator = IntegerIterator;\nAsyncIterator.BufferedIterator = BufferedIterator;\nAsyncIterator.TransformIterator = TransformIterator;\nAsyncIterator.SimpleTransformIterator = SimpleTransformIterator;\nAsyncIterator.MultiTransformIterator = MultiTransformIterator;\nAsyncIterator.ClonedIterator = ClonedIterator;\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nconst TermUtil_1 = require(\"./lib/TermUtil\");\nexports.getLiteralLanguage = TermUtil_1.getLiteralLanguage;\nexports.getLiteralType = TermUtil_1.getLiteralType;\nexports.getLiteralValue = TermUtil_1.getLiteralValue;\nexports.quadToStringQuad = TermUtil_1.quadToStringQuad;\nexports.stringQuadToQuad = TermUtil_1.stringQuadToQuad;\nexports.stringToTerm = TermUtil_1.stringToTerm;\nexports.termToString = TermUtil_1.termToString;\n//# sourceMappingURL=index.js.map","var RDF = 'http://www.w3.org/1999/02/22-rdf-syntax-ns#',\n XSD = 'http://www.w3.org/2001/XMLSchema#',\n SWAP = 'http://www.w3.org/2000/10/swap/';\n\nexport default {\n xsd: {\n decimal: XSD + 'decimal',\n boolean: XSD + 'boolean',\n double: XSD + 'double',\n integer: XSD + 'integer',\n string: XSD + 'string',\n },\n rdf: {\n type: RDF + 'type',\n nil: RDF + 'nil',\n first: RDF + 'first',\n rest: RDF + 'rest',\n langString: RDF + 'langString',\n },\n owl: {\n sameAs: 'http://www.w3.org/2002/07/owl#sameAs',\n },\n r: {\n forSome: SWAP + 'reify#forSome',\n forAll: SWAP + 'reify#forAll',\n },\n log: {\n implies: SWAP + 'log#implies',\n },\n};\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nconst sparqlAlgebra_1 = require(\"./lib/sparqlAlgebra\");\nexports.translate = sparqlAlgebra_1.default;\nconst Algebra = require(\"./lib/algebra\");\nexports.Algebra = Algebra;\nconst factory_1 = require(\"./lib/factory\");\nexports.Factory = factory_1.default;\nconst sparql_1 = require(\"./lib/sparql\");\nexports.toSparql = sparql_1.toSparql;\nexports.toSparqlJs = sparql_1.toSparqlJs;\nconst util_1 = require(\"./lib/util\");\nexports.Util = util_1.default;\n//# sourceMappingURL=index.js.map","\"use strict\";\nfunction __export(m) {\n for (var p in m) if (!exports.hasOwnProperty(p)) exports[p] = m[p];\n}\nObject.defineProperty(exports, \"__esModule\", { value: true });\n__export(require(\"./lib/ContextParser\"));\n__export(require(\"./lib/ErrorCoded\"));\n__export(require(\"./lib/FetchDocumentLoader\"));\n__export(require(\"./lib/JsonLdContextNormalized\"));\n__export(require(\"./lib/Util\"));\n//# sourceMappingURL=index.js.map","\"use strict\";\nfunction __export(m) {\n for (var p in m) if (!exports.hasOwnProperty(p)) exports[p] = m[p];\n}\nObject.defineProperty(exports, \"__esModule\", { value: true });\n__export(require(\"./lib/MediatorRace\"));\n//# sourceMappingURL=index.js.map","if (typeof Object.create === 'function') {\n // implementation from standard node.js 'util' module\n module.exports = function inherits(ctor, superCtor) {\n if (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 };\n} else {\n // old school shim for old browsers\n module.exports = function inherits(ctor, superCtor) {\n if (superCtor) {\n ctor.super_ = superCtor\n var TempCtor = function () {}\n TempCtor.prototype = superCtor.prototype\n ctor.prototype = new TempCtor()\n ctor.prototype.constructor = ctor\n }\n }\n}\n","var g;\n\n// This works in non-strict mode\ng = (function() {\n\treturn this;\n})();\n\ntry {\n\t// This works if eval is allowed (see CSP)\n\tg = g || new Function(\"return this\")();\n} catch (e) {\n\t// This works if the window reference is available\n\tif (typeof window === \"object\") g = window;\n}\n\n// g can still be undefined, but nothing to do about it...\n// We return undefined, instead of nothing here, so it's\n// easier to handle this case. if(!global) { ...}\n\nmodule.exports = g;\n","// Based on https://github.com/defunctzombie/node-process\n// Copyright (c) 2013 Roman Shtylman \n\n// Changes:\n// - use setImmediate for process.nextTick\n\nvar process = module.exports = {};\n\nprocess.nextTick = setImmediate;\n\nprocess.title = 'browser';\nprocess.browser = true;\nprocess.env = {};\nprocess.argv = [];\nprocess.version = ''; // empty string to avoid regexp issues\nprocess.versions = {};\n\nfunction noop() {}\n\nprocess.on = noop;\nprocess.addListener = noop;\nprocess.once = noop;\nprocess.off = noop;\nprocess.removeListener = noop;\nprocess.removeAllListeners = noop;\nprocess.emit = noop;\nprocess.prependListener = noop;\nprocess.prependOnceListener = noop;\n\nprocess.listeners = function (name) { return [] }\n\nprocess.binding = function (name) {\n throw new Error('process.binding is not supported');\n};\n\nprocess.cwd = function () { return '/' };\nprocess.chdir = function (dir) {\n throw new Error('process.chdir is not supported');\n};\nprocess.umask = function() { return 0; };\n","\"use strict\";\nfunction __export(m) {\n for (var p in m) if (!exports.hasOwnProperty(p)) exports[p] = m[p];\n}\nObject.defineProperty(exports, \"__esModule\", { value: true });\n__export(require(\"./lib/MediatorCombineUnion\"));\n//# sourceMappingURL=index.js.map","var scope = (typeof global !== \"undefined\" && global) ||\n (typeof self !== \"undefined\" && self) ||\n window;\nvar apply = Function.prototype.apply;\n\n// DOM APIs, for completeness\n\nexports.setTimeout = function() {\n return new Timeout(apply.call(setTimeout, scope, arguments), clearTimeout);\n};\nexports.setInterval = function() {\n return new Timeout(apply.call(setInterval, scope, arguments), clearInterval);\n};\nexports.clearTimeout =\nexports.clearInterval = function(timeout) {\n if (timeout) {\n timeout.close();\n }\n};\n\nfunction Timeout(id, clearFn) {\n this._id = id;\n this._clearFn = clearFn;\n}\nTimeout.prototype.unref = Timeout.prototype.ref = function() {};\nTimeout.prototype.close = function() {\n this._clearFn.call(scope, this._id);\n};\n\n// Does not start the time, just sets up the members needed.\nexports.enroll = function(item, msecs) {\n clearTimeout(item._idleTimeoutId);\n item._idleTimeout = msecs;\n};\n\nexports.unenroll = function(item) {\n clearTimeout(item._idleTimeoutId);\n item._idleTimeout = -1;\n};\n\nexports._unrefActive = exports.active = function(item) {\n clearTimeout(item._idleTimeoutId);\n\n var msecs = item._idleTimeout;\n if (msecs >= 0) {\n item._idleTimeoutId = setTimeout(function onTimeout() {\n if (item._onTimeout)\n item._onTimeout();\n }, msecs);\n }\n};\n\n// setimmediate attaches itself to the global object\nrequire(\"setimmediate\");\n// On some exotic environments, it's not clear which object `setimmediate` was\n// able to install onto. Search each possibility in the same order as the\n// `setimmediate` library.\nexports.setImmediate = (typeof self !== \"undefined\" && self.setImmediate) ||\n (typeof global !== \"undefined\" && global.setImmediate) ||\n (this && this.setImmediate);\nexports.clearImmediate = (typeof self !== \"undefined\" && self.clearImmediate) ||\n (typeof global !== \"undefined\" && global.clearImmediate) ||\n (this && this.clearImmediate);\n","/*!\n * The buffer module from node.js, for the browser.\n *\n * @author Feross Aboukhadijeh \n * @license MIT\n */\n/* eslint-disable no-proto */\n\n'use strict'\n\nvar base64 = require('base64-js')\nvar ieee754 = require('ieee754')\nvar isArray = require('isarray')\n\nexports.Buffer = Buffer\nexports.SlowBuffer = SlowBuffer\nexports.INSPECT_MAX_BYTES = 50\n\n/**\n * If `Buffer.TYPED_ARRAY_SUPPORT`:\n * === true Use Uint8Array implementation (fastest)\n * === false Use Object 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 * Due to various browser bugs, sometimes the Object implementation will be used even\n * when the browser supports typed arrays.\n *\n * Note:\n *\n * - Firefox 4-29 lacks support for adding new properties to `Uint8Array` instances,\n * See: https://bugzilla.mozilla.org/show_bug.cgi?id=695438.\n *\n * - Chrome 9-10 is missing the `TypedArray.prototype.subarray` function.\n *\n * - IE10 has a broken `TypedArray.prototype.subarray` function which returns arrays of\n * incorrect length in some situations.\n\n * We detect these buggy browsers and set `Buffer.TYPED_ARRAY_SUPPORT` to `false` so they\n * get the Object implementation, which is slower but behaves correctly.\n */\nBuffer.TYPED_ARRAY_SUPPORT = global.TYPED_ARRAY_SUPPORT !== undefined\n ? global.TYPED_ARRAY_SUPPORT\n : typedArraySupport()\n\n/*\n * Export kMaxLength after typed array support is determined.\n */\nexports.kMaxLength = kMaxLength()\n\nfunction typedArraySupport () {\n try {\n var arr = new Uint8Array(1)\n arr.__proto__ = {__proto__: Uint8Array.prototype, foo: function () { return 42 }}\n return arr.foo() === 42 && // typed array instances can be augmented\n typeof arr.subarray === 'function' && // chrome 9-10 lack `subarray`\n arr.subarray(1, 1).byteLength === 0 // ie10 has broken `subarray`\n } catch (e) {\n return false\n }\n}\n\nfunction kMaxLength () {\n return Buffer.TYPED_ARRAY_SUPPORT\n ? 0x7fffffff\n : 0x3fffffff\n}\n\nfunction createBuffer (that, length) {\n if (kMaxLength() < length) {\n throw new RangeError('Invalid typed array length')\n }\n if (Buffer.TYPED_ARRAY_SUPPORT) {\n // Return an augmented `Uint8Array` instance, for best performance\n that = new Uint8Array(length)\n that.__proto__ = Buffer.prototype\n } else {\n // Fallback: Return an object instance of the Buffer class\n if (that === null) {\n that = new Buffer(length)\n }\n that.length = length\n }\n\n return that\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 if (!Buffer.TYPED_ARRAY_SUPPORT && !(this instanceof Buffer)) {\n return new Buffer(arg, encodingOrOffset, length)\n }\n\n // Common case.\n if (typeof arg === 'number') {\n if (typeof encodingOrOffset === 'string') {\n throw new Error(\n 'If encoding is specified then the first argument must be a string'\n )\n }\n return allocUnsafe(this, arg)\n }\n return from(this, arg, encodingOrOffset, length)\n}\n\nBuffer.poolSize = 8192 // not used by this implementation\n\n// TODO: Legacy, not needed anymore. Remove in next major version.\nBuffer._augment = function (arr) {\n arr.__proto__ = Buffer.prototype\n return arr\n}\n\nfunction from (that, value, encodingOrOffset, length) {\n if (typeof value === 'number') {\n throw new TypeError('\"value\" argument must not be a number')\n }\n\n if (typeof ArrayBuffer !== 'undefined' && value instanceof ArrayBuffer) {\n return fromArrayBuffer(that, value, encodingOrOffset, length)\n }\n\n if (typeof value === 'string') {\n return fromString(that, value, encodingOrOffset)\n }\n\n return fromObject(that, value)\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(null, value, encodingOrOffset, length)\n}\n\nif (Buffer.TYPED_ARRAY_SUPPORT) {\n Buffer.prototype.__proto__ = Uint8Array.prototype\n Buffer.__proto__ = Uint8Array\n if (typeof Symbol !== 'undefined' && Symbol.species &&\n Buffer[Symbol.species] === Buffer) {\n // Fix subarray() in ES2016. See: https://github.com/feross/buffer/pull/97\n Object.defineProperty(Buffer, Symbol.species, {\n value: null,\n configurable: true\n })\n }\n}\n\nfunction assertSize (size) {\n if (typeof size !== 'number') {\n throw new TypeError('\"size\" argument must be a number')\n } else if (size < 0) {\n throw new RangeError('\"size\" argument must not be negative')\n }\n}\n\nfunction alloc (that, size, fill, encoding) {\n assertSize(size)\n if (size <= 0) {\n return createBuffer(that, 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 interpretted as a start offset.\n return typeof encoding === 'string'\n ? createBuffer(that, size).fill(fill, encoding)\n : createBuffer(that, size).fill(fill)\n }\n return createBuffer(that, 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(null, size, fill, encoding)\n}\n\nfunction allocUnsafe (that, size) {\n assertSize(size)\n that = createBuffer(that, size < 0 ? 0 : checked(size) | 0)\n if (!Buffer.TYPED_ARRAY_SUPPORT) {\n for (var i = 0; i < size; ++i) {\n that[i] = 0\n }\n }\n return that\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(null, 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(null, size)\n}\n\nfunction fromString (that, string, encoding) {\n if (typeof encoding !== 'string' || encoding === '') {\n encoding = 'utf8'\n }\n\n if (!Buffer.isEncoding(encoding)) {\n throw new TypeError('\"encoding\" must be a valid string encoding')\n }\n\n var length = byteLength(string, encoding) | 0\n that = createBuffer(that, length)\n\n var actual = that.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 that = that.slice(0, actual)\n }\n\n return that\n}\n\nfunction fromArrayLike (that, array) {\n var length = array.length < 0 ? 0 : checked(array.length) | 0\n that = createBuffer(that, length)\n for (var i = 0; i < length; i += 1) {\n that[i] = array[i] & 255\n }\n return that\n}\n\nfunction fromArrayBuffer (that, array, byteOffset, length) {\n array.byteLength // this throws if `array` is not a valid ArrayBuffer\n\n if (byteOffset < 0 || array.byteLength < byteOffset) {\n throw new RangeError('\\'offset\\' is out of bounds')\n }\n\n if (array.byteLength < byteOffset + (length || 0)) {\n throw new RangeError('\\'length\\' is out of bounds')\n }\n\n if (byteOffset === undefined && length === undefined) {\n array = new Uint8Array(array)\n } else if (length === undefined) {\n array = new Uint8Array(array, byteOffset)\n } else {\n array = new Uint8Array(array, byteOffset, length)\n }\n\n if (Buffer.TYPED_ARRAY_SUPPORT) {\n // Return an augmented `Uint8Array` instance, for best performance\n that = array\n that.__proto__ = Buffer.prototype\n } else {\n // Fallback: Return an object instance of the Buffer class\n that = fromArrayLike(that, array)\n }\n return that\n}\n\nfunction fromObject (that, obj) {\n if (Buffer.isBuffer(obj)) {\n var len = checked(obj.length) | 0\n that = createBuffer(that, len)\n\n if (that.length === 0) {\n return that\n }\n\n obj.copy(that, 0, 0, len)\n return that\n }\n\n if (obj) {\n if ((typeof ArrayBuffer !== 'undefined' &&\n obj.buffer instanceof ArrayBuffer) || 'length' in obj) {\n if (typeof obj.length !== 'number' || isnan(obj.length)) {\n return createBuffer(that, 0)\n }\n return fromArrayLike(that, obj)\n }\n\n if (obj.type === 'Buffer' && isArray(obj.data)) {\n return fromArrayLike(that, obj.data)\n }\n }\n\n throw new TypeError('First argument must be a string, Buffer, ArrayBuffer, Array, or array-like object.')\n}\n\nfunction checked (length) {\n // Note: cannot use `length < kMaxLength()` here because that fails when\n // length is NaN (which is otherwise coerced to zero.)\n if (length >= kMaxLength()) {\n throw new RangeError('Attempt to allocate Buffer larger than maximum ' +\n 'size: 0x' + kMaxLength().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)\n}\n\nBuffer.compare = function compare (a, b) {\n if (!Buffer.isBuffer(a) || !Buffer.isBuffer(b)) {\n throw new TypeError('Arguments must be Buffers')\n }\n\n if (a === b) return 0\n\n var x = a.length\n var y = b.length\n\n for (var 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 (!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 var 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 var buffer = Buffer.allocUnsafe(length)\n var pos = 0\n for (i = 0; i < list.length; ++i) {\n var buf = list[i]\n if (!Buffer.isBuffer(buf)) {\n throw new TypeError('\"list\" argument must be an Array of Buffers')\n }\n buf.copy(buffer, pos)\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 (typeof ArrayBuffer !== 'undefined' && typeof ArrayBuffer.isView === 'function' &&\n (ArrayBuffer.isView(string) || string instanceof ArrayBuffer)) {\n return string.byteLength\n }\n if (typeof string !== 'string') {\n string = '' + string\n }\n\n var len = string.length\n if (len === 0) return 0\n\n // Use a for loop to avoid recursion\n var 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 case undefined:\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) return utf8ToBytes(string).length // assume utf8\n encoding = ('' + encoding).toLowerCase()\n loweredCase = true\n }\n }\n}\nBuffer.byteLength = byteLength\n\nfunction slowToString (encoding, start, end) {\n var 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 coersion 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// The property is used by `Buffer.isBuffer` and `is-buffer` (in Safari 5-7) to detect\n// Buffer instances.\nBuffer.prototype._isBuffer = true\n\nfunction swap (b, n, m) {\n var i = b[n]\n b[n] = b[m]\n b[m] = i\n}\n\nBuffer.prototype.swap16 = function swap16 () {\n var len = this.length\n if (len % 2 !== 0) {\n throw new RangeError('Buffer size must be a multiple of 16-bits')\n }\n for (var i = 0; i < len; i += 2) {\n swap(this, i, i + 1)\n }\n return this\n}\n\nBuffer.prototype.swap32 = function swap32 () {\n var len = this.length\n if (len % 4 !== 0) {\n throw new RangeError('Buffer size must be a multiple of 32-bits')\n }\n for (var 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 var len = this.length\n if (len % 8 !== 0) {\n throw new RangeError('Buffer size must be a multiple of 64-bits')\n }\n for (var 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 var length = this.length | 0\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.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 var str = ''\n var max = exports.INSPECT_MAX_BYTES\n if (this.length > 0) {\n str = this.toString('hex', 0, max).match(/.{2}/g).join(' ')\n if (this.length > max) str += ' ... '\n }\n return ''\n}\n\nBuffer.prototype.compare = function compare (target, start, end, thisStart, thisEnd) {\n if (!Buffer.isBuffer(target)) {\n throw new TypeError('Argument must be a Buffer')\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 var x = thisEnd - thisStart\n var y = end - start\n var len = Math.min(x, y)\n\n var thisCopy = this.slice(thisStart, thisEnd)\n var targetCopy = target.slice(start, end)\n\n for (var 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 (isNaN(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 (Buffer.TYPED_ARRAY_SUPPORT &&\n 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 var indexSize = 1\n var arrLength = arr.length\n var 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 var i\n if (dir) {\n var 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 var found = true\n for (var 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 var 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 // must be an even number of digits\n var strLen = string.length\n if (strLen % 2 !== 0) throw new TypeError('Invalid hex string')\n\n if (length > strLen / 2) {\n length = strLen / 2\n }\n for (var i = 0; i < length; ++i) {\n var parsed = parseInt(string.substr(i * 2, 2), 16)\n if (isNaN(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 latin1Write (buf, string, offset, length) {\n return asciiWrite(buf, string, 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 // legacy write(string, encoding, offset, length) - remove in v0.13\n } else {\n throw new Error(\n 'Buffer.write(string, encoding, offset[, length]) is no longer supported'\n )\n }\n\n var 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 var 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 return asciiWrite(this, string, offset, length)\n\n case 'latin1':\n case 'binary':\n return latin1Write(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 var res = []\n\n var i = start\n while (i < end) {\n var firstByte = buf[i]\n var codePoint = null\n var bytesPerSequence = (firstByte > 0xEF) ? 4\n : (firstByte > 0xDF) ? 3\n : (firstByte > 0xBF) ? 2\n : 1\n\n if (i + bytesPerSequence <= end) {\n var 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\nvar MAX_ARGUMENTS_LENGTH = 0x1000\n\nfunction decodeCodePointsArray (codePoints) {\n var 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 var res = ''\n var 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 var ret = ''\n end = Math.min(buf.length, end)\n\n for (var i = start; i < end; ++i) {\n ret += String.fromCharCode(buf[i] & 0x7F)\n }\n return ret\n}\n\nfunction latin1Slice (buf, start, end) {\n var ret = ''\n end = Math.min(buf.length, end)\n\n for (var i = start; i < end; ++i) {\n ret += String.fromCharCode(buf[i])\n }\n return ret\n}\n\nfunction hexSlice (buf, start, end) {\n var len = buf.length\n\n if (!start || start < 0) start = 0\n if (!end || end < 0 || end > len) end = len\n\n var out = ''\n for (var i = start; i < end; ++i) {\n out += toHex(buf[i])\n }\n return out\n}\n\nfunction utf16leSlice (buf, start, end) {\n var bytes = buf.slice(start, end)\n var res = ''\n for (var i = 0; i < bytes.length; 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 var 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 var newBuf\n if (Buffer.TYPED_ARRAY_SUPPORT) {\n newBuf = this.subarray(start, end)\n newBuf.__proto__ = Buffer.prototype\n } else {\n var sliceLen = end - start\n newBuf = new Buffer(sliceLen, undefined)\n for (var i = 0; i < sliceLen; ++i) {\n newBuf[i] = this[i + start]\n }\n }\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 = function readUIntLE (offset, byteLength, noAssert) {\n offset = offset | 0\n byteLength = byteLength | 0\n if (!noAssert) checkOffset(offset, byteLength, this.length)\n\n var val = this[offset]\n var mul = 1\n var i = 0\n while (++i < byteLength && (mul *= 0x100)) {\n val += this[offset + i] * mul\n }\n\n return val\n}\n\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 var val = this[offset + --byteLength]\n var mul = 1\n while (byteLength > 0 && (mul *= 0x100)) {\n val += this[offset + --byteLength] * mul\n }\n\n return val\n}\n\nBuffer.prototype.readUInt8 = function readUInt8 (offset, noAssert) {\n if (!noAssert) checkOffset(offset, 1, this.length)\n return this[offset]\n}\n\nBuffer.prototype.readUInt16LE = function readUInt16LE (offset, noAssert) {\n if (!noAssert) checkOffset(offset, 2, this.length)\n return this[offset] | (this[offset + 1] << 8)\n}\n\nBuffer.prototype.readUInt16BE = function readUInt16BE (offset, noAssert) {\n if (!noAssert) checkOffset(offset, 2, this.length)\n return (this[offset] << 8) | this[offset + 1]\n}\n\nBuffer.prototype.readUInt32LE = function readUInt32LE (offset, noAssert) {\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 = function readUInt32BE (offset, noAssert) {\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.readIntLE = function readIntLE (offset, byteLength, noAssert) {\n offset = offset | 0\n byteLength = byteLength | 0\n if (!noAssert) checkOffset(offset, byteLength, this.length)\n\n var val = this[offset]\n var mul = 1\n var 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 var i = byteLength\n var mul = 1\n var 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 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 if (!noAssert) checkOffset(offset, 2, this.length)\n var val = this[offset] | (this[offset + 1] << 8)\n return (val & 0x8000) ? val | 0xFFFF0000 : val\n}\n\nBuffer.prototype.readInt16BE = function readInt16BE (offset, noAssert) {\n if (!noAssert) checkOffset(offset, 2, this.length)\n var val = this[offset + 1] | (this[offset] << 8)\n return (val & 0x8000) ? val | 0xFFFF0000 : val\n}\n\nBuffer.prototype.readInt32LE = function readInt32LE (offset, noAssert) {\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 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.readFloatLE = function readFloatLE (offset, noAssert) {\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 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 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 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 = function writeUIntLE (value, offset, byteLength, noAssert) {\n value = +value\n offset = offset | 0\n byteLength = byteLength | 0\n if (!noAssert) {\n var maxBytes = Math.pow(2, 8 * byteLength) - 1\n checkInt(this, value, offset, byteLength, maxBytes, 0)\n }\n\n var mul = 1\n var 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 = function writeUIntBE (value, offset, byteLength, noAssert) {\n value = +value\n offset = offset | 0\n byteLength = byteLength | 0\n if (!noAssert) {\n var maxBytes = Math.pow(2, 8 * byteLength) - 1\n checkInt(this, value, offset, byteLength, maxBytes, 0)\n }\n\n var i = byteLength - 1\n var 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 = function writeUInt8 (value, offset, noAssert) {\n value = +value\n offset = offset | 0\n if (!noAssert) checkInt(this, value, offset, 1, 0xff, 0)\n if (!Buffer.TYPED_ARRAY_SUPPORT) value = Math.floor(value)\n this[offset] = (value & 0xff)\n return offset + 1\n}\n\nfunction objectWriteUInt16 (buf, value, offset, littleEndian) {\n if (value < 0) value = 0xffff + value + 1\n for (var i = 0, j = Math.min(buf.length - offset, 2); i < j; ++i) {\n buf[offset + i] = (value & (0xff << (8 * (littleEndian ? i : 1 - i)))) >>>\n (littleEndian ? i : 1 - i) * 8\n }\n}\n\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 if (Buffer.TYPED_ARRAY_SUPPORT) {\n this[offset] = (value & 0xff)\n this[offset + 1] = (value >>> 8)\n } else {\n objectWriteUInt16(this, value, offset, true)\n }\n return offset + 2\n}\n\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 if (Buffer.TYPED_ARRAY_SUPPORT) {\n this[offset] = (value >>> 8)\n this[offset + 1] = (value & 0xff)\n } else {\n objectWriteUInt16(this, value, offset, false)\n }\n return offset + 2\n}\n\nfunction objectWriteUInt32 (buf, value, offset, littleEndian) {\n if (value < 0) value = 0xffffffff + value + 1\n for (var i = 0, j = Math.min(buf.length - offset, 4); i < j; ++i) {\n buf[offset + i] = (value >>> (littleEndian ? i : 3 - i) * 8) & 0xff\n }\n}\n\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 if (Buffer.TYPED_ARRAY_SUPPORT) {\n this[offset + 3] = (value >>> 24)\n this[offset + 2] = (value >>> 16)\n this[offset + 1] = (value >>> 8)\n this[offset] = (value & 0xff)\n } else {\n objectWriteUInt32(this, value, offset, true)\n }\n return offset + 4\n}\n\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 if (Buffer.TYPED_ARRAY_SUPPORT) {\n this[offset] = (value >>> 24)\n this[offset + 1] = (value >>> 16)\n this[offset + 2] = (value >>> 8)\n this[offset + 3] = (value & 0xff)\n } else {\n objectWriteUInt32(this, value, offset, false)\n }\n return offset + 4\n}\n\nBuffer.prototype.writeIntLE = function writeIntLE (value, offset, byteLength, noAssert) {\n value = +value\n offset = offset | 0\n if (!noAssert) {\n var limit = Math.pow(2, 8 * byteLength - 1)\n\n checkInt(this, value, offset, byteLength, limit - 1, -limit)\n }\n\n var i = 0\n var mul = 1\n var 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 var limit = Math.pow(2, 8 * byteLength - 1)\n\n checkInt(this, value, offset, byteLength, limit - 1, -limit)\n }\n\n var i = byteLength - 1\n var mul = 1\n var 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 (!Buffer.TYPED_ARRAY_SUPPORT) value = Math.floor(value)\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 if (Buffer.TYPED_ARRAY_SUPPORT) {\n this[offset] = (value & 0xff)\n this[offset + 1] = (value >>> 8)\n } else {\n objectWriteUInt16(this, value, offset, true)\n }\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 if (Buffer.TYPED_ARRAY_SUPPORT) {\n this[offset] = (value >>> 8)\n this[offset + 1] = (value & 0xff)\n } else {\n objectWriteUInt16(this, value, offset, false)\n }\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 if (Buffer.TYPED_ARRAY_SUPPORT) {\n this[offset] = (value & 0xff)\n this[offset + 1] = (value >>> 8)\n this[offset + 2] = (value >>> 16)\n this[offset + 3] = (value >>> 24)\n } else {\n objectWriteUInt32(this, value, offset, true)\n }\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 if (Buffer.TYPED_ARRAY_SUPPORT) {\n this[offset] = (value >>> 24)\n this[offset + 1] = (value >>> 16)\n this[offset + 2] = (value >>> 8)\n this[offset + 3] = (value & 0xff)\n } else {\n objectWriteUInt32(this, value, offset, false)\n }\n return offset + 4\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 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 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 (!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('sourceStart out of bounds')\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 var len = end - start\n var i\n\n if (this === target && start < targetStart && targetStart < end) {\n // descending copy from end\n for (i = len - 1; i >= 0; --i) {\n target[i + targetStart] = this[i + start]\n }\n } else if (len < 1000 || !Buffer.TYPED_ARRAY_SUPPORT) {\n // ascending copy from start\n for (i = 0; i < len; ++i) {\n target[i + targetStart] = this[i + start]\n }\n } else {\n Uint8Array.prototype.set.call(\n target,\n this.subarray(start, start + len),\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 (val.length === 1) {\n var code = val.charCodeAt(0)\n if (code < 256) {\n val = code\n }\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 } else if (typeof val === 'number') {\n val = val & 255\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 var i\n if (typeof val === 'number') {\n for (i = start; i < end; ++i) {\n this[i] = val\n }\n } else {\n var bytes = Buffer.isBuffer(val)\n ? val\n : utf8ToBytes(new Buffer(val, encoding).toString())\n var len = bytes.length\n for (i = 0; i < end - start; ++i) {\n this[i + start] = bytes[i % len]\n }\n }\n\n return this\n}\n\n// HELPER FUNCTIONS\n// ================\n\nvar INVALID_BASE64_RE = /[^+\\/0-9A-Za-z-_]/g\n\nfunction base64clean (str) {\n // Node strips out invalid characters like \\n and \\t from the string, base64-js does not\n str = stringtrim(str).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 stringtrim (str) {\n if (str.trim) return str.trim()\n return str.replace(/^\\s+|\\s+$/g, '')\n}\n\nfunction toHex (n) {\n if (n < 16) return '0' + n.toString(16)\n return n.toString(16)\n}\n\nfunction utf8ToBytes (string, units) {\n units = units || Infinity\n var codePoint\n var length = string.length\n var leadSurrogate = null\n var bytes = []\n\n for (var 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 var byteArray = []\n for (var 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 var c, hi, lo\n var byteArray = []\n for (var 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 for (var 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\nfunction isnan (val) {\n return val !== val // eslint-disable-line no-self-compare\n}\n","/*! safe-buffer. MIT License. Feross Aboukhadijeh */\n/* eslint-disable node/no-deprecated-api */\nvar buffer = require('buffer')\nvar Buffer = buffer.Buffer\n\n// alternative to using Object.keys for old browsers\nfunction copyProps (src, dst) {\n for (var key in src) {\n dst[key] = src[key]\n }\n}\nif (Buffer.from && Buffer.alloc && Buffer.allocUnsafe && Buffer.allocUnsafeSlow) {\n module.exports = buffer\n} else {\n // Copy properties from require('buffer')\n copyProps(buffer, exports)\n exports.Buffer = SafeBuffer\n}\n\nfunction SafeBuffer (arg, encodingOrOffset, length) {\n return Buffer(arg, encodingOrOffset, length)\n}\n\nSafeBuffer.prototype = Object.create(Buffer.prototype)\n\n// Copy static methods from Buffer\ncopyProps(Buffer, SafeBuffer)\n\nSafeBuffer.from = function (arg, encodingOrOffset, length) {\n if (typeof arg === 'number') {\n throw new TypeError('Argument must not be a number')\n }\n return Buffer(arg, encodingOrOffset, length)\n}\n\nSafeBuffer.alloc = function (size, fill, encoding) {\n if (typeof size !== 'number') {\n throw new TypeError('Argument must be a number')\n }\n var buf = Buffer(size)\n if (fill !== undefined) {\n if (typeof encoding === 'string') {\n buf.fill(fill, encoding)\n } else {\n buf.fill(fill)\n }\n } else {\n buf.fill(0)\n }\n return buf\n}\n\nSafeBuffer.allocUnsafe = function (size) {\n if (typeof size !== 'number') {\n throw new TypeError('Argument must be a number')\n }\n return Buffer(size)\n}\n\nSafeBuffer.allocUnsafeSlow = function (size) {\n if (typeof size !== 'number') {\n throw new TypeError('Argument must be a number')\n }\n return buffer.SlowBuffer(size)\n}\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\n// tslint:disable:variable-name\nconst RDFDM = require(\"@rdfjs/data-model\");\nconst immutable_1 = require(\"immutable\");\nexports.TRUE_STR = '\"true\"^^xsd:boolean';\nexports.FALSE_STR = '\"false\"^^xsd:boolean';\nexports.EVB_ERR_STR = '\"not an dateTime\"^^xsd:dateTime';\n// TODO: Consider inlining all with 'const enum'\nvar TypeURL;\n(function (TypeURL) {\n TypeURL[\"XSD_ANY_URI\"] = \"http://www.w3.org/2001/XMLSchema#anyURI\";\n TypeURL[\"XSD_STRING\"] = \"http://www.w3.org/2001/XMLSchema#string\";\n TypeURL[\"RDF_LANG_STRING\"] = \"http://www.w3.org/1999/02/22-rdf-syntax-ns#langString\";\n TypeURL[\"XSD_BOOLEAN\"] = \"http://www.w3.org/2001/XMLSchema#boolean\";\n TypeURL[\"XSD_DATE_TIME\"] = \"http://www.w3.org/2001/XMLSchema#dateTime\";\n TypeURL[\"XSD_DATE\"] = \"http://www.w3.org/2001/XMLSchema#date\";\n // Numeric types\n TypeURL[\"XSD_INTEGER\"] = \"http://www.w3.org/2001/XMLSchema#integer\";\n TypeURL[\"XSD_DECIMAL\"] = \"http://www.w3.org/2001/XMLSchema#decimal\";\n TypeURL[\"XSD_FLOAT\"] = \"http://www.w3.org/2001/XMLSchema#float\";\n TypeURL[\"XSD_DOUBLE\"] = \"http://www.w3.org/2001/XMLSchema#double\";\n // Derived numeric types\n TypeURL[\"XSD_NON_POSITIVE_INTEGER\"] = \"http://www.w3.org/2001/XMLSchema#nonPositiveInteger\";\n TypeURL[\"XSD_NEGATIVE_INTEGER\"] = \"http://www.w3.org/2001/XMLSchema#negativeInteger\";\n TypeURL[\"XSD_LONG\"] = \"http://www.w3.org/2001/XMLSchema#long\";\n TypeURL[\"XSD_INT\"] = \"http://www.w3.org/2001/XMLSchema#int\";\n TypeURL[\"XSD_SHORT\"] = \"http://www.w3.org/2001/XMLSchema#short\";\n TypeURL[\"XSD_BYTE\"] = \"http://www.w3.org/2001/XMLSchema#byte\";\n TypeURL[\"XSD_NON_NEGATIVE_INTEGER\"] = \"http://www.w3.org/2001/XMLSchema#nonNegativeInteger\";\n TypeURL[\"XSD_UNSIGNED_LONG\"] = \"http://www.w3.org/2001/XMLSchema#unsignedLong\";\n TypeURL[\"XSD_UNSIGNED_INT\"] = \"http://www.w3.org/2001/XMLSchema#unsignedInt\";\n TypeURL[\"XSD_UNSIGNED_SHORT\"] = \"http://www.w3.org/2001/XMLSchema#unsignedShort\";\n TypeURL[\"XSD_UNSIGNED_BYTE\"] = \"http://www.w3.org/2001/XMLSchema#unsignedByte\";\n TypeURL[\"XSD_POSITIVE_INTEGER\"] = \"http://www.w3.org/2001/XMLSchema#positiveInteger\";\n // Other types\n TypeURL[\"XSD_DAYTIME_DURATION\"] = \"http://www.w3.org/2001/XMLSchema#dayTimeDuration\";\n})(TypeURL = exports.TypeURL || (exports.TypeURL = {}));\nfunction make(dt) {\n return RDFDM.namedNode(dt);\n}\nexports.make = make;\n// https://www.w3.org/TR/sparql11-query/#operandDataTypes\nvar NumericTypeURL;\n(function (NumericTypeURL) {\n // Numeric types\n NumericTypeURL[\"XSD_INTEGER\"] = \"http://www.w3.org/2001/XMLSchema#integer\";\n NumericTypeURL[\"XSD_DECIMAL\"] = \"http://www.w3.org/2001/XMLSchema#decimal\";\n NumericTypeURL[\"XSD_FLOAT\"] = \"http://www.w3.org/2001/XMLSchema#float\";\n NumericTypeURL[\"XSD_DOUBLE\"] = \"http://www.w3.org/2001/XMLSchema#double\";\n // Derived numeric types\n NumericTypeURL[\"XSD_NON_POSITIVE_INTEGER\"] = \"http://www.w3.org/2001/XMLSchema#nonPositiveInteger\";\n NumericTypeURL[\"XSD_NEGATIVE_INTEGER\"] = \"http://www.w3.org/2001/XMLSchema#negativeInteger\";\n NumericTypeURL[\"XSD_LONG\"] = \"http://www.w3.org/2001/XMLSchema#long\";\n NumericTypeURL[\"XSD_INT\"] = \"http://www.w3.org/2001/XMLSchema#int\";\n NumericTypeURL[\"XSD_SHORT\"] = \"http://www.w3.org/2001/XMLSchema#short\";\n NumericTypeURL[\"XSD_BYTE\"] = \"http://www.w3.org/2001/XMLSchema#byte\";\n NumericTypeURL[\"XSD_NON_NEGATIVE_INTEGER\"] = \"http://www.w3.org/2001/XMLSchema#nonNegativeInteger\";\n NumericTypeURL[\"XSD_UNSIGNED_LONG\"] = \"http://www.w3.org/2001/XMLSchema#unsignedLong\";\n NumericTypeURL[\"XSD_UNSIGNED_INT\"] = \"http://www.w3.org/2001/XMLSchema#unsignedInt\";\n NumericTypeURL[\"XSD_UNSIGNED_SHORT\"] = \"http://www.w3.org/2001/XMLSchema#unsignedShort\";\n NumericTypeURL[\"XSD_UNSIGNED_BYTE\"] = \"http://www.w3.org/2001/XMLSchema#unsignedByte\";\n NumericTypeURL[\"XSD_POSITIVE_INTEGER\"] = \"http://www.w3.org/2001/XMLSchema#positiveInteger\";\n})(NumericTypeURL = exports.NumericTypeURL || (exports.NumericTypeURL = {}));\nvar DerivedIntegerTypeURL;\n(function (DerivedIntegerTypeURL) {\n DerivedIntegerTypeURL[\"XSD_NON_POSITIVE_INTEGER\"] = \"http://www.w3.org/2001/XMLSchema#nonPositiveInteger\";\n DerivedIntegerTypeURL[\"XSD_NEGATIVE_INTEGER\"] = \"http://www.w3.org/2001/XMLSchema#negativeInteger\";\n DerivedIntegerTypeURL[\"XSD_LONG\"] = \"http://www.w3.org/2001/XMLSchema#long\";\n DerivedIntegerTypeURL[\"XSD_INT\"] = \"http://www.w3.org/2001/XMLSchema#int\";\n DerivedIntegerTypeURL[\"XSD_SHORT\"] = \"http://www.w3.org/2001/XMLSchema#short\";\n DerivedIntegerTypeURL[\"XSD_BYTE\"] = \"http://www.w3.org/2001/XMLSchema#byte\";\n DerivedIntegerTypeURL[\"XSD_NON_NEGATIVE_INTEGER\"] = \"http://www.w3.org/2001/XMLSchema#nonNegativeInteger\";\n DerivedIntegerTypeURL[\"XSD_UNSIGNED_LONG\"] = \"http://www.w3.org/2001/XMLSchema#unsignedLong\";\n DerivedIntegerTypeURL[\"XSD_UNSIGNED_INT\"] = \"http://www.w3.org/2001/XMLSchema#unsignedInt\";\n DerivedIntegerTypeURL[\"XSD_UNSIGNED_SHORT\"] = \"http://www.w3.org/2001/XMLSchema#unsignedShort\";\n DerivedIntegerTypeURL[\"XSD_UNSIGNED_BYTE\"] = \"http://www.w3.org/2001/XMLSchema#unsignedByte\";\n DerivedIntegerTypeURL[\"XSD_POSITIVE_INTEGER\"] = \"http://www.w3.org/2001/XMLSchema#positiveInteger\";\n})(DerivedIntegerTypeURL = exports.DerivedIntegerTypeURL || (exports.DerivedIntegerTypeURL = {}));\nexports.NumericTypeURLs = immutable_1.Set(Object.values(NumericTypeURL));\nexports.DerivedIntegerTypeURLs = immutable_1.Set(Object.values(DerivedIntegerTypeURL));\nexports.commonTerms = {\n true: RDFDM.literal('true', RDFDM.namedNode(TypeURL.XSD_BOOLEAN)),\n false: RDFDM.literal('false', RDFDM.namedNode(TypeURL.XSD_BOOLEAN)),\n};\nexports.PrimitiveNumericTypes = immutable_1.Set(['integer', 'decimal', 'float', 'double']);\nfunction type(typeURL) {\n switch (typeURL) {\n case null:\n case undefined:\n case '':\n case TypeURL.XSD_ANY_URI: return 'string';\n case TypeURL.XSD_STRING: return 'string';\n case TypeURL.RDF_LANG_STRING: return 'langString';\n case TypeURL.XSD_DATE_TIME: return 'date';\n case TypeURL.XSD_BOOLEAN: return 'boolean';\n case TypeURL.XSD_DECIMAL: return 'decimal';\n case TypeURL.XSD_FLOAT: return 'float';\n case TypeURL.XSD_DOUBLE: return 'double';\n case TypeURL.XSD_INTEGER:\n case TypeURL.XSD_NON_POSITIVE_INTEGER:\n case TypeURL.XSD_NEGATIVE_INTEGER:\n case TypeURL.XSD_LONG:\n case TypeURL.XSD_INT:\n case TypeURL.XSD_SHORT:\n case TypeURL.XSD_BYTE:\n case TypeURL.XSD_NON_NEGATIVE_INTEGER:\n case TypeURL.XSD_UNSIGNED_LONG:\n case TypeURL.XSD_UNSIGNED_INT:\n case TypeURL.XSD_UNSIGNED_SHORT:\n case TypeURL.XSD_UNSIGNED_BYTE:\n case TypeURL.XSD_POSITIVE_INTEGER: return 'integer';\n default: return 'other';\n }\n}\nexports.type = type;\n// If datatypes get lost or lose specificity during operations, we can insert a\n// concrete type, since categories should remain the same. This mostly (only)\n// relevant for integer subtypes.\nconst _decategorize = immutable_1.Map([\n ['integer', TypeURL.XSD_INTEGER],\n ['float', TypeURL.XSD_FLOAT],\n ['double', TypeURL.XSD_DOUBLE],\n ['decimal', TypeURL.XSD_DECIMAL],\n]);\nfunction decategorize(cat) {\n return _decategorize.get(cat);\n}\nexports.decategorize = decategorize;\n// TODO: Remove unneeded double typing\nvar RegularOperator;\n(function (RegularOperator) {\n // Operator mapping\n // https://www.w3.org/TR/sparql11-query/#OperatorMapping\n RegularOperator[\"NOT\"] = \"!\";\n RegularOperator[\"UMINUS\"] = \"UMINUS\";\n RegularOperator[\"UPLUS\"] = \"UPLUS\";\n // LOGICAL_AND // See SpecialOperators\n // LOGICAL_OR // See SpecialOperators\n RegularOperator[\"EQUAL\"] = \"=\";\n RegularOperator[\"NOT_EQUAL\"] = \"!=\";\n RegularOperator[\"LT\"] = \"<\";\n RegularOperator[\"GT\"] = \">\";\n RegularOperator[\"LTE\"] = \"<=\";\n RegularOperator[\"GTE\"] = \">=\";\n RegularOperator[\"MULTIPLICATION\"] = \"*\";\n RegularOperator[\"DIVISION\"] = \"/\";\n RegularOperator[\"ADDITION\"] = \"+\";\n RegularOperator[\"SUBTRACTION\"] = \"-\";\n // Functional Forms\n // https://www.w3.org/TR/sparql11-query/#func-forms\n // See SpecialOperators\n // Functions on RDF Terms\n // https://www.w3.org/TR/sparql11-query/#func-rdfTerms\n RegularOperator[\"IS_IRI\"] = \"isiri\";\n RegularOperator[\"IS_BLANK\"] = \"isblank\";\n RegularOperator[\"IS_LITERAL\"] = \"isliteral\";\n RegularOperator[\"IS_NUMERIC\"] = \"isnumeric\";\n RegularOperator[\"STR\"] = \"str\";\n RegularOperator[\"LANG\"] = \"lang\";\n RegularOperator[\"DATATYPE\"] = \"datatype\";\n // IRI = 'iri', (see special operators)\n // URI = 'uri', (see special operators)\n // BNODE = 'BNODE', (see special operators)\n RegularOperator[\"STRDT\"] = \"strdt\";\n RegularOperator[\"STRLANG\"] = \"strlang\";\n RegularOperator[\"UUID\"] = \"uuid\";\n RegularOperator[\"STRUUID\"] = \"struuid\";\n // Functions on strings\n // https://www.w3.org/TR/sparql11-query/#func-strings\n RegularOperator[\"STRLEN\"] = \"strlen\";\n RegularOperator[\"SUBSTR\"] = \"substr\";\n RegularOperator[\"UCASE\"] = \"ucase\";\n RegularOperator[\"LCASE\"] = \"lcase\";\n RegularOperator[\"STRSTARTS\"] = \"strstarts\";\n RegularOperator[\"STRENDS\"] = \"strends\";\n RegularOperator[\"CONTAINS\"] = \"contains\";\n RegularOperator[\"STRBEFORE\"] = \"strbefore\";\n RegularOperator[\"STRAFTER\"] = \"strafter\";\n RegularOperator[\"ENCODE_FOR_URI\"] = \"encode_for_uri\";\n // CONCAT = 'concat' (see special operators)\n RegularOperator[\"LANG_MATCHES\"] = \"langmatches\";\n RegularOperator[\"REGEX\"] = \"regex\";\n RegularOperator[\"REPLACE\"] = \"replace\";\n // Functions on numerics\n // https://www.w3.org/TR/sparql11-query/#func-numerics\n RegularOperator[\"ABS\"] = \"abs\";\n RegularOperator[\"ROUND\"] = \"round\";\n RegularOperator[\"CEIL\"] = \"ceil\";\n RegularOperator[\"FLOOR\"] = \"floor\";\n RegularOperator[\"RAND\"] = \"rand\";\n // Functions on Dates and Times\n // https://www.w3.org/TR/sparql11-query/#func-date-time\n // NOW = 'now' (see special operators)\n RegularOperator[\"YEAR\"] = \"year\";\n RegularOperator[\"MONTH\"] = \"month\";\n RegularOperator[\"DAY\"] = \"day\";\n RegularOperator[\"HOURS\"] = \"hours\";\n RegularOperator[\"MINUTES\"] = \"minutes\";\n RegularOperator[\"SECONDS\"] = \"seconds\";\n RegularOperator[\"TIMEZONE\"] = \"timezone\";\n RegularOperator[\"TZ\"] = \"tz\";\n // Hash functions\n // https://www.w3.org/TR/sparql11-query/#func-hash\n RegularOperator[\"MD5\"] = \"md5\";\n RegularOperator[\"SHA1\"] = \"sha1\";\n RegularOperator[\"SHA256\"] = \"sha256\";\n RegularOperator[\"SHA384\"] = \"sha384\";\n RegularOperator[\"SHA512\"] = \"sha512\";\n // XPath Constructor functions\n // https://www.w3.org/TR/sparql11-query/#FunctionMapping\n // See Named Operators\n})(RegularOperator = exports.RegularOperator || (exports.RegularOperator = {}));\nvar SpecialOperator;\n(function (SpecialOperator) {\n // Functional Forms\n // https://www.w3.org/TR/sparql11-query/#func-forms\n SpecialOperator[\"BOUND\"] = \"bound\";\n SpecialOperator[\"IF\"] = \"if\";\n SpecialOperator[\"COALESCE\"] = \"coalesce\";\n // EXISTENCE = 'existence',\n SpecialOperator[\"LOGICAL_OR\"] = \"||\";\n SpecialOperator[\"LOGICAL_AND\"] = \"&&\";\n // EQUAL = '=', // See RegularOperators\n SpecialOperator[\"SAME_TERM\"] = \"sameterm\";\n SpecialOperator[\"IN\"] = \"in\";\n SpecialOperator[\"NOT_IN\"] = \"notin\";\n // Annoying functions\n SpecialOperator[\"CONCAT\"] = \"concat\";\n // Context dependant functions\n SpecialOperator[\"NOW\"] = \"now\";\n SpecialOperator[\"IRI\"] = \"iri\";\n SpecialOperator[\"URI\"] = \"uri\";\n SpecialOperator[\"BNODE\"] = \"BNODE\";\n})(SpecialOperator = exports.SpecialOperator || (exports.SpecialOperator = {}));\nexports.RegularOperators = immutable_1.Set(Object.values(RegularOperator));\nexports.SpecialOperators = immutable_1.Set(Object.values(SpecialOperator));\nexports.Operators = exports.RegularOperators.union(exports.SpecialOperators);\nvar SetFunction;\n(function (SetFunction) {\n SetFunction[\"COUNT\"] = \"count\";\n SetFunction[\"SUM\"] = \"sum\";\n SetFunction[\"MIN\"] = \"min\";\n SetFunction[\"MAX\"] = \"max\";\n SetFunction[\"AVG\"] = \"avg\";\n SetFunction[\"GROUP_CONCAT\"] = \"group_concat\";\n SetFunction[\"SAMPLE\"] = \"sample\";\n})(SetFunction = exports.SetFunction || (exports.SetFunction = {}));\nexports.SetFunctions = immutable_1.Set(Object.values(SetFunction));\nexports.NamedOperators = immutable_1.Set([\n TypeURL.XSD_STRING,\n TypeURL.XSD_FLOAT,\n TypeURL.XSD_DOUBLE,\n TypeURL.XSD_DECIMAL,\n TypeURL.XSD_INTEGER,\n TypeURL.XSD_DATE_TIME,\n TypeURL.XSD_DATE,\n TypeURL.XSD_BOOLEAN,\n]);\n//# sourceMappingURL=Consts.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\n/**\n * This class of error will be thrown when an expression errors.\n * Various reasons this could happen are:\n * - invalid types for the given operator\n * - unbound variables\n * - invalid lexical forms\n * - ...\n *\n * The distinction is made so that one can catch this specific type\n * and handle it accordingly to the SPARQL spec (relevant for e.g. FILTER, EXTEND),\n * while others (programming errors) can be re-thrown.\n *\n * @see isExpressionError\n */\nclass ExpressionError extends Error {\n}\nexports.ExpressionError = ExpressionError;\n/**\n * Checks whether a given error is an {@link ExpressionError}.\n * Also useful for mocking in tests for covering all branches.\n *\n * @see ExpressionError\n */\nfunction isExpressionError(error) {\n return error instanceof ExpressionError;\n}\nexports.isExpressionError = isExpressionError;\n/**\n * A literal has an invalid lexical form for the datatype it is accompanied by.\n * This error is only thrown when the term is as function argument that requires\n * a valid lexical form.\n */\nclass InvalidLexicalForm extends ExpressionError {\n constructor(arg) {\n super(`Invalid lexical form '${pp(arg)}'`);\n this.arg = arg;\n }\n}\nexports.InvalidLexicalForm = InvalidLexicalForm;\n/**\n * A variable in the expression was not bound.\n */\nclass UnboundVariableError extends ExpressionError {\n constructor(variable, bindings) {\n super(`Unbound variable '${pp(variable)}'`);\n this.variable = variable;\n this.bindings = bindings;\n }\n}\nexports.UnboundVariableError = UnboundVariableError;\n/**\n * An invalid term was being coerced to an Effective Boolean Value.\n *\n * See the {@link https://www.w3.org/TR/sparql11-query/#ebv | SPARQL docs}\n * on EBVs.\n */\nclass EBVCoercionError extends ExpressionError {\n constructor(arg) {\n super(`Cannot coerce term to EBV '${pp(arg)}'`);\n this.arg = arg;\n }\n}\nexports.EBVCoercionError = EBVCoercionError;\n/**\n * An equality test was done on literals with unsupported datatypes.\n *\n * See {@link https://www.w3.org/TR/sparql11-query/#func-RDFterm-equal | term equality spec}.\n */\nclass RDFEqualTypeError extends ExpressionError {\n constructor(args) {\n super('Equality test for literals with unsupported datatypes');\n this.args = args;\n }\n}\nexports.RDFEqualTypeError = RDFEqualTypeError;\n/**\n * All the expressions in a COALESCE call threw errors.\n */\nclass CoalesceError extends ExpressionError {\n constructor(errors) {\n super('All COALESCE arguments threw errors');\n this.errors = errors;\n }\n}\nexports.CoalesceError = CoalesceError;\n/**\n * No arguments to an IN call where equal, and at least one threw an error.\n */\nclass InError extends ExpressionError {\n constructor(errors) {\n super('Some argument to IN errorred and none where equal. ' +\n errors.map((err) => `(${err.toString()}) `).join('and '));\n this.errors = errors;\n }\n}\nexports.InError = InError;\n/**\n * Literals were passed to an operator that doesn't support their datatypes.\n */\nclass InvalidArgumentTypes extends ExpressionError {\n constructor(args, op) {\n super(`Argument types not valid for operator: '${pp(op)}' with '${pp(args)}`);\n this.args = args;\n this.op = op;\n }\n}\nexports.InvalidArgumentTypes = InvalidArgumentTypes;\n/**\n * An invalid typecast happened.\n */\nclass CastError extends ExpressionError {\n constructor(arg, cast) {\n super(`Invalid cast: '${pp(arg)}' to '${pp(cast)}'`);\n this.arg = arg;\n }\n}\nexports.CastError = CastError;\nclass InvalidTimezoneCall extends ExpressionError {\n constructor(dateString) {\n super(`TIMEZONE call on ${dateString} which has no timezone`);\n this.dateString = dateString;\n }\n}\nexports.InvalidTimezoneCall = InvalidTimezoneCall;\nclass IncompatibleLanguageOperation extends ExpressionError {\n constructor(arg1, arg2) {\n super(`Operation on incompatible language literals '${pp(arg1)}' and '${pp(arg2)}'`);\n this.arg1 = arg1;\n this.arg2 = arg2;\n }\n}\nexports.IncompatibleLanguageOperation = IncompatibleLanguageOperation;\nclass EmptyAggregateError extends ExpressionError {\n constructor() {\n super('Empty aggregate expression');\n }\n}\nexports.EmptyAggregateError = EmptyAggregateError;\n// Non Expression Errors ------------------------------------------------------\n/**\n * An error that arises when we detect a 'should-be-impossible' state.\n * Given that this error is thrown, it clearly wasn't impossible, and some\n * mistake has been made.\n */\nclass UnexpectedError extends Error {\n constructor(message, payload) {\n super(`Programmer Error '${message}'`);\n this.payload = payload;\n }\n}\nexports.UnexpectedError = UnexpectedError;\n/**\n * An Error that signals a feature or function is yet unimplemented.\n */\nclass UnimplementedError extends Error {\n constructor(feature) {\n super(`Unimplemented feature '${feature}!'`);\n }\n}\nexports.UnimplementedError = UnimplementedError;\nclass InvalidArity extends Error {\n constructor(args, op) {\n super(`The number of args does not match the arity of the operator '${pp(op)}'.`);\n this.args = args;\n this.op = op;\n }\n}\nexports.InvalidArity = InvalidArity;\nclass InvalidExpression extends Error {\n constructor(expr) {\n super(`Invalid SPARQL Expression '${pp(expr)}'`);\n }\n}\nexports.InvalidExpression = InvalidExpression;\nclass InvalidExpressionType extends Error {\n constructor(expr) {\n super(`Invalid expression type for SPARQL Expression '${pp(expr)}'`);\n this.expr = expr;\n }\n}\nexports.InvalidExpressionType = InvalidExpressionType;\nclass InvalidTermType extends Error {\n constructor(term) {\n super(`Invalid term type for term '${pp(term)}'`);\n this.term = term;\n }\n}\nexports.InvalidTermType = InvalidTermType;\nclass UnknownOperator extends Error {\n constructor(name) {\n super(`Unknown operator: '${pp(name)}`);\n }\n}\nexports.UnknownOperator = UnknownOperator;\nclass UnknownNamedOperator extends Error {\n constructor(name) {\n super(`Unknown named operator: '${pp(name)}'`);\n }\n}\nexports.UnknownNamedOperator = UnknownNamedOperator;\nclass NoAggregator extends Error {\n constructor(name) {\n super(`Aggregate expression ${pp(name)} found, but no aggregate hook provided.`);\n }\n}\nexports.NoAggregator = NoAggregator;\nclass NoExistenceHook extends Error {\n constructor() {\n super('EXISTS found, but no existence hook provided.');\n }\n}\nexports.NoExistenceHook = NoExistenceHook;\nfunction pp(o) {\n return JSON.stringify(o);\n}\n//# sourceMappingURL=Errors.js.map","/**\n * Copyright (c) 2014-present, Facebook, Inc.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n\n(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined' ? module.exports = factory() :\n typeof define === 'function' && define.amd ? define(factory) :\n (global.Immutable = factory());\n}(this, function () { 'use strict';var SLICE$0 = Array.prototype.slice;\n\n function createClass(ctor, superClass) {\n if (superClass) {\n ctor.prototype = Object.create(superClass.prototype);\n }\n ctor.prototype.constructor = ctor;\n }\n\n function Iterable(value) {\n return isIterable(value) ? value : Seq(value);\n }\n\n\n createClass(KeyedIterable, Iterable);\n function KeyedIterable(value) {\n return isKeyed(value) ? value : KeyedSeq(value);\n }\n\n\n createClass(IndexedIterable, Iterable);\n function IndexedIterable(value) {\n return isIndexed(value) ? value : IndexedSeq(value);\n }\n\n\n createClass(SetIterable, Iterable);\n function SetIterable(value) {\n return isIterable(value) && !isAssociative(value) ? value : SetSeq(value);\n }\n\n\n\n function isIterable(maybeIterable) {\n return !!(maybeIterable && maybeIterable[IS_ITERABLE_SENTINEL]);\n }\n\n function isKeyed(maybeKeyed) {\n return !!(maybeKeyed && maybeKeyed[IS_KEYED_SENTINEL]);\n }\n\n function isIndexed(maybeIndexed) {\n return !!(maybeIndexed && maybeIndexed[IS_INDEXED_SENTINEL]);\n }\n\n function isAssociative(maybeAssociative) {\n return isKeyed(maybeAssociative) || isIndexed(maybeAssociative);\n }\n\n function isOrdered(maybeOrdered) {\n return !!(maybeOrdered && maybeOrdered[IS_ORDERED_SENTINEL]);\n }\n\n Iterable.isIterable = isIterable;\n Iterable.isKeyed = isKeyed;\n Iterable.isIndexed = isIndexed;\n Iterable.isAssociative = isAssociative;\n Iterable.isOrdered = isOrdered;\n\n Iterable.Keyed = KeyedIterable;\n Iterable.Indexed = IndexedIterable;\n Iterable.Set = SetIterable;\n\n\n var IS_ITERABLE_SENTINEL = '@@__IMMUTABLE_ITERABLE__@@';\n var IS_KEYED_SENTINEL = '@@__IMMUTABLE_KEYED__@@';\n var IS_INDEXED_SENTINEL = '@@__IMMUTABLE_INDEXED__@@';\n var IS_ORDERED_SENTINEL = '@@__IMMUTABLE_ORDERED__@@';\n\n // Used for setting prototype methods that IE8 chokes on.\n var DELETE = 'delete';\n\n // Constants describing the size of trie nodes.\n var SHIFT = 5; // Resulted in best performance after ______?\n var SIZE = 1 << SHIFT;\n var MASK = SIZE - 1;\n\n // A consistent shared value representing \"not set\" which equals nothing other\n // than itself, and nothing that could be provided externally.\n var NOT_SET = {};\n\n // Boolean references, Rough equivalent of `bool &`.\n var CHANGE_LENGTH = { value: false };\n var DID_ALTER = { value: false };\n\n function MakeRef(ref) {\n ref.value = false;\n return ref;\n }\n\n function SetRef(ref) {\n ref && (ref.value = true);\n }\n\n // A function which returns a value representing an \"owner\" for transient writes\n // to tries. The return value will only ever equal itself, and will not equal\n // the return of any subsequent call of this function.\n function OwnerID() {}\n\n // http://jsperf.com/copy-array-inline\n function arrCopy(arr, offset) {\n offset = offset || 0;\n var len = Math.max(0, arr.length - offset);\n var newArr = new Array(len);\n for (var ii = 0; ii < len; ii++) {\n newArr[ii] = arr[ii + offset];\n }\n return newArr;\n }\n\n function ensureSize(iter) {\n if (iter.size === undefined) {\n iter.size = iter.__iterate(returnTrue);\n }\n return iter.size;\n }\n\n function wrapIndex(iter, index) {\n // This implements \"is array index\" which the ECMAString spec defines as:\n //\n // A String property name P is an array index if and only if\n // ToString(ToUint32(P)) is equal to P and ToUint32(P) is not equal\n // to 2^32−1.\n //\n // http://www.ecma-international.org/ecma-262/6.0/#sec-array-exotic-objects\n if (typeof index !== 'number') {\n var uint32Index = index >>> 0; // N >>> 0 is shorthand for ToUint32\n if ('' + uint32Index !== index || uint32Index === 4294967295) {\n return NaN;\n }\n index = uint32Index;\n }\n return index < 0 ? ensureSize(iter) + index : index;\n }\n\n function returnTrue() {\n return true;\n }\n\n function wholeSlice(begin, end, size) {\n return (begin === 0 || (size !== undefined && begin <= -size)) &&\n (end === undefined || (size !== undefined && end >= size));\n }\n\n function resolveBegin(begin, size) {\n return resolveIndex(begin, size, 0);\n }\n\n function resolveEnd(end, size) {\n return resolveIndex(end, size, size);\n }\n\n function resolveIndex(index, size, defaultIndex) {\n return index === undefined ?\n defaultIndex :\n index < 0 ?\n Math.max(0, size + index) :\n size === undefined ?\n index :\n Math.min(size, index);\n }\n\n /* global Symbol */\n\n var ITERATE_KEYS = 0;\n var ITERATE_VALUES = 1;\n var ITERATE_ENTRIES = 2;\n\n var REAL_ITERATOR_SYMBOL = typeof Symbol === 'function' && Symbol.iterator;\n var FAUX_ITERATOR_SYMBOL = '@@iterator';\n\n var ITERATOR_SYMBOL = REAL_ITERATOR_SYMBOL || FAUX_ITERATOR_SYMBOL;\n\n\n function Iterator(next) {\n this.next = next;\n }\n\n Iterator.prototype.toString = function() {\n return '[Iterator]';\n };\n\n\n Iterator.KEYS = ITERATE_KEYS;\n Iterator.VALUES = ITERATE_VALUES;\n Iterator.ENTRIES = ITERATE_ENTRIES;\n\n Iterator.prototype.inspect =\n Iterator.prototype.toSource = function () { return this.toString(); }\n Iterator.prototype[ITERATOR_SYMBOL] = function () {\n return this;\n };\n\n\n function iteratorValue(type, k, v, iteratorResult) {\n var value = type === 0 ? k : type === 1 ? v : [k, v];\n iteratorResult ? (iteratorResult.value = value) : (iteratorResult = {\n value: value, done: false\n });\n return iteratorResult;\n }\n\n function iteratorDone() {\n return { value: undefined, done: true };\n }\n\n function hasIterator(maybeIterable) {\n return !!getIteratorFn(maybeIterable);\n }\n\n function isIterator(maybeIterator) {\n return maybeIterator && typeof maybeIterator.next === 'function';\n }\n\n function getIterator(iterable) {\n var iteratorFn = getIteratorFn(iterable);\n return iteratorFn && iteratorFn.call(iterable);\n }\n\n function getIteratorFn(iterable) {\n var iteratorFn = iterable && (\n (REAL_ITERATOR_SYMBOL && iterable[REAL_ITERATOR_SYMBOL]) ||\n iterable[FAUX_ITERATOR_SYMBOL]\n );\n if (typeof iteratorFn === 'function') {\n return iteratorFn;\n }\n }\n\n function isArrayLike(value) {\n return value && typeof value.length === 'number';\n }\n\n createClass(Seq, Iterable);\n function Seq(value) {\n return value === null || value === undefined ? emptySequence() :\n isIterable(value) ? value.toSeq() : seqFromValue(value);\n }\n\n Seq.of = function(/*...values*/) {\n return Seq(arguments);\n };\n\n Seq.prototype.toSeq = function() {\n return this;\n };\n\n Seq.prototype.toString = function() {\n return this.__toString('Seq {', '}');\n };\n\n Seq.prototype.cacheResult = function() {\n if (!this._cache && this.__iterateUncached) {\n this._cache = this.entrySeq().toArray();\n this.size = this._cache.length;\n }\n return this;\n };\n\n // abstract __iterateUncached(fn, reverse)\n\n Seq.prototype.__iterate = function(fn, reverse) {\n return seqIterate(this, fn, reverse, true);\n };\n\n // abstract __iteratorUncached(type, reverse)\n\n Seq.prototype.__iterator = function(type, reverse) {\n return seqIterator(this, type, reverse, true);\n };\n\n\n\n createClass(KeyedSeq, Seq);\n function KeyedSeq(value) {\n return value === null || value === undefined ?\n emptySequence().toKeyedSeq() :\n isIterable(value) ?\n (isKeyed(value) ? value.toSeq() : value.fromEntrySeq()) :\n keyedSeqFromValue(value);\n }\n\n KeyedSeq.prototype.toKeyedSeq = function() {\n return this;\n };\n\n\n\n createClass(IndexedSeq, Seq);\n function IndexedSeq(value) {\n return value === null || value === undefined ? emptySequence() :\n !isIterable(value) ? indexedSeqFromValue(value) :\n isKeyed(value) ? value.entrySeq() : value.toIndexedSeq();\n }\n\n IndexedSeq.of = function(/*...values*/) {\n return IndexedSeq(arguments);\n };\n\n IndexedSeq.prototype.toIndexedSeq = function() {\n return this;\n };\n\n IndexedSeq.prototype.toString = function() {\n return this.__toString('Seq [', ']');\n };\n\n IndexedSeq.prototype.__iterate = function(fn, reverse) {\n return seqIterate(this, fn, reverse, false);\n };\n\n IndexedSeq.prototype.__iterator = function(type, reverse) {\n return seqIterator(this, type, reverse, false);\n };\n\n\n\n createClass(SetSeq, Seq);\n function SetSeq(value) {\n return (\n value === null || value === undefined ? emptySequence() :\n !isIterable(value) ? indexedSeqFromValue(value) :\n isKeyed(value) ? value.entrySeq() : value\n ).toSetSeq();\n }\n\n SetSeq.of = function(/*...values*/) {\n return SetSeq(arguments);\n };\n\n SetSeq.prototype.toSetSeq = function() {\n return this;\n };\n\n\n\n Seq.isSeq = isSeq;\n Seq.Keyed = KeyedSeq;\n Seq.Set = SetSeq;\n Seq.Indexed = IndexedSeq;\n\n var IS_SEQ_SENTINEL = '@@__IMMUTABLE_SEQ__@@';\n\n Seq.prototype[IS_SEQ_SENTINEL] = true;\n\n\n\n createClass(ArraySeq, IndexedSeq);\n function ArraySeq(array) {\n this._array = array;\n this.size = array.length;\n }\n\n ArraySeq.prototype.get = function(index, notSetValue) {\n return this.has(index) ? this._array[wrapIndex(this, index)] : notSetValue;\n };\n\n ArraySeq.prototype.__iterate = function(fn, reverse) {\n var array = this._array;\n var maxIndex = array.length - 1;\n for (var ii = 0; ii <= maxIndex; ii++) {\n if (fn(array[reverse ? maxIndex - ii : ii], ii, this) === false) {\n return ii + 1;\n }\n }\n return ii;\n };\n\n ArraySeq.prototype.__iterator = function(type, reverse) {\n var array = this._array;\n var maxIndex = array.length - 1;\n var ii = 0;\n return new Iterator(function() \n {return ii > maxIndex ?\n iteratorDone() :\n iteratorValue(type, ii, array[reverse ? maxIndex - ii++ : ii++])}\n );\n };\n\n\n\n createClass(ObjectSeq, KeyedSeq);\n function ObjectSeq(object) {\n var keys = Object.keys(object);\n this._object = object;\n this._keys = keys;\n this.size = keys.length;\n }\n\n ObjectSeq.prototype.get = function(key, notSetValue) {\n if (notSetValue !== undefined && !this.has(key)) {\n return notSetValue;\n }\n return this._object[key];\n };\n\n ObjectSeq.prototype.has = function(key) {\n return this._object.hasOwnProperty(key);\n };\n\n ObjectSeq.prototype.__iterate = function(fn, reverse) {\n var object = this._object;\n var keys = this._keys;\n var maxIndex = keys.length - 1;\n for (var ii = 0; ii <= maxIndex; ii++) {\n var key = keys[reverse ? maxIndex - ii : ii];\n if (fn(object[key], key, this) === false) {\n return ii + 1;\n }\n }\n return ii;\n };\n\n ObjectSeq.prototype.__iterator = function(type, reverse) {\n var object = this._object;\n var keys = this._keys;\n var maxIndex = keys.length - 1;\n var ii = 0;\n return new Iterator(function() {\n var key = keys[reverse ? maxIndex - ii : ii];\n return ii++ > maxIndex ?\n iteratorDone() :\n iteratorValue(type, key, object[key]);\n });\n };\n\n ObjectSeq.prototype[IS_ORDERED_SENTINEL] = true;\n\n\n createClass(IterableSeq, IndexedSeq);\n function IterableSeq(iterable) {\n this._iterable = iterable;\n this.size = iterable.length || iterable.size;\n }\n\n IterableSeq.prototype.__iterateUncached = function(fn, reverse) {\n if (reverse) {\n return this.cacheResult().__iterate(fn, reverse);\n }\n var iterable = this._iterable;\n var iterator = getIterator(iterable);\n var iterations = 0;\n if (isIterator(iterator)) {\n var step;\n while (!(step = iterator.next()).done) {\n if (fn(step.value, iterations++, this) === false) {\n break;\n }\n }\n }\n return iterations;\n };\n\n IterableSeq.prototype.__iteratorUncached = function(type, reverse) {\n if (reverse) {\n return this.cacheResult().__iterator(type, reverse);\n }\n var iterable = this._iterable;\n var iterator = getIterator(iterable);\n if (!isIterator(iterator)) {\n return new Iterator(iteratorDone);\n }\n var iterations = 0;\n return new Iterator(function() {\n var step = iterator.next();\n return step.done ? step : iteratorValue(type, iterations++, step.value);\n });\n };\n\n\n\n createClass(IteratorSeq, IndexedSeq);\n function IteratorSeq(iterator) {\n this._iterator = iterator;\n this._iteratorCache = [];\n }\n\n IteratorSeq.prototype.__iterateUncached = function(fn, reverse) {\n if (reverse) {\n return this.cacheResult().__iterate(fn, reverse);\n }\n var iterator = this._iterator;\n var cache = this._iteratorCache;\n var iterations = 0;\n while (iterations < cache.length) {\n if (fn(cache[iterations], iterations++, this) === false) {\n return iterations;\n }\n }\n var step;\n while (!(step = iterator.next()).done) {\n var val = step.value;\n cache[iterations] = val;\n if (fn(val, iterations++, this) === false) {\n break;\n }\n }\n return iterations;\n };\n\n IteratorSeq.prototype.__iteratorUncached = function(type, reverse) {\n if (reverse) {\n return this.cacheResult().__iterator(type, reverse);\n }\n var iterator = this._iterator;\n var cache = this._iteratorCache;\n var iterations = 0;\n return new Iterator(function() {\n if (iterations >= cache.length) {\n var step = iterator.next();\n if (step.done) {\n return step;\n }\n cache[iterations] = step.value;\n }\n return iteratorValue(type, iterations, cache[iterations++]);\n });\n };\n\n\n\n\n // # pragma Helper functions\n\n function isSeq(maybeSeq) {\n return !!(maybeSeq && maybeSeq[IS_SEQ_SENTINEL]);\n }\n\n var EMPTY_SEQ;\n\n function emptySequence() {\n return EMPTY_SEQ || (EMPTY_SEQ = new ArraySeq([]));\n }\n\n function keyedSeqFromValue(value) {\n var seq =\n Array.isArray(value) ? new ArraySeq(value).fromEntrySeq() :\n isIterator(value) ? new IteratorSeq(value).fromEntrySeq() :\n hasIterator(value) ? new IterableSeq(value).fromEntrySeq() :\n typeof value === 'object' ? new ObjectSeq(value) :\n undefined;\n if (!seq) {\n throw new TypeError(\n 'Expected Array or iterable object of [k, v] entries, '+\n 'or keyed object: ' + value\n );\n }\n return seq;\n }\n\n function indexedSeqFromValue(value) {\n var seq = maybeIndexedSeqFromValue(value);\n if (!seq) {\n throw new TypeError(\n 'Expected Array or iterable object of values: ' + value\n );\n }\n return seq;\n }\n\n function seqFromValue(value) {\n var seq = maybeIndexedSeqFromValue(value) ||\n (typeof value === 'object' && new ObjectSeq(value));\n if (!seq) {\n throw new TypeError(\n 'Expected Array or iterable object of values, or keyed object: ' + value\n );\n }\n return seq;\n }\n\n function maybeIndexedSeqFromValue(value) {\n return (\n isArrayLike(value) ? new ArraySeq(value) :\n isIterator(value) ? new IteratorSeq(value) :\n hasIterator(value) ? new IterableSeq(value) :\n undefined\n );\n }\n\n function seqIterate(seq, fn, reverse, useKeys) {\n var cache = seq._cache;\n if (cache) {\n var maxIndex = cache.length - 1;\n for (var ii = 0; ii <= maxIndex; ii++) {\n var entry = cache[reverse ? maxIndex - ii : ii];\n if (fn(entry[1], useKeys ? entry[0] : ii, seq) === false) {\n return ii + 1;\n }\n }\n return ii;\n }\n return seq.__iterateUncached(fn, reverse);\n }\n\n function seqIterator(seq, type, reverse, useKeys) {\n var cache = seq._cache;\n if (cache) {\n var maxIndex = cache.length - 1;\n var ii = 0;\n return new Iterator(function() {\n var entry = cache[reverse ? maxIndex - ii : ii];\n return ii++ > maxIndex ?\n iteratorDone() :\n iteratorValue(type, useKeys ? entry[0] : ii - 1, entry[1]);\n });\n }\n return seq.__iteratorUncached(type, reverse);\n }\n\n function fromJS(json, converter) {\n return converter ?\n fromJSWith(converter, json, '', {'': json}) :\n fromJSDefault(json);\n }\n\n function fromJSWith(converter, json, key, parentJSON) {\n if (Array.isArray(json)) {\n return converter.call(parentJSON, key, IndexedSeq(json).map(function(v, k) {return fromJSWith(converter, v, k, json)}));\n }\n if (isPlainObj(json)) {\n return converter.call(parentJSON, key, KeyedSeq(json).map(function(v, k) {return fromJSWith(converter, v, k, json)}));\n }\n return json;\n }\n\n function fromJSDefault(json) {\n if (Array.isArray(json)) {\n return IndexedSeq(json).map(fromJSDefault).toList();\n }\n if (isPlainObj(json)) {\n return KeyedSeq(json).map(fromJSDefault).toMap();\n }\n return json;\n }\n\n function isPlainObj(value) {\n return value && (value.constructor === Object || value.constructor === undefined);\n }\n\n /**\n * An extension of the \"same-value\" algorithm as [described for use by ES6 Map\n * and Set](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Map#Key_equality)\n *\n * NaN is considered the same as NaN, however -0 and 0 are considered the same\n * value, which is different from the algorithm described by\n * [`Object.is`](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Object/is).\n *\n * This is extended further to allow Objects to describe the values they\n * represent, by way of `valueOf` or `equals` (and `hashCode`).\n *\n * Note: because of this extension, the key equality of Immutable.Map and the\n * value equality of Immutable.Set will differ from ES6 Map and Set.\n *\n * ### Defining custom values\n *\n * The easiest way to describe the value an object represents is by implementing\n * `valueOf`. For example, `Date` represents a value by returning a unix\n * timestamp for `valueOf`:\n *\n * var date1 = new Date(1234567890000); // Fri Feb 13 2009 ...\n * var date2 = new Date(1234567890000);\n * date1.valueOf(); // 1234567890000\n * assert( date1 !== date2 );\n * assert( Immutable.is( date1, date2 ) );\n *\n * Note: overriding `valueOf` may have other implications if you use this object\n * where JavaScript expects a primitive, such as implicit string coercion.\n *\n * For more complex types, especially collections, implementing `valueOf` may\n * not be performant. An alternative is to implement `equals` and `hashCode`.\n *\n * `equals` takes another object, presumably of similar type, and returns true\n * if the it is equal. Equality is symmetrical, so the same result should be\n * returned if this and the argument are flipped.\n *\n * assert( a.equals(b) === b.equals(a) );\n *\n * `hashCode` returns a 32bit integer number representing the object which will\n * be used to determine how to store the value object in a Map or Set. You must\n * provide both or neither methods, one must not exist without the other.\n *\n * Also, an important relationship between these methods must be upheld: if two\n * values are equal, they *must* return the same hashCode. If the values are not\n * equal, they might have the same hashCode; this is called a hash collision,\n * and while undesirable for performance reasons, it is acceptable.\n *\n * if (a.equals(b)) {\n * assert( a.hashCode() === b.hashCode() );\n * }\n *\n * All Immutable collections implement `equals` and `hashCode`.\n *\n */\n function is(valueA, valueB) {\n if (valueA === valueB || (valueA !== valueA && valueB !== valueB)) {\n return true;\n }\n if (!valueA || !valueB) {\n return false;\n }\n if (typeof valueA.valueOf === 'function' &&\n typeof valueB.valueOf === 'function') {\n valueA = valueA.valueOf();\n valueB = valueB.valueOf();\n if (valueA === valueB || (valueA !== valueA && valueB !== valueB)) {\n return true;\n }\n if (!valueA || !valueB) {\n return false;\n }\n }\n if (typeof valueA.equals === 'function' &&\n typeof valueB.equals === 'function' &&\n valueA.equals(valueB)) {\n return true;\n }\n return false;\n }\n\n function deepEqual(a, b) {\n if (a === b) {\n return true;\n }\n\n if (\n !isIterable(b) ||\n a.size !== undefined && b.size !== undefined && a.size !== b.size ||\n a.__hash !== undefined && b.__hash !== undefined && a.__hash !== b.__hash ||\n isKeyed(a) !== isKeyed(b) ||\n isIndexed(a) !== isIndexed(b) ||\n isOrdered(a) !== isOrdered(b)\n ) {\n return false;\n }\n\n if (a.size === 0 && b.size === 0) {\n return true;\n }\n\n var notAssociative = !isAssociative(a);\n\n if (isOrdered(a)) {\n var entries = a.entries();\n return b.every(function(v, k) {\n var entry = entries.next().value;\n return entry && is(entry[1], v) && (notAssociative || is(entry[0], k));\n }) && entries.next().done;\n }\n\n var flipped = false;\n\n if (a.size === undefined) {\n if (b.size === undefined) {\n if (typeof a.cacheResult === 'function') {\n a.cacheResult();\n }\n } else {\n flipped = true;\n var _ = a;\n a = b;\n b = _;\n }\n }\n\n var allEqual = true;\n var bSize = b.__iterate(function(v, k) {\n if (notAssociative ? !a.has(v) :\n flipped ? !is(v, a.get(k, NOT_SET)) : !is(a.get(k, NOT_SET), v)) {\n allEqual = false;\n return false;\n }\n });\n\n return allEqual && a.size === bSize;\n }\n\n createClass(Repeat, IndexedSeq);\n\n function Repeat(value, times) {\n if (!(this instanceof Repeat)) {\n return new Repeat(value, times);\n }\n this._value = value;\n this.size = times === undefined ? Infinity : Math.max(0, times);\n if (this.size === 0) {\n if (EMPTY_REPEAT) {\n return EMPTY_REPEAT;\n }\n EMPTY_REPEAT = this;\n }\n }\n\n Repeat.prototype.toString = function() {\n if (this.size === 0) {\n return 'Repeat []';\n }\n return 'Repeat [ ' + this._value + ' ' + this.size + ' times ]';\n };\n\n Repeat.prototype.get = function(index, notSetValue) {\n return this.has(index) ? this._value : notSetValue;\n };\n\n Repeat.prototype.includes = function(searchValue) {\n return is(this._value, searchValue);\n };\n\n Repeat.prototype.slice = function(begin, end) {\n var size = this.size;\n return wholeSlice(begin, end, size) ? this :\n new Repeat(this._value, resolveEnd(end, size) - resolveBegin(begin, size));\n };\n\n Repeat.prototype.reverse = function() {\n return this;\n };\n\n Repeat.prototype.indexOf = function(searchValue) {\n if (is(this._value, searchValue)) {\n return 0;\n }\n return -1;\n };\n\n Repeat.prototype.lastIndexOf = function(searchValue) {\n if (is(this._value, searchValue)) {\n return this.size;\n }\n return -1;\n };\n\n Repeat.prototype.__iterate = function(fn, reverse) {\n for (var ii = 0; ii < this.size; ii++) {\n if (fn(this._value, ii, this) === false) {\n return ii + 1;\n }\n }\n return ii;\n };\n\n Repeat.prototype.__iterator = function(type, reverse) {var this$0 = this;\n var ii = 0;\n return new Iterator(function() \n {return ii < this$0.size ? iteratorValue(type, ii++, this$0._value) : iteratorDone()}\n );\n };\n\n Repeat.prototype.equals = function(other) {\n return other instanceof Repeat ?\n is(this._value, other._value) :\n deepEqual(other);\n };\n\n\n var EMPTY_REPEAT;\n\n function invariant(condition, error) {\n if (!condition) throw new Error(error);\n }\n\n createClass(Range, IndexedSeq);\n\n function Range(start, end, step) {\n if (!(this instanceof Range)) {\n return new Range(start, end, step);\n }\n invariant(step !== 0, 'Cannot step a Range by 0');\n start = start || 0;\n if (end === undefined) {\n end = Infinity;\n }\n step = step === undefined ? 1 : Math.abs(step);\n if (end < start) {\n step = -step;\n }\n this._start = start;\n this._end = end;\n this._step = step;\n this.size = Math.max(0, Math.ceil((end - start) / step - 1) + 1);\n if (this.size === 0) {\n if (EMPTY_RANGE) {\n return EMPTY_RANGE;\n }\n EMPTY_RANGE = this;\n }\n }\n\n Range.prototype.toString = function() {\n if (this.size === 0) {\n return 'Range []';\n }\n return 'Range [ ' +\n this._start + '...' + this._end +\n (this._step !== 1 ? ' by ' + this._step : '') +\n ' ]';\n };\n\n Range.prototype.get = function(index, notSetValue) {\n return this.has(index) ?\n this._start + wrapIndex(this, index) * this._step :\n notSetValue;\n };\n\n Range.prototype.includes = function(searchValue) {\n var possibleIndex = (searchValue - this._start) / this._step;\n return possibleIndex >= 0 &&\n possibleIndex < this.size &&\n possibleIndex === Math.floor(possibleIndex);\n };\n\n Range.prototype.slice = function(begin, end) {\n if (wholeSlice(begin, end, this.size)) {\n return this;\n }\n begin = resolveBegin(begin, this.size);\n end = resolveEnd(end, this.size);\n if (end <= begin) {\n return new Range(0, 0);\n }\n return new Range(this.get(begin, this._end), this.get(end, this._end), this._step);\n };\n\n Range.prototype.indexOf = function(searchValue) {\n var offsetValue = searchValue - this._start;\n if (offsetValue % this._step === 0) {\n var index = offsetValue / this._step;\n if (index >= 0 && index < this.size) {\n return index\n }\n }\n return -1;\n };\n\n Range.prototype.lastIndexOf = function(searchValue) {\n return this.indexOf(searchValue);\n };\n\n Range.prototype.__iterate = function(fn, reverse) {\n var maxIndex = this.size - 1;\n var step = this._step;\n var value = reverse ? this._start + maxIndex * step : this._start;\n for (var ii = 0; ii <= maxIndex; ii++) {\n if (fn(value, ii, this) === false) {\n return ii + 1;\n }\n value += reverse ? -step : step;\n }\n return ii;\n };\n\n Range.prototype.__iterator = function(type, reverse) {\n var maxIndex = this.size - 1;\n var step = this._step;\n var value = reverse ? this._start + maxIndex * step : this._start;\n var ii = 0;\n return new Iterator(function() {\n var v = value;\n value += reverse ? -step : step;\n return ii > maxIndex ? iteratorDone() : iteratorValue(type, ii++, v);\n });\n };\n\n Range.prototype.equals = function(other) {\n return other instanceof Range ?\n this._start === other._start &&\n this._end === other._end &&\n this._step === other._step :\n deepEqual(this, other);\n };\n\n\n var EMPTY_RANGE;\n\n createClass(Collection, Iterable);\n function Collection() {\n throw TypeError('Abstract');\n }\n\n\n createClass(KeyedCollection, Collection);function KeyedCollection() {}\n\n createClass(IndexedCollection, Collection);function IndexedCollection() {}\n\n createClass(SetCollection, Collection);function SetCollection() {}\n\n\n Collection.Keyed = KeyedCollection;\n Collection.Indexed = IndexedCollection;\n Collection.Set = SetCollection;\n\n var imul =\n typeof Math.imul === 'function' && Math.imul(0xffffffff, 2) === -2 ?\n Math.imul :\n function imul(a, b) {\n a = a | 0; // int\n b = b | 0; // int\n var c = a & 0xffff;\n var d = b & 0xffff;\n // Shift by 0 fixes the sign on the high part.\n return (c * d) + ((((a >>> 16) * d + c * (b >>> 16)) << 16) >>> 0) | 0; // int\n };\n\n // v8 has an optimization for storing 31-bit signed numbers.\n // Values which have either 00 or 11 as the high order bits qualify.\n // This function drops the highest order bit in a signed number, maintaining\n // the sign bit.\n function smi(i32) {\n return ((i32 >>> 1) & 0x40000000) | (i32 & 0xBFFFFFFF);\n }\n\n function hash(o) {\n if (o === false || o === null || o === undefined) {\n return 0;\n }\n if (typeof o.valueOf === 'function') {\n o = o.valueOf();\n if (o === false || o === null || o === undefined) {\n return 0;\n }\n }\n if (o === true) {\n return 1;\n }\n var type = typeof o;\n if (type === 'number') {\n if (o !== o || o === Infinity) {\n return 0;\n }\n var h = o | 0;\n if (h !== o) {\n h ^= o * 0xFFFFFFFF;\n }\n while (o > 0xFFFFFFFF) {\n o /= 0xFFFFFFFF;\n h ^= o;\n }\n return smi(h);\n }\n if (type === 'string') {\n return o.length > STRING_HASH_CACHE_MIN_STRLEN ? cachedHashString(o) : hashString(o);\n }\n if (typeof o.hashCode === 'function') {\n return o.hashCode();\n }\n if (type === 'object') {\n return hashJSObj(o);\n }\n if (typeof o.toString === 'function') {\n return hashString(o.toString());\n }\n throw new Error('Value type ' + type + ' cannot be hashed.');\n }\n\n function cachedHashString(string) {\n var hash = stringHashCache[string];\n if (hash === undefined) {\n hash = hashString(string);\n if (STRING_HASH_CACHE_SIZE === STRING_HASH_CACHE_MAX_SIZE) {\n STRING_HASH_CACHE_SIZE = 0;\n stringHashCache = {};\n }\n STRING_HASH_CACHE_SIZE++;\n stringHashCache[string] = hash;\n }\n return hash;\n }\n\n // http://jsperf.com/hashing-strings\n function hashString(string) {\n // This is the hash from JVM\n // The hash code for a string is computed as\n // s[0] * 31 ^ (n - 1) + s[1] * 31 ^ (n - 2) + ... + s[n - 1],\n // where s[i] is the ith character of the string and n is the length of\n // the string. We \"mod\" the result to make it between 0 (inclusive) and 2^31\n // (exclusive) by dropping high bits.\n var hash = 0;\n for (var ii = 0; ii < string.length; ii++) {\n hash = 31 * hash + string.charCodeAt(ii) | 0;\n }\n return smi(hash);\n }\n\n function hashJSObj(obj) {\n var hash;\n if (usingWeakMap) {\n hash = weakMap.get(obj);\n if (hash !== undefined) {\n return hash;\n }\n }\n\n hash = obj[UID_HASH_KEY];\n if (hash !== undefined) {\n return hash;\n }\n\n if (!canDefineProperty) {\n hash = obj.propertyIsEnumerable && obj.propertyIsEnumerable[UID_HASH_KEY];\n if (hash !== undefined) {\n return hash;\n }\n\n hash = getIENodeHash(obj);\n if (hash !== undefined) {\n return hash;\n }\n }\n\n hash = ++objHashUID;\n if (objHashUID & 0x40000000) {\n objHashUID = 0;\n }\n\n if (usingWeakMap) {\n weakMap.set(obj, hash);\n } else if (isExtensible !== undefined && isExtensible(obj) === false) {\n throw new Error('Non-extensible objects are not allowed as keys.');\n } else if (canDefineProperty) {\n Object.defineProperty(obj, UID_HASH_KEY, {\n 'enumerable': false,\n 'configurable': false,\n 'writable': false,\n 'value': hash\n });\n } else if (obj.propertyIsEnumerable !== undefined &&\n obj.propertyIsEnumerable === obj.constructor.prototype.propertyIsEnumerable) {\n // Since we can't define a non-enumerable property on the object\n // we'll hijack one of the less-used non-enumerable properties to\n // save our hash on it. Since this is a function it will not show up in\n // `JSON.stringify` which is what we want.\n obj.propertyIsEnumerable = function() {\n return this.constructor.prototype.propertyIsEnumerable.apply(this, arguments);\n };\n obj.propertyIsEnumerable[UID_HASH_KEY] = hash;\n } else if (obj.nodeType !== undefined) {\n // At this point we couldn't get the IE `uniqueID` to use as a hash\n // and we couldn't use a non-enumerable property to exploit the\n // dontEnum bug so we simply add the `UID_HASH_KEY` on the node\n // itself.\n obj[UID_HASH_KEY] = hash;\n } else {\n throw new Error('Unable to set a non-enumerable property on object.');\n }\n\n return hash;\n }\n\n // Get references to ES5 object methods.\n var isExtensible = Object.isExtensible;\n\n // True if Object.defineProperty works as expected. IE8 fails this test.\n var canDefineProperty = (function() {\n try {\n Object.defineProperty({}, '@', {});\n return true;\n } catch (e) {\n return false;\n }\n }());\n\n // IE has a `uniqueID` property on DOM nodes. We can construct the hash from it\n // and avoid memory leaks from the IE cloneNode bug.\n function getIENodeHash(node) {\n if (node && node.nodeType > 0) {\n switch (node.nodeType) {\n case 1: // Element\n return node.uniqueID;\n case 9: // Document\n return node.documentElement && node.documentElement.uniqueID;\n }\n }\n }\n\n // If possible, use a WeakMap.\n var usingWeakMap = typeof WeakMap === 'function';\n var weakMap;\n if (usingWeakMap) {\n weakMap = new WeakMap();\n }\n\n var objHashUID = 0;\n\n var UID_HASH_KEY = '__immutablehash__';\n if (typeof Symbol === 'function') {\n UID_HASH_KEY = Symbol(UID_HASH_KEY);\n }\n\n var STRING_HASH_CACHE_MIN_STRLEN = 16;\n var STRING_HASH_CACHE_MAX_SIZE = 255;\n var STRING_HASH_CACHE_SIZE = 0;\n var stringHashCache = {};\n\n function assertNotInfinite(size) {\n invariant(\n size !== Infinity,\n 'Cannot perform this action with an infinite size.'\n );\n }\n\n createClass(Map, KeyedCollection);\n\n // @pragma Construction\n\n function Map(value) {\n return value === null || value === undefined ? emptyMap() :\n isMap(value) && !isOrdered(value) ? value :\n emptyMap().withMutations(function(map ) {\n var iter = KeyedIterable(value);\n assertNotInfinite(iter.size);\n iter.forEach(function(v, k) {return map.set(k, v)});\n });\n }\n\n Map.of = function() {var keyValues = SLICE$0.call(arguments, 0);\n return emptyMap().withMutations(function(map ) {\n for (var i = 0; i < keyValues.length; i += 2) {\n if (i + 1 >= keyValues.length) {\n throw new Error('Missing value for key: ' + keyValues[i]);\n }\n map.set(keyValues[i], keyValues[i + 1]);\n }\n });\n };\n\n Map.prototype.toString = function() {\n return this.__toString('Map {', '}');\n };\n\n // @pragma Access\n\n Map.prototype.get = function(k, notSetValue) {\n return this._root ?\n this._root.get(0, undefined, k, notSetValue) :\n notSetValue;\n };\n\n // @pragma Modification\n\n Map.prototype.set = function(k, v) {\n return updateMap(this, k, v);\n };\n\n Map.prototype.setIn = function(keyPath, v) {\n return this.updateIn(keyPath, NOT_SET, function() {return v});\n };\n\n Map.prototype.remove = function(k) {\n return updateMap(this, k, NOT_SET);\n };\n\n Map.prototype.deleteIn = function(keyPath) {\n return this.updateIn(keyPath, function() {return NOT_SET});\n };\n\n Map.prototype.update = function(k, notSetValue, updater) {\n return arguments.length === 1 ?\n k(this) :\n this.updateIn([k], notSetValue, updater);\n };\n\n Map.prototype.updateIn = function(keyPath, notSetValue, updater) {\n if (!updater) {\n updater = notSetValue;\n notSetValue = undefined;\n }\n var updatedValue = updateInDeepMap(\n this,\n forceIterator(keyPath),\n notSetValue,\n updater\n );\n return updatedValue === NOT_SET ? undefined : updatedValue;\n };\n\n Map.prototype.clear = function() {\n if (this.size === 0) {\n return this;\n }\n if (this.__ownerID) {\n this.size = 0;\n this._root = null;\n this.__hash = undefined;\n this.__altered = true;\n return this;\n }\n return emptyMap();\n };\n\n // @pragma Composition\n\n Map.prototype.merge = function(/*...iters*/) {\n return mergeIntoMapWith(this, undefined, arguments);\n };\n\n Map.prototype.mergeWith = function(merger) {var iters = SLICE$0.call(arguments, 1);\n return mergeIntoMapWith(this, merger, iters);\n };\n\n Map.prototype.mergeIn = function(keyPath) {var iters = SLICE$0.call(arguments, 1);\n return this.updateIn(\n keyPath,\n emptyMap(),\n function(m ) {return typeof m.merge === 'function' ?\n m.merge.apply(m, iters) :\n iters[iters.length - 1]}\n );\n };\n\n Map.prototype.mergeDeep = function(/*...iters*/) {\n return mergeIntoMapWith(this, deepMerger, arguments);\n };\n\n Map.prototype.mergeDeepWith = function(merger) {var iters = SLICE$0.call(arguments, 1);\n return mergeIntoMapWith(this, deepMergerWith(merger), iters);\n };\n\n Map.prototype.mergeDeepIn = function(keyPath) {var iters = SLICE$0.call(arguments, 1);\n return this.updateIn(\n keyPath,\n emptyMap(),\n function(m ) {return typeof m.mergeDeep === 'function' ?\n m.mergeDeep.apply(m, iters) :\n iters[iters.length - 1]}\n );\n };\n\n Map.prototype.sort = function(comparator) {\n // Late binding\n return OrderedMap(sortFactory(this, comparator));\n };\n\n Map.prototype.sortBy = function(mapper, comparator) {\n // Late binding\n return OrderedMap(sortFactory(this, comparator, mapper));\n };\n\n // @pragma Mutability\n\n Map.prototype.withMutations = function(fn) {\n var mutable = this.asMutable();\n fn(mutable);\n return mutable.wasAltered() ? mutable.__ensureOwner(this.__ownerID) : this;\n };\n\n Map.prototype.asMutable = function() {\n return this.__ownerID ? this : this.__ensureOwner(new OwnerID());\n };\n\n Map.prototype.asImmutable = function() {\n return this.__ensureOwner();\n };\n\n Map.prototype.wasAltered = function() {\n return this.__altered;\n };\n\n Map.prototype.__iterator = function(type, reverse) {\n return new MapIterator(this, type, reverse);\n };\n\n Map.prototype.__iterate = function(fn, reverse) {var this$0 = this;\n var iterations = 0;\n this._root && this._root.iterate(function(entry ) {\n iterations++;\n return fn(entry[1], entry[0], this$0);\n }, reverse);\n return iterations;\n };\n\n Map.prototype.__ensureOwner = function(ownerID) {\n if (ownerID === this.__ownerID) {\n return this;\n }\n if (!ownerID) {\n this.__ownerID = ownerID;\n this.__altered = false;\n return this;\n }\n return makeMap(this.size, this._root, ownerID, this.__hash);\n };\n\n\n function isMap(maybeMap) {\n return !!(maybeMap && maybeMap[IS_MAP_SENTINEL]);\n }\n\n Map.isMap = isMap;\n\n var IS_MAP_SENTINEL = '@@__IMMUTABLE_MAP__@@';\n\n var MapPrototype = Map.prototype;\n MapPrototype[IS_MAP_SENTINEL] = true;\n MapPrototype[DELETE] = MapPrototype.remove;\n MapPrototype.removeIn = MapPrototype.deleteIn;\n\n\n // #pragma Trie Nodes\n\n\n\n function ArrayMapNode(ownerID, entries) {\n this.ownerID = ownerID;\n this.entries = entries;\n }\n\n ArrayMapNode.prototype.get = function(shift, keyHash, key, notSetValue) {\n var entries = this.entries;\n for (var ii = 0, len = entries.length; ii < len; ii++) {\n if (is(key, entries[ii][0])) {\n return entries[ii][1];\n }\n }\n return notSetValue;\n };\n\n ArrayMapNode.prototype.update = function(ownerID, shift, keyHash, key, value, didChangeSize, didAlter) {\n var removed = value === NOT_SET;\n\n var entries = this.entries;\n var idx = 0;\n for (var len = entries.length; idx < len; idx++) {\n if (is(key, entries[idx][0])) {\n break;\n }\n }\n var exists = idx < len;\n\n if (exists ? entries[idx][1] === value : removed) {\n return this;\n }\n\n SetRef(didAlter);\n (removed || !exists) && SetRef(didChangeSize);\n\n if (removed && entries.length === 1) {\n return; // undefined\n }\n\n if (!exists && !removed && entries.length >= MAX_ARRAY_MAP_SIZE) {\n return createNodes(ownerID, entries, key, value);\n }\n\n var isEditable = ownerID && ownerID === this.ownerID;\n var newEntries = isEditable ? entries : arrCopy(entries);\n\n if (exists) {\n if (removed) {\n idx === len - 1 ? newEntries.pop() : (newEntries[idx] = newEntries.pop());\n } else {\n newEntries[idx] = [key, value];\n }\n } else {\n newEntries.push([key, value]);\n }\n\n if (isEditable) {\n this.entries = newEntries;\n return this;\n }\n\n return new ArrayMapNode(ownerID, newEntries);\n };\n\n\n\n\n function BitmapIndexedNode(ownerID, bitmap, nodes) {\n this.ownerID = ownerID;\n this.bitmap = bitmap;\n this.nodes = nodes;\n }\n\n BitmapIndexedNode.prototype.get = function(shift, keyHash, key, notSetValue) {\n if (keyHash === undefined) {\n keyHash = hash(key);\n }\n var bit = (1 << ((shift === 0 ? keyHash : keyHash >>> shift) & MASK));\n var bitmap = this.bitmap;\n return (bitmap & bit) === 0 ? notSetValue :\n this.nodes[popCount(bitmap & (bit - 1))].get(shift + SHIFT, keyHash, key, notSetValue);\n };\n\n BitmapIndexedNode.prototype.update = function(ownerID, shift, keyHash, key, value, didChangeSize, didAlter) {\n if (keyHash === undefined) {\n keyHash = hash(key);\n }\n var keyHashFrag = (shift === 0 ? keyHash : keyHash >>> shift) & MASK;\n var bit = 1 << keyHashFrag;\n var bitmap = this.bitmap;\n var exists = (bitmap & bit) !== 0;\n\n if (!exists && value === NOT_SET) {\n return this;\n }\n\n var idx = popCount(bitmap & (bit - 1));\n var nodes = this.nodes;\n var node = exists ? nodes[idx] : undefined;\n var newNode = updateNode(node, ownerID, shift + SHIFT, keyHash, key, value, didChangeSize, didAlter);\n\n if (newNode === node) {\n return this;\n }\n\n if (!exists && newNode && nodes.length >= MAX_BITMAP_INDEXED_SIZE) {\n return expandNodes(ownerID, nodes, bitmap, keyHashFrag, newNode);\n }\n\n if (exists && !newNode && nodes.length === 2 && isLeafNode(nodes[idx ^ 1])) {\n return nodes[idx ^ 1];\n }\n\n if (exists && newNode && nodes.length === 1 && isLeafNode(newNode)) {\n return newNode;\n }\n\n var isEditable = ownerID && ownerID === this.ownerID;\n var newBitmap = exists ? newNode ? bitmap : bitmap ^ bit : bitmap | bit;\n var newNodes = exists ? newNode ?\n setIn(nodes, idx, newNode, isEditable) :\n spliceOut(nodes, idx, isEditable) :\n spliceIn(nodes, idx, newNode, isEditable);\n\n if (isEditable) {\n this.bitmap = newBitmap;\n this.nodes = newNodes;\n return this;\n }\n\n return new BitmapIndexedNode(ownerID, newBitmap, newNodes);\n };\n\n\n\n\n function HashArrayMapNode(ownerID, count, nodes) {\n this.ownerID = ownerID;\n this.count = count;\n this.nodes = nodes;\n }\n\n HashArrayMapNode.prototype.get = function(shift, keyHash, key, notSetValue) {\n if (keyHash === undefined) {\n keyHash = hash(key);\n }\n var idx = (shift === 0 ? keyHash : keyHash >>> shift) & MASK;\n var node = this.nodes[idx];\n return node ? node.get(shift + SHIFT, keyHash, key, notSetValue) : notSetValue;\n };\n\n HashArrayMapNode.prototype.update = function(ownerID, shift, keyHash, key, value, didChangeSize, didAlter) {\n if (keyHash === undefined) {\n keyHash = hash(key);\n }\n var idx = (shift === 0 ? keyHash : keyHash >>> shift) & MASK;\n var removed = value === NOT_SET;\n var nodes = this.nodes;\n var node = nodes[idx];\n\n if (removed && !node) {\n return this;\n }\n\n var newNode = updateNode(node, ownerID, shift + SHIFT, keyHash, key, value, didChangeSize, didAlter);\n if (newNode === node) {\n return this;\n }\n\n var newCount = this.count;\n if (!node) {\n newCount++;\n } else if (!newNode) {\n newCount--;\n if (newCount < MIN_HASH_ARRAY_MAP_SIZE) {\n return packNodes(ownerID, nodes, newCount, idx);\n }\n }\n\n var isEditable = ownerID && ownerID === this.ownerID;\n var newNodes = setIn(nodes, idx, newNode, isEditable);\n\n if (isEditable) {\n this.count = newCount;\n this.nodes = newNodes;\n return this;\n }\n\n return new HashArrayMapNode(ownerID, newCount, newNodes);\n };\n\n\n\n\n function HashCollisionNode(ownerID, keyHash, entries) {\n this.ownerID = ownerID;\n this.keyHash = keyHash;\n this.entries = entries;\n }\n\n HashCollisionNode.prototype.get = function(shift, keyHash, key, notSetValue) {\n var entries = this.entries;\n for (var ii = 0, len = entries.length; ii < len; ii++) {\n if (is(key, entries[ii][0])) {\n return entries[ii][1];\n }\n }\n return notSetValue;\n };\n\n HashCollisionNode.prototype.update = function(ownerID, shift, keyHash, key, value, didChangeSize, didAlter) {\n if (keyHash === undefined) {\n keyHash = hash(key);\n }\n\n var removed = value === NOT_SET;\n\n if (keyHash !== this.keyHash) {\n if (removed) {\n return this;\n }\n SetRef(didAlter);\n SetRef(didChangeSize);\n return mergeIntoNode(this, ownerID, shift, keyHash, [key, value]);\n }\n\n var entries = this.entries;\n var idx = 0;\n for (var len = entries.length; idx < len; idx++) {\n if (is(key, entries[idx][0])) {\n break;\n }\n }\n var exists = idx < len;\n\n if (exists ? entries[idx][1] === value : removed) {\n return this;\n }\n\n SetRef(didAlter);\n (removed || !exists) && SetRef(didChangeSize);\n\n if (removed && len === 2) {\n return new ValueNode(ownerID, this.keyHash, entries[idx ^ 1]);\n }\n\n var isEditable = ownerID && ownerID === this.ownerID;\n var newEntries = isEditable ? entries : arrCopy(entries);\n\n if (exists) {\n if (removed) {\n idx === len - 1 ? newEntries.pop() : (newEntries[idx] = newEntries.pop());\n } else {\n newEntries[idx] = [key, value];\n }\n } else {\n newEntries.push([key, value]);\n }\n\n if (isEditable) {\n this.entries = newEntries;\n return this;\n }\n\n return new HashCollisionNode(ownerID, this.keyHash, newEntries);\n };\n\n\n\n\n function ValueNode(ownerID, keyHash, entry) {\n this.ownerID = ownerID;\n this.keyHash = keyHash;\n this.entry = entry;\n }\n\n ValueNode.prototype.get = function(shift, keyHash, key, notSetValue) {\n return is(key, this.entry[0]) ? this.entry[1] : notSetValue;\n };\n\n ValueNode.prototype.update = function(ownerID, shift, keyHash, key, value, didChangeSize, didAlter) {\n var removed = value === NOT_SET;\n var keyMatch = is(key, this.entry[0]);\n if (keyMatch ? value === this.entry[1] : removed) {\n return this;\n }\n\n SetRef(didAlter);\n\n if (removed) {\n SetRef(didChangeSize);\n return; // undefined\n }\n\n if (keyMatch) {\n if (ownerID && ownerID === this.ownerID) {\n this.entry[1] = value;\n return this;\n }\n return new ValueNode(ownerID, this.keyHash, [key, value]);\n }\n\n SetRef(didChangeSize);\n return mergeIntoNode(this, ownerID, shift, hash(key), [key, value]);\n };\n\n\n\n // #pragma Iterators\n\n ArrayMapNode.prototype.iterate =\n HashCollisionNode.prototype.iterate = function (fn, reverse) {\n var entries = this.entries;\n for (var ii = 0, maxIndex = entries.length - 1; ii <= maxIndex; ii++) {\n if (fn(entries[reverse ? maxIndex - ii : ii]) === false) {\n return false;\n }\n }\n }\n\n BitmapIndexedNode.prototype.iterate =\n HashArrayMapNode.prototype.iterate = function (fn, reverse) {\n var nodes = this.nodes;\n for (var ii = 0, maxIndex = nodes.length - 1; ii <= maxIndex; ii++) {\n var node = nodes[reverse ? maxIndex - ii : ii];\n if (node && node.iterate(fn, reverse) === false) {\n return false;\n }\n }\n }\n\n ValueNode.prototype.iterate = function (fn, reverse) {\n return fn(this.entry);\n }\n\n createClass(MapIterator, Iterator);\n\n function MapIterator(map, type, reverse) {\n this._type = type;\n this._reverse = reverse;\n this._stack = map._root && mapIteratorFrame(map._root);\n }\n\n MapIterator.prototype.next = function() {\n var type = this._type;\n var stack = this._stack;\n while (stack) {\n var node = stack.node;\n var index = stack.index++;\n var maxIndex;\n if (node.entry) {\n if (index === 0) {\n return mapIteratorValue(type, node.entry);\n }\n } else if (node.entries) {\n maxIndex = node.entries.length - 1;\n if (index <= maxIndex) {\n return mapIteratorValue(type, node.entries[this._reverse ? maxIndex - index : index]);\n }\n } else {\n maxIndex = node.nodes.length - 1;\n if (index <= maxIndex) {\n var subNode = node.nodes[this._reverse ? maxIndex - index : index];\n if (subNode) {\n if (subNode.entry) {\n return mapIteratorValue(type, subNode.entry);\n }\n stack = this._stack = mapIteratorFrame(subNode, stack);\n }\n continue;\n }\n }\n stack = this._stack = this._stack.__prev;\n }\n return iteratorDone();\n };\n\n\n function mapIteratorValue(type, entry) {\n return iteratorValue(type, entry[0], entry[1]);\n }\n\n function mapIteratorFrame(node, prev) {\n return {\n node: node,\n index: 0,\n __prev: prev\n };\n }\n\n function makeMap(size, root, ownerID, hash) {\n var map = Object.create(MapPrototype);\n map.size = size;\n map._root = root;\n map.__ownerID = ownerID;\n map.__hash = hash;\n map.__altered = false;\n return map;\n }\n\n var EMPTY_MAP;\n function emptyMap() {\n return EMPTY_MAP || (EMPTY_MAP = makeMap(0));\n }\n\n function updateMap(map, k, v) {\n var newRoot;\n var newSize;\n if (!map._root) {\n if (v === NOT_SET) {\n return map;\n }\n newSize = 1;\n newRoot = new ArrayMapNode(map.__ownerID, [[k, v]]);\n } else {\n var didChangeSize = MakeRef(CHANGE_LENGTH);\n var didAlter = MakeRef(DID_ALTER);\n newRoot = updateNode(map._root, map.__ownerID, 0, undefined, k, v, didChangeSize, didAlter);\n if (!didAlter.value) {\n return map;\n }\n newSize = map.size + (didChangeSize.value ? v === NOT_SET ? -1 : 1 : 0);\n }\n if (map.__ownerID) {\n map.size = newSize;\n map._root = newRoot;\n map.__hash = undefined;\n map.__altered = true;\n return map;\n }\n return newRoot ? makeMap(newSize, newRoot) : emptyMap();\n }\n\n function updateNode(node, ownerID, shift, keyHash, key, value, didChangeSize, didAlter) {\n if (!node) {\n if (value === NOT_SET) {\n return node;\n }\n SetRef(didAlter);\n SetRef(didChangeSize);\n return new ValueNode(ownerID, keyHash, [key, value]);\n }\n return node.update(ownerID, shift, keyHash, key, value, didChangeSize, didAlter);\n }\n\n function isLeafNode(node) {\n return node.constructor === ValueNode || node.constructor === HashCollisionNode;\n }\n\n function mergeIntoNode(node, ownerID, shift, keyHash, entry) {\n if (node.keyHash === keyHash) {\n return new HashCollisionNode(ownerID, keyHash, [node.entry, entry]);\n }\n\n var idx1 = (shift === 0 ? node.keyHash : node.keyHash >>> shift) & MASK;\n var idx2 = (shift === 0 ? keyHash : keyHash >>> shift) & MASK;\n\n var newNode;\n var nodes = idx1 === idx2 ?\n [mergeIntoNode(node, ownerID, shift + SHIFT, keyHash, entry)] :\n ((newNode = new ValueNode(ownerID, keyHash, entry)), idx1 < idx2 ? [node, newNode] : [newNode, node]);\n\n return new BitmapIndexedNode(ownerID, (1 << idx1) | (1 << idx2), nodes);\n }\n\n function createNodes(ownerID, entries, key, value) {\n if (!ownerID) {\n ownerID = new OwnerID();\n }\n var node = new ValueNode(ownerID, hash(key), [key, value]);\n for (var ii = 0; ii < entries.length; ii++) {\n var entry = entries[ii];\n node = node.update(ownerID, 0, undefined, entry[0], entry[1]);\n }\n return node;\n }\n\n function packNodes(ownerID, nodes, count, excluding) {\n var bitmap = 0;\n var packedII = 0;\n var packedNodes = new Array(count);\n for (var ii = 0, bit = 1, len = nodes.length; ii < len; ii++, bit <<= 1) {\n var node = nodes[ii];\n if (node !== undefined && ii !== excluding) {\n bitmap |= bit;\n packedNodes[packedII++] = node;\n }\n }\n return new BitmapIndexedNode(ownerID, bitmap, packedNodes);\n }\n\n function expandNodes(ownerID, nodes, bitmap, including, node) {\n var count = 0;\n var expandedNodes = new Array(SIZE);\n for (var ii = 0; bitmap !== 0; ii++, bitmap >>>= 1) {\n expandedNodes[ii] = bitmap & 1 ? nodes[count++] : undefined;\n }\n expandedNodes[including] = node;\n return new HashArrayMapNode(ownerID, count + 1, expandedNodes);\n }\n\n function mergeIntoMapWith(map, merger, iterables) {\n var iters = [];\n for (var ii = 0; ii < iterables.length; ii++) {\n var value = iterables[ii];\n var iter = KeyedIterable(value);\n if (!isIterable(value)) {\n iter = iter.map(function(v ) {return fromJS(v)});\n }\n iters.push(iter);\n }\n return mergeIntoCollectionWith(map, merger, iters);\n }\n\n function deepMerger(existing, value, key) {\n return existing && existing.mergeDeep && isIterable(value) ?\n existing.mergeDeep(value) :\n is(existing, value) ? existing : value;\n }\n\n function deepMergerWith(merger) {\n return function(existing, value, key) {\n if (existing && existing.mergeDeepWith && isIterable(value)) {\n return existing.mergeDeepWith(merger, value);\n }\n var nextValue = merger(existing, value, key);\n return is(existing, nextValue) ? existing : nextValue;\n };\n }\n\n function mergeIntoCollectionWith(collection, merger, iters) {\n iters = iters.filter(function(x ) {return x.size !== 0});\n if (iters.length === 0) {\n return collection;\n }\n if (collection.size === 0 && !collection.__ownerID && iters.length === 1) {\n return collection.constructor(iters[0]);\n }\n return collection.withMutations(function(collection ) {\n var mergeIntoMap = merger ?\n function(value, key) {\n collection.update(key, NOT_SET, function(existing )\n {return existing === NOT_SET ? value : merger(existing, value, key)}\n );\n } :\n function(value, key) {\n collection.set(key, value);\n }\n for (var ii = 0; ii < iters.length; ii++) {\n iters[ii].forEach(mergeIntoMap);\n }\n });\n }\n\n function updateInDeepMap(existing, keyPathIter, notSetValue, updater) {\n var isNotSet = existing === NOT_SET;\n var step = keyPathIter.next();\n if (step.done) {\n var existingValue = isNotSet ? notSetValue : existing;\n var newValue = updater(existingValue);\n return newValue === existingValue ? existing : newValue;\n }\n invariant(\n isNotSet || (existing && existing.set),\n 'invalid keyPath'\n );\n var key = step.value;\n var nextExisting = isNotSet ? NOT_SET : existing.get(key, NOT_SET);\n var nextUpdated = updateInDeepMap(\n nextExisting,\n keyPathIter,\n notSetValue,\n updater\n );\n return nextUpdated === nextExisting ? existing :\n nextUpdated === NOT_SET ? existing.remove(key) :\n (isNotSet ? emptyMap() : existing).set(key, nextUpdated);\n }\n\n function popCount(x) {\n x = x - ((x >> 1) & 0x55555555);\n x = (x & 0x33333333) + ((x >> 2) & 0x33333333);\n x = (x + (x >> 4)) & 0x0f0f0f0f;\n x = x + (x >> 8);\n x = x + (x >> 16);\n return x & 0x7f;\n }\n\n function setIn(array, idx, val, canEdit) {\n var newArray = canEdit ? array : arrCopy(array);\n newArray[idx] = val;\n return newArray;\n }\n\n function spliceIn(array, idx, val, canEdit) {\n var newLen = array.length + 1;\n if (canEdit && idx + 1 === newLen) {\n array[idx] = val;\n return array;\n }\n var newArray = new Array(newLen);\n var after = 0;\n for (var ii = 0; ii < newLen; ii++) {\n if (ii === idx) {\n newArray[ii] = val;\n after = -1;\n } else {\n newArray[ii] = array[ii + after];\n }\n }\n return newArray;\n }\n\n function spliceOut(array, idx, canEdit) {\n var newLen = array.length - 1;\n if (canEdit && idx === newLen) {\n array.pop();\n return array;\n }\n var newArray = new Array(newLen);\n var after = 0;\n for (var ii = 0; ii < newLen; ii++) {\n if (ii === idx) {\n after = 1;\n }\n newArray[ii] = array[ii + after];\n }\n return newArray;\n }\n\n var MAX_ARRAY_MAP_SIZE = SIZE / 4;\n var MAX_BITMAP_INDEXED_SIZE = SIZE / 2;\n var MIN_HASH_ARRAY_MAP_SIZE = SIZE / 4;\n\n createClass(List, IndexedCollection);\n\n // @pragma Construction\n\n function List(value) {\n var empty = emptyList();\n if (value === null || value === undefined) {\n return empty;\n }\n if (isList(value)) {\n return value;\n }\n var iter = IndexedIterable(value);\n var size = iter.size;\n if (size === 0) {\n return empty;\n }\n assertNotInfinite(size);\n if (size > 0 && size < SIZE) {\n return makeList(0, size, SHIFT, null, new VNode(iter.toArray()));\n }\n return empty.withMutations(function(list ) {\n list.setSize(size);\n iter.forEach(function(v, i) {return list.set(i, v)});\n });\n }\n\n List.of = function(/*...values*/) {\n return this(arguments);\n };\n\n List.prototype.toString = function() {\n return this.__toString('List [', ']');\n };\n\n // @pragma Access\n\n List.prototype.get = function(index, notSetValue) {\n index = wrapIndex(this, index);\n if (index >= 0 && index < this.size) {\n index += this._origin;\n var node = listNodeFor(this, index);\n return node && node.array[index & MASK];\n }\n return notSetValue;\n };\n\n // @pragma Modification\n\n List.prototype.set = function(index, value) {\n return updateList(this, index, value);\n };\n\n List.prototype.remove = function(index) {\n return !this.has(index) ? this :\n index === 0 ? this.shift() :\n index === this.size - 1 ? this.pop() :\n this.splice(index, 1);\n };\n\n List.prototype.insert = function(index, value) {\n return this.splice(index, 0, value);\n };\n\n List.prototype.clear = function() {\n if (this.size === 0) {\n return this;\n }\n if (this.__ownerID) {\n this.size = this._origin = this._capacity = 0;\n this._level = SHIFT;\n this._root = this._tail = null;\n this.__hash = undefined;\n this.__altered = true;\n return this;\n }\n return emptyList();\n };\n\n List.prototype.push = function(/*...values*/) {\n var values = arguments;\n var oldSize = this.size;\n return this.withMutations(function(list ) {\n setListBounds(list, 0, oldSize + values.length);\n for (var ii = 0; ii < values.length; ii++) {\n list.set(oldSize + ii, values[ii]);\n }\n });\n };\n\n List.prototype.pop = function() {\n return setListBounds(this, 0, -1);\n };\n\n List.prototype.unshift = function(/*...values*/) {\n var values = arguments;\n return this.withMutations(function(list ) {\n setListBounds(list, -values.length);\n for (var ii = 0; ii < values.length; ii++) {\n list.set(ii, values[ii]);\n }\n });\n };\n\n List.prototype.shift = function() {\n return setListBounds(this, 1);\n };\n\n // @pragma Composition\n\n List.prototype.merge = function(/*...iters*/) {\n return mergeIntoListWith(this, undefined, arguments);\n };\n\n List.prototype.mergeWith = function(merger) {var iters = SLICE$0.call(arguments, 1);\n return mergeIntoListWith(this, merger, iters);\n };\n\n List.prototype.mergeDeep = function(/*...iters*/) {\n return mergeIntoListWith(this, deepMerger, arguments);\n };\n\n List.prototype.mergeDeepWith = function(merger) {var iters = SLICE$0.call(arguments, 1);\n return mergeIntoListWith(this, deepMergerWith(merger), iters);\n };\n\n List.prototype.setSize = function(size) {\n return setListBounds(this, 0, size);\n };\n\n // @pragma Iteration\n\n List.prototype.slice = function(begin, end) {\n var size = this.size;\n if (wholeSlice(begin, end, size)) {\n return this;\n }\n return setListBounds(\n this,\n resolveBegin(begin, size),\n resolveEnd(end, size)\n );\n };\n\n List.prototype.__iterator = function(type, reverse) {\n var index = 0;\n var values = iterateList(this, reverse);\n return new Iterator(function() {\n var value = values();\n return value === DONE ?\n iteratorDone() :\n iteratorValue(type, index++, value);\n });\n };\n\n List.prototype.__iterate = function(fn, reverse) {\n var index = 0;\n var values = iterateList(this, reverse);\n var value;\n while ((value = values()) !== DONE) {\n if (fn(value, index++, this) === false) {\n break;\n }\n }\n return index;\n };\n\n List.prototype.__ensureOwner = function(ownerID) {\n if (ownerID === this.__ownerID) {\n return this;\n }\n if (!ownerID) {\n this.__ownerID = ownerID;\n return this;\n }\n return makeList(this._origin, this._capacity, this._level, this._root, this._tail, ownerID, this.__hash);\n };\n\n\n function isList(maybeList) {\n return !!(maybeList && maybeList[IS_LIST_SENTINEL]);\n }\n\n List.isList = isList;\n\n var IS_LIST_SENTINEL = '@@__IMMUTABLE_LIST__@@';\n\n var ListPrototype = List.prototype;\n ListPrototype[IS_LIST_SENTINEL] = true;\n ListPrototype[DELETE] = ListPrototype.remove;\n ListPrototype.setIn = MapPrototype.setIn;\n ListPrototype.deleteIn =\n ListPrototype.removeIn = MapPrototype.removeIn;\n ListPrototype.update = MapPrototype.update;\n ListPrototype.updateIn = MapPrototype.updateIn;\n ListPrototype.mergeIn = MapPrototype.mergeIn;\n ListPrototype.mergeDeepIn = MapPrototype.mergeDeepIn;\n ListPrototype.withMutations = MapPrototype.withMutations;\n ListPrototype.asMutable = MapPrototype.asMutable;\n ListPrototype.asImmutable = MapPrototype.asImmutable;\n ListPrototype.wasAltered = MapPrototype.wasAltered;\n\n\n\n function VNode(array, ownerID) {\n this.array = array;\n this.ownerID = ownerID;\n }\n\n // TODO: seems like these methods are very similar\n\n VNode.prototype.removeBefore = function(ownerID, level, index) {\n if (index === level ? 1 << level : 0 || this.array.length === 0) {\n return this;\n }\n var originIndex = (index >>> level) & MASK;\n if (originIndex >= this.array.length) {\n return new VNode([], ownerID);\n }\n var removingFirst = originIndex === 0;\n var newChild;\n if (level > 0) {\n var oldChild = this.array[originIndex];\n newChild = oldChild && oldChild.removeBefore(ownerID, level - SHIFT, index);\n if (newChild === oldChild && removingFirst) {\n return this;\n }\n }\n if (removingFirst && !newChild) {\n return this;\n }\n var editable = editableVNode(this, ownerID);\n if (!removingFirst) {\n for (var ii = 0; ii < originIndex; ii++) {\n editable.array[ii] = undefined;\n }\n }\n if (newChild) {\n editable.array[originIndex] = newChild;\n }\n return editable;\n };\n\n VNode.prototype.removeAfter = function(ownerID, level, index) {\n if (index === (level ? 1 << level : 0) || this.array.length === 0) {\n return this;\n }\n var sizeIndex = ((index - 1) >>> level) & MASK;\n if (sizeIndex >= this.array.length) {\n return this;\n }\n\n var newChild;\n if (level > 0) {\n var oldChild = this.array[sizeIndex];\n newChild = oldChild && oldChild.removeAfter(ownerID, level - SHIFT, index);\n if (newChild === oldChild && sizeIndex === this.array.length - 1) {\n return this;\n }\n }\n\n var editable = editableVNode(this, ownerID);\n editable.array.splice(sizeIndex + 1);\n if (newChild) {\n editable.array[sizeIndex] = newChild;\n }\n return editable;\n };\n\n\n\n var DONE = {};\n\n function iterateList(list, reverse) {\n var left = list._origin;\n var right = list._capacity;\n var tailPos = getTailOffset(right);\n var tail = list._tail;\n\n return iterateNodeOrLeaf(list._root, list._level, 0);\n\n function iterateNodeOrLeaf(node, level, offset) {\n return level === 0 ?\n iterateLeaf(node, offset) :\n iterateNode(node, level, offset);\n }\n\n function iterateLeaf(node, offset) {\n var array = offset === tailPos ? tail && tail.array : node && node.array;\n var from = offset > left ? 0 : left - offset;\n var to = right - offset;\n if (to > SIZE) {\n to = SIZE;\n }\n return function() {\n if (from === to) {\n return DONE;\n }\n var idx = reverse ? --to : from++;\n return array && array[idx];\n };\n }\n\n function iterateNode(node, level, offset) {\n var values;\n var array = node && node.array;\n var from = offset > left ? 0 : (left - offset) >> level;\n var to = ((right - offset) >> level) + 1;\n if (to > SIZE) {\n to = SIZE;\n }\n return function() {\n do {\n if (values) {\n var value = values();\n if (value !== DONE) {\n return value;\n }\n values = null;\n }\n if (from === to) {\n return DONE;\n }\n var idx = reverse ? --to : from++;\n values = iterateNodeOrLeaf(\n array && array[idx], level - SHIFT, offset + (idx << level)\n );\n } while (true);\n };\n }\n }\n\n function makeList(origin, capacity, level, root, tail, ownerID, hash) {\n var list = Object.create(ListPrototype);\n list.size = capacity - origin;\n list._origin = origin;\n list._capacity = capacity;\n list._level = level;\n list._root = root;\n list._tail = tail;\n list.__ownerID = ownerID;\n list.__hash = hash;\n list.__altered = false;\n return list;\n }\n\n var EMPTY_LIST;\n function emptyList() {\n return EMPTY_LIST || (EMPTY_LIST = makeList(0, 0, SHIFT));\n }\n\n function updateList(list, index, value) {\n index = wrapIndex(list, index);\n\n if (index !== index) {\n return list;\n }\n\n if (index >= list.size || index < 0) {\n return list.withMutations(function(list ) {\n index < 0 ?\n setListBounds(list, index).set(0, value) :\n setListBounds(list, 0, index + 1).set(index, value)\n });\n }\n\n index += list._origin;\n\n var newTail = list._tail;\n var newRoot = list._root;\n var didAlter = MakeRef(DID_ALTER);\n if (index >= getTailOffset(list._capacity)) {\n newTail = updateVNode(newTail, list.__ownerID, 0, index, value, didAlter);\n } else {\n newRoot = updateVNode(newRoot, list.__ownerID, list._level, index, value, didAlter);\n }\n\n if (!didAlter.value) {\n return list;\n }\n\n if (list.__ownerID) {\n list._root = newRoot;\n list._tail = newTail;\n list.__hash = undefined;\n list.__altered = true;\n return list;\n }\n return makeList(list._origin, list._capacity, list._level, newRoot, newTail);\n }\n\n function updateVNode(node, ownerID, level, index, value, didAlter) {\n var idx = (index >>> level) & MASK;\n var nodeHas = node && idx < node.array.length;\n if (!nodeHas && value === undefined) {\n return node;\n }\n\n var newNode;\n\n if (level > 0) {\n var lowerNode = node && node.array[idx];\n var newLowerNode = updateVNode(lowerNode, ownerID, level - SHIFT, index, value, didAlter);\n if (newLowerNode === lowerNode) {\n return node;\n }\n newNode = editableVNode(node, ownerID);\n newNode.array[idx] = newLowerNode;\n return newNode;\n }\n\n if (nodeHas && node.array[idx] === value) {\n return node;\n }\n\n SetRef(didAlter);\n\n newNode = editableVNode(node, ownerID);\n if (value === undefined && idx === newNode.array.length - 1) {\n newNode.array.pop();\n } else {\n newNode.array[idx] = value;\n }\n return newNode;\n }\n\n function editableVNode(node, ownerID) {\n if (ownerID && node && ownerID === node.ownerID) {\n return node;\n }\n return new VNode(node ? node.array.slice() : [], ownerID);\n }\n\n function listNodeFor(list, rawIndex) {\n if (rawIndex >= getTailOffset(list._capacity)) {\n return list._tail;\n }\n if (rawIndex < 1 << (list._level + SHIFT)) {\n var node = list._root;\n var level = list._level;\n while (node && level > 0) {\n node = node.array[(rawIndex >>> level) & MASK];\n level -= SHIFT;\n }\n return node;\n }\n }\n\n function setListBounds(list, begin, end) {\n // Sanitize begin & end using this shorthand for ToInt32(argument)\n // http://www.ecma-international.org/ecma-262/6.0/#sec-toint32\n if (begin !== undefined) {\n begin = begin | 0;\n }\n if (end !== undefined) {\n end = end | 0;\n }\n var owner = list.__ownerID || new OwnerID();\n var oldOrigin = list._origin;\n var oldCapacity = list._capacity;\n var newOrigin = oldOrigin + begin;\n var newCapacity = end === undefined ? oldCapacity : end < 0 ? oldCapacity + end : oldOrigin + end;\n if (newOrigin === oldOrigin && newCapacity === oldCapacity) {\n return list;\n }\n\n // If it's going to end after it starts, it's empty.\n if (newOrigin >= newCapacity) {\n return list.clear();\n }\n\n var newLevel = list._level;\n var newRoot = list._root;\n\n // New origin might need creating a higher root.\n var offsetShift = 0;\n while (newOrigin + offsetShift < 0) {\n newRoot = new VNode(newRoot && newRoot.array.length ? [undefined, newRoot] : [], owner);\n newLevel += SHIFT;\n offsetShift += 1 << newLevel;\n }\n if (offsetShift) {\n newOrigin += offsetShift;\n oldOrigin += offsetShift;\n newCapacity += offsetShift;\n oldCapacity += offsetShift;\n }\n\n var oldTailOffset = getTailOffset(oldCapacity);\n var newTailOffset = getTailOffset(newCapacity);\n\n // New size might need creating a higher root.\n while (newTailOffset >= 1 << (newLevel + SHIFT)) {\n newRoot = new VNode(newRoot && newRoot.array.length ? [newRoot] : [], owner);\n newLevel += SHIFT;\n }\n\n // Locate or create the new tail.\n var oldTail = list._tail;\n var newTail = newTailOffset < oldTailOffset ?\n listNodeFor(list, newCapacity - 1) :\n newTailOffset > oldTailOffset ? new VNode([], owner) : oldTail;\n\n // Merge Tail into tree.\n if (oldTail && newTailOffset > oldTailOffset && newOrigin < oldCapacity && oldTail.array.length) {\n newRoot = editableVNode(newRoot, owner);\n var node = newRoot;\n for (var level = newLevel; level > SHIFT; level -= SHIFT) {\n var idx = (oldTailOffset >>> level) & MASK;\n node = node.array[idx] = editableVNode(node.array[idx], owner);\n }\n node.array[(oldTailOffset >>> SHIFT) & MASK] = oldTail;\n }\n\n // If the size has been reduced, there's a chance the tail needs to be trimmed.\n if (newCapacity < oldCapacity) {\n newTail = newTail && newTail.removeAfter(owner, 0, newCapacity);\n }\n\n // If the new origin is within the tail, then we do not need a root.\n if (newOrigin >= newTailOffset) {\n newOrigin -= newTailOffset;\n newCapacity -= newTailOffset;\n newLevel = SHIFT;\n newRoot = null;\n newTail = newTail && newTail.removeBefore(owner, 0, newOrigin);\n\n // Otherwise, if the root has been trimmed, garbage collect.\n } else if (newOrigin > oldOrigin || newTailOffset < oldTailOffset) {\n offsetShift = 0;\n\n // Identify the new top root node of the subtree of the old root.\n while (newRoot) {\n var beginIndex = (newOrigin >>> newLevel) & MASK;\n if (beginIndex !== (newTailOffset >>> newLevel) & MASK) {\n break;\n }\n if (beginIndex) {\n offsetShift += (1 << newLevel) * beginIndex;\n }\n newLevel -= SHIFT;\n newRoot = newRoot.array[beginIndex];\n }\n\n // Trim the new sides of the new root.\n if (newRoot && newOrigin > oldOrigin) {\n newRoot = newRoot.removeBefore(owner, newLevel, newOrigin - offsetShift);\n }\n if (newRoot && newTailOffset < oldTailOffset) {\n newRoot = newRoot.removeAfter(owner, newLevel, newTailOffset - offsetShift);\n }\n if (offsetShift) {\n newOrigin -= offsetShift;\n newCapacity -= offsetShift;\n }\n }\n\n if (list.__ownerID) {\n list.size = newCapacity - newOrigin;\n list._origin = newOrigin;\n list._capacity = newCapacity;\n list._level = newLevel;\n list._root = newRoot;\n list._tail = newTail;\n list.__hash = undefined;\n list.__altered = true;\n return list;\n }\n return makeList(newOrigin, newCapacity, newLevel, newRoot, newTail);\n }\n\n function mergeIntoListWith(list, merger, iterables) {\n var iters = [];\n var maxSize = 0;\n for (var ii = 0; ii < iterables.length; ii++) {\n var value = iterables[ii];\n var iter = IndexedIterable(value);\n if (iter.size > maxSize) {\n maxSize = iter.size;\n }\n if (!isIterable(value)) {\n iter = iter.map(function(v ) {return fromJS(v)});\n }\n iters.push(iter);\n }\n if (maxSize > list.size) {\n list = list.setSize(maxSize);\n }\n return mergeIntoCollectionWith(list, merger, iters);\n }\n\n function getTailOffset(size) {\n return size < SIZE ? 0 : (((size - 1) >>> SHIFT) << SHIFT);\n }\n\n createClass(OrderedMap, Map);\n\n // @pragma Construction\n\n function OrderedMap(value) {\n return value === null || value === undefined ? emptyOrderedMap() :\n isOrderedMap(value) ? value :\n emptyOrderedMap().withMutations(function(map ) {\n var iter = KeyedIterable(value);\n assertNotInfinite(iter.size);\n iter.forEach(function(v, k) {return map.set(k, v)});\n });\n }\n\n OrderedMap.of = function(/*...values*/) {\n return this(arguments);\n };\n\n OrderedMap.prototype.toString = function() {\n return this.__toString('OrderedMap {', '}');\n };\n\n // @pragma Access\n\n OrderedMap.prototype.get = function(k, notSetValue) {\n var index = this._map.get(k);\n return index !== undefined ? this._list.get(index)[1] : notSetValue;\n };\n\n // @pragma Modification\n\n OrderedMap.prototype.clear = function() {\n if (this.size === 0) {\n return this;\n }\n if (this.__ownerID) {\n this.size = 0;\n this._map.clear();\n this._list.clear();\n return this;\n }\n return emptyOrderedMap();\n };\n\n OrderedMap.prototype.set = function(k, v) {\n return updateOrderedMap(this, k, v);\n };\n\n OrderedMap.prototype.remove = function(k) {\n return updateOrderedMap(this, k, NOT_SET);\n };\n\n OrderedMap.prototype.wasAltered = function() {\n return this._map.wasAltered() || this._list.wasAltered();\n };\n\n OrderedMap.prototype.__iterate = function(fn, reverse) {var this$0 = this;\n return this._list.__iterate(\n function(entry ) {return entry && fn(entry[1], entry[0], this$0)},\n reverse\n );\n };\n\n OrderedMap.prototype.__iterator = function(type, reverse) {\n return this._list.fromEntrySeq().__iterator(type, reverse);\n };\n\n OrderedMap.prototype.__ensureOwner = function(ownerID) {\n if (ownerID === this.__ownerID) {\n return this;\n }\n var newMap = this._map.__ensureOwner(ownerID);\n var newList = this._list.__ensureOwner(ownerID);\n if (!ownerID) {\n this.__ownerID = ownerID;\n this._map = newMap;\n this._list = newList;\n return this;\n }\n return makeOrderedMap(newMap, newList, ownerID, this.__hash);\n };\n\n\n function isOrderedMap(maybeOrderedMap) {\n return isMap(maybeOrderedMap) && isOrdered(maybeOrderedMap);\n }\n\n OrderedMap.isOrderedMap = isOrderedMap;\n\n OrderedMap.prototype[IS_ORDERED_SENTINEL] = true;\n OrderedMap.prototype[DELETE] = OrderedMap.prototype.remove;\n\n\n\n function makeOrderedMap(map, list, ownerID, hash) {\n var omap = Object.create(OrderedMap.prototype);\n omap.size = map ? map.size : 0;\n omap._map = map;\n omap._list = list;\n omap.__ownerID = ownerID;\n omap.__hash = hash;\n return omap;\n }\n\n var EMPTY_ORDERED_MAP;\n function emptyOrderedMap() {\n return EMPTY_ORDERED_MAP || (EMPTY_ORDERED_MAP = makeOrderedMap(emptyMap(), emptyList()));\n }\n\n function updateOrderedMap(omap, k, v) {\n var map = omap._map;\n var list = omap._list;\n var i = map.get(k);\n var has = i !== undefined;\n var newMap;\n var newList;\n if (v === NOT_SET) { // removed\n if (!has) {\n return omap;\n }\n if (list.size >= SIZE && list.size >= map.size * 2) {\n newList = list.filter(function(entry, idx) {return entry !== undefined && i !== idx});\n newMap = newList.toKeyedSeq().map(function(entry ) {return entry[0]}).flip().toMap();\n if (omap.__ownerID) {\n newMap.__ownerID = newList.__ownerID = omap.__ownerID;\n }\n } else {\n newMap = map.remove(k);\n newList = i === list.size - 1 ? list.pop() : list.set(i, undefined);\n }\n } else {\n if (has) {\n if (v === list.get(i)[1]) {\n return omap;\n }\n newMap = map;\n newList = list.set(i, [k, v]);\n } else {\n newMap = map.set(k, list.size);\n newList = list.set(list.size, [k, v]);\n }\n }\n if (omap.__ownerID) {\n omap.size = newMap.size;\n omap._map = newMap;\n omap._list = newList;\n omap.__hash = undefined;\n return omap;\n }\n return makeOrderedMap(newMap, newList);\n }\n\n createClass(ToKeyedSequence, KeyedSeq);\n function ToKeyedSequence(indexed, useKeys) {\n this._iter = indexed;\n this._useKeys = useKeys;\n this.size = indexed.size;\n }\n\n ToKeyedSequence.prototype.get = function(key, notSetValue) {\n return this._iter.get(key, notSetValue);\n };\n\n ToKeyedSequence.prototype.has = function(key) {\n return this._iter.has(key);\n };\n\n ToKeyedSequence.prototype.valueSeq = function() {\n return this._iter.valueSeq();\n };\n\n ToKeyedSequence.prototype.reverse = function() {var this$0 = this;\n var reversedSequence = reverseFactory(this, true);\n if (!this._useKeys) {\n reversedSequence.valueSeq = function() {return this$0._iter.toSeq().reverse()};\n }\n return reversedSequence;\n };\n\n ToKeyedSequence.prototype.map = function(mapper, context) {var this$0 = this;\n var mappedSequence = mapFactory(this, mapper, context);\n if (!this._useKeys) {\n mappedSequence.valueSeq = function() {return this$0._iter.toSeq().map(mapper, context)};\n }\n return mappedSequence;\n };\n\n ToKeyedSequence.prototype.__iterate = function(fn, reverse) {var this$0 = this;\n var ii;\n return this._iter.__iterate(\n this._useKeys ?\n function(v, k) {return fn(v, k, this$0)} :\n ((ii = reverse ? resolveSize(this) : 0),\n function(v ) {return fn(v, reverse ? --ii : ii++, this$0)}),\n reverse\n );\n };\n\n ToKeyedSequence.prototype.__iterator = function(type, reverse) {\n if (this._useKeys) {\n return this._iter.__iterator(type, reverse);\n }\n var iterator = this._iter.__iterator(ITERATE_VALUES, reverse);\n var ii = reverse ? resolveSize(this) : 0;\n return new Iterator(function() {\n var step = iterator.next();\n return step.done ? step :\n iteratorValue(type, reverse ? --ii : ii++, step.value, step);\n });\n };\n\n ToKeyedSequence.prototype[IS_ORDERED_SENTINEL] = true;\n\n\n createClass(ToIndexedSequence, IndexedSeq);\n function ToIndexedSequence(iter) {\n this._iter = iter;\n this.size = iter.size;\n }\n\n ToIndexedSequence.prototype.includes = function(value) {\n return this._iter.includes(value);\n };\n\n ToIndexedSequence.prototype.__iterate = function(fn, reverse) {var this$0 = this;\n var iterations = 0;\n return this._iter.__iterate(function(v ) {return fn(v, iterations++, this$0)}, reverse);\n };\n\n ToIndexedSequence.prototype.__iterator = function(type, reverse) {\n var iterator = this._iter.__iterator(ITERATE_VALUES, reverse);\n var iterations = 0;\n return new Iterator(function() {\n var step = iterator.next();\n return step.done ? step :\n iteratorValue(type, iterations++, step.value, step)\n });\n };\n\n\n\n createClass(ToSetSequence, SetSeq);\n function ToSetSequence(iter) {\n this._iter = iter;\n this.size = iter.size;\n }\n\n ToSetSequence.prototype.has = function(key) {\n return this._iter.includes(key);\n };\n\n ToSetSequence.prototype.__iterate = function(fn, reverse) {var this$0 = this;\n return this._iter.__iterate(function(v ) {return fn(v, v, this$0)}, reverse);\n };\n\n ToSetSequence.prototype.__iterator = function(type, reverse) {\n var iterator = this._iter.__iterator(ITERATE_VALUES, reverse);\n return new Iterator(function() {\n var step = iterator.next();\n return step.done ? step :\n iteratorValue(type, step.value, step.value, step);\n });\n };\n\n\n\n createClass(FromEntriesSequence, KeyedSeq);\n function FromEntriesSequence(entries) {\n this._iter = entries;\n this.size = entries.size;\n }\n\n FromEntriesSequence.prototype.entrySeq = function() {\n return this._iter.toSeq();\n };\n\n FromEntriesSequence.prototype.__iterate = function(fn, reverse) {var this$0 = this;\n return this._iter.__iterate(function(entry ) {\n // Check if entry exists first so array access doesn't throw for holes\n // in the parent iteration.\n if (entry) {\n validateEntry(entry);\n var indexedIterable = isIterable(entry);\n return fn(\n indexedIterable ? entry.get(1) : entry[1],\n indexedIterable ? entry.get(0) : entry[0],\n this$0\n );\n }\n }, reverse);\n };\n\n FromEntriesSequence.prototype.__iterator = function(type, reverse) {\n var iterator = this._iter.__iterator(ITERATE_VALUES, reverse);\n return new Iterator(function() {\n while (true) {\n var step = iterator.next();\n if (step.done) {\n return step;\n }\n var entry = step.value;\n // Check if entry exists first so array access doesn't throw for holes\n // in the parent iteration.\n if (entry) {\n validateEntry(entry);\n var indexedIterable = isIterable(entry);\n return iteratorValue(\n type,\n indexedIterable ? entry.get(0) : entry[0],\n indexedIterable ? entry.get(1) : entry[1],\n step\n );\n }\n }\n });\n };\n\n\n ToIndexedSequence.prototype.cacheResult =\n ToKeyedSequence.prototype.cacheResult =\n ToSetSequence.prototype.cacheResult =\n FromEntriesSequence.prototype.cacheResult =\n cacheResultThrough;\n\n\n function flipFactory(iterable) {\n var flipSequence = makeSequence(iterable);\n flipSequence._iter = iterable;\n flipSequence.size = iterable.size;\n flipSequence.flip = function() {return iterable};\n flipSequence.reverse = function () {\n var reversedSequence = iterable.reverse.apply(this); // super.reverse()\n reversedSequence.flip = function() {return iterable.reverse()};\n return reversedSequence;\n };\n flipSequence.has = function(key ) {return iterable.includes(key)};\n flipSequence.includes = function(key ) {return iterable.has(key)};\n flipSequence.cacheResult = cacheResultThrough;\n flipSequence.__iterateUncached = function (fn, reverse) {var this$0 = this;\n return iterable.__iterate(function(v, k) {return fn(k, v, this$0) !== false}, reverse);\n }\n flipSequence.__iteratorUncached = function(type, reverse) {\n if (type === ITERATE_ENTRIES) {\n var iterator = iterable.__iterator(type, reverse);\n return new Iterator(function() {\n var step = iterator.next();\n if (!step.done) {\n var k = step.value[0];\n step.value[0] = step.value[1];\n step.value[1] = k;\n }\n return step;\n });\n }\n return iterable.__iterator(\n type === ITERATE_VALUES ? ITERATE_KEYS : ITERATE_VALUES,\n reverse\n );\n }\n return flipSequence;\n }\n\n\n function mapFactory(iterable, mapper, context) {\n var mappedSequence = makeSequence(iterable);\n mappedSequence.size = iterable.size;\n mappedSequence.has = function(key ) {return iterable.has(key)};\n mappedSequence.get = function(key, notSetValue) {\n var v = iterable.get(key, NOT_SET);\n return v === NOT_SET ?\n notSetValue :\n mapper.call(context, v, key, iterable);\n };\n mappedSequence.__iterateUncached = function (fn, reverse) {var this$0 = this;\n return iterable.__iterate(\n function(v, k, c) {return fn(mapper.call(context, v, k, c), k, this$0) !== false},\n reverse\n );\n }\n mappedSequence.__iteratorUncached = function (type, reverse) {\n var iterator = iterable.__iterator(ITERATE_ENTRIES, reverse);\n return new Iterator(function() {\n var step = iterator.next();\n if (step.done) {\n return step;\n }\n var entry = step.value;\n var key = entry[0];\n return iteratorValue(\n type,\n key,\n mapper.call(context, entry[1], key, iterable),\n step\n );\n });\n }\n return mappedSequence;\n }\n\n\n function reverseFactory(iterable, useKeys) {\n var reversedSequence = makeSequence(iterable);\n reversedSequence._iter = iterable;\n reversedSequence.size = iterable.size;\n reversedSequence.reverse = function() {return iterable};\n if (iterable.flip) {\n reversedSequence.flip = function () {\n var flipSequence = flipFactory(iterable);\n flipSequence.reverse = function() {return iterable.flip()};\n return flipSequence;\n };\n }\n reversedSequence.get = function(key, notSetValue) \n {return iterable.get(useKeys ? key : -1 - key, notSetValue)};\n reversedSequence.has = function(key )\n {return iterable.has(useKeys ? key : -1 - key)};\n reversedSequence.includes = function(value ) {return iterable.includes(value)};\n reversedSequence.cacheResult = cacheResultThrough;\n reversedSequence.__iterate = function (fn, reverse) {var this$0 = this;\n return iterable.__iterate(function(v, k) {return fn(v, k, this$0)}, !reverse);\n };\n reversedSequence.__iterator =\n function(type, reverse) {return iterable.__iterator(type, !reverse)};\n return reversedSequence;\n }\n\n\n function filterFactory(iterable, predicate, context, useKeys) {\n var filterSequence = makeSequence(iterable);\n if (useKeys) {\n filterSequence.has = function(key ) {\n var v = iterable.get(key, NOT_SET);\n return v !== NOT_SET && !!predicate.call(context, v, key, iterable);\n };\n filterSequence.get = function(key, notSetValue) {\n var v = iterable.get(key, NOT_SET);\n return v !== NOT_SET && predicate.call(context, v, key, iterable) ?\n v : notSetValue;\n };\n }\n filterSequence.__iterateUncached = function (fn, reverse) {var this$0 = this;\n var iterations = 0;\n iterable.__iterate(function(v, k, c) {\n if (predicate.call(context, v, k, c)) {\n iterations++;\n return fn(v, useKeys ? k : iterations - 1, this$0);\n }\n }, reverse);\n return iterations;\n };\n filterSequence.__iteratorUncached = function (type, reverse) {\n var iterator = iterable.__iterator(ITERATE_ENTRIES, reverse);\n var iterations = 0;\n return new Iterator(function() {\n while (true) {\n var step = iterator.next();\n if (step.done) {\n return step;\n }\n var entry = step.value;\n var key = entry[0];\n var value = entry[1];\n if (predicate.call(context, value, key, iterable)) {\n return iteratorValue(type, useKeys ? key : iterations++, value, step);\n }\n }\n });\n }\n return filterSequence;\n }\n\n\n function countByFactory(iterable, grouper, context) {\n var groups = Map().asMutable();\n iterable.__iterate(function(v, k) {\n groups.update(\n grouper.call(context, v, k, iterable),\n 0,\n function(a ) {return a + 1}\n );\n });\n return groups.asImmutable();\n }\n\n\n function groupByFactory(iterable, grouper, context) {\n var isKeyedIter = isKeyed(iterable);\n var groups = (isOrdered(iterable) ? OrderedMap() : Map()).asMutable();\n iterable.__iterate(function(v, k) {\n groups.update(\n grouper.call(context, v, k, iterable),\n function(a ) {return (a = a || [], a.push(isKeyedIter ? [k, v] : v), a)}\n );\n });\n var coerce = iterableClass(iterable);\n return groups.map(function(arr ) {return reify(iterable, coerce(arr))});\n }\n\n\n function sliceFactory(iterable, begin, end, useKeys) {\n var originalSize = iterable.size;\n\n // Sanitize begin & end using this shorthand for ToInt32(argument)\n // http://www.ecma-international.org/ecma-262/6.0/#sec-toint32\n if (begin !== undefined) {\n begin = begin | 0;\n }\n if (end !== undefined) {\n if (end === Infinity) {\n end = originalSize;\n } else {\n end = end | 0;\n }\n }\n\n if (wholeSlice(begin, end, originalSize)) {\n return iterable;\n }\n\n var resolvedBegin = resolveBegin(begin, originalSize);\n var resolvedEnd = resolveEnd(end, originalSize);\n\n // begin or end will be NaN if they were provided as negative numbers and\n // this iterable's size is unknown. In that case, cache first so there is\n // a known size and these do not resolve to NaN.\n if (resolvedBegin !== resolvedBegin || resolvedEnd !== resolvedEnd) {\n return sliceFactory(iterable.toSeq().cacheResult(), begin, end, useKeys);\n }\n\n // Note: resolvedEnd is undefined when the original sequence's length is\n // unknown and this slice did not supply an end and should contain all\n // elements after resolvedBegin.\n // In that case, resolvedSize will be NaN and sliceSize will remain undefined.\n var resolvedSize = resolvedEnd - resolvedBegin;\n var sliceSize;\n if (resolvedSize === resolvedSize) {\n sliceSize = resolvedSize < 0 ? 0 : resolvedSize;\n }\n\n var sliceSeq = makeSequence(iterable);\n\n // If iterable.size is undefined, the size of the realized sliceSeq is\n // unknown at this point unless the number of items to slice is 0\n sliceSeq.size = sliceSize === 0 ? sliceSize : iterable.size && sliceSize || undefined;\n\n if (!useKeys && isSeq(iterable) && sliceSize >= 0) {\n sliceSeq.get = function (index, notSetValue) {\n index = wrapIndex(this, index);\n return index >= 0 && index < sliceSize ?\n iterable.get(index + resolvedBegin, notSetValue) :\n notSetValue;\n }\n }\n\n sliceSeq.__iterateUncached = function(fn, reverse) {var this$0 = this;\n if (sliceSize === 0) {\n return 0;\n }\n if (reverse) {\n return this.cacheResult().__iterate(fn, reverse);\n }\n var skipped = 0;\n var isSkipping = true;\n var iterations = 0;\n iterable.__iterate(function(v, k) {\n if (!(isSkipping && (isSkipping = skipped++ < resolvedBegin))) {\n iterations++;\n return fn(v, useKeys ? k : iterations - 1, this$0) !== false &&\n iterations !== sliceSize;\n }\n });\n return iterations;\n };\n\n sliceSeq.__iteratorUncached = function(type, reverse) {\n if (sliceSize !== 0 && reverse) {\n return this.cacheResult().__iterator(type, reverse);\n }\n // Don't bother instantiating parent iterator if taking 0.\n var iterator = sliceSize !== 0 && iterable.__iterator(type, reverse);\n var skipped = 0;\n var iterations = 0;\n return new Iterator(function() {\n while (skipped++ < resolvedBegin) {\n iterator.next();\n }\n if (++iterations > sliceSize) {\n return iteratorDone();\n }\n var step = iterator.next();\n if (useKeys || type === ITERATE_VALUES) {\n return step;\n } else if (type === ITERATE_KEYS) {\n return iteratorValue(type, iterations - 1, undefined, step);\n } else {\n return iteratorValue(type, iterations - 1, step.value[1], step);\n }\n });\n }\n\n return sliceSeq;\n }\n\n\n function takeWhileFactory(iterable, predicate, context) {\n var takeSequence = makeSequence(iterable);\n takeSequence.__iterateUncached = function(fn, reverse) {var this$0 = this;\n if (reverse) {\n return this.cacheResult().__iterate(fn, reverse);\n }\n var iterations = 0;\n iterable.__iterate(function(v, k, c) \n {return predicate.call(context, v, k, c) && ++iterations && fn(v, k, this$0)}\n );\n return iterations;\n };\n takeSequence.__iteratorUncached = function(type, reverse) {var this$0 = this;\n if (reverse) {\n return this.cacheResult().__iterator(type, reverse);\n }\n var iterator = iterable.__iterator(ITERATE_ENTRIES, reverse);\n var iterating = true;\n return new Iterator(function() {\n if (!iterating) {\n return iteratorDone();\n }\n var step = iterator.next();\n if (step.done) {\n return step;\n }\n var entry = step.value;\n var k = entry[0];\n var v = entry[1];\n if (!predicate.call(context, v, k, this$0)) {\n iterating = false;\n return iteratorDone();\n }\n return type === ITERATE_ENTRIES ? step :\n iteratorValue(type, k, v, step);\n });\n };\n return takeSequence;\n }\n\n\n function skipWhileFactory(iterable, predicate, context, useKeys) {\n var skipSequence = makeSequence(iterable);\n skipSequence.__iterateUncached = function (fn, reverse) {var this$0 = this;\n if (reverse) {\n return this.cacheResult().__iterate(fn, reverse);\n }\n var isSkipping = true;\n var iterations = 0;\n iterable.__iterate(function(v, k, c) {\n if (!(isSkipping && (isSkipping = predicate.call(context, v, k, c)))) {\n iterations++;\n return fn(v, useKeys ? k : iterations - 1, this$0);\n }\n });\n return iterations;\n };\n skipSequence.__iteratorUncached = function(type, reverse) {var this$0 = this;\n if (reverse) {\n return this.cacheResult().__iterator(type, reverse);\n }\n var iterator = iterable.__iterator(ITERATE_ENTRIES, reverse);\n var skipping = true;\n var iterations = 0;\n return new Iterator(function() {\n var step, k, v;\n do {\n step = iterator.next();\n if (step.done) {\n if (useKeys || type === ITERATE_VALUES) {\n return step;\n } else if (type === ITERATE_KEYS) {\n return iteratorValue(type, iterations++, undefined, step);\n } else {\n return iteratorValue(type, iterations++, step.value[1], step);\n }\n }\n var entry = step.value;\n k = entry[0];\n v = entry[1];\n skipping && (skipping = predicate.call(context, v, k, this$0));\n } while (skipping);\n return type === ITERATE_ENTRIES ? step :\n iteratorValue(type, k, v, step);\n });\n };\n return skipSequence;\n }\n\n\n function concatFactory(iterable, values) {\n var isKeyedIterable = isKeyed(iterable);\n var iters = [iterable].concat(values).map(function(v ) {\n if (!isIterable(v)) {\n v = isKeyedIterable ?\n keyedSeqFromValue(v) :\n indexedSeqFromValue(Array.isArray(v) ? v : [v]);\n } else if (isKeyedIterable) {\n v = KeyedIterable(v);\n }\n return v;\n }).filter(function(v ) {return v.size !== 0});\n\n if (iters.length === 0) {\n return iterable;\n }\n\n if (iters.length === 1) {\n var singleton = iters[0];\n if (singleton === iterable ||\n isKeyedIterable && isKeyed(singleton) ||\n isIndexed(iterable) && isIndexed(singleton)) {\n return singleton;\n }\n }\n\n var concatSeq = new ArraySeq(iters);\n if (isKeyedIterable) {\n concatSeq = concatSeq.toKeyedSeq();\n } else if (!isIndexed(iterable)) {\n concatSeq = concatSeq.toSetSeq();\n }\n concatSeq = concatSeq.flatten(true);\n concatSeq.size = iters.reduce(\n function(sum, seq) {\n if (sum !== undefined) {\n var size = seq.size;\n if (size !== undefined) {\n return sum + size;\n }\n }\n },\n 0\n );\n return concatSeq;\n }\n\n\n function flattenFactory(iterable, depth, useKeys) {\n var flatSequence = makeSequence(iterable);\n flatSequence.__iterateUncached = function(fn, reverse) {\n var iterations = 0;\n var stopped = false;\n function flatDeep(iter, currentDepth) {var this$0 = this;\n iter.__iterate(function(v, k) {\n if ((!depth || currentDepth < depth) && isIterable(v)) {\n flatDeep(v, currentDepth + 1);\n } else if (fn(v, useKeys ? k : iterations++, this$0) === false) {\n stopped = true;\n }\n return !stopped;\n }, reverse);\n }\n flatDeep(iterable, 0);\n return iterations;\n }\n flatSequence.__iteratorUncached = function(type, reverse) {\n var iterator = iterable.__iterator(type, reverse);\n var stack = [];\n var iterations = 0;\n return new Iterator(function() {\n while (iterator) {\n var step = iterator.next();\n if (step.done !== false) {\n iterator = stack.pop();\n continue;\n }\n var v = step.value;\n if (type === ITERATE_ENTRIES) {\n v = v[1];\n }\n if ((!depth || stack.length < depth) && isIterable(v)) {\n stack.push(iterator);\n iterator = v.__iterator(type, reverse);\n } else {\n return useKeys ? step : iteratorValue(type, iterations++, v, step);\n }\n }\n return iteratorDone();\n });\n }\n return flatSequence;\n }\n\n\n function flatMapFactory(iterable, mapper, context) {\n var coerce = iterableClass(iterable);\n return iterable.toSeq().map(\n function(v, k) {return coerce(mapper.call(context, v, k, iterable))}\n ).flatten(true);\n }\n\n\n function interposeFactory(iterable, separator) {\n var interposedSequence = makeSequence(iterable);\n interposedSequence.size = iterable.size && iterable.size * 2 -1;\n interposedSequence.__iterateUncached = function(fn, reverse) {var this$0 = this;\n var iterations = 0;\n iterable.__iterate(function(v, k) \n {return (!iterations || fn(separator, iterations++, this$0) !== false) &&\n fn(v, iterations++, this$0) !== false},\n reverse\n );\n return iterations;\n };\n interposedSequence.__iteratorUncached = function(type, reverse) {\n var iterator = iterable.__iterator(ITERATE_VALUES, reverse);\n var iterations = 0;\n var step;\n return new Iterator(function() {\n if (!step || iterations % 2) {\n step = iterator.next();\n if (step.done) {\n return step;\n }\n }\n return iterations % 2 ?\n iteratorValue(type, iterations++, separator) :\n iteratorValue(type, iterations++, step.value, step);\n });\n };\n return interposedSequence;\n }\n\n\n function sortFactory(iterable, comparator, mapper) {\n if (!comparator) {\n comparator = defaultComparator;\n }\n var isKeyedIterable = isKeyed(iterable);\n var index = 0;\n var entries = iterable.toSeq().map(\n function(v, k) {return [k, v, index++, mapper ? mapper(v, k, iterable) : v]}\n ).toArray();\n entries.sort(function(a, b) {return comparator(a[3], b[3]) || a[2] - b[2]}).forEach(\n isKeyedIterable ?\n function(v, i) { entries[i].length = 2; } :\n function(v, i) { entries[i] = v[1]; }\n );\n return isKeyedIterable ? KeyedSeq(entries) :\n isIndexed(iterable) ? IndexedSeq(entries) :\n SetSeq(entries);\n }\n\n\n function maxFactory(iterable, comparator, mapper) {\n if (!comparator) {\n comparator = defaultComparator;\n }\n if (mapper) {\n var entry = iterable.toSeq()\n .map(function(v, k) {return [v, mapper(v, k, iterable)]})\n .reduce(function(a, b) {return maxCompare(comparator, a[1], b[1]) ? b : a});\n return entry && entry[0];\n } else {\n return iterable.reduce(function(a, b) {return maxCompare(comparator, a, b) ? b : a});\n }\n }\n\n function maxCompare(comparator, a, b) {\n var comp = comparator(b, a);\n // b is considered the new max if the comparator declares them equal, but\n // they are not equal and b is in fact a nullish value.\n return (comp === 0 && b !== a && (b === undefined || b === null || b !== b)) || comp > 0;\n }\n\n\n function zipWithFactory(keyIter, zipper, iters) {\n var zipSequence = makeSequence(keyIter);\n zipSequence.size = new ArraySeq(iters).map(function(i ) {return i.size}).min();\n // Note: this a generic base implementation of __iterate in terms of\n // __iterator which may be more generically useful in the future.\n zipSequence.__iterate = function(fn, reverse) {\n /* generic:\n var iterator = this.__iterator(ITERATE_ENTRIES, reverse);\n var step;\n var iterations = 0;\n while (!(step = iterator.next()).done) {\n iterations++;\n if (fn(step.value[1], step.value[0], this) === false) {\n break;\n }\n }\n return iterations;\n */\n // indexed:\n var iterator = this.__iterator(ITERATE_VALUES, reverse);\n var step;\n var iterations = 0;\n while (!(step = iterator.next()).done) {\n if (fn(step.value, iterations++, this) === false) {\n break;\n }\n }\n return iterations;\n };\n zipSequence.__iteratorUncached = function(type, reverse) {\n var iterators = iters.map(function(i )\n {return (i = Iterable(i), getIterator(reverse ? i.reverse() : i))}\n );\n var iterations = 0;\n var isDone = false;\n return new Iterator(function() {\n var steps;\n if (!isDone) {\n steps = iterators.map(function(i ) {return i.next()});\n isDone = steps.some(function(s ) {return s.done});\n }\n if (isDone) {\n return iteratorDone();\n }\n return iteratorValue(\n type,\n iterations++,\n zipper.apply(null, steps.map(function(s ) {return s.value}))\n );\n });\n };\n return zipSequence\n }\n\n\n // #pragma Helper Functions\n\n function reify(iter, seq) {\n return isSeq(iter) ? seq : iter.constructor(seq);\n }\n\n function validateEntry(entry) {\n if (entry !== Object(entry)) {\n throw new TypeError('Expected [K, V] tuple: ' + entry);\n }\n }\n\n function resolveSize(iter) {\n assertNotInfinite(iter.size);\n return ensureSize(iter);\n }\n\n function iterableClass(iterable) {\n return isKeyed(iterable) ? KeyedIterable :\n isIndexed(iterable) ? IndexedIterable :\n SetIterable;\n }\n\n function makeSequence(iterable) {\n return Object.create(\n (\n isKeyed(iterable) ? KeyedSeq :\n isIndexed(iterable) ? IndexedSeq :\n SetSeq\n ).prototype\n );\n }\n\n function cacheResultThrough() {\n if (this._iter.cacheResult) {\n this._iter.cacheResult();\n this.size = this._iter.size;\n return this;\n } else {\n return Seq.prototype.cacheResult.call(this);\n }\n }\n\n function defaultComparator(a, b) {\n return a > b ? 1 : a < b ? -1 : 0;\n }\n\n function forceIterator(keyPath) {\n var iter = getIterator(keyPath);\n if (!iter) {\n // Array might not be iterable in this environment, so we need a fallback\n // to our wrapped type.\n if (!isArrayLike(keyPath)) {\n throw new TypeError('Expected iterable or array-like: ' + keyPath);\n }\n iter = getIterator(Iterable(keyPath));\n }\n return iter;\n }\n\n createClass(Record, KeyedCollection);\n\n function Record(defaultValues, name) {\n var hasInitialized;\n\n var RecordType = function Record(values) {\n if (values instanceof RecordType) {\n return values;\n }\n if (!(this instanceof RecordType)) {\n return new RecordType(values);\n }\n if (!hasInitialized) {\n hasInitialized = true;\n var keys = Object.keys(defaultValues);\n setProps(RecordTypePrototype, keys);\n RecordTypePrototype.size = keys.length;\n RecordTypePrototype._name = name;\n RecordTypePrototype._keys = keys;\n RecordTypePrototype._defaultValues = defaultValues;\n }\n this._map = Map(values);\n };\n\n var RecordTypePrototype = RecordType.prototype = Object.create(RecordPrototype);\n RecordTypePrototype.constructor = RecordType;\n\n return RecordType;\n }\n\n Record.prototype.toString = function() {\n return this.__toString(recordName(this) + ' {', '}');\n };\n\n // @pragma Access\n\n Record.prototype.has = function(k) {\n return this._defaultValues.hasOwnProperty(k);\n };\n\n Record.prototype.get = function(k, notSetValue) {\n if (!this.has(k)) {\n return notSetValue;\n }\n var defaultVal = this._defaultValues[k];\n return this._map ? this._map.get(k, defaultVal) : defaultVal;\n };\n\n // @pragma Modification\n\n Record.prototype.clear = function() {\n if (this.__ownerID) {\n this._map && this._map.clear();\n return this;\n }\n var RecordType = this.constructor;\n return RecordType._empty || (RecordType._empty = makeRecord(this, emptyMap()));\n };\n\n Record.prototype.set = function(k, v) {\n if (!this.has(k)) {\n throw new Error('Cannot set unknown key \"' + k + '\" on ' + recordName(this));\n }\n if (this._map && !this._map.has(k)) {\n var defaultVal = this._defaultValues[k];\n if (v === defaultVal) {\n return this;\n }\n }\n var newMap = this._map && this._map.set(k, v);\n if (this.__ownerID || newMap === this._map) {\n return this;\n }\n return makeRecord(this, newMap);\n };\n\n Record.prototype.remove = function(k) {\n if (!this.has(k)) {\n return this;\n }\n var newMap = this._map && this._map.remove(k);\n if (this.__ownerID || newMap === this._map) {\n return this;\n }\n return makeRecord(this, newMap);\n };\n\n Record.prototype.wasAltered = function() {\n return this._map.wasAltered();\n };\n\n Record.prototype.__iterator = function(type, reverse) {var this$0 = this;\n return KeyedIterable(this._defaultValues).map(function(_, k) {return this$0.get(k)}).__iterator(type, reverse);\n };\n\n Record.prototype.__iterate = function(fn, reverse) {var this$0 = this;\n return KeyedIterable(this._defaultValues).map(function(_, k) {return this$0.get(k)}).__iterate(fn, reverse);\n };\n\n Record.prototype.__ensureOwner = function(ownerID) {\n if (ownerID === this.__ownerID) {\n return this;\n }\n var newMap = this._map && this._map.__ensureOwner(ownerID);\n if (!ownerID) {\n this.__ownerID = ownerID;\n this._map = newMap;\n return this;\n }\n return makeRecord(this, newMap, ownerID);\n };\n\n\n var RecordPrototype = Record.prototype;\n RecordPrototype[DELETE] = RecordPrototype.remove;\n RecordPrototype.deleteIn =\n RecordPrototype.removeIn = MapPrototype.removeIn;\n RecordPrototype.merge = MapPrototype.merge;\n RecordPrototype.mergeWith = MapPrototype.mergeWith;\n RecordPrototype.mergeIn = MapPrototype.mergeIn;\n RecordPrototype.mergeDeep = MapPrototype.mergeDeep;\n RecordPrototype.mergeDeepWith = MapPrototype.mergeDeepWith;\n RecordPrototype.mergeDeepIn = MapPrototype.mergeDeepIn;\n RecordPrototype.setIn = MapPrototype.setIn;\n RecordPrototype.update = MapPrototype.update;\n RecordPrototype.updateIn = MapPrototype.updateIn;\n RecordPrototype.withMutations = MapPrototype.withMutations;\n RecordPrototype.asMutable = MapPrototype.asMutable;\n RecordPrototype.asImmutable = MapPrototype.asImmutable;\n\n\n function makeRecord(likeRecord, map, ownerID) {\n var record = Object.create(Object.getPrototypeOf(likeRecord));\n record._map = map;\n record.__ownerID = ownerID;\n return record;\n }\n\n function recordName(record) {\n return record._name || record.constructor.name || 'Record';\n }\n\n function setProps(prototype, names) {\n try {\n names.forEach(setProp.bind(undefined, prototype));\n } catch (error) {\n // Object.defineProperty failed. Probably IE8.\n }\n }\n\n function setProp(prototype, name) {\n Object.defineProperty(prototype, name, {\n get: function() {\n return this.get(name);\n },\n set: function(value) {\n invariant(this.__ownerID, 'Cannot set on an immutable record.');\n this.set(name, value);\n }\n });\n }\n\n createClass(Set, SetCollection);\n\n // @pragma Construction\n\n function Set(value) {\n return value === null || value === undefined ? emptySet() :\n isSet(value) && !isOrdered(value) ? value :\n emptySet().withMutations(function(set ) {\n var iter = SetIterable(value);\n assertNotInfinite(iter.size);\n iter.forEach(function(v ) {return set.add(v)});\n });\n }\n\n Set.of = function(/*...values*/) {\n return this(arguments);\n };\n\n Set.fromKeys = function(value) {\n return this(KeyedIterable(value).keySeq());\n };\n\n Set.prototype.toString = function() {\n return this.__toString('Set {', '}');\n };\n\n // @pragma Access\n\n Set.prototype.has = function(value) {\n return this._map.has(value);\n };\n\n // @pragma Modification\n\n Set.prototype.add = function(value) {\n return updateSet(this, this._map.set(value, true));\n };\n\n Set.prototype.remove = function(value) {\n return updateSet(this, this._map.remove(value));\n };\n\n Set.prototype.clear = function() {\n return updateSet(this, this._map.clear());\n };\n\n // @pragma Composition\n\n Set.prototype.union = function() {var iters = SLICE$0.call(arguments, 0);\n iters = iters.filter(function(x ) {return x.size !== 0});\n if (iters.length === 0) {\n return this;\n }\n if (this.size === 0 && !this.__ownerID && iters.length === 1) {\n return this.constructor(iters[0]);\n }\n return this.withMutations(function(set ) {\n for (var ii = 0; ii < iters.length; ii++) {\n SetIterable(iters[ii]).forEach(function(value ) {return set.add(value)});\n }\n });\n };\n\n Set.prototype.intersect = function() {var iters = SLICE$0.call(arguments, 0);\n if (iters.length === 0) {\n return this;\n }\n iters = iters.map(function(iter ) {return SetIterable(iter)});\n var originalSet = this;\n return this.withMutations(function(set ) {\n originalSet.forEach(function(value ) {\n if (!iters.every(function(iter ) {return iter.includes(value)})) {\n set.remove(value);\n }\n });\n });\n };\n\n Set.prototype.subtract = function() {var iters = SLICE$0.call(arguments, 0);\n if (iters.length === 0) {\n return this;\n }\n iters = iters.map(function(iter ) {return SetIterable(iter)});\n var originalSet = this;\n return this.withMutations(function(set ) {\n originalSet.forEach(function(value ) {\n if (iters.some(function(iter ) {return iter.includes(value)})) {\n set.remove(value);\n }\n });\n });\n };\n\n Set.prototype.merge = function() {\n return this.union.apply(this, arguments);\n };\n\n Set.prototype.mergeWith = function(merger) {var iters = SLICE$0.call(arguments, 1);\n return this.union.apply(this, iters);\n };\n\n Set.prototype.sort = function(comparator) {\n // Late binding\n return OrderedSet(sortFactory(this, comparator));\n };\n\n Set.prototype.sortBy = function(mapper, comparator) {\n // Late binding\n return OrderedSet(sortFactory(this, comparator, mapper));\n };\n\n Set.prototype.wasAltered = function() {\n return this._map.wasAltered();\n };\n\n Set.prototype.__iterate = function(fn, reverse) {var this$0 = this;\n return this._map.__iterate(function(_, k) {return fn(k, k, this$0)}, reverse);\n };\n\n Set.prototype.__iterator = function(type, reverse) {\n return this._map.map(function(_, k) {return k}).__iterator(type, reverse);\n };\n\n Set.prototype.__ensureOwner = function(ownerID) {\n if (ownerID === this.__ownerID) {\n return this;\n }\n var newMap = this._map.__ensureOwner(ownerID);\n if (!ownerID) {\n this.__ownerID = ownerID;\n this._map = newMap;\n return this;\n }\n return this.__make(newMap, ownerID);\n };\n\n\n function isSet(maybeSet) {\n return !!(maybeSet && maybeSet[IS_SET_SENTINEL]);\n }\n\n Set.isSet = isSet;\n\n var IS_SET_SENTINEL = '@@__IMMUTABLE_SET__@@';\n\n var SetPrototype = Set.prototype;\n SetPrototype[IS_SET_SENTINEL] = true;\n SetPrototype[DELETE] = SetPrototype.remove;\n SetPrototype.mergeDeep = SetPrototype.merge;\n SetPrototype.mergeDeepWith = SetPrototype.mergeWith;\n SetPrototype.withMutations = MapPrototype.withMutations;\n SetPrototype.asMutable = MapPrototype.asMutable;\n SetPrototype.asImmutable = MapPrototype.asImmutable;\n\n SetPrototype.__empty = emptySet;\n SetPrototype.__make = makeSet;\n\n function updateSet(set, newMap) {\n if (set.__ownerID) {\n set.size = newMap.size;\n set._map = newMap;\n return set;\n }\n return newMap === set._map ? set :\n newMap.size === 0 ? set.__empty() :\n set.__make(newMap);\n }\n\n function makeSet(map, ownerID) {\n var set = Object.create(SetPrototype);\n set.size = map ? map.size : 0;\n set._map = map;\n set.__ownerID = ownerID;\n return set;\n }\n\n var EMPTY_SET;\n function emptySet() {\n return EMPTY_SET || (EMPTY_SET = makeSet(emptyMap()));\n }\n\n createClass(OrderedSet, Set);\n\n // @pragma Construction\n\n function OrderedSet(value) {\n return value === null || value === undefined ? emptyOrderedSet() :\n isOrderedSet(value) ? value :\n emptyOrderedSet().withMutations(function(set ) {\n var iter = SetIterable(value);\n assertNotInfinite(iter.size);\n iter.forEach(function(v ) {return set.add(v)});\n });\n }\n\n OrderedSet.of = function(/*...values*/) {\n return this(arguments);\n };\n\n OrderedSet.fromKeys = function(value) {\n return this(KeyedIterable(value).keySeq());\n };\n\n OrderedSet.prototype.toString = function() {\n return this.__toString('OrderedSet {', '}');\n };\n\n\n function isOrderedSet(maybeOrderedSet) {\n return isSet(maybeOrderedSet) && isOrdered(maybeOrderedSet);\n }\n\n OrderedSet.isOrderedSet = isOrderedSet;\n\n var OrderedSetPrototype = OrderedSet.prototype;\n OrderedSetPrototype[IS_ORDERED_SENTINEL] = true;\n\n OrderedSetPrototype.__empty = emptyOrderedSet;\n OrderedSetPrototype.__make = makeOrderedSet;\n\n function makeOrderedSet(map, ownerID) {\n var set = Object.create(OrderedSetPrototype);\n set.size = map ? map.size : 0;\n set._map = map;\n set.__ownerID = ownerID;\n return set;\n }\n\n var EMPTY_ORDERED_SET;\n function emptyOrderedSet() {\n return EMPTY_ORDERED_SET || (EMPTY_ORDERED_SET = makeOrderedSet(emptyOrderedMap()));\n }\n\n createClass(Stack, IndexedCollection);\n\n // @pragma Construction\n\n function Stack(value) {\n return value === null || value === undefined ? emptyStack() :\n isStack(value) ? value :\n emptyStack().unshiftAll(value);\n }\n\n Stack.of = function(/*...values*/) {\n return this(arguments);\n };\n\n Stack.prototype.toString = function() {\n return this.__toString('Stack [', ']');\n };\n\n // @pragma Access\n\n Stack.prototype.get = function(index, notSetValue) {\n var head = this._head;\n index = wrapIndex(this, index);\n while (head && index--) {\n head = head.next;\n }\n return head ? head.value : notSetValue;\n };\n\n Stack.prototype.peek = function() {\n return this._head && this._head.value;\n };\n\n // @pragma Modification\n\n Stack.prototype.push = function(/*...values*/) {\n if (arguments.length === 0) {\n return this;\n }\n var newSize = this.size + arguments.length;\n var head = this._head;\n for (var ii = arguments.length - 1; ii >= 0; ii--) {\n head = {\n value: arguments[ii],\n next: head\n };\n }\n if (this.__ownerID) {\n this.size = newSize;\n this._head = head;\n this.__hash = undefined;\n this.__altered = true;\n return this;\n }\n return makeStack(newSize, head);\n };\n\n Stack.prototype.pushAll = function(iter) {\n iter = IndexedIterable(iter);\n if (iter.size === 0) {\n return this;\n }\n assertNotInfinite(iter.size);\n var newSize = this.size;\n var head = this._head;\n iter.reverse().forEach(function(value ) {\n newSize++;\n head = {\n value: value,\n next: head\n };\n });\n if (this.__ownerID) {\n this.size = newSize;\n this._head = head;\n this.__hash = undefined;\n this.__altered = true;\n return this;\n }\n return makeStack(newSize, head);\n };\n\n Stack.prototype.pop = function() {\n return this.slice(1);\n };\n\n Stack.prototype.unshift = function(/*...values*/) {\n return this.push.apply(this, arguments);\n };\n\n Stack.prototype.unshiftAll = function(iter) {\n return this.pushAll(iter);\n };\n\n Stack.prototype.shift = function() {\n return this.pop.apply(this, arguments);\n };\n\n Stack.prototype.clear = function() {\n if (this.size === 0) {\n return this;\n }\n if (this.__ownerID) {\n this.size = 0;\n this._head = undefined;\n this.__hash = undefined;\n this.__altered = true;\n return this;\n }\n return emptyStack();\n };\n\n Stack.prototype.slice = function(begin, end) {\n if (wholeSlice(begin, end, this.size)) {\n return this;\n }\n var resolvedBegin = resolveBegin(begin, this.size);\n var resolvedEnd = resolveEnd(end, this.size);\n if (resolvedEnd !== this.size) {\n // super.slice(begin, end);\n return IndexedCollection.prototype.slice.call(this, begin, end);\n }\n var newSize = this.size - resolvedBegin;\n var head = this._head;\n while (resolvedBegin--) {\n head = head.next;\n }\n if (this.__ownerID) {\n this.size = newSize;\n this._head = head;\n this.__hash = undefined;\n this.__altered = true;\n return this;\n }\n return makeStack(newSize, head);\n };\n\n // @pragma Mutability\n\n Stack.prototype.__ensureOwner = function(ownerID) {\n if (ownerID === this.__ownerID) {\n return this;\n }\n if (!ownerID) {\n this.__ownerID = ownerID;\n this.__altered = false;\n return this;\n }\n return makeStack(this.size, this._head, ownerID, this.__hash);\n };\n\n // @pragma Iteration\n\n Stack.prototype.__iterate = function(fn, reverse) {\n if (reverse) {\n return this.reverse().__iterate(fn);\n }\n var iterations = 0;\n var node = this._head;\n while (node) {\n if (fn(node.value, iterations++, this) === false) {\n break;\n }\n node = node.next;\n }\n return iterations;\n };\n\n Stack.prototype.__iterator = function(type, reverse) {\n if (reverse) {\n return this.reverse().__iterator(type);\n }\n var iterations = 0;\n var node = this._head;\n return new Iterator(function() {\n if (node) {\n var value = node.value;\n node = node.next;\n return iteratorValue(type, iterations++, value);\n }\n return iteratorDone();\n });\n };\n\n\n function isStack(maybeStack) {\n return !!(maybeStack && maybeStack[IS_STACK_SENTINEL]);\n }\n\n Stack.isStack = isStack;\n\n var IS_STACK_SENTINEL = '@@__IMMUTABLE_STACK__@@';\n\n var StackPrototype = Stack.prototype;\n StackPrototype[IS_STACK_SENTINEL] = true;\n StackPrototype.withMutations = MapPrototype.withMutations;\n StackPrototype.asMutable = MapPrototype.asMutable;\n StackPrototype.asImmutable = MapPrototype.asImmutable;\n StackPrototype.wasAltered = MapPrototype.wasAltered;\n\n\n function makeStack(size, head, ownerID, hash) {\n var map = Object.create(StackPrototype);\n map.size = size;\n map._head = head;\n map.__ownerID = ownerID;\n map.__hash = hash;\n map.__altered = false;\n return map;\n }\n\n var EMPTY_STACK;\n function emptyStack() {\n return EMPTY_STACK || (EMPTY_STACK = makeStack(0));\n }\n\n /**\n * Contributes additional methods to a constructor\n */\n function mixin(ctor, methods) {\n var keyCopier = function(key ) { ctor.prototype[key] = methods[key]; };\n Object.keys(methods).forEach(keyCopier);\n Object.getOwnPropertySymbols &&\n Object.getOwnPropertySymbols(methods).forEach(keyCopier);\n return ctor;\n }\n\n Iterable.Iterator = Iterator;\n\n mixin(Iterable, {\n\n // ### Conversion to other types\n\n toArray: function() {\n assertNotInfinite(this.size);\n var array = new Array(this.size || 0);\n this.valueSeq().__iterate(function(v, i) { array[i] = v; });\n return array;\n },\n\n toIndexedSeq: function() {\n return new ToIndexedSequence(this);\n },\n\n toJS: function() {\n return this.toSeq().map(\n function(value ) {return value && typeof value.toJS === 'function' ? value.toJS() : value}\n ).__toJS();\n },\n\n toJSON: function() {\n return this.toSeq().map(\n function(value ) {return value && typeof value.toJSON === 'function' ? value.toJSON() : value}\n ).__toJS();\n },\n\n toKeyedSeq: function() {\n return new ToKeyedSequence(this, true);\n },\n\n toMap: function() {\n // Use Late Binding here to solve the circular dependency.\n return Map(this.toKeyedSeq());\n },\n\n toObject: function() {\n assertNotInfinite(this.size);\n var object = {};\n this.__iterate(function(v, k) { object[k] = v; });\n return object;\n },\n\n toOrderedMap: function() {\n // Use Late Binding here to solve the circular dependency.\n return OrderedMap(this.toKeyedSeq());\n },\n\n toOrderedSet: function() {\n // Use Late Binding here to solve the circular dependency.\n return OrderedSet(isKeyed(this) ? this.valueSeq() : this);\n },\n\n toSet: function() {\n // Use Late Binding here to solve the circular dependency.\n return Set(isKeyed(this) ? this.valueSeq() : this);\n },\n\n toSetSeq: function() {\n return new ToSetSequence(this);\n },\n\n toSeq: function() {\n return isIndexed(this) ? this.toIndexedSeq() :\n isKeyed(this) ? this.toKeyedSeq() :\n this.toSetSeq();\n },\n\n toStack: function() {\n // Use Late Binding here to solve the circular dependency.\n return Stack(isKeyed(this) ? this.valueSeq() : this);\n },\n\n toList: function() {\n // Use Late Binding here to solve the circular dependency.\n return List(isKeyed(this) ? this.valueSeq() : this);\n },\n\n\n // ### Common JavaScript methods and properties\n\n toString: function() {\n return '[Iterable]';\n },\n\n __toString: function(head, tail) {\n if (this.size === 0) {\n return head + tail;\n }\n return head + ' ' + this.toSeq().map(this.__toStringMapper).join(', ') + ' ' + tail;\n },\n\n\n // ### ES6 Collection methods (ES6 Array and Map)\n\n concat: function() {var values = SLICE$0.call(arguments, 0);\n return reify(this, concatFactory(this, values));\n },\n\n includes: function(searchValue) {\n return this.some(function(value ) {return is(value, searchValue)});\n },\n\n entries: function() {\n return this.__iterator(ITERATE_ENTRIES);\n },\n\n every: function(predicate, context) {\n assertNotInfinite(this.size);\n var returnValue = true;\n this.__iterate(function(v, k, c) {\n if (!predicate.call(context, v, k, c)) {\n returnValue = false;\n return false;\n }\n });\n return returnValue;\n },\n\n filter: function(predicate, context) {\n return reify(this, filterFactory(this, predicate, context, true));\n },\n\n find: function(predicate, context, notSetValue) {\n var entry = this.findEntry(predicate, context);\n return entry ? entry[1] : notSetValue;\n },\n\n forEach: function(sideEffect, context) {\n assertNotInfinite(this.size);\n return this.__iterate(context ? sideEffect.bind(context) : sideEffect);\n },\n\n join: function(separator) {\n assertNotInfinite(this.size);\n separator = separator !== undefined ? '' + separator : ',';\n var joined = '';\n var isFirst = true;\n this.__iterate(function(v ) {\n isFirst ? (isFirst = false) : (joined += separator);\n joined += v !== null && v !== undefined ? v.toString() : '';\n });\n return joined;\n },\n\n keys: function() {\n return this.__iterator(ITERATE_KEYS);\n },\n\n map: function(mapper, context) {\n return reify(this, mapFactory(this, mapper, context));\n },\n\n reduce: function(reducer, initialReduction, context) {\n assertNotInfinite(this.size);\n var reduction;\n var useFirst;\n if (arguments.length < 2) {\n useFirst = true;\n } else {\n reduction = initialReduction;\n }\n this.__iterate(function(v, k, c) {\n if (useFirst) {\n useFirst = false;\n reduction = v;\n } else {\n reduction = reducer.call(context, reduction, v, k, c);\n }\n });\n return reduction;\n },\n\n reduceRight: function(reducer, initialReduction, context) {\n var reversed = this.toKeyedSeq().reverse();\n return reversed.reduce.apply(reversed, arguments);\n },\n\n reverse: function() {\n return reify(this, reverseFactory(this, true));\n },\n\n slice: function(begin, end) {\n return reify(this, sliceFactory(this, begin, end, true));\n },\n\n some: function(predicate, context) {\n return !this.every(not(predicate), context);\n },\n\n sort: function(comparator) {\n return reify(this, sortFactory(this, comparator));\n },\n\n values: function() {\n return this.__iterator(ITERATE_VALUES);\n },\n\n\n // ### More sequential methods\n\n butLast: function() {\n return this.slice(0, -1);\n },\n\n isEmpty: function() {\n return this.size !== undefined ? this.size === 0 : !this.some(function() {return true});\n },\n\n count: function(predicate, context) {\n return ensureSize(\n predicate ? this.toSeq().filter(predicate, context) : this\n );\n },\n\n countBy: function(grouper, context) {\n return countByFactory(this, grouper, context);\n },\n\n equals: function(other) {\n return deepEqual(this, other);\n },\n\n entrySeq: function() {\n var iterable = this;\n if (iterable._cache) {\n // We cache as an entries array, so we can just return the cache!\n return new ArraySeq(iterable._cache);\n }\n var entriesSequence = iterable.toSeq().map(entryMapper).toIndexedSeq();\n entriesSequence.fromEntrySeq = function() {return iterable.toSeq()};\n return entriesSequence;\n },\n\n filterNot: function(predicate, context) {\n return this.filter(not(predicate), context);\n },\n\n findEntry: function(predicate, context, notSetValue) {\n var found = notSetValue;\n this.__iterate(function(v, k, c) {\n if (predicate.call(context, v, k, c)) {\n found = [k, v];\n return false;\n }\n });\n return found;\n },\n\n findKey: function(predicate, context) {\n var entry = this.findEntry(predicate, context);\n return entry && entry[0];\n },\n\n findLast: function(predicate, context, notSetValue) {\n return this.toKeyedSeq().reverse().find(predicate, context, notSetValue);\n },\n\n findLastEntry: function(predicate, context, notSetValue) {\n return this.toKeyedSeq().reverse().findEntry(predicate, context, notSetValue);\n },\n\n findLastKey: function(predicate, context) {\n return this.toKeyedSeq().reverse().findKey(predicate, context);\n },\n\n first: function() {\n return this.find(returnTrue);\n },\n\n flatMap: function(mapper, context) {\n return reify(this, flatMapFactory(this, mapper, context));\n },\n\n flatten: function(depth) {\n return reify(this, flattenFactory(this, depth, true));\n },\n\n fromEntrySeq: function() {\n return new FromEntriesSequence(this);\n },\n\n get: function(searchKey, notSetValue) {\n return this.find(function(_, key) {return is(key, searchKey)}, undefined, notSetValue);\n },\n\n getIn: function(searchKeyPath, notSetValue) {\n var nested = this;\n // Note: in an ES6 environment, we would prefer:\n // for (var key of searchKeyPath) {\n var iter = forceIterator(searchKeyPath);\n var step;\n while (!(step = iter.next()).done) {\n var key = step.value;\n nested = nested && nested.get ? nested.get(key, NOT_SET) : NOT_SET;\n if (nested === NOT_SET) {\n return notSetValue;\n }\n }\n return nested;\n },\n\n groupBy: function(grouper, context) {\n return groupByFactory(this, grouper, context);\n },\n\n has: function(searchKey) {\n return this.get(searchKey, NOT_SET) !== NOT_SET;\n },\n\n hasIn: function(searchKeyPath) {\n return this.getIn(searchKeyPath, NOT_SET) !== NOT_SET;\n },\n\n isSubset: function(iter) {\n iter = typeof iter.includes === 'function' ? iter : Iterable(iter);\n return this.every(function(value ) {return iter.includes(value)});\n },\n\n isSuperset: function(iter) {\n iter = typeof iter.isSubset === 'function' ? iter : Iterable(iter);\n return iter.isSubset(this);\n },\n\n keyOf: function(searchValue) {\n return this.findKey(function(value ) {return is(value, searchValue)});\n },\n\n keySeq: function() {\n return this.toSeq().map(keyMapper).toIndexedSeq();\n },\n\n last: function() {\n return this.toSeq().reverse().first();\n },\n\n lastKeyOf: function(searchValue) {\n return this.toKeyedSeq().reverse().keyOf(searchValue);\n },\n\n max: function(comparator) {\n return maxFactory(this, comparator);\n },\n\n maxBy: function(mapper, comparator) {\n return maxFactory(this, comparator, mapper);\n },\n\n min: function(comparator) {\n return maxFactory(this, comparator ? neg(comparator) : defaultNegComparator);\n },\n\n minBy: function(mapper, comparator) {\n return maxFactory(this, comparator ? neg(comparator) : defaultNegComparator, mapper);\n },\n\n rest: function() {\n return this.slice(1);\n },\n\n skip: function(amount) {\n return this.slice(Math.max(0, amount));\n },\n\n skipLast: function(amount) {\n return reify(this, this.toSeq().reverse().skip(amount).reverse());\n },\n\n skipWhile: function(predicate, context) {\n return reify(this, skipWhileFactory(this, predicate, context, true));\n },\n\n skipUntil: function(predicate, context) {\n return this.skipWhile(not(predicate), context);\n },\n\n sortBy: function(mapper, comparator) {\n return reify(this, sortFactory(this, comparator, mapper));\n },\n\n take: function(amount) {\n return this.slice(0, Math.max(0, amount));\n },\n\n takeLast: function(amount) {\n return reify(this, this.toSeq().reverse().take(amount).reverse());\n },\n\n takeWhile: function(predicate, context) {\n return reify(this, takeWhileFactory(this, predicate, context));\n },\n\n takeUntil: function(predicate, context) {\n return this.takeWhile(not(predicate), context);\n },\n\n valueSeq: function() {\n return this.toIndexedSeq();\n },\n\n\n // ### Hashable Object\n\n hashCode: function() {\n return this.__hash || (this.__hash = hashIterable(this));\n }\n\n\n // ### Internal\n\n // abstract __iterate(fn, reverse)\n\n // abstract __iterator(type, reverse)\n });\n\n // var IS_ITERABLE_SENTINEL = '@@__IMMUTABLE_ITERABLE__@@';\n // var IS_KEYED_SENTINEL = '@@__IMMUTABLE_KEYED__@@';\n // var IS_INDEXED_SENTINEL = '@@__IMMUTABLE_INDEXED__@@';\n // var IS_ORDERED_SENTINEL = '@@__IMMUTABLE_ORDERED__@@';\n\n var IterablePrototype = Iterable.prototype;\n IterablePrototype[IS_ITERABLE_SENTINEL] = true;\n IterablePrototype[ITERATOR_SYMBOL] = IterablePrototype.values;\n IterablePrototype.__toJS = IterablePrototype.toArray;\n IterablePrototype.__toStringMapper = quoteString;\n IterablePrototype.inspect =\n IterablePrototype.toSource = function() { return this.toString(); };\n IterablePrototype.chain = IterablePrototype.flatMap;\n IterablePrototype.contains = IterablePrototype.includes;\n\n mixin(KeyedIterable, {\n\n // ### More sequential methods\n\n flip: function() {\n return reify(this, flipFactory(this));\n },\n\n mapEntries: function(mapper, context) {var this$0 = this;\n var iterations = 0;\n return reify(this,\n this.toSeq().map(\n function(v, k) {return mapper.call(context, [k, v], iterations++, this$0)}\n ).fromEntrySeq()\n );\n },\n\n mapKeys: function(mapper, context) {var this$0 = this;\n return reify(this,\n this.toSeq().flip().map(\n function(k, v) {return mapper.call(context, k, v, this$0)}\n ).flip()\n );\n }\n\n });\n\n var KeyedIterablePrototype = KeyedIterable.prototype;\n KeyedIterablePrototype[IS_KEYED_SENTINEL] = true;\n KeyedIterablePrototype[ITERATOR_SYMBOL] = IterablePrototype.entries;\n KeyedIterablePrototype.__toJS = IterablePrototype.toObject;\n KeyedIterablePrototype.__toStringMapper = function(v, k) {return JSON.stringify(k) + ': ' + quoteString(v)};\n\n\n\n mixin(IndexedIterable, {\n\n // ### Conversion to other types\n\n toKeyedSeq: function() {\n return new ToKeyedSequence(this, false);\n },\n\n\n // ### ES6 Collection methods (ES6 Array and Map)\n\n filter: function(predicate, context) {\n return reify(this, filterFactory(this, predicate, context, false));\n },\n\n findIndex: function(predicate, context) {\n var entry = this.findEntry(predicate, context);\n return entry ? entry[0] : -1;\n },\n\n indexOf: function(searchValue) {\n var key = this.keyOf(searchValue);\n return key === undefined ? -1 : key;\n },\n\n lastIndexOf: function(searchValue) {\n var key = this.lastKeyOf(searchValue);\n return key === undefined ? -1 : key;\n },\n\n reverse: function() {\n return reify(this, reverseFactory(this, false));\n },\n\n slice: function(begin, end) {\n return reify(this, sliceFactory(this, begin, end, false));\n },\n\n splice: function(index, removeNum /*, ...values*/) {\n var numArgs = arguments.length;\n removeNum = Math.max(removeNum | 0, 0);\n if (numArgs === 0 || (numArgs === 2 && !removeNum)) {\n return this;\n }\n // If index is negative, it should resolve relative to the size of the\n // collection. However size may be expensive to compute if not cached, so\n // only call count() if the number is in fact negative.\n index = resolveBegin(index, index < 0 ? this.count() : this.size);\n var spliced = this.slice(0, index);\n return reify(\n this,\n numArgs === 1 ?\n spliced :\n spliced.concat(arrCopy(arguments, 2), this.slice(index + removeNum))\n );\n },\n\n\n // ### More collection methods\n\n findLastIndex: function(predicate, context) {\n var entry = this.findLastEntry(predicate, context);\n return entry ? entry[0] : -1;\n },\n\n first: function() {\n return this.get(0);\n },\n\n flatten: function(depth) {\n return reify(this, flattenFactory(this, depth, false));\n },\n\n get: function(index, notSetValue) {\n index = wrapIndex(this, index);\n return (index < 0 || (this.size === Infinity ||\n (this.size !== undefined && index > this.size))) ?\n notSetValue :\n this.find(function(_, key) {return key === index}, undefined, notSetValue);\n },\n\n has: function(index) {\n index = wrapIndex(this, index);\n return index >= 0 && (this.size !== undefined ?\n this.size === Infinity || index < this.size :\n this.indexOf(index) !== -1\n );\n },\n\n interpose: function(separator) {\n return reify(this, interposeFactory(this, separator));\n },\n\n interleave: function(/*...iterables*/) {\n var iterables = [this].concat(arrCopy(arguments));\n var zipped = zipWithFactory(this.toSeq(), IndexedSeq.of, iterables);\n var interleaved = zipped.flatten(true);\n if (zipped.size) {\n interleaved.size = zipped.size * iterables.length;\n }\n return reify(this, interleaved);\n },\n\n keySeq: function() {\n return Range(0, this.size);\n },\n\n last: function() {\n return this.get(-1);\n },\n\n skipWhile: function(predicate, context) {\n return reify(this, skipWhileFactory(this, predicate, context, false));\n },\n\n zip: function(/*, ...iterables */) {\n var iterables = [this].concat(arrCopy(arguments));\n return reify(this, zipWithFactory(this, defaultZipper, iterables));\n },\n\n zipWith: function(zipper/*, ...iterables */) {\n var iterables = arrCopy(arguments);\n iterables[0] = this;\n return reify(this, zipWithFactory(this, zipper, iterables));\n }\n\n });\n\n IndexedIterable.prototype[IS_INDEXED_SENTINEL] = true;\n IndexedIterable.prototype[IS_ORDERED_SENTINEL] = true;\n\n\n\n mixin(SetIterable, {\n\n // ### ES6 Collection methods (ES6 Array and Map)\n\n get: function(value, notSetValue) {\n return this.has(value) ? value : notSetValue;\n },\n\n includes: function(value) {\n return this.has(value);\n },\n\n\n // ### More sequential methods\n\n keySeq: function() {\n return this.valueSeq();\n }\n\n });\n\n SetIterable.prototype.has = IterablePrototype.includes;\n SetIterable.prototype.contains = SetIterable.prototype.includes;\n\n\n // Mixin subclasses\n\n mixin(KeyedSeq, KeyedIterable.prototype);\n mixin(IndexedSeq, IndexedIterable.prototype);\n mixin(SetSeq, SetIterable.prototype);\n\n mixin(KeyedCollection, KeyedIterable.prototype);\n mixin(IndexedCollection, IndexedIterable.prototype);\n mixin(SetCollection, SetIterable.prototype);\n\n\n // #pragma Helper functions\n\n function keyMapper(v, k) {\n return k;\n }\n\n function entryMapper(v, k) {\n return [k, v];\n }\n\n function not(predicate) {\n return function() {\n return !predicate.apply(this, arguments);\n }\n }\n\n function neg(predicate) {\n return function() {\n return -predicate.apply(this, arguments);\n }\n }\n\n function quoteString(value) {\n return typeof value === 'string' ? JSON.stringify(value) : String(value);\n }\n\n function defaultZipper() {\n return arrCopy(arguments);\n }\n\n function defaultNegComparator(a, b) {\n return a < b ? 1 : a > b ? -1 : 0;\n }\n\n function hashIterable(iterable) {\n if (iterable.size === Infinity) {\n return 0;\n }\n var ordered = isOrdered(iterable);\n var keyed = isKeyed(iterable);\n var h = ordered ? 1 : 0;\n var size = iterable.__iterate(\n keyed ?\n ordered ?\n function(v, k) { h = 31 * h + hashMerge(hash(v), hash(k)) | 0; } :\n function(v, k) { h = h + hashMerge(hash(v), hash(k)) | 0; } :\n ordered ?\n function(v ) { h = 31 * h + hash(v) | 0; } :\n function(v ) { h = h + hash(v) | 0; }\n );\n return murmurHashOfSize(size, h);\n }\n\n function murmurHashOfSize(size, h) {\n h = imul(h, 0xCC9E2D51);\n h = imul(h << 15 | h >>> -15, 0x1B873593);\n h = imul(h << 13 | h >>> -13, 5);\n h = (h + 0xE6546B64 | 0) ^ size;\n h = imul(h ^ h >>> 16, 0x85EBCA6B);\n h = imul(h ^ h >>> 13, 0xC2B2AE35);\n h = smi(h ^ h >>> 16);\n return h;\n }\n\n function hashMerge(a, b) {\n return a ^ b + 0x9E3779B9 + (a << 6) + (a >> 2) | 0; // int\n }\n\n var Immutable = {\n\n Iterable: Iterable,\n\n Seq: Seq,\n Collection: Collection,\n Map: Map,\n OrderedMap: OrderedMap,\n List: List,\n Stack: Stack,\n Set: Set,\n OrderedSet: OrderedSet,\n\n Record: Record,\n Range: Range,\n Repeat: Repeat,\n\n is: is,\n fromJS: fromJS\n\n };\n\n return Immutable;\n\n}));","\"use strict\";\nfunction __export(m) {\n for (var p in m) if (!exports.hasOwnProperty(p)) exports[p] = m[p];\n}\nObject.defineProperty(exports, \"__esModule\", { value: true });\n__export(require(\"./lib/ActorRdfResolveQuadPattern\"));\n__export(require(\"./lib/ActorRdfResolveQuadPatternSource\"));\n//# sourceMappingURL=index.js.map","\"use strict\";\nfunction __export(m) {\n for (var p in m) if (!exports.hasOwnProperty(p)) exports[p] = m[p];\n}\nObject.defineProperty(exports, \"__esModule\", { value: true });\n__export(require(\"./lib/PromiseProxyIterator\"));\n//# sourceMappingURL=index.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nconst QuadTermUtil_1 = require(\"./lib/QuadTermUtil\");\nexports.collectNamedTerms = QuadTermUtil_1.collectNamedTerms;\nexports.everyTerms = QuadTermUtil_1.everyTerms;\nexports.filterQuadTermNames = QuadTermUtil_1.filterQuadTermNames;\nexports.filterTerms = QuadTermUtil_1.filterTerms;\nexports.forEachTerms = QuadTermUtil_1.forEachTerms;\nexports.getNamedTerms = QuadTermUtil_1.getNamedTerms;\nexports.getTerms = QuadTermUtil_1.getTerms;\nexports.mapTerms = QuadTermUtil_1.mapTerms;\nexports.matchPattern = QuadTermUtil_1.matchPattern;\nexports.matchPatternComplete = QuadTermUtil_1.matchPatternComplete;\nexports.QUAD_TERM_NAMES = QuadTermUtil_1.QUAD_TERM_NAMES;\nexports.reduceTerms = QuadTermUtil_1.reduceTerms;\nexports.someTerms = QuadTermUtil_1.someTerms;\nexports.TRIPLE_TERM_NAMES = QuadTermUtil_1.TRIPLE_TERM_NAMES;\nconst TermUtil_1 = require(\"./lib/TermUtil\");\nexports.getBlankNodes = TermUtil_1.getBlankNodes;\nexports.getDefaultGraphs = TermUtil_1.getDefaultGraphs;\nexports.getLiterals = TermUtil_1.getLiterals;\nexports.getNamedNodes = TermUtil_1.getNamedNodes;\nexports.getTermsOfType = TermUtil_1.getTermsOfType;\nexports.getVariables = TermUtil_1.getVariables;\nexports.TERM_TYPES = TermUtil_1.TERM_TYPES;\nexports.uniqTerms = TermUtil_1.uniqTerms;\n//# sourceMappingURL=index.js.map","\"use strict\";\nfunction __export(m) {\n for (var p in m) if (!exports.hasOwnProperty(p)) exports[p] = m[p];\n}\nObject.defineProperty(exports, \"__esModule\", { value: true });\n__export(require(\"./lib/ActorSparqlSerialize\"));\n__export(require(\"./lib/ActorSparqlSerializeFixedMediaTypes\"));\n//# sourceMappingURL=index.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nvar ExpressionType;\n(function (ExpressionType) {\n ExpressionType[\"Aggregate\"] = \"aggregate\";\n ExpressionType[\"Existence\"] = \"existence\";\n ExpressionType[\"Named\"] = \"named\";\n ExpressionType[\"Operator\"] = \"operator\";\n ExpressionType[\"SpecialOperator\"] = \"specialOperator\";\n ExpressionType[\"Term\"] = \"term\";\n ExpressionType[\"Variable\"] = \"variable\";\n})(ExpressionType = exports.ExpressionType || (exports.ExpressionType = {}));\n//# sourceMappingURL=Expressions.js.map","\"use strict\";\nfunction __export(m) {\n for (var p in m) if (!exports.hasOwnProperty(p)) exports[p] = m[p];\n}\nObject.defineProperty(exports, \"__esModule\", { value: true });\n__export(require(\"./lib/Resolve\"));\n//# sourceMappingURL=index.js.map","\"use strict\";\nfunction __export(m) {\n for (var p in m) if (!exports.hasOwnProperty(p)) exports[p] = m[p];\n}\nObject.defineProperty(exports, \"__esModule\", { value: true });\n__export(require(\"./lib/ActorHttp\"));\n//# sourceMappingURL=index.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nconst jsonld_context_parser_1 = require(\"jsonld-context-parser\");\nconst EntryHandlerContainer_1 = require(\"./entryhandler/EntryHandlerContainer\");\n// tslint:disable-next-line:no-var-requires\nconst canonicalizeJson = require('canonicalize');\n/**\n * Utility functions and methods.\n */\nclass Util {\n constructor(options) {\n this.parsingContext = options.parsingContext;\n this.dataFactory = options.dataFactory || require('@rdfjs/data-model');\n this.rdfFirst = this.dataFactory.namedNode(Util.RDF + 'first');\n this.rdfRest = this.dataFactory.namedNode(Util.RDF + 'rest');\n this.rdfNil = this.dataFactory.namedNode(Util.RDF + 'nil');\n this.rdfType = this.dataFactory.namedNode(Util.RDF + 'type');\n this.rdfJson = this.dataFactory.namedNode(Util.RDF + 'JSON');\n }\n /**\n * Helper function to get the value of a context entry,\n * or fallback to a certain value.\n * @param {JsonLdContextNormalized} context A JSON-LD context.\n * @param {string} contextKey A pre-defined JSON-LD key in context entries.\n * @param {string} key A context entry key.\n * @param {string} fallback A fallback value for when the given contextKey\n * could not be found in the value with the given key.\n * @return {string} The value of the given contextKey in the entry behind key in the given context,\n * or the given fallback value.\n */\n static getContextValue(context, contextKey, key, fallback) {\n const entry = context.getContextRaw()[key];\n if (!entry) {\n return fallback;\n }\n const type = entry[contextKey];\n return type === undefined ? fallback : type;\n }\n /**\n * Get the container type of the given key in the context.\n *\n * Should any context-scoping bugs should occur related to this in the future,\n * it may be required to increase the offset from the depth at which the context is retrieved by one (to 2).\n * This is because containers act 2 levels deep.\n *\n * @param {JsonLdContextNormalized} context A JSON-LD context.\n * @param {string} key A context entry key.\n * @return {string} The container type.\n */\n static getContextValueContainer(context, key) {\n return Util.getContextValue(context, '@container', key, { '@set': true });\n }\n /**\n * Get the value type of the given key in the context.\n * @param {JsonLdContextNormalized} context A JSON-LD context.\n * @param {string} key A context entry key.\n * @return {string} The node type.\n */\n static getContextValueType(context, key) {\n const valueType = Util.getContextValue(context, '@type', key, null);\n if (valueType === '@none') {\n return null;\n }\n return valueType;\n }\n /**\n * Get the language of the given key in the context.\n * @param {JsonLdContextNormalized} context A JSON-LD context.\n * @param {string} key A context entry key.\n * @return {string} The node type.\n */\n static getContextValueLanguage(context, key) {\n return Util.getContextValue(context, '@language', key, context.getContextRaw()['@language'] || null);\n }\n /**\n * Get the direction of the given key in the context.\n * @param {JsonLdContextNormalized} context A JSON-LD context.\n * @param {string} key A context entry key.\n * @return {string} The node type.\n */\n static getContextValueDirection(context, key) {\n return Util.getContextValue(context, '@direction', key, context.getContextRaw()['@direction'] || null);\n }\n /**\n * Check if the given key in the context is a reversed property.\n * @param {JsonLdContextNormalized} context A JSON-LD context.\n * @param {string} key A context entry key.\n * @return {boolean} If the context value has a @reverse key.\n */\n static isContextValueReverse(context, key) {\n return !!Util.getContextValue(context, '@reverse', key, null);\n }\n /**\n * Get the @index of the given key in the context.\n * @param {JsonLdContextNormalized} context A JSON-LD context.\n * @param {string} key A context entry key.\n * @return {string} The index.\n */\n static getContextValueIndex(context, key) {\n return Util.getContextValue(context, '@index', key, context.getContextRaw()['@index'] || null);\n }\n /**\n * Check if the given key refers to a reversed property.\n * @param {JsonLdContextNormalized} context A JSON-LD context.\n * @param {string} key The property key.\n * @param {string} parentKey The parent key.\n * @return {boolean} If the property must be reversed.\n */\n static isPropertyReverse(context, key, parentKey) {\n // '!==' is needed because reversed properties in a @reverse container should cancel each other out.\n return parentKey === '@reverse' !== Util.isContextValueReverse(context, key);\n }\n /**\n * Check if the given IRI is valid.\n * @param {string} iri A potential IRI.\n * @return {boolean} If the given IRI is valid.\n */\n static isValidIri(iri) {\n return iri !== null && jsonld_context_parser_1.Util.isValidIri(iri);\n }\n /**\n * Check if the given first array (needle) is a prefix of the given second array (haystack).\n * @param needle An array to check if it is a prefix.\n * @param haystack An array to look in.\n */\n static isPrefixArray(needle, haystack) {\n if (needle.length > haystack.length) {\n return false;\n }\n for (let i = 0; i < needle.length; i++) {\n if (needle[i] !== haystack[i]) {\n return false;\n }\n }\n return true;\n }\n /**\n * Make sure that @id-@index pairs are equal over all array values.\n * Reject otherwise.\n * @param {any[]} value An array value.\n * @return {Promise} A promise rejecting if conflicts are present.\n */\n async validateValueIndexes(value) {\n if (this.parsingContext.validateValueIndexes) {\n const indexHashes = {};\n for (const entry of value) {\n if (entry && typeof entry === 'object') {\n const id = entry['@id'];\n const index = entry['@index'];\n if (id && index) {\n const existingIndexValue = indexHashes[id];\n if (existingIndexValue && existingIndexValue !== index) {\n throw new jsonld_context_parser_1.ErrorCoded(`Conflicting @index value for ${id}`, jsonld_context_parser_1.ERROR_CODES.CONFLICTING_INDEXES);\n }\n indexHashes[id] = index;\n }\n }\n }\n }\n }\n /**\n * Convert a given JSON value to an RDF term.\n * @param {JsonLdContextNormalized} context A JSON-LD context.\n * @param {string} key The current JSON key.\n * @param value A JSON value.\n * @param {number} depth The depth the value is at.\n * @param {string[]} keys The path of keys.\n * @return {Promise} An RDF term array.\n */\n async valueToTerm(context, key, value, depth, keys) {\n // Skip further processing if we have an @type: @json\n if (Util.getContextValueType(context, key) === '@json') {\n return [this.dataFactory.literal(this.valueToJsonString(value), this.rdfJson)];\n }\n const type = typeof value;\n switch (type) {\n case 'object':\n // Skip if we have a null or undefined object\n if (value === null || value === undefined) {\n return [];\n }\n // Special case for arrays\n if (Array.isArray(value)) {\n // We handle arrays at value level so we can emit earlier, so this is handled already when we get here.\n // Empty context-based lists are emitted at this place, because our streaming algorithm doesn't detect those.\n if ('@list' in Util.getContextValueContainer(context, key)) {\n if (value.length === 0) {\n return [this.rdfNil];\n }\n else {\n return this.parsingContext.idStack[depth + 1] || [];\n }\n }\n await this.validateValueIndexes(value);\n return [];\n }\n // Handle property-scoped contexts\n context = await this.getContextSelfOrPropertyScoped(context, key);\n // Handle local context in the value\n if ('@context' in value) {\n context = await this.parsingContext.parseContext(value['@context'], (await this.parsingContext.getContext(keys, 0)).getContextRaw());\n }\n // In all other cases, we have a hash\n value = await this.unaliasKeywords(value, keys, depth, context); // Un-alias potential keywords in this hash\n if ('@value' in value) {\n let val;\n let valueLanguage;\n let valueDirection;\n let valueType;\n let valueIndex; // We don't use the index, but we need to check its type for spec-compliance\n for (key in value) {\n const subValue = value[key];\n switch (key) {\n case '@value':\n val = subValue;\n break;\n case '@language':\n valueLanguage = subValue;\n break;\n case '@direction':\n valueDirection = subValue;\n break;\n case '@type':\n valueType = subValue;\n break;\n case '@index':\n valueIndex = subValue;\n break;\n default:\n throw new jsonld_context_parser_1.ErrorCoded(`Unknown value entry '${key}' in @value: ${JSON.stringify(value)}`, jsonld_context_parser_1.ERROR_CODES.INVALID_VALUE_OBJECT);\n }\n }\n // Skip further processing if we have an @type: @json\n if (await this.unaliasKeyword(valueType, keys, depth, true, context) === '@json') {\n return [this.dataFactory.literal(this.valueToJsonString(val), this.rdfJson)];\n }\n // Validate @value\n if (val === null) {\n return [];\n }\n if (typeof val === 'object') {\n throw new jsonld_context_parser_1.ErrorCoded(`The value of an '@value' can not be an object, got '${JSON.stringify(val)}'`, jsonld_context_parser_1.ERROR_CODES.INVALID_VALUE_OBJECT_VALUE);\n }\n // Validate @index\n if (this.parsingContext.validateValueIndexes && valueIndex && typeof valueIndex !== 'string') {\n throw new jsonld_context_parser_1.ErrorCoded(`The value of an '@index' must be a string, got '${JSON.stringify(valueIndex)}'`, jsonld_context_parser_1.ERROR_CODES.INVALID_INDEX_VALUE);\n }\n // Validate @language and @direction\n if (valueLanguage) {\n if (typeof val !== 'string') {\n throw new jsonld_context_parser_1.ErrorCoded(`When an '@language' is set, the value of '@value' must be a string, got '${JSON.stringify(val)}'`, jsonld_context_parser_1.ERROR_CODES.INVALID_LANGUAGE_TAGGED_VALUE);\n }\n if (!jsonld_context_parser_1.ContextParser.validateLanguage(valueLanguage, this.parsingContext.strictValues, jsonld_context_parser_1.ERROR_CODES.INVALID_LANGUAGE_TAGGED_STRING)) {\n return [];\n }\n // Language tags are always normalized to lowercase in 1.0.\n if (this.parsingContext.normalizeLanguageTags || this.parsingContext.activeProcessingMode === 1.0) {\n valueLanguage = valueLanguage.toLowerCase();\n }\n }\n if (valueDirection) {\n if (typeof val !== 'string') {\n throw new Error(`When an '@direction' is set, the value of '@value' must be a string, got '${JSON.stringify(val)}'`);\n }\n if (!jsonld_context_parser_1.ContextParser.validateDirection(valueDirection, this.parsingContext.strictValues)) {\n return [];\n }\n }\n // Check @language and @direction\n if (valueLanguage && valueDirection && this.parsingContext.rdfDirection) {\n if (valueType) {\n throw new jsonld_context_parser_1.ErrorCoded(`Can not have '@language', '@direction' and '@type' in a value: '${JSON\n .stringify(value)}'`, jsonld_context_parser_1.ERROR_CODES.INVALID_VALUE_OBJECT);\n }\n return this.nullableTermToArray(this\n .createLanguageDirectionLiteral(depth, val, valueLanguage, valueDirection));\n }\n else if (valueLanguage) { // Check @language\n if (valueType) {\n throw new jsonld_context_parser_1.ErrorCoded(`Can not have both '@language' and '@type' in a value: '${JSON.stringify(value)}'`, jsonld_context_parser_1.ERROR_CODES.INVALID_VALUE_OBJECT);\n }\n return [this.dataFactory.literal(val, valueLanguage)];\n }\n else if (valueDirection && this.parsingContext.rdfDirection) { // Check @direction\n if (valueType) {\n throw new jsonld_context_parser_1.ErrorCoded(`Can not have both '@direction' and '@type' in a value: '${JSON.stringify(value)}'`, jsonld_context_parser_1.ERROR_CODES.INVALID_VALUE_OBJECT);\n }\n return this.nullableTermToArray(this\n .createLanguageDirectionLiteral(depth, val, valueLanguage, valueDirection));\n }\n else if (valueType) { // Validate @type\n if (typeof valueType !== 'string') {\n throw new jsonld_context_parser_1.ErrorCoded(`The value of an '@type' must be a string, got '${JSON.stringify(valueType)}'`, jsonld_context_parser_1.ERROR_CODES.INVALID_TYPE_VALUE);\n }\n const typeTerm = this.createVocabOrBaseTerm(context, valueType);\n if (!typeTerm) {\n throw new jsonld_context_parser_1.ErrorCoded(`Invalid '@type' value, got '${JSON.stringify(valueType)}'`, jsonld_context_parser_1.ERROR_CODES.INVALID_TYPED_VALUE);\n }\n if (typeTerm.termType !== 'NamedNode') {\n throw new jsonld_context_parser_1.ErrorCoded(`Illegal value type (${typeTerm.termType}): ${valueType}`, jsonld_context_parser_1.ERROR_CODES.INVALID_TYPED_VALUE);\n }\n return [this.dataFactory.literal(val, typeTerm)];\n }\n // We don't pass the context, because context-based things like @language should be ignored\n return await this.valueToTerm(new jsonld_context_parser_1.JsonLdContextNormalized({}), key, val, depth, keys);\n }\n else if ('@set' in value) {\n // No other entries are allow in this value\n if (Object.keys(value).length > 1) {\n throw new jsonld_context_parser_1.ErrorCoded(`Found illegal neighbouring entries next to @set for key: '${key}'`, jsonld_context_parser_1.ERROR_CODES.INVALID_SET_OR_LIST_OBJECT);\n }\n // No need to do anything here, this is handled at the deeper level.\n return [];\n }\n else if ('@list' in value) {\n // No other entries are allowed in this value\n if (Object.keys(value).length > 1) {\n throw new jsonld_context_parser_1.ErrorCoded(`Found illegal neighbouring entries next to @list for key: '${key}'`, jsonld_context_parser_1.ERROR_CODES.INVALID_SET_OR_LIST_OBJECT);\n }\n const listValue = value[\"@list\"];\n // We handle lists at value level so we can emit earlier, so this is handled already when we get here.\n // Empty anonymous lists are emitted at this place, because our streaming algorithm doesn't detect those.\n if (Array.isArray(listValue)) {\n if (listValue.length === 0) {\n return [this.rdfNil];\n }\n else {\n return this.parsingContext.idStack[depth + 1] || [];\n }\n }\n else {\n // We only have a single list element here, so emit this directly as single element\n return await this.valueToTerm(await this.parsingContext.getContext(keys), key, listValue, depth - 1, keys.slice(0, -1));\n }\n }\n else if ('@reverse' in value) {\n // We handle reverse properties at value level so we can emit earlier,\n // so this is handled already when we get here.\n return [];\n }\n else if ('@graph' in Util.getContextValueContainer(await this.parsingContext.getContext(keys), key)) {\n // We are processing a graph container\n const graphContainerEntries = this.parsingContext.graphContainerTermStack[depth + 1];\n return graphContainerEntries ? Object.values(graphContainerEntries) : [this.dataFactory.blankNode()];\n }\n else if (\"@id\" in value) {\n // Use deeper context if the value node contains other properties next to @id.\n if (Object.keys(value).length > 1) {\n context = await this.parsingContext.getContext(keys, 0);\n }\n // Handle local context in the value\n if ('@context' in value) {\n context = await this.parsingContext.parseContext(value['@context'], context.getContextRaw());\n }\n if (value[\"@type\"] === '@vocab') {\n return this.nullableTermToArray(this.createVocabOrBaseTerm(context, value[\"@id\"]));\n }\n else {\n return this.nullableTermToArray(this.resourceToTerm(context, value[\"@id\"]));\n }\n }\n else {\n // Only make a blank node if at least one triple was emitted at the value's level.\n if (this.parsingContext.emittedStack[depth + 1]) {\n return (this.parsingContext.idStack[depth + 1]\n || (this.parsingContext.idStack[depth + 1] = [this.dataFactory.blankNode()]));\n }\n else {\n return [];\n }\n }\n case 'string':\n return this.nullableTermToArray(this.stringValueToTerm(depth, await this.getContextSelfOrPropertyScoped(context, key), key, value, null));\n case 'boolean':\n return this.nullableTermToArray(this.stringValueToTerm(depth, await this.getContextSelfOrPropertyScoped(context, key), key, Boolean(value).toString(), this.dataFactory.namedNode(Util.XSD_BOOLEAN)));\n case 'number':\n return this.nullableTermToArray(this.stringValueToTerm(depth, await this.getContextSelfOrPropertyScoped(context, key), key, value, this.dataFactory.namedNode(value % 1 === 0 && value < 1e21 ? Util.XSD_INTEGER : Util.XSD_DOUBLE)));\n default:\n this.parsingContext.emitError(new Error(`Could not determine the RDF type of a ${type}`));\n return [];\n }\n }\n /**\n * If the context defines a property-scoped context for the given key,\n * that context will be returned.\n * Otherwise, the given context will be returned as-is.\n *\n * This should be used for valueToTerm cases that are not objects.\n * @param context A context.\n * @param key A JSON key.\n */\n async getContextSelfOrPropertyScoped(context, key) {\n const contextKeyEntry = context.getContextRaw()[key];\n if (contextKeyEntry && typeof contextKeyEntry === 'object' && '@context' in contextKeyEntry) {\n context = await this.parsingContext.parseContext(contextKeyEntry, context.getContextRaw(), true);\n }\n return context;\n }\n /**\n * If the given term is null, return an empty array, otherwise return an array with the single given term.\n * @param term A term.\n */\n nullableTermToArray(term) {\n return term ? [term] : [];\n }\n /**\n * Convert a given JSON key to an RDF predicate term,\n * based on @vocab.\n * @param {JsonLdContextNormalized} context A JSON-LD context.\n * @param key A JSON key.\n * @return {RDF.NamedNode} An RDF named node.\n */\n predicateToTerm(context, key) {\n const expanded = context.expandTerm(key, true, this.parsingContext.getExpandOptions());\n // Immediately return if the predicate was disabled in the context\n if (!expanded) {\n return null;\n }\n // Check if the predicate is a blank node\n if (expanded[0] === '_' && expanded[1] === ':') {\n if (this.parsingContext.produceGeneralizedRdf) {\n return this.dataFactory.blankNode(expanded.substr(2));\n }\n else {\n return null;\n }\n }\n // Check if the predicate is a valid IRI\n if (Util.isValidIri(expanded)) {\n return this.dataFactory.namedNode(expanded);\n }\n else {\n if (expanded && this.parsingContext.strictValues) {\n this.parsingContext.emitError(new jsonld_context_parser_1.ErrorCoded(`Invalid predicate IRI: ${expanded}`, jsonld_context_parser_1.ERROR_CODES.INVALID_IRI_MAPPING));\n }\n else {\n return null;\n }\n }\n return null;\n }\n /**\n * Convert a given JSON key to an RDF resource term or blank node,\n * based on @base.\n * @param {JsonLdContextNormalized} context A JSON-LD context.\n * @param key A JSON key.\n * @return {RDF.NamedNode} An RDF named node or null.\n */\n resourceToTerm(context, key) {\n if (key.startsWith('_:')) {\n return this.dataFactory.blankNode(key.substr(2));\n }\n const iri = context.expandTerm(key, false, this.parsingContext.getExpandOptions());\n if (!Util.isValidIri(iri)) {\n if (iri && this.parsingContext.strictValues) {\n this.parsingContext.emitError(new Error(`Invalid resource IRI: ${iri}`));\n }\n else {\n return null;\n }\n }\n return this.dataFactory.namedNode(iri);\n }\n /**\n * Convert a given JSON key to an RDF resource term.\n * It will do this based on the @vocab,\n * and fallback to @base.\n * @param {JsonLdContextNormalized} context A JSON-LD context.\n * @param key A JSON key.\n * @return {RDF.NamedNode} An RDF named node or null.\n */\n createVocabOrBaseTerm(context, key) {\n if (key.startsWith('_:')) {\n return this.dataFactory.blankNode(key.substr(2));\n }\n const expandOptions = this.parsingContext.getExpandOptions();\n let expanded = context.expandTerm(key, true, expandOptions);\n if (expanded === key) {\n expanded = context.expandTerm(key, false, expandOptions);\n }\n if (!Util.isValidIri(expanded)) {\n if (expanded && this.parsingContext.strictValues) {\n this.parsingContext.emitError(new Error(`Invalid term IRI: ${expanded}`));\n }\n else {\n return null;\n }\n }\n return this.dataFactory.namedNode(expanded);\n }\n /**\n * Ensure that the given value becomes a string.\n * @param {string | number} value A string or number.\n * @param {NamedNode} datatype The intended datatype.\n * @return {string} The returned string.\n */\n intToString(value, datatype) {\n if (typeof value === 'number') {\n if (Number.isFinite(value)) {\n const isInteger = value % 1 === 0;\n if (isInteger && (!datatype || datatype.value !== Util.XSD_DOUBLE)) {\n return Number(value).toString();\n }\n else {\n return value.toExponential(15).replace(/(\\d)0*e\\+?/, '$1E');\n }\n }\n else {\n return value > 0 ? 'INF' : '-INF';\n }\n }\n else {\n return value;\n }\n }\n /**\n * Convert a given JSON string value to an RDF term.\n * @param {number} depth The current stack depth.\n * @param {JsonLdContextNormalized} context A JSON-LD context.\n * @param {string} key The current JSON key.\n * @param {string} value A JSON value.\n * @param {NamedNode} defaultDatatype The default datatype for the given value.\n * @return {RDF.Term} An RDF term or null.\n */\n stringValueToTerm(depth, context, key, value, defaultDatatype) {\n // Check the datatype from the context\n const contextType = Util.getContextValueType(context, key);\n if (contextType) {\n if (contextType === '@id') {\n if (!defaultDatatype) {\n return this.resourceToTerm(context, this.intToString(value, defaultDatatype));\n }\n }\n else if (contextType === '@vocab') {\n if (!defaultDatatype) {\n return this.createVocabOrBaseTerm(context, this.intToString(value, defaultDatatype));\n }\n }\n else {\n defaultDatatype = this.dataFactory.namedNode(contextType);\n }\n }\n // If we don't find such a datatype, check the language from the context\n if (!defaultDatatype) {\n const contextLanguage = Util.getContextValueLanguage(context, key);\n const contextDirection = Util.getContextValueDirection(context, key);\n if (contextDirection && this.parsingContext.rdfDirection) {\n return this.createLanguageDirectionLiteral(depth, this.intToString(value, defaultDatatype), contextLanguage, contextDirection);\n }\n else {\n return this.dataFactory.literal(this.intToString(value, defaultDatatype), contextLanguage);\n }\n }\n // If all else fails, make a literal based on the default content type\n return this.dataFactory.literal(this.intToString(value, defaultDatatype), defaultDatatype);\n }\n /**\n * Create a literal for the given value with the given language and direction.\n * Auxiliary quads may be emitted.\n * @param {number} depth The current stack depth.\n * @param {string} value A string value.\n * @param {string} language A language tag.\n * @param {string} direction A direction.\n * @return {Term} An RDF term.\n */\n createLanguageDirectionLiteral(depth, value, language, direction) {\n if (this.parsingContext.rdfDirection === 'i18n-datatype') {\n // Create a datatyped literal, by encoding the language and direction into https://www.w3.org/ns/i18n#.\n if (!language) {\n language = '';\n }\n return this.dataFactory.literal(value, this.dataFactory.namedNode(`https://www.w3.org/ns/i18n#${language}_${direction}`));\n }\n else {\n // Reify the literal.\n const valueNode = this.dataFactory.blankNode();\n const graph = this.getDefaultGraph();\n this.parsingContext.emitQuad(depth, this.dataFactory.quad(valueNode, this.dataFactory.namedNode(Util.RDF + 'value'), this.dataFactory.literal(value), graph));\n if (language) {\n this.parsingContext.emitQuad(depth, this.dataFactory.quad(valueNode, this.dataFactory.namedNode(Util.RDF + 'language'), this.dataFactory.literal(language), graph));\n }\n this.parsingContext.emitQuad(depth, this.dataFactory.quad(valueNode, this.dataFactory.namedNode(Util.RDF + 'direction'), this.dataFactory.literal(direction), graph));\n return valueNode;\n }\n }\n /**\n * Stringify the given JSON object to a canonical JSON string.\n * @param value Any valid JSON value.\n * @return {string} A canonical JSON string.\n */\n valueToJsonString(value) {\n return canonicalizeJson(value);\n }\n /**\n * If the key is not a keyword, try to check if it is an alias for a keyword,\n * and if so, un-alias it.\n * @param {string} key A key, can be falsy.\n * @param {string[]} keys The path of keys.\n * @param {number} depth The depth to\n * @param {boolean} disableCache If the cache should be disabled\n * @param {JsonLdContextNormalized} context A context to unalias with,\n * will fallback to retrieving the context for the given keys.\n * @return {Promise} A promise resolving to the key itself, or another key.\n */\n async unaliasKeyword(key, keys, depth, disableCache, context) {\n // Numbers can not be an alias\n if (Number.isInteger(key)) {\n return key;\n }\n // Try to grab from cache if it was already un-aliased before.\n if (!disableCache) {\n const cachedUnaliasedKeyword = this.parsingContext.unaliasedKeywordCacheStack[depth];\n if (cachedUnaliasedKeyword) {\n return cachedUnaliasedKeyword;\n }\n }\n if (!jsonld_context_parser_1.Util.isPotentialKeyword(key)) {\n context = context || await this.parsingContext.getContext(keys);\n let unliased = context.getContextRaw()[key];\n if (unliased && typeof unliased === 'object') {\n unliased = unliased['@id'];\n }\n if (jsonld_context_parser_1.Util.isValidKeyword(unliased)) {\n key = unliased;\n }\n }\n return disableCache ? key : (this.parsingContext.unaliasedKeywordCacheStack[depth] = key);\n }\n /**\n * Unalias the keyword of the parent.\n * This adds a safety check if no parent exist.\n * @param {any[]} keys A stack of keys.\n * @param {number} depth The current depth.\n * @return {Promise} A promise resolving to the parent key, or another key.\n */\n async unaliasKeywordParent(keys, depth) {\n return await this.unaliasKeyword(depth > 0 && keys[depth - 1], keys, depth - 1);\n }\n /**\n * Un-alias all keywords in the given hash.\n * @param {{[p: string]: any}} hash A hash object.\n * @param {string[]} keys The path of keys.\n * @param {number} depth The depth.\n * @param {JsonLdContextNormalized} context A context to unalias with,\n * will fallback to retrieving the context for the given keys.\n * @return {Promise<{[p: string]: any}>} A promise resolving to the new hash.\n */\n async unaliasKeywords(hash, keys, depth, context) {\n const newHash = {};\n for (const key in hash) {\n newHash[await this.unaliasKeyword(key, keys, depth + 1, true, context)] = hash[key];\n }\n return newHash;\n }\n /**\n * Check if we are processing a literal (including JSON literals) at the given depth.\n * This will also check higher levels,\n * because if a parent is a literal,\n * then the deeper levels are definitely a literal as well.\n * @param {number} depth The depth.\n * @return {boolean} If we are processing a literal.\n */\n isLiteral(depth) {\n for (let i = depth; i >= 0; i--) {\n if (this.parsingContext.literalStack[i] || this.parsingContext.jsonLiteralStack[i]) {\n return true;\n }\n }\n return false;\n }\n /**\n * Check how many parents should be skipped for checking the @graph for the given node.\n *\n * @param {number} depth The depth of the node.\n * @param {any[]} keys An array of keys.\n * @return {number} The graph depth offset.\n */\n async getDepthOffsetGraph(depth, keys) {\n for (let i = depth - 1; i > 0; i--) {\n if (await this.unaliasKeyword(keys[i], keys, i) === '@graph') {\n // Skip further processing if we are already in an @graph-@id or @graph-@index container\n const containers = (await EntryHandlerContainer_1.EntryHandlerContainer.getContainerHandler(this.parsingContext, keys, i)).containers;\n if (EntryHandlerContainer_1.EntryHandlerContainer.isComplexGraphContainer(containers)) {\n return -1;\n }\n return depth - i - 1;\n }\n }\n return -1;\n }\n /**\n * Check if the given subject is of a valid type.\n * This should be called when applying @reverse'd properties.\n * @param {Term} subject A subject.\n */\n validateReverseSubject(subject) {\n if (subject.termType === 'Literal') {\n throw new jsonld_context_parser_1.ErrorCoded(`Found illegal literal in subject position: ${subject.value}`, jsonld_context_parser_1.ERROR_CODES.INVALID_REVERSE_PROPERTY_VALUE);\n }\n }\n /**\n * Get the default graph.\n * @return {Term} An RDF term.\n */\n getDefaultGraph() {\n return this.parsingContext.defaultGraph || this.dataFactory.defaultGraph();\n }\n /**\n * Get the current graph, while taking into account a graph that can be defined via @container: @graph.\n * If not within a graph container, the default graph will be returned.\n * @param keys The current keys.\n * @param depth The current depth.\n */\n async getGraphContainerValue(keys, depth) {\n // Default to default graph\n let graph = this.getDefaultGraph();\n // Check if we are in an @container: @graph.\n const { containers, depth: depthContainer } = await EntryHandlerContainer_1.EntryHandlerContainer\n .getContainerHandler(this.parsingContext, keys, depth);\n if ('@graph' in containers) {\n // Get the graph from the stack.\n const graphContainerIndex = EntryHandlerContainer_1.EntryHandlerContainer.getContainerGraphIndex(containers, depthContainer, keys);\n const entry = this.parsingContext.graphContainerTermStack[depthContainer];\n graph = entry ? entry[graphContainerIndex] : null;\n // Set the graph in the stack if none has been set yet.\n if (!graph) {\n let graphId = null;\n if ('@id' in containers) {\n const keyUnaliased = await this.getContainerKey(keys[depthContainer], keys, depthContainer);\n if (keyUnaliased !== null) {\n graphId = await this.resourceToTerm(await this.parsingContext.getContext(keys), keyUnaliased);\n }\n }\n if (!graphId) {\n graphId = this.dataFactory.blankNode();\n }\n if (!this.parsingContext.graphContainerTermStack[depthContainer]) {\n this.parsingContext.graphContainerTermStack[depthContainer] = {};\n }\n graph = this.parsingContext.graphContainerTermStack[depthContainer][graphContainerIndex] = graphId;\n }\n }\n return graph;\n }\n /**\n * Get the properties depth for retrieving properties.\n *\n * Typically, the properties depth will be identical to the given depth.\n *\n * The following exceptions apply:\n * * When the parent is @reverse, the depth is decremented by one.\n * * When @nest parents are found, the depth is decremented by the number of @nest parents.\n * If in combination with the exceptions above an intermediary array is discovered,\n * the depth is also decremented by this number of arrays.\n *\n * @param keys The current key chain.\n * @param depth The current depth.\n */\n async getPropertiesDepth(keys, depth) {\n let lastValidDepth = depth;\n for (let i = depth - 1; i > 0; i--) {\n if (typeof keys[i] !== 'number') { // Skip array keys\n const parentKey = await this.unaliasKeyword(keys[i], keys, i);\n if (parentKey === '@reverse') {\n return i;\n }\n else if (parentKey === '@nest') {\n lastValidDepth = i;\n }\n else {\n return lastValidDepth;\n }\n }\n }\n return lastValidDepth;\n }\n /**\n * Get the key for the current container entry.\n * @param key A key, can be falsy.\n * @param keys The key chain.\n * @param depth The current depth to get the key from.\n * @return Promise resolving to the key.\n * Null will be returned for @none entries, with aliasing taken into account.\n */\n async getContainerKey(key, keys, depth) {\n const keyUnaliased = await this.unaliasKeyword(key, keys, depth);\n return keyUnaliased === '@none' ? null : keyUnaliased;\n }\n}\nUtil.XSD = 'http://www.w3.org/2001/XMLSchema#';\nUtil.XSD_BOOLEAN = Util.XSD + 'boolean';\nUtil.XSD_INTEGER = Util.XSD + 'integer';\nUtil.XSD_DOUBLE = Util.XSD + 'double';\nUtil.RDF = 'http://www.w3.org/1999/02/22-rdf-syntax-ns#';\nexports.Util = Util;\n//# sourceMappingURL=Util.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\n/**\n * An abstract keyword entry handler.\n */\nclass EntryHandlerKeyword {\n constructor(keyword) {\n this.keyword = keyword;\n }\n isPropertyHandler() {\n return false;\n }\n isStackProcessor() {\n return true;\n }\n async validate(parsingContext, util, keys, depth, inProperty) {\n return false;\n }\n async test(parsingContext, util, key, keys, depth) {\n return key === this.keyword;\n }\n}\nexports.EntryHandlerKeyword = EntryHandlerKeyword;\n//# sourceMappingURL=EntryHandlerKeyword.js.map","\"use strict\";\nfunction __export(m) {\n for (var p in m) if (!exports.hasOwnProperty(p)) exports[p] = m[p];\n}\nObject.defineProperty(exports, \"__esModule\", { value: true });\n__export(require(\"./lib/ActorAbstractPath\"));\n//# sourceMappingURL=index.js.map","module.exports = solid[\"auth\"];","'use strict';\n\nfunction _inheritsLoose(subClass, superClass) { subClass.prototype = Object.create(superClass.prototype); subClass.prototype.constructor = subClass; subClass.__proto__ = superClass; }\n\nvar codes = {};\n\nfunction createErrorType(code, message, Base) {\n if (!Base) {\n Base = Error;\n }\n\n function getMessage(arg1, arg2, arg3) {\n if (typeof message === 'string') {\n return message;\n } else {\n return message(arg1, arg2, arg3);\n }\n }\n\n var NodeError =\n /*#__PURE__*/\n function (_Base) {\n _inheritsLoose(NodeError, _Base);\n\n function NodeError(arg1, arg2, arg3) {\n return _Base.call(this, getMessage(arg1, arg2, arg3)) || this;\n }\n\n return NodeError;\n }(Base);\n\n NodeError.prototype.name = Base.name;\n NodeError.prototype.code = code;\n codes[code] = NodeError;\n} // https://github.com/nodejs/node/blob/v10.8.0/lib/internal/errors.js\n\n\nfunction oneOf(expected, thing) {\n if (Array.isArray(expected)) {\n var len = expected.length;\n expected = expected.map(function (i) {\n return String(i);\n });\n\n if (len > 2) {\n return \"one of \".concat(thing, \" \").concat(expected.slice(0, len - 1).join(', '), \", or \") + expected[len - 1];\n } else if (len === 2) {\n return \"one of \".concat(thing, \" \").concat(expected[0], \" or \").concat(expected[1]);\n } else {\n return \"of \".concat(thing, \" \").concat(expected[0]);\n }\n } else {\n return \"of \".concat(thing, \" \").concat(String(expected));\n }\n} // https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/String/startsWith\n\n\nfunction startsWith(str, search, pos) {\n return str.substr(!pos || pos < 0 ? 0 : +pos, search.length) === search;\n} // https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/String/endsWith\n\n\nfunction endsWith(str, search, this_len) {\n if (this_len === undefined || this_len > str.length) {\n this_len = str.length;\n }\n\n return str.substring(this_len - search.length, this_len) === search;\n} // https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/String/includes\n\n\nfunction includes(str, search, start) {\n if (typeof start !== 'number') {\n start = 0;\n }\n\n if (start + search.length > str.length) {\n return false;\n } else {\n return str.indexOf(search, start) !== -1;\n }\n}\n\ncreateErrorType('ERR_INVALID_OPT_VALUE', function (name, value) {\n return 'The value \"' + value + '\" is invalid for option \"' + name + '\"';\n}, TypeError);\ncreateErrorType('ERR_INVALID_ARG_TYPE', function (name, expected, actual) {\n // determiner: 'must be' or 'must not be'\n var determiner;\n\n if (typeof expected === 'string' && startsWith(expected, 'not ')) {\n determiner = 'must not be';\n expected = expected.replace(/^not /, '');\n } else {\n determiner = 'must be';\n }\n\n var msg;\n\n if (endsWith(name, ' argument')) {\n // For cases like 'first argument'\n msg = \"The \".concat(name, \" \").concat(determiner, \" \").concat(oneOf(expected, 'type'));\n } else {\n var type = includes(name, '.') ? 'property' : 'argument';\n msg = \"The \\\"\".concat(name, \"\\\" \").concat(type, \" \").concat(determiner, \" \").concat(oneOf(expected, 'type'));\n }\n\n msg += \". Received type \".concat(typeof actual);\n return msg;\n}, TypeError);\ncreateErrorType('ERR_STREAM_PUSH_AFTER_EOF', 'stream.push() after EOF');\ncreateErrorType('ERR_METHOD_NOT_IMPLEMENTED', function (name) {\n return 'The ' + name + ' method is not implemented';\n});\ncreateErrorType('ERR_STREAM_PREMATURE_CLOSE', 'Premature close');\ncreateErrorType('ERR_STREAM_DESTROYED', function (name) {\n return 'Cannot call ' + name + ' after a stream was destroyed';\n});\ncreateErrorType('ERR_MULTIPLE_CALLBACK', 'Callback called multiple times');\ncreateErrorType('ERR_STREAM_CANNOT_PIPE', 'Cannot pipe, not readable');\ncreateErrorType('ERR_STREAM_WRITE_AFTER_END', 'write after end');\ncreateErrorType('ERR_STREAM_NULL_VALUES', 'May not write null values to stream', TypeError);\ncreateErrorType('ERR_UNKNOWN_ENCODING', function (arg) {\n return 'Unknown encoding: ' + arg;\n}, TypeError);\ncreateErrorType('ERR_STREAM_UNSHIFT_AFTER_END_EVENT', 'stream.unshift() after end event');\nmodule.exports.codes = codes;\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// a duplex stream is just a stream that is both readable and writable.\n// Since JS doesn't have multiple prototypal inheritance, this class\n// prototypally inherits from Readable, and then parasitically from\n// Writable.\n'use strict';\n/**/\n\nvar objectKeys = Object.keys || function (obj) {\n var keys = [];\n\n for (var key in obj) {\n keys.push(key);\n }\n\n return keys;\n};\n/**/\n\n\nmodule.exports = Duplex;\n\nvar Readable = require('./_stream_readable');\n\nvar Writable = require('./_stream_writable');\n\nrequire('inherits')(Duplex, Readable);\n\n{\n // Allow the keys array to be GC'ed.\n var keys = objectKeys(Writable.prototype);\n\n for (var v = 0; v < keys.length; v++) {\n var method = keys[v];\n if (!Duplex.prototype[method]) Duplex.prototype[method] = Writable.prototype[method];\n }\n}\n\nfunction Duplex(options) {\n if (!(this instanceof Duplex)) return new Duplex(options);\n Readable.call(this, options);\n Writable.call(this, options);\n this.allowHalfOpen = true;\n\n if (options) {\n if (options.readable === false) this.readable = false;\n if (options.writable === false) this.writable = false;\n\n if (options.allowHalfOpen === false) {\n this.allowHalfOpen = false;\n this.once('end', onend);\n }\n }\n}\n\nObject.defineProperty(Duplex.prototype, 'writableHighWaterMark', {\n // making it explicit this property is not enumerable\n // because otherwise some prototype manipulation in\n // userland will fail\n enumerable: false,\n get: function get() {\n return this._writableState.highWaterMark;\n }\n});\nObject.defineProperty(Duplex.prototype, 'writableBuffer', {\n // making it explicit this property is not enumerable\n // because otherwise some prototype manipulation in\n // userland will fail\n enumerable: false,\n get: function get() {\n return this._writableState && this._writableState.getBuffer();\n }\n});\nObject.defineProperty(Duplex.prototype, 'writableLength', {\n // making it explicit this property is not enumerable\n // because otherwise some prototype manipulation in\n // userland will fail\n enumerable: false,\n get: function get() {\n return this._writableState.length;\n }\n}); // the no-half-open enforcer\n\nfunction onend() {\n // If the writable side ended, then we're ok.\n if (this._writableState.ended) return; // no more data can be written.\n // But allow more writes to happen in this tick.\n\n process.nextTick(onEndNT, this);\n}\n\nfunction onEndNT(self) {\n self.end();\n}\n\nObject.defineProperty(Duplex.prototype, 'destroyed', {\n // making it explicit this property is not enumerable\n // because otherwise some prototype manipulation in\n // userland will fail\n enumerable: false,\n get: function get() {\n if (this._readableState === undefined || this._writableState === undefined) {\n return false;\n }\n\n return this._readableState.destroyed && this._writableState.destroyed;\n },\n set: function set(value) {\n // we ignore the value if the stream\n // has not been initialized yet\n if (this._readableState === undefined || this._writableState === undefined) {\n return;\n } // backward compatibility, the user is explicitly\n // managing destroyed\n\n\n this._readableState.destroyed = value;\n this._writableState.destroyed = value;\n }\n});","\"use strict\";\nfunction __export(m) {\n for (var p in m) if (!exports.hasOwnProperty(p)) exports[p] = m[p];\n}\nObject.defineProperty(exports, \"__esModule\", { value: true });\n__export(require(\"./lib/MediatorNumber\"));\n//# sourceMappingURL=index.js.map","\"use strict\";\nfunction __export(m) {\n for (var p in m) if (!exports.hasOwnProperty(p)) exports[p] = m[p];\n}\nObject.defineProperty(exports, \"__esModule\", { value: true });\n__export(require(\"./lib/ActorAbstractMediaTyped\"));\n__export(require(\"./lib/ActorAbstractMediaTypedFixed\"));\n//# sourceMappingURL=index.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\n/**\n * Translates between an RDF literal and a JavaScript primitive.\n */\nclass Translator {\n constructor() {\n this.supportedRdfDatatypes = [];\n this.fromRdfHandlers = {};\n this.toRdfHandlers = {};\n }\n static incorrectRdfDataType(literal) {\n throw new Error(`Invalid RDF ${literal.datatype.value} value: '${literal.value}'`);\n }\n registerHandler(handler, rdfDatatypes, javaScriptDataTypes) {\n for (const rdfDatatype of rdfDatatypes) {\n this.supportedRdfDatatypes.push(rdfDatatype);\n this.fromRdfHandlers[rdfDatatype.value] = handler;\n }\n for (const javaScriptDataType of javaScriptDataTypes) {\n let existingToRdfHandlers = this.toRdfHandlers[javaScriptDataType];\n if (!existingToRdfHandlers) {\n this.toRdfHandlers[javaScriptDataType] = existingToRdfHandlers = [];\n }\n existingToRdfHandlers.push(handler);\n }\n }\n fromRdf(literal, validate) {\n const handler = this.fromRdfHandlers[literal.datatype.value];\n if (handler) {\n return handler.fromRdf(literal, validate);\n }\n else {\n return literal.value;\n }\n }\n toRdf(value, options) {\n const handlers = this.toRdfHandlers[typeof value];\n if (handlers) {\n for (const handler of handlers) {\n const ret = handler.toRdf(value, options);\n if (ret) {\n return ret;\n }\n }\n }\n throw new Error(`Invalid JavaScript value: '${value}'`);\n }\n /**\n * @return {NamedNode[]} An array of all supported RDF datatypes.\n */\n getSupportedRdfDatatypes() {\n return this.supportedRdfDatatypes;\n }\n /**\n * @return {string[]} An array of all supported JavaScript types.\n */\n getSupportedJavaScriptPrimitives() {\n return Object.keys(this.toRdfHandlers);\n }\n}\nexports.Translator = Translator;\n//# sourceMappingURL=Translator.js.map","var Parser = require('./lib/SparqlParser').Parser;\nvar Generator = require('./lib/SparqlGenerator');\nvar Wildcard = require(\"./lib/Wildcard\").Wildcard;\nvar N3 = require('n3');\n\nmodule.exports = {\n /**\n * Creates a SPARQL parser with the given pre-defined prefixes and base IRI\n * @param prefixes { [prefix: string]: string }\n * @param baseIRI string\n */\n Parser: function ({ prefixes, baseIRI, factory } = {}) {\n // Create a copy of the prefixes\n var prefixesCopy = {};\n for (var prefix in prefixes || {})\n prefixesCopy[prefix] = prefixes[prefix];\n\n // Create a new parser with the given prefixes\n // (Workaround for https://github.com/zaach/jison/issues/241)\n var parser = new Parser();\n parser.parse = function () {\n Parser.base = baseIRI || '';\n Parser.prefixes = Object.create(prefixesCopy);\n Parser.factory = factory || N3.DataFactory;\n return Parser.prototype.parse.apply(parser, arguments);\n };\n parser._resetBlanks = Parser._resetBlanks;\n return parser;\n },\n Generator: Generator,\n Wildcard: Wildcard,\n};\n","\"use strict\";\nfunction __export(m) {\n for (var p in m) if (!exports.hasOwnProperty(p)) exports[p] = m[p];\n}\nObject.defineProperty(exports, \"__esModule\", { value: true });\n__export(require(\"./Expressions\"));\n__export(require(\"./Variable\"));\n__export(require(\"./Term\"));\n__export(require(\"./Operator\"));\n__export(require(\"./SpecialOperator\"));\n__export(require(\"./Named\"));\n__export(require(\"./Aggregate\"));\n__export(require(\"./Existence\"));\n//# sourceMappingURL=index.js.map","var Buffer = require('safe-buffer').Buffer\n\n// prototype class for hash functions\nfunction Hash (blockSize, finalSize) {\n this._block = Buffer.alloc(blockSize)\n this._finalSize = finalSize\n this._blockSize = blockSize\n this._len = 0\n}\n\nHash.prototype.update = function (data, enc) {\n if (typeof data === 'string') {\n enc = enc || 'utf8'\n data = Buffer.from(data, enc)\n }\n\n var block = this._block\n var blockSize = this._blockSize\n var length = data.length\n var accum = this._len\n\n for (var offset = 0; offset < length;) {\n var assigned = accum % blockSize\n var remainder = Math.min(length - offset, blockSize - assigned)\n\n for (var i = 0; i < remainder; i++) {\n block[assigned + i] = data[offset + i]\n }\n\n accum += remainder\n offset += remainder\n\n if ((accum % blockSize) === 0) {\n this._update(block)\n }\n }\n\n this._len += length\n return this\n}\n\nHash.prototype.digest = function (enc) {\n var rem = this._len % this._blockSize\n\n this._block[rem] = 0x80\n\n // zero (rem + 1) trailing bits, where (rem + 1) is the smallest\n // non-negative solution to the equation (length + 1 + (rem + 1)) === finalSize mod blockSize\n this._block.fill(0, rem + 1)\n\n if (rem >= this._finalSize) {\n this._update(this._block)\n this._block.fill(0)\n }\n\n var bits = this._len * 8\n\n // uint32\n if (bits <= 0xffffffff) {\n this._block.writeUInt32BE(bits, this._blockSize - 4)\n\n // uint64\n } else {\n var lowBits = (bits & 0xffffffff) >>> 0\n var highBits = (bits - lowBits) / 0x100000000\n\n this._block.writeUInt32BE(highBits, this._blockSize - 8)\n this._block.writeUInt32BE(lowBits, this._blockSize - 4)\n }\n\n this._update(this._block)\n var hash = this._hash()\n\n return enc ? hash.toString(enc) : hash\n}\n\nHash.prototype._update = function () {\n throw new Error('_update must be implemented by subclass')\n}\n\nmodule.exports = Hash\n","// N3.js implementations of the RDF/JS core data types\n// See https://github.com/rdfjs/representation-task-force/blob/master/interface-spec.md\n\nimport namespaces from './IRIs';\nconst { rdf, xsd } = namespaces;\n\nvar DataFactory, DEFAULTGRAPH;\n\nvar _blankNodeCounter = 0;\n\n// ## Term constructor\nclass Term {\n constructor(id) {\n this.id = id;\n }\n\n // ### The value of this term\n get value() {\n return this.id;\n }\n\n // ### Returns whether this object represents the same term as the other\n equals(other) {\n // If both terms were created by this library,\n // equality can be computed through ids\n if (other instanceof Term)\n return this.id === other.id;\n // Otherwise, compare term type and value\n return !!other && this.termType === other.termType &&\n this.value === other.value;\n }\n\n // ### Returns a plain object representation of this term\n toJSON() {\n return {\n termType: this.termType,\n value: this.value,\n };\n }\n}\n\n\n// ## NamedNode constructor\nclass NamedNode extends Term {\n // ### The term type of this term\n get termType() {\n return 'NamedNode';\n }\n}\n\n// ## Literal constructor\nclass Literal extends Term {\n // ### The term type of this term\n get termType() {\n return 'Literal';\n }\n\n // ### The text value of this literal\n get value() {\n return this.id.substring(1, this.id.lastIndexOf('\"'));\n }\n\n // ### The language of this literal\n get language() {\n // Find the last quotation mark (e.g., '\"abc\"@en-us')\n var id = this.id, atPos = id.lastIndexOf('\"') + 1;\n // If \"@\" it follows, return the remaining substring; empty otherwise\n return atPos < id.length && id[atPos++] === '@' ? id.substr(atPos).toLowerCase() : '';\n }\n\n // ### The datatype IRI of this literal\n get datatype() {\n return new NamedNode(this.datatypeString);\n }\n\n // ### The datatype string of this literal\n get datatypeString() {\n // Find the last quotation mark (e.g., '\"abc\"^^http://ex.org/types#t')\n var id = this.id, dtPos = id.lastIndexOf('\"') + 1, ch;\n // If \"^\" it follows, return the remaining substring\n return dtPos < id.length && (ch = id[dtPos]) === '^' ? id.substr(dtPos + 2) :\n // If \"@\" follows, return rdf:langString; xsd:string otherwise\n (ch !== '@' ? xsd.string : rdf.langString);\n }\n\n // ### Returns whether this object represents the same term as the other\n equals(other) {\n // If both literals were created by this library,\n // equality can be computed through ids\n if (other instanceof Literal)\n return this.id === other.id;\n // Otherwise, compare term type, value, language, and datatype\n return !!other && !!other.datatype &&\n this.termType === other.termType &&\n this.value === other.value &&\n this.language === other.language &&\n this.datatype.value === other.datatype.value;\n }\n\n toJSON() {\n return {\n termType: this.termType,\n value: this.value,\n language: this.language,\n datatype: { termType: 'NamedNode', value: this.datatypeString },\n };\n }\n}\n\n// ## BlankNode constructor\nclass BlankNode extends Term {\n constructor(name) {\n super('_:' + name);\n }\n\n // ### The term type of this term\n get termType() {\n return 'BlankNode';\n }\n\n // ### The name of this blank node\n get value() {\n return this.id.substr(2);\n }\n}\n\nclass Variable extends Term {\n constructor(name) {\n super('?' + name);\n }\n\n // ### The term type of this term\n get termType() {\n return 'Variable';\n }\n\n // ### The name of this variable\n get value() {\n return this.id.substr(1);\n }\n}\n\n// ## DefaultGraph constructor\nclass DefaultGraph extends Term {\n constructor() {\n super('');\n return DEFAULTGRAPH || this;\n }\n\n // ### The term type of this term\n get termType() {\n return 'DefaultGraph';\n }\n\n // ### Returns whether this object represents the same term as the other\n equals(other) {\n // If both terms were created by this library,\n // equality can be computed through strict equality;\n // otherwise, compare term types.\n return (this === other) || (!!other && (this.termType === other.termType));\n }\n}\n\n// ## DefaultGraph singleton\nDEFAULTGRAPH = new DefaultGraph();\n\n\n// ### Constructs a term from the given internal string ID\nfunction fromId(id, factory) {\n factory = factory || DataFactory;\n\n // Falsy value or empty string indicate the default graph\n if (!id)\n return factory.defaultGraph();\n\n // Identify the term type based on the first character\n switch (id[0]) {\n case '_': return factory.blankNode(id.substr(2));\n case '?': return factory.variable(id.substr(1));\n case '\"':\n // Shortcut for internal literals\n if (factory === DataFactory)\n return new Literal(id);\n // Literal without datatype or language\n if (id[id.length - 1] === '\"')\n return factory.literal(id.substr(1, id.length - 2));\n // Literal with datatype or language\n var endPos = id.lastIndexOf('\"', id.length - 1);\n return factory.literal(id.substr(1, endPos - 1),\n id[endPos + 1] === '@' ? id.substr(endPos + 2)\n : factory.namedNode(id.substr(endPos + 3)));\n default: return factory.namedNode(id);\n }\n}\n\n// ### Constructs an internal string ID from the given term or ID string\nfunction toId(term) {\n if (typeof term === 'string')\n return term;\n if (term instanceof Term)\n return term.id;\n if (!term)\n return DEFAULTGRAPH.id;\n\n // Term instantiated with another library\n switch (term.termType) {\n case 'NamedNode': return term.value;\n case 'BlankNode': return '_:' + term.value;\n case 'Variable': return '?' + term.value;\n case 'DefaultGraph': return '';\n case 'Literal': return '\"' + term.value + '\"' +\n (term.language ? '@' + term.language :\n (term.datatype && term.datatype.value !== xsd.string ? '^^' + term.datatype.value : ''));\n default: throw new Error('Unexpected termType: ' + term.termType);\n }\n}\n\n\n// ## Quad constructor\nclass Quad {\n constructor(subject, predicate, object, graph) {\n this.subject = subject;\n this.predicate = predicate;\n this.object = object;\n this.graph = graph || DEFAULTGRAPH;\n }\n\n // ### Returns a plain object representation of this quad\n toJSON() {\n return {\n subject: this.subject.toJSON(),\n predicate: this.predicate.toJSON(),\n object: this.object.toJSON(),\n graph: this.graph.toJSON(),\n };\n }\n\n // ### Returns whether this object represents the same quad as the other\n equals(other) {\n return !!other && this.subject.equals(other.subject) &&\n this.predicate.equals(other.predicate) &&\n this.object.equals(other.object) &&\n this.graph.equals(other.graph);\n }\n}\n\n\n// ## DataFactory singleton\nDataFactory = {\n // ### Public factory functions\n namedNode,\n blankNode,\n variable,\n literal,\n defaultGraph,\n quad,\n triple: quad,\n\n // ### Internal datatype constructors\n internal: {\n Term,\n NamedNode,\n BlankNode,\n Variable,\n Literal,\n DefaultGraph,\n Quad,\n Triple: Quad,\n fromId,\n toId,\n },\n};\nexport default DataFactory;\n\n// ### Creates an IRI\nfunction namedNode(iri) {\n return new NamedNode(iri);\n}\n\n// ### Creates a blank node\nfunction blankNode(name) {\n return new BlankNode(name || `n3-${_blankNodeCounter++}`);\n}\n\n// ### Creates a literal\nfunction literal(value, languageOrDataType) {\n // Create a language-tagged string\n if (typeof languageOrDataType === 'string')\n return new Literal('\"' + value + '\"@' + languageOrDataType.toLowerCase());\n\n // Automatically determine datatype for booleans and numbers\n let datatype = languageOrDataType ? languageOrDataType.value : '';\n if (datatype === '') {\n // Convert a boolean\n if (typeof value === 'boolean')\n datatype = xsd.boolean;\n // Convert an integer or double\n else if (typeof value === 'number') {\n if (Number.isFinite(value))\n datatype = Number.isInteger(value) ? xsd.integer : xsd.double;\n else {\n datatype = xsd.double;\n if (!Number.isNaN(value))\n value = value > 0 ? 'INF' : '-INF';\n }\n }\n }\n\n // Create a datatyped literal\n return (datatype === '' || datatype === xsd.string) ?\n new Literal('\"' + value + '\"') :\n new Literal('\"' + value + '\"^^' + datatype);\n}\n\n// ### Creates a variable\nfunction variable(name) {\n return new Variable(name);\n}\n\n// ### Returns the default graph\nfunction defaultGraph() {\n return DEFAULTGRAPH;\n}\n\n// ### Creates a quad\nfunction quad(subject, predicate, object, graph) {\n return new Quad(subject, predicate, object, graph);\n}\n","// **N3Parser** parses N3 documents.\nimport N3Lexer from './N3Lexer';\nimport N3DataFactory from './N3DataFactory';\nimport namespaces from './IRIs';\n\nlet blankNodePrefix = 0;\n\n// ## Constructor\nexport default class N3Parser {\n constructor(options) {\n this._contextStack = [];\n this._graph = null;\n\n // Set the document IRI\n options = options || {};\n this._setBase(options.baseIRI);\n options.factory && initDataFactory(this, options.factory);\n\n // Set supported features depending on the format\n var format = (typeof options.format === 'string') ?\n options.format.match(/\\w*$/)[0].toLowerCase() : '',\n isTurtle = format === 'turtle', isTriG = format === 'trig',\n isNTriples = /triple/.test(format), isNQuads = /quad/.test(format),\n isN3 = this._n3Mode = /n3/.test(format),\n isLineMode = isNTriples || isNQuads;\n if (!(this._supportsNamedGraphs = !(isTurtle || isN3)))\n this._readPredicateOrNamedGraph = this._readPredicate;\n this._supportsQuads = !(isTurtle || isTriG || isNTriples || isN3);\n // Disable relative IRIs in N-Triples or N-Quads mode\n if (isLineMode)\n this._resolveRelativeIRI = function (iri) { return null; };\n this._blankNodePrefix = typeof options.blankNodePrefix !== 'string' ? '' :\n options.blankNodePrefix.replace(/^(?!_:)/, '_:');\n this._lexer = options.lexer || new N3Lexer({ lineMode: isLineMode, n3: isN3 });\n // Disable explicit quantifiers by default\n this._explicitQuantifiers = !!options.explicitQuantifiers;\n }\n\n // ## Static class methods\n\n // ### `_resetBlankNodePrefix` restarts blank node prefix identification\n static _resetBlankNodePrefix() {\n blankNodePrefix = 0;\n }\n\n // ## Private methods\n\n // ### `_setBase` sets the base IRI to resolve relative IRIs\n _setBase(baseIRI) {\n if (!baseIRI) {\n this._base = '';\n this._basePath = '';\n }\n else {\n // Remove fragment if present\n var fragmentPos = baseIRI.indexOf('#');\n if (fragmentPos >= 0)\n baseIRI = baseIRI.substr(0, fragmentPos);\n // Set base IRI and its components\n this._base = baseIRI;\n this._basePath = baseIRI.indexOf('/') < 0 ? baseIRI :\n baseIRI.replace(/[^\\/?]*(?:\\?.*)?$/, '');\n baseIRI = baseIRI.match(/^(?:([a-z][a-z0-9+.-]*:))?(?:\\/\\/[^\\/]*)?/i);\n this._baseRoot = baseIRI[0];\n this._baseScheme = baseIRI[1];\n }\n }\n\n // ### `_saveContext` stores the current parsing context\n // when entering a new scope (list, blank node, formula)\n _saveContext(type, graph, subject, predicate, object) {\n var n3Mode = this._n3Mode;\n this._contextStack.push({\n subject: subject, predicate: predicate, object: object,\n graph: graph, type: type,\n inverse: n3Mode ? this._inversePredicate : false,\n blankPrefix: n3Mode ? this._prefixes._ : '',\n quantified: n3Mode ? this._quantified : null,\n });\n // The settings below only apply to N3 streams\n if (n3Mode) {\n // Every new scope resets the predicate direction\n this._inversePredicate = false;\n // In N3, blank nodes are scoped to a formula\n // (using a dot as separator, as a blank node label cannot start with it)\n this._prefixes._ = (this._graph ? this._graph.id.substr(2) + '.' : '.');\n // Quantifiers are scoped to a formula\n this._quantified = Object.create(this._quantified);\n }\n }\n\n // ### `_restoreContext` restores the parent context\n // when leaving a scope (list, blank node, formula)\n _restoreContext() {\n var context = this._contextStack.pop(), n3Mode = this._n3Mode;\n this._subject = context.subject;\n this._predicate = context.predicate;\n this._object = context.object;\n this._graph = context.graph;\n // The settings below only apply to N3 streams\n if (n3Mode) {\n this._inversePredicate = context.inverse;\n this._prefixes._ = context.blankPrefix;\n this._quantified = context.quantified;\n }\n }\n\n // ### `_readInTopContext` reads a token when in the top context\n _readInTopContext(token) {\n switch (token.type) {\n // If an EOF token arrives in the top context, signal that we're done\n case 'eof':\n if (this._graph !== null)\n return this._error('Unclosed graph', token);\n delete this._prefixes._;\n return this._callback(null, null, this._prefixes);\n // It could be a prefix declaration\n case 'PREFIX':\n this._sparqlStyle = true;\n case '@prefix':\n return this._readPrefix;\n // It could be a base declaration\n case 'BASE':\n this._sparqlStyle = true;\n case '@base':\n return this._readBaseIRI;\n // It could be a graph\n case '{':\n if (this._supportsNamedGraphs) {\n this._graph = '';\n this._subject = null;\n return this._readSubject;\n }\n case 'GRAPH':\n if (this._supportsNamedGraphs)\n return this._readNamedGraphLabel;\n // Otherwise, the next token must be a subject\n default:\n return this._readSubject(token);\n }\n }\n\n // ### `_readEntity` reads an IRI, prefixed name, blank node, or variable\n _readEntity(token, quantifier) {\n var value;\n switch (token.type) {\n // Read a relative or absolute IRI\n case 'IRI':\n case 'typeIRI':\n var iri = this._resolveIRI(token.value);\n if (iri === null)\n return this._error('Invalid IRI', token);\n value = this._namedNode(iri);\n break;\n // Read a prefixed name\n case 'type':\n case 'prefixed':\n var prefix = this._prefixes[token.prefix];\n if (prefix === undefined)\n return this._error('Undefined prefix \"' + token.prefix + ':\"', token);\n value = this._namedNode(prefix + token.value);\n break;\n // Read a blank node\n case 'blank':\n value = this._blankNode(this._prefixes[token.prefix] + token.value);\n break;\n // Read a variable\n case 'var':\n value = this._variable(token.value.substr(1));\n break;\n // Everything else is not an entity\n default:\n return this._error('Expected entity but got ' + token.type, token);\n }\n // In N3 mode, replace the entity if it is quantified\n if (!quantifier && this._n3Mode && (value.id in this._quantified))\n value = this._quantified[value.id];\n return value;\n }\n\n // ### `_readSubject` reads a quad's subject\n _readSubject(token) {\n this._predicate = null;\n switch (token.type) {\n case '[':\n // Start a new quad with a new blank node as subject\n this._saveContext('blank', this._graph,\n this._subject = this._blankNode(), null, null);\n return this._readBlankNodeHead;\n case '(':\n // Start a new list\n this._saveContext('list', this._graph, this.RDF_NIL, null, null);\n this._subject = null;\n return this._readListItem;\n case '{':\n // Start a new formula\n if (!this._n3Mode)\n return this._error('Unexpected graph', token);\n this._saveContext('formula', this._graph,\n this._graph = this._blankNode(), null, null);\n return this._readSubject;\n case '}':\n // No subject; the graph in which we are reading is closed instead\n return this._readPunctuation(token);\n case '@forSome':\n if (!this._n3Mode)\n return this._error('Unexpected \"@forSome\"', token);\n this._subject = null;\n this._predicate = this.N3_FORSOME;\n this._quantifier = this._blankNode;\n return this._readQuantifierList;\n case '@forAll':\n if (!this._n3Mode)\n return this._error('Unexpected \"@forAll\"', token);\n this._subject = null;\n this._predicate = this.N3_FORALL;\n this._quantifier = this._variable;\n return this._readQuantifierList;\n case 'literal':\n if (!this._n3Mode)\n return this._error('Unexpected literal', token);\n\n if (token.prefix.length === 0) {\n this._literalValue = token.value;\n return this._completeSubjectLiteral;\n }\n else\n this._subject = this._literal(token.value, this._namedNode(token.prefix));\n\n break;\n default:\n // Read the subject entity\n if ((this._subject = this._readEntity(token)) === undefined)\n return;\n // In N3 mode, the subject might be a path\n if (this._n3Mode)\n return this._getPathReader(this._readPredicateOrNamedGraph);\n }\n\n // The next token must be a predicate,\n // or, if the subject was actually a graph IRI, a named graph\n return this._readPredicateOrNamedGraph;\n }\n\n // ### `_readPredicate` reads a quad's predicate\n _readPredicate(token) {\n var type = token.type;\n switch (type) {\n case 'inverse':\n this._inversePredicate = true;\n case 'abbreviation':\n this._predicate = this.ABBREVIATIONS[token.value];\n break;\n case '.':\n case ']':\n case '}':\n // Expected predicate didn't come, must have been trailing semicolon\n if (this._predicate === null)\n return this._error('Unexpected ' + type, token);\n this._subject = null;\n return type === ']' ? this._readBlankNodeTail(token) : this._readPunctuation(token);\n case ';':\n // Additional semicolons can be safely ignored\n return this._predicate !== null ? this._readPredicate :\n this._error('Expected predicate but got ;', token);\n case 'blank':\n if (!this._n3Mode)\n return this._error('Disallowed blank node as predicate', token);\n default:\n if ((this._predicate = this._readEntity(token)) === undefined)\n return;\n }\n // The next token must be an object\n return this._readObject;\n }\n\n // ### `_readObject` reads a quad's object\n _readObject(token) {\n switch (token.type) {\n case 'literal':\n // Regular literal, can still get a datatype or language\n if (token.prefix.length === 0) {\n this._literalValue = token.value;\n return this._readDataTypeOrLang;\n }\n // Pre-datatyped string literal (prefix stores the datatype)\n else\n this._object = this._literal(token.value, this._namedNode(token.prefix));\n break;\n case '[':\n // Start a new quad with a new blank node as subject\n this._saveContext('blank', this._graph, this._subject, this._predicate,\n this._subject = this._blankNode());\n return this._readBlankNodeHead;\n case '(':\n // Start a new list\n this._saveContext('list', this._graph, this._subject, this._predicate, this.RDF_NIL);\n this._subject = null;\n return this._readListItem;\n case '{':\n // Start a new formula\n if (!this._n3Mode)\n return this._error('Unexpected graph', token);\n this._saveContext('formula', this._graph, this._subject, this._predicate,\n this._graph = this._blankNode());\n return this._readSubject;\n default:\n // Read the object entity\n if ((this._object = this._readEntity(token)) === undefined)\n return;\n // In N3 mode, the object might be a path\n if (this._n3Mode)\n return this._getPathReader(this._getContextEndReader());\n }\n return this._getContextEndReader();\n }\n\n // ### `_readPredicateOrNamedGraph` reads a quad's predicate, or a named graph\n _readPredicateOrNamedGraph(token) {\n return token.type === '{' ? this._readGraph(token) : this._readPredicate(token);\n }\n\n // ### `_readGraph` reads a graph\n _readGraph(token) {\n if (token.type !== '{')\n return this._error('Expected graph but got ' + token.type, token);\n // The \"subject\" we read is actually the GRAPH's label\n this._graph = this._subject, this._subject = null;\n return this._readSubject;\n }\n\n // ### `_readBlankNodeHead` reads the head of a blank node\n _readBlankNodeHead(token) {\n if (token.type === ']') {\n this._subject = null;\n return this._readBlankNodeTail(token);\n }\n else {\n this._predicate = null;\n return this._readPredicate(token);\n }\n }\n\n // ### `_readBlankNodeTail` reads the end of a blank node\n _readBlankNodeTail(token) {\n if (token.type !== ']')\n return this._readBlankNodePunctuation(token);\n\n // Store blank node quad\n if (this._subject !== null)\n this._emit(this._subject, this._predicate, this._object, this._graph);\n\n // Restore the parent context containing this blank node\n var empty = this._predicate === null;\n this._restoreContext();\n // If the blank node was the subject, continue reading the predicate\n if (this._object === null)\n // If the blank node was empty, it could be a named graph label\n return empty ? this._readPredicateOrNamedGraph : this._readPredicateAfterBlank;\n // If the blank node was the object, restore previous context and read punctuation\n else\n return this._getContextEndReader();\n }\n\n // ### `_readPredicateAfterBlank` reads a predicate after an anonymous blank node\n _readPredicateAfterBlank(token) {\n switch (token.type) {\n case '.':\n case '}':\n // No predicate is coming if the triple is terminated here\n this._subject = null;\n return this._readPunctuation(token);\n default:\n return this._readPredicate(token);\n }\n }\n\n // ### `_readListItem` reads items from a list\n _readListItem(token) {\n var item = null, // The item of the list\n list = null, // The list itself\n previousList = this._subject, // The previous list that contains this list\n stack = this._contextStack, // The stack of parent contexts\n parent = stack[stack.length - 1], // The parent containing the current list\n next = this._readListItem; // The next function to execute\n\n switch (token.type) {\n case '[':\n // Stack the current list quad and start a new quad with a blank node as subject\n this._saveContext('blank', this._graph,\n list = this._blankNode(), this.RDF_FIRST,\n this._subject = item = this._blankNode());\n next = this._readBlankNodeHead;\n break;\n case '(':\n // Stack the current list quad and start a new list\n this._saveContext('list', this._graph,\n list = this._blankNode(), this.RDF_FIRST, this.RDF_NIL);\n this._subject = null;\n break;\n case ')':\n // Closing the list; restore the parent context\n this._restoreContext();\n // If this list is contained within a parent list, return the membership quad here.\n // This will be ` rdf:first .`.\n if (stack.length !== 0 && stack[stack.length - 1].type === 'list')\n this._emit(this._subject, this._predicate, this._object, this._graph);\n // Was this list the parent's subject?\n if (this._predicate === null) {\n // The next token is the predicate\n next = this._readPredicate;\n // No list tail if this was an empty list\n if (this._subject === this.RDF_NIL)\n return next;\n }\n // The list was in the parent context's object\n else {\n next = this._getContextEndReader();\n // No list tail if this was an empty list\n if (this._object === this.RDF_NIL)\n return next;\n }\n // Close the list by making the head nil\n list = this.RDF_NIL;\n break;\n case 'literal':\n // Regular literal, can still get a datatype or language\n if (token.prefix.length === 0) {\n this._literalValue = token.value;\n next = this._readListItemDataTypeOrLang;\n }\n // Pre-datatyped string literal (prefix stores the datatype)\n else {\n item = this._literal(token.value, this._namedNode(token.prefix));\n next = this._getContextEndReader();\n }\n break;\n case '{':\n // Start a new formula\n if (!this._n3Mode)\n return this._error('Unexpected graph', token);\n this._saveContext('formula', this._graph, this._subject, this._predicate,\n this._graph = this._blankNode());\n return this._readSubject;\n default:\n if ((item = this._readEntity(token)) === undefined)\n return;\n }\n\n // Create a new blank node if no item head was assigned yet\n if (list === null)\n this._subject = list = this._blankNode();\n\n // Is this the first element of the list?\n if (previousList === null) {\n // This list is either the subject or the object of its parent\n if (parent.predicate === null)\n parent.subject = list;\n else\n parent.object = list;\n }\n else {\n // Continue the previous list with the current list\n this._emit(previousList, this.RDF_REST, list, this._graph);\n }\n // If an item was read, add it to the list\n if (item !== null) {\n // In N3 mode, the item might be a path\n if (this._n3Mode && (token.type === 'IRI' || token.type === 'prefixed')) {\n // Create a new context to add the item's path\n this._saveContext('item', this._graph, list, this.RDF_FIRST, item);\n this._subject = item, this._predicate = null;\n // _readPath will restore the context and output the item\n return this._getPathReader(this._readListItem);\n }\n // Output the item\n this._emit(list, this.RDF_FIRST, item, this._graph);\n }\n return next;\n }\n\n // ### `_readDataTypeOrLang` reads an _optional_ datatype or language\n _readDataTypeOrLang(token) {\n return this._completeObjectLiteral(token, false);\n }\n\n\n // ### `_readListItemDataTypeOrLang` reads an _optional_ datatype or language in a list\n _readListItemDataTypeOrLang(token) {\n return this._completeObjectLiteral(token, true);\n }\n\n // ### `_completeLiteral` completes a literal with an optional datatype or language\n _completeLiteral(token) {\n // Create a simple string literal by default\n let literal = this._literal(this._literalValue);\n\n switch (token.type) {\n // Create a datatyped literal\n case 'type':\n case 'typeIRI':\n var datatype = this._readEntity(token);\n if (datatype === undefined) return; // No datatype means an error occurred\n literal = this._literal(this._literalValue, datatype);\n token = null;\n break;\n // Create a language-tagged string\n case 'langcode':\n literal = this._literal(this._literalValue, token.value);\n token = null;\n break;\n }\n\n return { token, literal };\n }\n\n // Completes a literal in subject position\n _completeSubjectLiteral(token) {\n this._subject = this._completeLiteral(token).literal;\n return this._readPredicateOrNamedGraph;\n }\n\n // Completes a literal in object position\n _completeObjectLiteral(token, listItem) {\n const completed = this._completeLiteral(token);\n if (!completed)\n return;\n this._object = completed.literal;\n\n // If this literal was part of a list, write the item\n // (we could also check the context stack, but passing in a flag is faster)\n if (listItem)\n this._emit(this._subject, this.RDF_FIRST, this._object, this._graph);\n // If the token was consumed, continue with the rest of the input\n if (completed.token === null)\n return this._getContextEndReader();\n // Otherwise, consume the token now\n else {\n this._readCallback = this._getContextEndReader();\n return this._readCallback(completed.token);\n }\n }\n\n // ### `_readFormulaTail` reads the end of a formula\n _readFormulaTail(token) {\n if (token.type !== '}')\n return this._readPunctuation(token);\n\n // Store the last quad of the formula\n if (this._subject !== null)\n this._emit(this._subject, this._predicate, this._object, this._graph);\n\n // Restore the parent context containing this formula\n this._restoreContext();\n // If the formula was the subject, continue reading the predicate.\n // If the formula was the object, read punctuation.\n return this._object === null ? this._readPredicate : this._getContextEndReader();\n }\n\n // ### `_readPunctuation` reads punctuation between quads or quad parts\n _readPunctuation(token) {\n var next, subject = this._subject, graph = this._graph,\n inversePredicate = this._inversePredicate;\n switch (token.type) {\n // A closing brace ends a graph\n case '}':\n if (this._graph === null)\n return this._error('Unexpected graph closing', token);\n if (this._n3Mode)\n return this._readFormulaTail(token);\n this._graph = null;\n // A dot just ends the statement, without sharing anything with the next\n case '.':\n this._subject = null;\n next = this._contextStack.length ? this._readSubject : this._readInTopContext;\n if (inversePredicate) this._inversePredicate = false;\n break;\n // Semicolon means the subject is shared; predicate and object are different\n case ';':\n next = this._readPredicate;\n break;\n // Comma means both the subject and predicate are shared; the object is different\n case ',':\n next = this._readObject;\n break;\n default:\n // An entity means this is a quad (only allowed if not already inside a graph)\n if (this._supportsQuads && this._graph === null && (graph = this._readEntity(token)) !== undefined) {\n next = this._readQuadPunctuation;\n break;\n }\n return this._error('Expected punctuation to follow \"' + this._object.id + '\"', token);\n }\n // A quad has been completed now, so return it\n if (subject !== null) {\n var predicate = this._predicate, object = this._object;\n if (!inversePredicate)\n this._emit(subject, predicate, object, graph);\n else\n this._emit(object, predicate, subject, graph);\n }\n return next;\n }\n\n // ### `_readBlankNodePunctuation` reads punctuation in a blank node\n _readBlankNodePunctuation(token) {\n var next;\n switch (token.type) {\n // Semicolon means the subject is shared; predicate and object are different\n case ';':\n next = this._readPredicate;\n break;\n // Comma means both the subject and predicate are shared; the object is different\n case ',':\n next = this._readObject;\n break;\n default:\n return this._error('Expected punctuation to follow \"' + this._object.id + '\"', token);\n }\n // A quad has been completed now, so return it\n this._emit(this._subject, this._predicate, this._object, this._graph);\n return next;\n }\n\n // ### `_readQuadPunctuation` reads punctuation after a quad\n _readQuadPunctuation(token) {\n if (token.type !== '.')\n return this._error('Expected dot to follow quad', token);\n return this._readInTopContext;\n }\n\n // ### `_readPrefix` reads the prefix of a prefix declaration\n _readPrefix(token) {\n if (token.type !== 'prefix')\n return this._error('Expected prefix to follow @prefix', token);\n this._prefix = token.value;\n return this._readPrefixIRI;\n }\n\n // ### `_readPrefixIRI` reads the IRI of a prefix declaration\n _readPrefixIRI(token) {\n if (token.type !== 'IRI')\n return this._error('Expected IRI to follow prefix \"' + this._prefix + ':\"', token);\n var prefixNode = this._readEntity(token);\n this._prefixes[this._prefix] = prefixNode.value;\n this._prefixCallback(this._prefix, prefixNode);\n return this._readDeclarationPunctuation;\n }\n\n // ### `_readBaseIRI` reads the IRI of a base declaration\n _readBaseIRI(token) {\n var iri = token.type === 'IRI' && this._resolveIRI(token.value);\n if (!iri)\n return this._error('Expected valid IRI to follow base declaration', token);\n this._setBase(iri);\n return this._readDeclarationPunctuation;\n }\n\n // ### `_readNamedGraphLabel` reads the label of a named graph\n _readNamedGraphLabel(token) {\n switch (token.type) {\n case 'IRI':\n case 'blank':\n case 'prefixed':\n return this._readSubject(token), this._readGraph;\n case '[':\n return this._readNamedGraphBlankLabel;\n default:\n return this._error('Invalid graph label', token);\n }\n }\n\n // ### `_readNamedGraphLabel` reads a blank node label of a named graph\n _readNamedGraphBlankLabel(token) {\n if (token.type !== ']')\n return this._error('Invalid graph label', token);\n this._subject = this._blankNode();\n return this._readGraph;\n }\n\n // ### `_readDeclarationPunctuation` reads the punctuation of a declaration\n _readDeclarationPunctuation(token) {\n // SPARQL-style declarations don't have punctuation\n if (this._sparqlStyle) {\n this._sparqlStyle = false;\n return this._readInTopContext(token);\n }\n\n if (token.type !== '.')\n return this._error('Expected declaration to end with a dot', token);\n return this._readInTopContext;\n }\n\n // Reads a list of quantified symbols from a @forSome or @forAll statement\n _readQuantifierList(token) {\n var entity;\n switch (token.type) {\n case 'IRI':\n case 'prefixed':\n if ((entity = this._readEntity(token, true)) !== undefined)\n break;\n default:\n return this._error('Unexpected ' + token.type, token);\n }\n // Without explicit quantifiers, map entities to a quantified entity\n if (!this._explicitQuantifiers)\n this._quantified[entity.id] = this._quantifier(this._blankNode().value);\n // With explicit quantifiers, output the reified quantifier\n else {\n // If this is the first item, start a new quantifier list\n if (this._subject === null)\n this._emit(this._graph || this.DEFAULTGRAPH, this._predicate,\n this._subject = this._blankNode(), this.QUANTIFIERS_GRAPH);\n // Otherwise, continue the previous list\n else\n this._emit(this._subject, this.RDF_REST,\n this._subject = this._blankNode(), this.QUANTIFIERS_GRAPH);\n // Output the list item\n this._emit(this._subject, this.RDF_FIRST, entity, this.QUANTIFIERS_GRAPH);\n }\n return this._readQuantifierPunctuation;\n }\n\n // Reads punctuation from a @forSome or @forAll statement\n _readQuantifierPunctuation(token) {\n // Read more quantifiers\n if (token.type === ',')\n return this._readQuantifierList;\n // End of the quantifier list\n else {\n // With explicit quantifiers, close the quantifier list\n if (this._explicitQuantifiers) {\n this._emit(this._subject, this.RDF_REST, this.RDF_NIL, this.QUANTIFIERS_GRAPH);\n this._subject = null;\n }\n // Read a dot\n this._readCallback = this._getContextEndReader();\n return this._readCallback(token);\n }\n }\n\n // ### `_getPathReader` reads a potential path and then resumes with the given function\n _getPathReader(afterPath) {\n this._afterPath = afterPath;\n return this._readPath;\n }\n\n // ### `_readPath` reads a potential path\n _readPath(token) {\n switch (token.type) {\n // Forward path\n case '!': return this._readForwardPath;\n // Backward path\n case '^': return this._readBackwardPath;\n // Not a path; resume reading where we left off\n default:\n var stack = this._contextStack, parent = stack.length && stack[stack.length - 1];\n // If we were reading a list item, we still need to output it\n if (parent && parent.type === 'item') {\n // The list item is the remaining subejct after reading the path\n var item = this._subject;\n // Switch back to the context of the list\n this._restoreContext();\n // Output the list item\n this._emit(this._subject, this.RDF_FIRST, item, this._graph);\n }\n return this._afterPath(token);\n }\n }\n\n // ### `_readForwardPath` reads a '!' path\n _readForwardPath(token) {\n var subject, predicate, object = this._blankNode();\n // The next token is the predicate\n if ((predicate = this._readEntity(token)) === undefined)\n return;\n // If we were reading a subject, replace the subject by the path's object\n if (this._predicate === null)\n subject = this._subject, this._subject = object;\n // If we were reading an object, replace the subject by the path's object\n else\n subject = this._object, this._object = object;\n // Emit the path's current quad and read its next section\n this._emit(subject, predicate, object, this._graph);\n return this._readPath;\n }\n\n // ### `_readBackwardPath` reads a '^' path\n _readBackwardPath(token) {\n var subject = this._blankNode(), predicate, object;\n // The next token is the predicate\n if ((predicate = this._readEntity(token)) === undefined)\n return;\n // If we were reading a subject, replace the subject by the path's subject\n if (this._predicate === null)\n object = this._subject, this._subject = subject;\n // If we were reading an object, replace the subject by the path's subject\n else\n object = this._object, this._object = subject;\n // Emit the path's current quad and read its next section\n this._emit(subject, predicate, object, this._graph);\n return this._readPath;\n }\n\n // ### `_getContextEndReader` gets the next reader function at the end of a context\n _getContextEndReader() {\n var contextStack = this._contextStack;\n if (!contextStack.length)\n return this._readPunctuation;\n\n switch (contextStack[contextStack.length - 1].type) {\n case 'blank':\n return this._readBlankNodeTail;\n case 'list':\n return this._readListItem;\n case 'formula':\n return this._readFormulaTail;\n }\n }\n\n // ### `_emit` sends a quad through the callback\n _emit(subject, predicate, object, graph) {\n this._callback(null, this._quad(subject, predicate, object, graph || this.DEFAULTGRAPH));\n }\n\n // ### `_error` emits an error message through the callback\n _error(message, token) {\n var err = new Error(message + ' on line ' + token.line + '.');\n err.context = {\n token: token,\n line: token.line,\n previousToken: this._lexer.previousToken,\n };\n this._callback(err);\n this._callback = noop;\n }\n\n // ### `_resolveIRI` resolves an IRI against the base path\n _resolveIRI(iri) {\n return /^[a-z][a-z0-9+.-]*:/i.test(iri) ? iri : this._resolveRelativeIRI(iri);\n }\n\n // ### `_resolveRelativeIRI` resolves an IRI against the base path,\n // assuming that a base path has been set and that the IRI is indeed relative\n _resolveRelativeIRI(iri) {\n // An empty relative IRI indicates the base IRI\n if (!iri.length)\n return this._base;\n // Decide resolving strategy based in the first character\n switch (iri[0]) {\n // Resolve relative fragment IRIs against the base IRI\n case '#': return this._base + iri;\n // Resolve relative query string IRIs by replacing the query string\n case '?': return this._base.replace(/(?:\\?.*)?$/, iri);\n // Resolve root-relative IRIs at the root of the base IRI\n case '/':\n // Resolve scheme-relative IRIs to the scheme\n return (iri[1] === '/' ? this._baseScheme : this._baseRoot) + this._removeDotSegments(iri);\n // Resolve all other IRIs at the base IRI's path\n default:\n // Relative IRIs cannot contain a colon in the first path segment\n return (/^[^/:]*:/.test(iri)) ? null : this._removeDotSegments(this._basePath + iri);\n }\n }\n\n // ### `_removeDotSegments` resolves './' and '../' path segments in an IRI as per RFC3986\n _removeDotSegments(iri) {\n // Don't modify the IRI if it does not contain any dot segments\n if (!/(^|\\/)\\.\\.?($|[/#?])/.test(iri))\n return iri;\n\n // Start with an imaginary slash before the IRI in order to resolve trailing './' and '../'\n var result = '', length = iri.length, i = -1, pathStart = -1, segmentStart = 0, next = '/';\n\n while (i < length) {\n switch (next) {\n // The path starts with the first slash after the authority\n case ':':\n if (pathStart < 0) {\n // Skip two slashes before the authority\n if (iri[++i] === '/' && iri[++i] === '/')\n // Skip to slash after the authority\n while ((pathStart = i + 1) < length && iri[pathStart] !== '/')\n i = pathStart;\n }\n break;\n // Don't modify a query string or fragment\n case '?':\n case '#':\n i = length;\n break;\n // Handle '/.' or '/..' path segments\n case '/':\n if (iri[i + 1] === '.') {\n next = iri[++i + 1];\n switch (next) {\n // Remove a '/.' segment\n case '/':\n result += iri.substring(segmentStart, i - 1);\n segmentStart = i + 1;\n break;\n // Remove a trailing '/.' segment\n case undefined:\n case '?':\n case '#':\n return result + iri.substring(segmentStart, i) + iri.substr(i + 1);\n // Remove a '/..' segment\n case '.':\n next = iri[++i + 1];\n if (next === undefined || next === '/' || next === '?' || next === '#') {\n result += iri.substring(segmentStart, i - 2);\n // Try to remove the parent path from result\n if ((segmentStart = result.lastIndexOf('/')) >= pathStart)\n result = result.substr(0, segmentStart);\n // Remove a trailing '/..' segment\n if (next !== '/')\n return result + '/' + iri.substr(i + 1);\n segmentStart = i + 1;\n }\n }\n }\n }\n next = iri[++i];\n }\n return result + iri.substring(segmentStart);\n }\n\n // ## Public methods\n\n // ### `parse` parses the N3 input and emits each parsed quad through the callback\n parse(input, quadCallback, prefixCallback) {\n var self = this;\n // The read callback is the next function to be executed when a token arrives.\n // We start reading in the top context.\n this._readCallback = this._readInTopContext;\n this._sparqlStyle = false;\n this._prefixes = Object.create(null);\n this._prefixes._ = this._blankNodePrefix ? this._blankNodePrefix.substr(2)\n : 'b' + blankNodePrefix++ + '_';\n this._prefixCallback = prefixCallback || noop;\n this._inversePredicate = false;\n this._quantified = Object.create(null);\n\n // Parse synchronously if no quad callback is given\n if (!quadCallback) {\n var quads = [], error;\n this._callback = function (e, t) { e ? (error = e) : t && quads.push(t); };\n this._lexer.tokenize(input).every(function (token) {\n return self._readCallback = self._readCallback(token);\n });\n if (error) throw error;\n return quads;\n }\n\n // Parse asynchronously otherwise, executing the read callback when a token arrives\n this._callback = quadCallback;\n this._lexer.tokenize(input, function (error, token) {\n if (error !== null)\n self._callback(error), self._callback = noop;\n else if (self._readCallback)\n self._readCallback = self._readCallback(token);\n });\n }\n}\n\n// The empty function\nfunction noop() {}\n\n// Initializes the parser with the given data factory\nfunction initDataFactory(parser, factory) {\n // Set factory methods\n var namedNode = factory.namedNode;\n parser._namedNode = namedNode;\n parser._blankNode = factory.blankNode;\n parser._literal = factory.literal;\n parser._variable = factory.variable;\n parser._quad = factory.quad;\n parser.DEFAULTGRAPH = factory.defaultGraph();\n\n // Set common named nodes\n parser.RDF_FIRST = namedNode(namespaces.rdf.first);\n parser.RDF_REST = namedNode(namespaces.rdf.rest);\n parser.RDF_NIL = namedNode(namespaces.rdf.nil);\n parser.N3_FORALL = namedNode(namespaces.r.forAll);\n parser.N3_FORSOME = namedNode(namespaces.r.forSome);\n parser.ABBREVIATIONS = {\n 'a': namedNode(namespaces.rdf.type),\n '=': namedNode(namespaces.owl.sameAs),\n '>': namedNode(namespaces.log.implies),\n };\n parser.QUANTIFIERS_GRAPH = namedNode('urn:n3:quantifiers');\n}\ninitDataFactory(N3Parser.prototype, N3DataFactory);\n","// **N3Writer** writes N3 documents.\nimport namespaces from './IRIs';\nimport N3DataFactory from './N3DataFactory';\n\nconst DEFAULTGRAPH = N3DataFactory.defaultGraph();\n\nconst { rdf, xsd } = namespaces;\n\n// Characters in literals that require escaping\nvar escape = /[\"\\\\\\t\\n\\r\\b\\f\\u0000-\\u0019\\ud800-\\udbff]/,\n escapeAll = /[\"\\\\\\t\\n\\r\\b\\f\\u0000-\\u0019]|[\\ud800-\\udbff][\\udc00-\\udfff]/g,\n escapedCharacters = {\n '\\\\': '\\\\\\\\', '\"': '\\\\\"', '\\t': '\\\\t',\n '\\n': '\\\\n', '\\r': '\\\\r', '\\b': '\\\\b', '\\f': '\\\\f',\n };\n\n// ## Placeholder class to represent already pretty-printed terms\nclass SerializedTerm extends N3DataFactory.internal.Term {\n // Pretty-printed nodes are not equal to any other node\n // (e.g., [] does not equal [])\n equals() {\n return false;\n }\n}\n\n// ## Constructor\nexport default class N3Writer {\n constructor(outputStream, options) {\n // ### `_prefixRegex` matches a prefixed name or IRI that begins with one of the added prefixes\n this._prefixRegex = /$0^/;\n\n // Shift arguments if the first argument is not a stream\n if (outputStream && typeof outputStream.write !== 'function')\n options = outputStream, outputStream = null;\n options = options || {};\n this._lists = options.lists;\n\n // If no output stream given, send the output as string through the end callback\n if (!outputStream) {\n var output = '';\n this._outputStream = {\n write(chunk, encoding, done) { output += chunk; done && done(); },\n end: function (done) { done && done(null, output); },\n };\n this._endStream = true;\n }\n else {\n this._outputStream = outputStream;\n this._endStream = options.end === undefined ? true : !!options.end;\n }\n\n // Initialize writer, depending on the format\n this._subject = null;\n if (!(/triple|quad/i).test(options.format)) {\n this._graph = DEFAULTGRAPH;\n this._prefixIRIs = Object.create(null);\n options.prefixes && this.addPrefixes(options.prefixes);\n }\n else {\n this._writeQuad = this._writeQuadLine;\n }\n }\n\n // ## Private methods\n\n // ### Whether the current graph is the default graph\n get _inDefaultGraph() {\n return DEFAULTGRAPH.equals(this._graph);\n }\n\n // ### `_write` writes the argument to the output stream\n _write(string, callback) {\n this._outputStream.write(string, 'utf8', callback);\n }\n\n // ### `_writeQuad` writes the quad to the output stream\n _writeQuad(subject, predicate, object, graph, done) {\n try {\n // Write the graph's label if it has changed\n if (!graph.equals(this._graph)) {\n // Close the previous graph and start the new one\n this._write((this._subject === null ? '' : (this._inDefaultGraph ? '.\\n' : '\\n}\\n')) +\n (DEFAULTGRAPH.equals(graph) ? '' : this._encodeIriOrBlank(graph) + ' {\\n'));\n this._graph = graph;\n this._subject = null;\n }\n // Don't repeat the subject if it's the same\n if (subject.equals(this._subject)) {\n // Don't repeat the predicate if it's the same\n if (predicate.equals(this._predicate))\n this._write(', ' + this._encodeObject(object), done);\n // Same subject, different predicate\n else\n this._write(';\\n ' +\n this._encodePredicate(this._predicate = predicate) + ' ' +\n this._encodeObject(object), done);\n }\n // Different subject; write the whole quad\n else\n this._write((this._subject === null ? '' : '.\\n') +\n this._encodeIriOrBlank(this._subject = subject) + ' ' +\n this._encodePredicate(this._predicate = predicate) + ' ' +\n this._encodeObject(object), done);\n }\n catch (error) { done && done(error); }\n }\n\n // ### `_writeQuadLine` writes the quad to the output stream as a single line\n _writeQuadLine(subject, predicate, object, graph, done) {\n // Write the quad without prefixes\n delete this._prefixMatch;\n this._write(this.quadToString(subject, predicate, object, graph), done);\n }\n\n // ### `quadToString` serializes a quad as a string\n quadToString(subject, predicate, object, graph) {\n return this._encodeIriOrBlank(subject) + ' ' +\n this._encodeIriOrBlank(predicate) + ' ' +\n this._encodeObject(object) +\n (graph && graph.value ? ' ' + this._encodeIriOrBlank(graph) + ' .\\n' : ' .\\n');\n }\n\n // ### `quadsToString` serializes an array of quads as a string\n quadsToString(quads) {\n return quads.map(function (t) {\n return this.quadToString(t.subject, t.predicate, t.object, t.graph);\n }, this).join('');\n }\n\n // ### `_encodeIriOrBlank` represents an IRI or blank node\n _encodeIriOrBlank(entity) {\n // A blank node or list is represented as-is\n if (entity.termType !== 'NamedNode') {\n // If it is a list head, pretty-print it\n if (this._lists && (entity.value in this._lists))\n entity = this.list(this._lists[entity.value]);\n return 'id' in entity ? entity.id : '_:' + entity.value;\n }\n // Escape special characters\n var iri = entity.value;\n if (escape.test(iri))\n iri = iri.replace(escapeAll, characterReplacer);\n // Try to represent the IRI as prefixed name\n var prefixMatch = this._prefixRegex.exec(iri);\n return !prefixMatch ? '<' + iri + '>' :\n (!prefixMatch[1] ? iri : this._prefixIRIs[prefixMatch[1]] + prefixMatch[2]);\n }\n\n // ### `_encodeLiteral` represents a literal\n _encodeLiteral(literal) {\n // Escape special characters\n var value = literal.value;\n if (escape.test(value))\n value = value.replace(escapeAll, characterReplacer);\n // Write the literal, possibly with type or language\n if (literal.language)\n return '\"' + value + '\"@' + literal.language;\n else if (literal.datatype.value !== xsd.string)\n return '\"' + value + '\"^^' + this._encodeIriOrBlank(literal.datatype);\n else\n return '\"' + value + '\"';\n }\n\n // ### `_encodePredicate` represents a predicate\n _encodePredicate(predicate) {\n return predicate.value === rdf.type ? 'a' : this._encodeIriOrBlank(predicate);\n }\n\n // ### `_encodeObject` represents an object\n _encodeObject(object) {\n return object.termType === 'Literal' ? this._encodeLiteral(object) : this._encodeIriOrBlank(object);\n }\n\n // ### `_blockedWrite` replaces `_write` after the writer has been closed\n _blockedWrite() {\n throw new Error('Cannot write because the writer has been closed.');\n }\n\n // ### `addQuad` adds the quad to the output stream\n addQuad(subject, predicate, object, graph, done) {\n // The quad was given as an object, so shift parameters\n if (object === undefined)\n this._writeQuad(subject.subject, subject.predicate, subject.object, subject.graph, predicate);\n // The optional `graph` parameter was not provided\n else if (typeof graph === 'function')\n this._writeQuad(subject, predicate, object, DEFAULTGRAPH, graph);\n // The `graph` parameter was provided\n else\n this._writeQuad(subject, predicate, object, graph || DEFAULTGRAPH, done);\n }\n\n // ### `addQuads` adds the quads to the output stream\n addQuads(quads) {\n for (var i = 0; i < quads.length; i++)\n this.addQuad(quads[i]);\n }\n\n // ### `addPrefix` adds the prefix to the output stream\n addPrefix(prefix, iri, done) {\n var prefixes = {};\n prefixes[prefix] = iri;\n this.addPrefixes(prefixes, done);\n }\n\n // ### `addPrefixes` adds the prefixes to the output stream\n addPrefixes(prefixes, done) {\n var prefixIRIs = this._prefixIRIs, hasPrefixes = false;\n for (var prefix in prefixes) {\n var iri = prefixes[prefix];\n if (typeof iri !== 'string')\n iri = iri.value;\n hasPrefixes = true;\n // Finish a possible pending quad\n if (this._subject !== null) {\n this._write(this._inDefaultGraph ? '.\\n' : '\\n}\\n');\n this._subject = null, this._graph = '';\n }\n // Store and write the prefix\n prefixIRIs[iri] = (prefix += ':');\n this._write('@prefix ' + prefix + ' <' + iri + '>.\\n');\n }\n // Recreate the prefix matcher\n if (hasPrefixes) {\n var IRIlist = '', prefixList = '';\n for (var prefixIRI in prefixIRIs) {\n IRIlist += IRIlist ? '|' + prefixIRI : prefixIRI;\n prefixList += (prefixList ? '|' : '') + prefixIRIs[prefixIRI];\n }\n IRIlist = IRIlist.replace(/[\\]\\/\\(\\)\\*\\+\\?\\.\\\\\\$]/g, '\\\\$&');\n this._prefixRegex = new RegExp('^(?:' + prefixList + ')[^\\/]*$|' +\n '^(' + IRIlist + ')([a-zA-Z][\\\\-_a-zA-Z0-9]*)$');\n }\n // End a prefix block with a newline\n this._write(hasPrefixes ? '\\n' : '', done);\n }\n\n // ### `blank` creates a blank node with the given content\n blank(predicate, object) {\n var children = predicate, child, length;\n // Empty blank node\n if (predicate === undefined)\n children = [];\n // Blank node passed as blank(Term(\"predicate\"), Term(\"object\"))\n else if (predicate.termType)\n children = [{ predicate: predicate, object: object }];\n // Blank node passed as blank({ predicate: predicate, object: object })\n else if (!('length' in predicate))\n children = [predicate];\n\n switch (length = children.length) {\n // Generate an empty blank node\n case 0:\n return new SerializedTerm('[]');\n // Generate a non-nested one-triple blank node\n case 1:\n child = children[0];\n if (!(child.object instanceof SerializedTerm))\n return new SerializedTerm('[ ' + this._encodePredicate(child.predicate) + ' ' +\n this._encodeObject(child.object) + ' ]');\n // Generate a multi-triple or nested blank node\n default:\n var contents = '[';\n // Write all triples in order\n for (var i = 0; i < length; i++) {\n child = children[i];\n // Write only the object is the predicate is the same as the previous\n if (child.predicate.equals(predicate))\n contents += ', ' + this._encodeObject(child.object);\n // Otherwise, write the predicate and the object\n else {\n contents += (i ? ';\\n ' : '\\n ') +\n this._encodePredicate(child.predicate) + ' ' +\n this._encodeObject(child.object);\n predicate = child.predicate;\n }\n }\n return new SerializedTerm(contents + '\\n]');\n }\n }\n\n // ### `list` creates a list node with the given content\n list(elements) {\n var length = elements && elements.length || 0, contents = new Array(length);\n for (var i = 0; i < length; i++)\n contents[i] = this._encodeObject(elements[i]);\n return new SerializedTerm('(' + contents.join(' ') + ')');\n }\n\n // ### `end` signals the end of the output stream\n end(done) {\n // Finish a possible pending quad\n if (this._subject !== null) {\n this._write(this._inDefaultGraph ? '.\\n' : '\\n}\\n');\n this._subject = null;\n }\n // Disallow further writing\n this._write = this._blockedWrite;\n\n // Try to end the underlying stream, ensuring done is called exactly one time\n var singleDone = done && function (error, result) { singleDone = null, done(error, result); };\n if (this._endStream) {\n try { return this._outputStream.end(singleDone); }\n catch (error) { /* error closing stream */ }\n }\n singleDone && singleDone();\n }\n}\n\n// Replaces a character by its escaped version\nfunction characterReplacer(character) {\n // Replace a single character by its escaped version\n var result = escapedCharacters[character];\n if (result === undefined) {\n // Replace a single character with its 4-bit unicode escape sequence\n if (character.length === 1) {\n result = character.charCodeAt(0).toString(16);\n result = '\\\\u0000'.substr(0, 6 - result.length) + result;\n }\n // Replace a surrogate pair with its 8-bit unicode escape sequence\n else {\n result = ((character.charCodeAt(0) - 0xD800) * 0x400 +\n character.charCodeAt(1) + 0x2400).toString(16);\n result = '\\\\U00000000'.substr(0, 10 - result.length) + result;\n }\n }\n return result;\n}\n","// **N3Store** objects store N3 quads by graph in memory.\nimport N3DataFactory from './N3DataFactory';\nimport { Readable } from 'stream';\nimport namespaces from './IRIs';\n\nconst { toId, fromId } = N3DataFactory.internal;\n\n// ## Constructor\nexport default class N3Store {\n constructor(quads, options) {\n // The number of quads is initially zero\n this._size = 0;\n // `_graphs` contains subject, predicate, and object indexes per graph\n this._graphs = Object.create(null);\n // `_ids` maps entities such as `http://xmlns.com/foaf/0.1/name` to numbers,\n // saving memory by using only numbers as keys in `_graphs`\n this._id = 0;\n this._ids = Object.create(null);\n this._ids['><'] = 0; // dummy entry, so the first actual key is non-zero\n this._entities = Object.create(null); // inverse of `_ids`\n // `_blankNodeIndex` is the index of the last automatically named blank node\n this._blankNodeIndex = 0;\n\n // Shift parameters if `quads` is not given\n if (!options && quads && !quads[0])\n options = quads, quads = null;\n options = options || {};\n this._factory = options.factory || N3DataFactory;\n\n // Add quads if passed\n if (quads)\n this.addQuads(quads);\n }\n\n // ## Public properties\n\n // ### `size` returns the number of quads in the store\n get size() {\n // Return the quad count if if was cached\n var size = this._size;\n if (size !== null)\n return size;\n\n // Calculate the number of quads by counting to the deepest level\n size = 0;\n var graphs = this._graphs, subjects, subject;\n for (var graphKey in graphs)\n for (var subjectKey in (subjects = graphs[graphKey].subjects))\n for (var predicateKey in (subject = subjects[subjectKey]))\n size += Object.keys(subject[predicateKey]).length;\n return this._size = size;\n }\n\n // ## Private methods\n\n // ### `_addToIndex` adds a quad to a three-layered index.\n // Returns if the index has changed, if the entry did not already exist.\n _addToIndex(index0, key0, key1, key2) {\n // Create layers as necessary\n var index1 = index0[key0] || (index0[key0] = {});\n var index2 = index1[key1] || (index1[key1] = {});\n // Setting the key to _any_ value signals the presence of the quad\n var existed = key2 in index2;\n if (!existed)\n index2[key2] = null;\n return !existed;\n }\n\n // ### `_removeFromIndex` removes a quad from a three-layered index\n _removeFromIndex(index0, key0, key1, key2) {\n // Remove the quad from the index\n var index1 = index0[key0], index2 = index1[key1], key;\n delete index2[key2];\n\n // Remove intermediary index layers if they are empty\n for (key in index2) return;\n delete index1[key1];\n for (key in index1) return;\n delete index0[key0];\n }\n\n // ### `_findInIndex` finds a set of quads in a three-layered index.\n // The index base is `index0` and the keys at each level are `key0`, `key1`, and `key2`.\n // Any of these keys can be undefined, which is interpreted as a wildcard.\n // `name0`, `name1`, and `name2` are the names of the keys at each level,\n // used when reconstructing the resulting quad\n // (for instance: _subject_, _predicate_, and _object_).\n // Finally, `graph` will be the graph of the created quads.\n // If `callback` is given, each result is passed through it\n // and iteration halts when it returns truthy for any quad.\n // If instead `array` is given, each result is added to the array.\n _findInIndex(index0, key0, key1, key2, name0, name1, name2, graph, callback, array) {\n var tmp, index1, index2, varCount = !key0 + !key1 + !key2,\n // depending on the number of variables, keys or reverse index are faster\n entityKeys = varCount > 1 ? Object.keys(this._ids) : this._entities;\n\n // If a key is specified, use only that part of index 0.\n if (key0) (tmp = index0, index0 = {})[key0] = tmp[key0];\n for (var value0 in index0) {\n var entity0 = entityKeys[value0];\n\n if (index1 = index0[value0]) {\n // If a key is specified, use only that part of index 1.\n if (key1) (tmp = index1, index1 = {})[key1] = tmp[key1];\n for (var value1 in index1) {\n var entity1 = entityKeys[value1];\n\n if (index2 = index1[value1]) {\n // If a key is specified, use only that part of index 2, if it exists.\n var values = key2 ? (key2 in index2 ? [key2] : []) : Object.keys(index2);\n // Create quads for all items found in index 2.\n for (var l = 0; l < values.length; l++) {\n var parts = { subject: null, predicate: null, object: null };\n parts[name0] = fromId(entity0, this._factory);\n parts[name1] = fromId(entity1, this._factory);\n parts[name2] = fromId(entityKeys[values[l]], this._factory);\n var quad = this._factory.quad(\n parts.subject, parts.predicate, parts.object, fromId(graph, this._factory));\n if (array)\n array.push(quad);\n else if (callback(quad))\n return true;\n }\n }\n }\n }\n }\n return array;\n }\n\n // ### `_loop` executes the callback on all keys of index 0\n _loop(index0, callback) {\n for (var key0 in index0)\n callback(key0);\n }\n\n // ### `_loopByKey0` executes the callback on all keys of a certain entry in index 0\n _loopByKey0(index0, key0, callback) {\n var index1, key1;\n if (index1 = index0[key0]) {\n for (key1 in index1)\n callback(key1);\n }\n }\n\n // ### `_loopByKey1` executes the callback on given keys of all entries in index 0\n _loopByKey1(index0, key1, callback) {\n var key0, index1;\n for (key0 in index0) {\n index1 = index0[key0];\n if (index1[key1])\n callback(key0);\n }\n }\n\n // ### `_loopBy2Keys` executes the callback on given keys of certain entries in index 2\n _loopBy2Keys(index0, key0, key1, callback) {\n var index1, index2, key2;\n if ((index1 = index0[key0]) && (index2 = index1[key1])) {\n for (key2 in index2)\n callback(key2);\n }\n }\n\n // ### `_countInIndex` counts matching quads in a three-layered index.\n // The index base is `index0` and the keys at each level are `key0`, `key1`, and `key2`.\n // Any of these keys can be undefined, which is interpreted as a wildcard.\n _countInIndex(index0, key0, key1, key2) {\n var count = 0, tmp, index1, index2;\n\n // If a key is specified, count only that part of index 0\n if (key0) (tmp = index0, index0 = {})[key0] = tmp[key0];\n for (var value0 in index0) {\n if (index1 = index0[value0]) {\n // If a key is specified, count only that part of index 1\n if (key1) (tmp = index1, index1 = {})[key1] = tmp[key1];\n for (var value1 in index1) {\n if (index2 = index1[value1]) {\n // If a key is specified, count the quad if it exists\n if (key2) (key2 in index2) && count++;\n // Otherwise, count all quads\n else count += Object.keys(index2).length;\n }\n }\n }\n }\n return count;\n }\n\n // ### `_getGraphs` returns an array with the given graph,\n // or all graphs if the argument is null or undefined.\n _getGraphs(graph) {\n if (!isString(graph))\n return this._graphs;\n var graphs = {};\n graphs[graph] = this._graphs[graph];\n return graphs;\n }\n\n // ### `_uniqueEntities` returns a function that accepts an entity ID\n // and passes the corresponding entity to callback if it hasn't occurred before.\n _uniqueEntities(callback) {\n var uniqueIds = Object.create(null), entities = this._entities;\n return function (id) {\n if (!(id in uniqueIds)) {\n uniqueIds[id] = true;\n callback(fromId(entities[id]));\n }\n };\n }\n\n // ## Public methods\n\n // ### `addQuad` adds a new quad to the store.\n // Returns if the quad index has changed, if the quad did not already exist.\n addQuad(subject, predicate, object, graph) {\n // Shift arguments if a quad object is given instead of components\n if (!predicate)\n graph = subject.graph, object = subject.object,\n predicate = subject.predicate, subject = subject.subject;\n\n // Convert terms to internal string representation\n subject = toId(subject);\n predicate = toId(predicate);\n object = toId(object);\n graph = toId(graph);\n\n // Find the graph that will contain the triple\n var graphItem = this._graphs[graph];\n // Create the graph if it doesn't exist yet\n if (!graphItem) {\n graphItem = this._graphs[graph] = { subjects: {}, predicates: {}, objects: {} };\n // Freezing a graph helps subsequent `add` performance,\n // and properties will never be modified anyway\n Object.freeze(graphItem);\n }\n\n // Since entities can often be long IRIs, we avoid storing them in every index.\n // Instead, we have a separate index that maps entities to numbers,\n // which are then used as keys in the other indexes.\n var ids = this._ids;\n var entities = this._entities;\n subject = ids[subject] || (ids[entities[++this._id] = subject] = this._id);\n predicate = ids[predicate] || (ids[entities[++this._id] = predicate] = this._id);\n object = ids[object] || (ids[entities[++this._id] = object] = this._id);\n\n var changed = this._addToIndex(graphItem.subjects, subject, predicate, object);\n this._addToIndex(graphItem.predicates, predicate, object, subject);\n this._addToIndex(graphItem.objects, object, subject, predicate);\n\n // The cached quad count is now invalid\n this._size = null;\n return changed;\n }\n\n // ### `addQuads` adds multiple quads to the store\n addQuads(quads) {\n for (var i = 0; i < quads.length; i++)\n this.addQuad(quads[i]);\n }\n\n // ### `import` adds a stream of quads to the store\n import(stream) {\n var self = this;\n stream.on('data', function (quad) { self.addQuad(quad); });\n return stream;\n }\n\n // ### `removeQuad` removes a quad from the store if it exists\n removeQuad(subject, predicate, object, graph) {\n // Shift arguments if a quad object is given instead of components\n if (!predicate)\n graph = subject.graph, object = subject.object,\n predicate = subject.predicate, subject = subject.subject;\n\n // Convert terms to internal string representation\n subject = toId(subject);\n predicate = toId(predicate);\n object = toId(object);\n graph = toId(graph);\n\n // Find internal identifiers for all components\n // and verify the quad exists.\n var graphItem, ids = this._ids, graphs = this._graphs, subjects, predicates;\n if (!(subject = ids[subject]) || !(predicate = ids[predicate]) ||\n !(object = ids[object]) || !(graphItem = graphs[graph]) ||\n !(subjects = graphItem.subjects[subject]) ||\n !(predicates = subjects[predicate]) ||\n !(object in predicates))\n return false;\n\n // Remove it from all indexes\n this._removeFromIndex(graphItem.subjects, subject, predicate, object);\n this._removeFromIndex(graphItem.predicates, predicate, object, subject);\n this._removeFromIndex(graphItem.objects, object, subject, predicate);\n if (this._size !== null) this._size--;\n\n // Remove the graph if it is empty\n for (subject in graphItem.subjects) return true;\n delete graphs[graph];\n return true;\n }\n\n // ### `removeQuads` removes multiple quads from the store\n removeQuads(quads) {\n for (var i = 0; i < quads.length; i++)\n this.removeQuad(quads[i]);\n }\n\n // ### `remove` removes a stream of quads from the store\n remove(stream) {\n var self = this;\n stream.on('data', function (quad) { self.removeQuad(quad); });\n return stream;\n }\n\n // ### `removeMatches` removes all matching quads from the store\n // Setting any field to `undefined` or `null` indicates a wildcard.\n removeMatches(subject, predicate, object, graph) {\n return this.remove(this.match(subject, predicate, object, graph));\n }\n\n // ### `deleteGraph` removes all triples with the given graph from the store\n deleteGraph(graph) {\n return this.removeMatches(null, null, null, graph);\n }\n\n // ### `getQuads` returns an array of quads matching a pattern.\n // Setting any field to `undefined` or `null` indicates a wildcard.\n getQuads(subject, predicate, object, graph) {\n // Convert terms to internal string representation\n subject = subject && toId(subject);\n predicate = predicate && toId(predicate);\n object = object && toId(object);\n graph = graph && toId(graph);\n\n var quads = [], graphs = this._getGraphs(graph), content,\n ids = this._ids, subjectId, predicateId, objectId;\n\n // Translate IRIs to internal index keys.\n if (isString(subject) && !(subjectId = ids[subject]) ||\n isString(predicate) && !(predicateId = ids[predicate]) ||\n isString(object) && !(objectId = ids[object]))\n return quads;\n\n for (var graphId in graphs) {\n // Only if the specified graph contains triples, there can be results\n if (content = graphs[graphId]) {\n // Choose the optimal index, based on what fields are present\n if (subjectId) {\n if (objectId)\n // If subject and object are given, the object index will be the fastest\n this._findInIndex(content.objects, objectId, subjectId, predicateId,\n 'object', 'subject', 'predicate', graphId, null, quads);\n else\n // If only subject and possibly predicate are given, the subject index will be the fastest\n this._findInIndex(content.subjects, subjectId, predicateId, null,\n 'subject', 'predicate', 'object', graphId, null, quads);\n }\n else if (predicateId)\n // If only predicate and possibly object are given, the predicate index will be the fastest\n this._findInIndex(content.predicates, predicateId, objectId, null,\n 'predicate', 'object', 'subject', graphId, null, quads);\n else if (objectId)\n // If only object is given, the object index will be the fastest\n this._findInIndex(content.objects, objectId, null, null,\n 'object', 'subject', 'predicate', graphId, null, quads);\n else\n // If nothing is given, iterate subjects and predicates first\n this._findInIndex(content.subjects, null, null, null,\n 'subject', 'predicate', 'object', graphId, null, quads);\n }\n }\n return quads;\n }\n\n // ### `match` returns a stream of quads matching a pattern.\n // Setting any field to `undefined` or `null` indicates a wildcard.\n match(subject, predicate, object, graph) {\n var stream = new Readable({ objectMode: true });\n\n // Initialize stream once it is being read\n stream._read = () => {\n for (var quad of this.getQuads(subject, predicate, object, graph))\n stream.push(quad);\n stream.push(null);\n };\n\n return stream;\n }\n\n // ### `countQuads` returns the number of quads matching a pattern.\n // Setting any field to `undefined` or `null` indicates a wildcard.\n countQuads(subject, predicate, object, graph) {\n // Convert terms to internal string representation\n subject = subject && toId(subject);\n predicate = predicate && toId(predicate);\n object = object && toId(object);\n graph = graph && toId(graph);\n\n var count = 0, graphs = this._getGraphs(graph), content,\n ids = this._ids, subjectId, predicateId, objectId;\n\n // Translate IRIs to internal index keys.\n if (isString(subject) && !(subjectId = ids[subject]) ||\n isString(predicate) && !(predicateId = ids[predicate]) ||\n isString(object) && !(objectId = ids[object]))\n return 0;\n\n for (var graphId in graphs) {\n // Only if the specified graph contains triples, there can be results\n if (content = graphs[graphId]) {\n // Choose the optimal index, based on what fields are present\n if (subject) {\n if (object)\n // If subject and object are given, the object index will be the fastest\n count += this._countInIndex(content.objects, objectId, subjectId, predicateId);\n else\n // If only subject and possibly predicate are given, the subject index will be the fastest\n count += this._countInIndex(content.subjects, subjectId, predicateId, objectId);\n }\n else if (predicate) {\n // If only predicate and possibly object are given, the predicate index will be the fastest\n count += this._countInIndex(content.predicates, predicateId, objectId, subjectId);\n }\n else {\n // If only object is possibly given, the object index will be the fastest\n count += this._countInIndex(content.objects, objectId, subjectId, predicateId);\n }\n }\n }\n return count;\n }\n\n // ### `forEach` executes the callback on all quads.\n // Setting any field to `undefined` or `null` indicates a wildcard.\n forEach(callback, subject, predicate, object, graph) {\n this.some(function (quad) {\n callback(quad);\n return false;\n }, subject, predicate, object, graph);\n }\n\n // ### `every` executes the callback on all quads,\n // and returns `true` if it returns truthy for all them.\n // Setting any field to `undefined` or `null` indicates a wildcard.\n every(callback, subject, predicate, object, graph) {\n var some = false;\n var every = !this.some(function (quad) {\n some = true;\n return !callback(quad);\n }, subject, predicate, object, graph);\n return some && every;\n }\n\n // ### `some` executes the callback on all quads,\n // and returns `true` if it returns truthy for any of them.\n // Setting any field to `undefined` or `null` indicates a wildcard.\n some(callback, subject, predicate, object, graph) {\n // Convert terms to internal string representation\n subject = subject && toId(subject);\n predicate = predicate && toId(predicate);\n object = object && toId(object);\n graph = graph && toId(graph);\n\n var graphs = this._getGraphs(graph), content,\n ids = this._ids, subjectId, predicateId, objectId;\n\n // Translate IRIs to internal index keys.\n if (isString(subject) && !(subjectId = ids[subject]) ||\n isString(predicate) && !(predicateId = ids[predicate]) ||\n isString(object) && !(objectId = ids[object]))\n return false;\n\n for (var graphId in graphs) {\n // Only if the specified graph contains triples, there can be results\n if (content = graphs[graphId]) {\n // Choose the optimal index, based on what fields are present\n if (subjectId) {\n if (objectId) {\n // If subject and object are given, the object index will be the fastest\n if (this._findInIndex(content.objects, objectId, subjectId, predicateId,\n 'object', 'subject', 'predicate', graphId, callback, null))\n return true;\n }\n else\n // If only subject and possibly predicate are given, the subject index will be the fastest\n if (this._findInIndex(content.subjects, subjectId, predicateId, null,\n 'subject', 'predicate', 'object', graphId, callback, null))\n return true;\n }\n else if (predicateId) {\n // If only predicate and possibly object are given, the predicate index will be the fastest\n if (this._findInIndex(content.predicates, predicateId, objectId, null,\n 'predicate', 'object', 'subject', graphId, callback, null)) {\n return true;\n }\n }\n else if (objectId) {\n // If only object is given, the object index will be the fastest\n if (this._findInIndex(content.objects, objectId, null, null,\n 'object', 'subject', 'predicate', graphId, callback, null)) {\n return true;\n }\n }\n else\n // If nothing is given, iterate subjects and predicates first\n if (this._findInIndex(content.subjects, null, null, null,\n 'subject', 'predicate', 'object', graphId, callback, null)) {\n return true;\n }\n }\n }\n return false;\n }\n\n // ### `getSubjects` returns all subjects that match the pattern.\n // Setting any field to `undefined` or `null` indicates a wildcard.\n getSubjects(predicate, object, graph) {\n var results = [];\n this.forSubjects(function (s) { results.push(s); }, predicate, object, graph);\n return results;\n }\n\n // ### `forSubjects` executes the callback on all subjects that match the pattern.\n // Setting any field to `undefined` or `null` indicates a wildcard.\n forSubjects(callback, predicate, object, graph) {\n // Convert terms to internal string representation\n predicate = predicate && toId(predicate);\n object = object && toId(object);\n graph = graph && toId(graph);\n\n var ids = this._ids, graphs = this._getGraphs(graph), content, predicateId, objectId;\n callback = this._uniqueEntities(callback);\n\n // Translate IRIs to internal index keys.\n if (isString(predicate) && !(predicateId = ids[predicate]) ||\n isString(object) && !(objectId = ids[object]))\n return;\n\n for (graph in graphs) {\n // Only if the specified graph contains triples, there can be results\n if (content = graphs[graph]) {\n // Choose optimal index based on which fields are wildcards\n if (predicateId) {\n if (objectId)\n // If predicate and object are given, the POS index is best.\n this._loopBy2Keys(content.predicates, predicateId, objectId, callback);\n else\n // If only predicate is given, the SPO index is best.\n this._loopByKey1(content.subjects, predicateId, callback);\n }\n else if (objectId)\n // If only object is given, the OSP index is best.\n this._loopByKey0(content.objects, objectId, callback);\n else\n // If no params given, iterate all the subjects\n this._loop(content.subjects, callback);\n }\n }\n }\n\n // ### `getPredicates` returns all predicates that match the pattern.\n // Setting any field to `undefined` or `null` indicates a wildcard.\n getPredicates(subject, object, graph) {\n var results = [];\n this.forPredicates(function (p) { results.push(p); }, subject, object, graph);\n return results;\n }\n\n // ### `forPredicates` executes the callback on all predicates that match the pattern.\n // Setting any field to `undefined` or `null` indicates a wildcard.\n forPredicates(callback, subject, object, graph) {\n // Convert terms to internal string representation\n subject = subject && toId(subject);\n object = object && toId(object);\n graph = graph && toId(graph);\n\n var ids = this._ids, graphs = this._getGraphs(graph), content, subjectId, objectId;\n callback = this._uniqueEntities(callback);\n\n // Translate IRIs to internal index keys.\n if (isString(subject) && !(subjectId = ids[subject]) ||\n isString(object) && !(objectId = ids[object]))\n return;\n\n for (graph in graphs) {\n // Only if the specified graph contains triples, there can be results\n if (content = graphs[graph]) {\n // Choose optimal index based on which fields are wildcards\n if (subjectId) {\n if (objectId)\n // If subject and object are given, the OSP index is best.\n this._loopBy2Keys(content.objects, objectId, subjectId, callback);\n else\n // If only subject is given, the SPO index is best.\n this._loopByKey0(content.subjects, subjectId, callback);\n }\n else if (objectId)\n // If only object is given, the POS index is best.\n this._loopByKey1(content.predicates, objectId, callback);\n else\n // If no params given, iterate all the predicates.\n this._loop(content.predicates, callback);\n }\n }\n }\n\n // ### `getObjects` returns all objects that match the pattern.\n // Setting any field to `undefined` or `null` indicates a wildcard.\n getObjects(subject, predicate, graph) {\n var results = [];\n this.forObjects(function (o) { results.push(o); }, subject, predicate, graph);\n return results;\n }\n\n // ### `forObjects` executes the callback on all objects that match the pattern.\n // Setting any field to `undefined` or `null` indicates a wildcard.\n forObjects(callback, subject, predicate, graph) {\n // Convert terms to internal string representation\n subject = subject && toId(subject);\n predicate = predicate && toId(predicate);\n graph = graph && toId(graph);\n\n var ids = this._ids, graphs = this._getGraphs(graph), content, subjectId, predicateId;\n callback = this._uniqueEntities(callback);\n\n // Translate IRIs to internal index keys.\n if (isString(subject) && !(subjectId = ids[subject]) ||\n isString(predicate) && !(predicateId = ids[predicate]))\n return;\n\n for (graph in graphs) {\n // Only if the specified graph contains triples, there can be results\n if (content = graphs[graph]) {\n // Choose optimal index based on which fields are wildcards\n if (subjectId) {\n if (predicateId)\n // If subject and predicate are given, the SPO index is best.\n this._loopBy2Keys(content.subjects, subjectId, predicateId, callback);\n else\n // If only subject is given, the OSP index is best.\n this._loopByKey1(content.objects, subjectId, callback);\n }\n else if (predicateId)\n // If only predicate is given, the POS index is best.\n this._loopByKey0(content.predicates, predicateId, callback);\n else\n // If no params given, iterate all the objects.\n this._loop(content.objects, callback);\n }\n }\n }\n\n // ### `getGraphs` returns all graphs that match the pattern.\n // Setting any field to `undefined` or `null` indicates a wildcard.\n getGraphs(subject, predicate, object) {\n var results = [];\n this.forGraphs(function (g) { results.push(g); }, subject, predicate, object);\n return results;\n }\n\n // ### `forGraphs` executes the callback on all graphs that match the pattern.\n // Setting any field to `undefined` or `null` indicates a wildcard.\n forGraphs(callback, subject, predicate, object) {\n for (var graph in this._graphs) {\n this.some(function (quad) {\n callback(quad.graph);\n return true; // Halt iteration of some()\n }, subject, predicate, object, graph);\n }\n }\n\n // ### `createBlankNode` creates a new blank node, returning its name\n createBlankNode(suggestedName) {\n var name, index;\n // Generate a name based on the suggested name\n if (suggestedName) {\n name = suggestedName = '_:' + suggestedName, index = 1;\n while (this._ids[name])\n name = suggestedName + index++;\n }\n // Generate a generic blank node name\n else {\n do { name = '_:b' + this._blankNodeIndex++; }\n while (this._ids[name]);\n }\n // Add the blank node to the entities, avoiding the generation of duplicates\n this._ids[name] = ++this._id;\n this._entities[this._id] = name;\n return this._factory.blankNode(name.substr(2));\n }\n\n // ### `extractLists` finds and removes all list triples\n // and returns the items per list.\n extractLists({ remove = false, ignoreErrors = false } = {}) {\n var lists = {}; // has scalar keys so could be a simple Object\n var onError = ignoreErrors ? (() => true) :\n ((node, message) => { throw new Error(`${node.value} ${message}`); });\n\n // Traverse each list from its tail\n var tails = this.getQuads(null, namespaces.rdf.rest, namespaces.rdf.nil, null);\n var toRemove = remove ? [...tails] : [];\n tails.forEach(tailQuad => {\n var items = []; // the members found as objects of rdf:first quads\n var malformed = false; // signals whether the current list is malformed\n var head; // the head of the list (_:b1 in above example)\n var headPos; // set to subject or object when head is set\n var graph = tailQuad.graph; // make sure list is in exactly one graph\n\n // Traverse the list from tail to end\n var current = tailQuad.subject;\n while (current && !malformed) {\n var objectQuads = this.getQuads(null, null, current, null);\n var subjectQuads = this.getQuads(current, null, null, null);\n var i, quad, first = null, rest = null, parent = null;\n\n // Find the first and rest of this list node\n for (i = 0; i < subjectQuads.length && !malformed; i++) {\n quad = subjectQuads[i];\n if (!quad.graph.equals(graph))\n malformed = onError(current, 'not confined to single graph');\n else if (head)\n malformed = onError(current, 'has non-list arcs out');\n\n // one rdf:first\n else if (quad.predicate.value === namespaces.rdf.first) {\n if (first)\n malformed = onError(current, 'has multiple rdf:first arcs');\n else\n toRemove.push(first = quad);\n }\n\n // one rdf:rest\n else if (quad.predicate.value === namespaces.rdf.rest) {\n if (rest)\n malformed = onError(current, 'has multiple rdf:rest arcs');\n else\n toRemove.push(rest = quad);\n }\n\n // alien triple\n else if (objectQuads.length)\n malformed = onError(current, 'can\\'t be subject and object');\n else {\n head = quad; // e.g. { (1 2 3) :p :o }\n headPos = 'subject';\n }\n }\n\n // { :s :p (1 2) } arrives here with no head\n // { (1 2) :p :o } arrives here with head set to the list.\n for (i = 0; i < objectQuads.length && !malformed; ++i) {\n quad = objectQuads[i];\n if (head)\n malformed = onError(current, 'can\\'t have coreferences');\n // one rdf:rest\n else if (quad.predicate.value === namespaces.rdf.rest) {\n if (parent)\n malformed = onError(current, 'has incoming rdf:rest arcs');\n else\n parent = quad;\n }\n else {\n head = quad; // e.g. { :s :p (1 2) }\n headPos = 'object';\n }\n }\n\n // Store the list item and continue with parent\n if (!first)\n malformed = onError(current, 'has no list head');\n else\n items.unshift(first.object);\n current = parent && parent.subject;\n }\n\n // Don't remove any quads if the list is malformed\n if (malformed)\n remove = false;\n // Store the list under the value of its head\n else if (head)\n lists[head[headPos].value] = items;\n });\n\n // Remove list quads if requested\n if (remove)\n this.removeQuads(toRemove);\n return lists;\n }\n}\n\n// Determines whether the argument is a string\nfunction isString(s) {\n return typeof s === 'string' || s instanceof String;\n}\n","// **N3StreamParser** parses a text stream into a quad stream.\nimport N3Parser from './N3Parser';\nimport { Transform } from 'stream';\n\n// ## Constructor\nexport default class N3StreamParser extends Transform {\n constructor(options) {\n super({ decodeStrings: true });\n this._readableState.objectMode = true;\n\n // Set up parser with dummy stream to obtain `data` and `end` callbacks\n var self = this, parser = new N3Parser(options), onData, onEnd;\n parser.parse({\n on: function (event, callback) {\n switch (event) {\n case 'data': onData = callback; break;\n case 'end': onEnd = callback; break;\n }\n },\n },\n // Handle quads by pushing them down the pipeline\n function (error, quad) { error && self.emit('error', error) || quad && self.push(quad); },\n // Emit prefixes through the `prefix` event\n function (prefix, uri) { self.emit('prefix', prefix, uri); }\n );\n\n // Implement Transform methods through parser callbacks\n this._transform = function (chunk, encoding, done) { onData(chunk); done(); };\n this._flush = function (done) { onEnd(); done(); };\n }\n\n // ### Parses a stream of strings\n import(stream) {\n var self = this;\n stream.on('data', function (chunk) { self.write(chunk); });\n stream.on('end', function () { self.end(); });\n stream.on('error', function (error) { self.emit('error', error); });\n return this;\n }\n}\n","// **N3StreamWriter** serializes a quad stream into a text stream.\nimport { Transform } from 'stream';\nimport N3Writer from './N3Writer';\n\n// ## Constructor\nexport default class N3StreamWriter extends Transform {\n constructor(options) {\n super({ encoding: 'utf8' });\n this._writableState.objectMode = true;\n\n // Set up writer with a dummy stream object\n var self = this;\n var writer = this._writer = new N3Writer({\n write: function (quad, encoding, callback) { self.push(quad); callback && callback(); },\n end: function (callback) { self.push(null); callback && callback(); },\n }, options);\n\n // Implement Transform methods on top of writer\n this._transform = function (quad, encoding, done) { writer.addQuad(quad, done); };\n this._flush = function (done) { writer.end(done); };\n }\n\n// ### Serializes a stream of quads\n import(stream) {\n var self = this;\n stream.on('data', function (quad) { self.write(quad); });\n stream.on('end', function () { self.end(); });\n stream.on('error', function (error) { self.emit('error', error); });\n stream.on('prefix', function (prefix, iri) { self._writer.addPrefix(prefix, iri); });\n return this;\n }\n}\n","// **N3Util** provides N3 utility functions.\n\nimport N3DataFactory from './N3DataFactory';\n\n// Tests whether the given term represents an IRI\nexport function isNamedNode(term) {\n return !!term && term.termType === 'NamedNode';\n}\n\n// Tests whether the given term represents a blank node\nexport function isBlankNode(term) {\n return !!term && term.termType === 'BlankNode';\n}\n\n// Tests whether the given term represents a literal\nexport function isLiteral(term) {\n return !!term && term.termType === 'Literal';\n}\n\n// Tests whether the given term represents a variable\nexport function isVariable(term) {\n return !!term && term.termType === 'Variable';\n}\n\n// Tests whether the given term represents the default graph\nexport function isDefaultGraph(term) {\n return !!term && term.termType === 'DefaultGraph';\n}\n\n// Tests whether the given quad is in the default graph\nexport function inDefaultGraph(quad) {\n return isDefaultGraph(quad.graph);\n}\n\n// Creates a function that prepends the given IRI to a local name\nexport function prefix(iri, factory) {\n return prefixes({ '': iri }, factory)('');\n}\n\n// Creates a function that allows registering and expanding prefixes\nexport function prefixes(defaultPrefixes, factory) {\n // Add all of the default prefixes\n var prefixes = Object.create(null);\n for (var prefix in defaultPrefixes)\n processPrefix(prefix, defaultPrefixes[prefix]);\n // Set the default factory if none was specified\n factory = factory || N3DataFactory;\n\n // Registers a new prefix (if an IRI was specified)\n // or retrieves a function that expands an existing prefix (if no IRI was specified)\n function processPrefix(prefix, iri) {\n // Create a new prefix if an IRI is specified or the prefix doesn't exist\n if (typeof iri === 'string') {\n // Create a function that expands the prefix\n var cache = Object.create(null);\n prefixes[prefix] = function (local) {\n return cache[local] || (cache[local] = factory.namedNode(iri + local));\n };\n }\n else if (!(prefix in prefixes)) {\n throw new Error('Unknown prefix: ' + prefix);\n }\n return prefixes[prefix];\n }\n return processPrefix;\n}\n","/**\n * Convert array of 16 byte values to UUID string format of the form:\n * XXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXX\n */\nvar byteToHex = [];\n\nfor (var i = 0; i < 256; ++i) {\n byteToHex[i] = (i + 0x100).toString(16).substr(1);\n}\n\nfunction bytesToUuid(buf, offset) {\n var i = offset || 0;\n var bth = byteToHex; // join used to fix memory issue caused by concatenation: https://bugs.chromium.org/p/v8/issues/detail?id=3175#c4\n\n return [bth[buf[i++]], bth[buf[i++]], bth[buf[i++]], bth[buf[i++]], '-', bth[buf[i++]], bth[buf[i++]], '-', bth[buf[i++]], bth[buf[i++]], '-', bth[buf[i++]], bth[buf[i++]], '-', bth[buf[i++]], bth[buf[i++]], bth[buf[i++]], bth[buf[i++]], bth[buf[i++]], bth[buf[i++]]].join('');\n}\n\nexport default bytesToUuid;","// the whatwg-fetch polyfill installs the fetch() function\n// on the global object (window or self)\n//\n// Return that as the export for use in Webpack, Browserify etc.\nrequire('whatwg-fetch');\nmodule.exports = self.fetch.bind(self);\n","/**\n * lodash (Custom Build) \n * Build: `lodash modularize exports=\"npm\" -o ./`\n * Copyright jQuery Foundation and other contributors \n * Released under MIT license \n * Based on Underscore.js 1.8.3 \n * Copyright Jeremy Ashkenas, DocumentCloud and Investigative Reporters & Editors\n */\n\n/** Used as references for various `Number` constants. */\nvar MAX_SAFE_INTEGER = 9007199254740991;\n\n/** `Object#toString` result references. */\nvar argsTag = '[object Arguments]',\n funcTag = '[object Function]',\n genTag = '[object GeneratorFunction]';\n\n/** Used to detect unsigned integer values. */\nvar reIsUint = /^(?:0|[1-9]\\d*)$/;\n\n/**\n * A faster alternative to `Function#apply`, this function invokes `func`\n * with the `this` binding of `thisArg` and the arguments of `args`.\n *\n * @private\n * @param {Function} func The function to invoke.\n * @param {*} thisArg The `this` binding of `func`.\n * @param {Array} args The arguments to invoke `func` with.\n * @returns {*} Returns the result of `func`.\n */\nfunction apply(func, thisArg, args) {\n switch (args.length) {\n case 0: return func.call(thisArg);\n case 1: return func.call(thisArg, args[0]);\n case 2: return func.call(thisArg, args[0], args[1]);\n case 3: return func.call(thisArg, args[0], args[1], args[2]);\n }\n return func.apply(thisArg, args);\n}\n\n/**\n * The base implementation of `_.times` without support for iteratee shorthands\n * or max array length checks.\n *\n * @private\n * @param {number} n The number of times to invoke `iteratee`.\n * @param {Function} iteratee The function invoked per iteration.\n * @returns {Array} Returns the array of results.\n */\nfunction baseTimes(n, iteratee) {\n var index = -1,\n result = Array(n);\n\n while (++index < n) {\n result[index] = iteratee(index);\n }\n return result;\n}\n\n/**\n * Creates a unary function that invokes `func` with its argument transformed.\n *\n * @private\n * @param {Function} func The function to wrap.\n * @param {Function} transform The argument transform.\n * @returns {Function} Returns the new function.\n */\nfunction overArg(func, transform) {\n return function(arg) {\n return func(transform(arg));\n };\n}\n\n/** Used for built-in method references. */\nvar objectProto = Object.prototype;\n\n/** Used to check objects for own properties. */\nvar hasOwnProperty = objectProto.hasOwnProperty;\n\n/**\n * Used to resolve the\n * [`toStringTag`](http://ecma-international.org/ecma-262/7.0/#sec-object.prototype.tostring)\n * of values.\n */\nvar objectToString = objectProto.toString;\n\n/** Built-in value references. */\nvar propertyIsEnumerable = objectProto.propertyIsEnumerable;\n\n/* Built-in method references for those with the same name as other `lodash` methods. */\nvar nativeKeys = overArg(Object.keys, Object),\n nativeMax = Math.max;\n\n/** Detect if properties shadowing those on `Object.prototype` are non-enumerable. */\nvar nonEnumShadows = !propertyIsEnumerable.call({ 'valueOf': 1 }, 'valueOf');\n\n/**\n * Creates an array of the enumerable property names of the array-like `value`.\n *\n * @private\n * @param {*} value The value to query.\n * @param {boolean} inherited Specify returning inherited property names.\n * @returns {Array} Returns the array of property names.\n */\nfunction arrayLikeKeys(value, inherited) {\n // Safari 8.1 makes `arguments.callee` enumerable in strict mode.\n // Safari 9 makes `arguments.length` enumerable in strict mode.\n var result = (isArray(value) || isArguments(value))\n ? baseTimes(value.length, String)\n : [];\n\n var length = result.length,\n skipIndexes = !!length;\n\n for (var key in value) {\n if ((inherited || hasOwnProperty.call(value, key)) &&\n !(skipIndexes && (key == 'length' || isIndex(key, length)))) {\n result.push(key);\n }\n }\n return result;\n}\n\n/**\n * Assigns `value` to `key` of `object` if the existing value is not equivalent\n * using [`SameValueZero`](http://ecma-international.org/ecma-262/7.0/#sec-samevaluezero)\n * for equality comparisons.\n *\n * @private\n * @param {Object} object The object to modify.\n * @param {string} key The key of the property to assign.\n * @param {*} value The value to assign.\n */\nfunction assignValue(object, key, value) {\n var objValue = object[key];\n if (!(hasOwnProperty.call(object, key) && eq(objValue, value)) ||\n (value === undefined && !(key in object))) {\n object[key] = value;\n }\n}\n\n/**\n * The base implementation of `_.keys` which doesn't treat sparse arrays as dense.\n *\n * @private\n * @param {Object} object The object to query.\n * @returns {Array} Returns the array of property names.\n */\nfunction baseKeys(object) {\n if (!isPrototype(object)) {\n return nativeKeys(object);\n }\n var result = [];\n for (var key in Object(object)) {\n if (hasOwnProperty.call(object, key) && key != 'constructor') {\n result.push(key);\n }\n }\n return result;\n}\n\n/**\n * The base implementation of `_.rest` which doesn't validate or coerce arguments.\n *\n * @private\n * @param {Function} func The function to apply a rest parameter to.\n * @param {number} [start=func.length-1] The start position of the rest parameter.\n * @returns {Function} Returns the new function.\n */\nfunction baseRest(func, start) {\n start = nativeMax(start === undefined ? (func.length - 1) : start, 0);\n return function() {\n var args = arguments,\n index = -1,\n length = nativeMax(args.length - start, 0),\n array = Array(length);\n\n while (++index < length) {\n array[index] = args[start + index];\n }\n index = -1;\n var otherArgs = Array(start + 1);\n while (++index < start) {\n otherArgs[index] = args[index];\n }\n otherArgs[start] = array;\n return apply(func, this, otherArgs);\n };\n}\n\n/**\n * Copies properties of `source` to `object`.\n *\n * @private\n * @param {Object} source The object to copy properties from.\n * @param {Array} props The property identifiers to copy.\n * @param {Object} [object={}] The object to copy properties to.\n * @param {Function} [customizer] The function to customize copied values.\n * @returns {Object} Returns `object`.\n */\nfunction copyObject(source, props, object, customizer) {\n object || (object = {});\n\n var index = -1,\n length = props.length;\n\n while (++index < length) {\n var key = props[index];\n\n var newValue = customizer\n ? customizer(object[key], source[key], key, object, source)\n : undefined;\n\n assignValue(object, key, newValue === undefined ? source[key] : newValue);\n }\n return object;\n}\n\n/**\n * Creates a function like `_.assign`.\n *\n * @private\n * @param {Function} assigner The function to assign values.\n * @returns {Function} Returns the new assigner function.\n */\nfunction createAssigner(assigner) {\n return baseRest(function(object, sources) {\n var index = -1,\n length = sources.length,\n customizer = length > 1 ? sources[length - 1] : undefined,\n guard = length > 2 ? sources[2] : undefined;\n\n customizer = (assigner.length > 3 && typeof customizer == 'function')\n ? (length--, customizer)\n : undefined;\n\n if (guard && isIterateeCall(sources[0], sources[1], guard)) {\n customizer = length < 3 ? undefined : customizer;\n length = 1;\n }\n object = Object(object);\n while (++index < length) {\n var source = sources[index];\n if (source) {\n assigner(object, source, index, customizer);\n }\n }\n return object;\n });\n}\n\n/**\n * Checks if `value` is a valid array-like index.\n *\n * @private\n * @param {*} value The value to check.\n * @param {number} [length=MAX_SAFE_INTEGER] The upper bounds of a valid index.\n * @returns {boolean} Returns `true` if `value` is a valid index, else `false`.\n */\nfunction isIndex(value, length) {\n length = length == null ? MAX_SAFE_INTEGER : length;\n return !!length &&\n (typeof value == 'number' || reIsUint.test(value)) &&\n (value > -1 && value % 1 == 0 && value < length);\n}\n\n/**\n * Checks if the given arguments are from an iteratee call.\n *\n * @private\n * @param {*} value The potential iteratee value argument.\n * @param {*} index The potential iteratee index or key argument.\n * @param {*} object The potential iteratee object argument.\n * @returns {boolean} Returns `true` if the arguments are from an iteratee call,\n * else `false`.\n */\nfunction isIterateeCall(value, index, object) {\n if (!isObject(object)) {\n return false;\n }\n var type = typeof index;\n if (type == 'number'\n ? (isArrayLike(object) && isIndex(index, object.length))\n : (type == 'string' && index in object)\n ) {\n return eq(object[index], value);\n }\n return false;\n}\n\n/**\n * Checks if `value` is likely a prototype object.\n *\n * @private\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a prototype, else `false`.\n */\nfunction isPrototype(value) {\n var Ctor = value && value.constructor,\n proto = (typeof Ctor == 'function' && Ctor.prototype) || objectProto;\n\n return value === proto;\n}\n\n/**\n * Performs a\n * [`SameValueZero`](http://ecma-international.org/ecma-262/7.0/#sec-samevaluezero)\n * comparison between two values to determine if they are equivalent.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to compare.\n * @param {*} other The other value to compare.\n * @returns {boolean} Returns `true` if the values are equivalent, else `false`.\n * @example\n *\n * var object = { 'a': 1 };\n * var other = { 'a': 1 };\n *\n * _.eq(object, object);\n * // => true\n *\n * _.eq(object, other);\n * // => false\n *\n * _.eq('a', 'a');\n * // => true\n *\n * _.eq('a', Object('a'));\n * // => false\n *\n * _.eq(NaN, NaN);\n * // => true\n */\nfunction eq(value, other) {\n return value === other || (value !== value && other !== other);\n}\n\n/**\n * Checks if `value` is likely an `arguments` object.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is an `arguments` object,\n * else `false`.\n * @example\n *\n * _.isArguments(function() { return arguments; }());\n * // => true\n *\n * _.isArguments([1, 2, 3]);\n * // => false\n */\nfunction isArguments(value) {\n // Safari 8.1 makes `arguments.callee` enumerable in strict mode.\n return isArrayLikeObject(value) && hasOwnProperty.call(value, 'callee') &&\n (!propertyIsEnumerable.call(value, 'callee') || objectToString.call(value) == argsTag);\n}\n\n/**\n * Checks if `value` is classified as an `Array` object.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is an array, else `false`.\n * @example\n *\n * _.isArray([1, 2, 3]);\n * // => true\n *\n * _.isArray(document.body.children);\n * // => false\n *\n * _.isArray('abc');\n * // => false\n *\n * _.isArray(_.noop);\n * // => false\n */\nvar isArray = Array.isArray;\n\n/**\n * Checks if `value` is array-like. A value is considered array-like if it's\n * not a function and has a `value.length` that's an integer greater than or\n * equal to `0` and less than or equal to `Number.MAX_SAFE_INTEGER`.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is array-like, else `false`.\n * @example\n *\n * _.isArrayLike([1, 2, 3]);\n * // => true\n *\n * _.isArrayLike(document.body.children);\n * // => true\n *\n * _.isArrayLike('abc');\n * // => true\n *\n * _.isArrayLike(_.noop);\n * // => false\n */\nfunction isArrayLike(value) {\n return value != null && isLength(value.length) && !isFunction(value);\n}\n\n/**\n * This method is like `_.isArrayLike` except that it also checks if `value`\n * is an object.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is an array-like object,\n * else `false`.\n * @example\n *\n * _.isArrayLikeObject([1, 2, 3]);\n * // => true\n *\n * _.isArrayLikeObject(document.body.children);\n * // => true\n *\n * _.isArrayLikeObject('abc');\n * // => false\n *\n * _.isArrayLikeObject(_.noop);\n * // => false\n */\nfunction isArrayLikeObject(value) {\n return isObjectLike(value) && isArrayLike(value);\n}\n\n/**\n * Checks if `value` is classified as a `Function` object.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a function, else `false`.\n * @example\n *\n * _.isFunction(_);\n * // => true\n *\n * _.isFunction(/abc/);\n * // => false\n */\nfunction isFunction(value) {\n // The use of `Object#toString` avoids issues with the `typeof` operator\n // in Safari 8-9 which returns 'object' for typed array and other constructors.\n var tag = isObject(value) ? objectToString.call(value) : '';\n return tag == funcTag || tag == genTag;\n}\n\n/**\n * Checks if `value` is a valid array-like length.\n *\n * **Note:** This method is loosely based on\n * [`ToLength`](http://ecma-international.org/ecma-262/7.0/#sec-tolength).\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a valid length, else `false`.\n * @example\n *\n * _.isLength(3);\n * // => true\n *\n * _.isLength(Number.MIN_VALUE);\n * // => false\n *\n * _.isLength(Infinity);\n * // => false\n *\n * _.isLength('3');\n * // => false\n */\nfunction isLength(value) {\n return typeof value == 'number' &&\n value > -1 && value % 1 == 0 && value <= MAX_SAFE_INTEGER;\n}\n\n/**\n * Checks if `value` is the\n * [language type](http://www.ecma-international.org/ecma-262/7.0/#sec-ecmascript-language-types)\n * of `Object`. (e.g. arrays, functions, objects, regexes, `new Number(0)`, and `new String('')`)\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is an object, else `false`.\n * @example\n *\n * _.isObject({});\n * // => true\n *\n * _.isObject([1, 2, 3]);\n * // => true\n *\n * _.isObject(_.noop);\n * // => true\n *\n * _.isObject(null);\n * // => false\n */\nfunction isObject(value) {\n var type = typeof value;\n return !!value && (type == 'object' || type == 'function');\n}\n\n/**\n * Checks if `value` is object-like. A value is object-like if it's not `null`\n * and has a `typeof` result of \"object\".\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is object-like, else `false`.\n * @example\n *\n * _.isObjectLike({});\n * // => true\n *\n * _.isObjectLike([1, 2, 3]);\n * // => true\n *\n * _.isObjectLike(_.noop);\n * // => false\n *\n * _.isObjectLike(null);\n * // => false\n */\nfunction isObjectLike(value) {\n return !!value && typeof value == 'object';\n}\n\n/**\n * Assigns own enumerable string keyed properties of source objects to the\n * destination object. Source objects are applied from left to right.\n * Subsequent sources overwrite property assignments of previous sources.\n *\n * **Note:** This method mutates `object` and is loosely based on\n * [`Object.assign`](https://mdn.io/Object/assign).\n *\n * @static\n * @memberOf _\n * @since 0.10.0\n * @category Object\n * @param {Object} object The destination object.\n * @param {...Object} [sources] The source objects.\n * @returns {Object} Returns `object`.\n * @see _.assignIn\n * @example\n *\n * function Foo() {\n * this.a = 1;\n * }\n *\n * function Bar() {\n * this.c = 3;\n * }\n *\n * Foo.prototype.b = 2;\n * Bar.prototype.d = 4;\n *\n * _.assign({ 'a': 0 }, new Foo, new Bar);\n * // => { 'a': 1, 'c': 3 }\n */\nvar assign = createAssigner(function(object, source) {\n if (nonEnumShadows || isPrototype(source) || isArrayLike(source)) {\n copyObject(source, keys(source), object);\n return;\n }\n for (var key in source) {\n if (hasOwnProperty.call(source, key)) {\n assignValue(object, key, source[key]);\n }\n }\n});\n\n/**\n * Creates an array of the own enumerable property names of `object`.\n *\n * **Note:** Non-object values are coerced to objects. See the\n * [ES spec](http://ecma-international.org/ecma-262/7.0/#sec-object.keys)\n * for more details.\n *\n * @static\n * @since 0.1.0\n * @memberOf _\n * @category Object\n * @param {Object} object The object to query.\n * @returns {Array} Returns the array of property names.\n * @example\n *\n * function Foo() {\n * this.a = 1;\n * this.b = 2;\n * }\n *\n * Foo.prototype.c = 3;\n *\n * _.keys(new Foo);\n * // => ['a', 'b'] (iteration order is not guaranteed)\n *\n * _.keys('hi');\n * // => ['0', '1']\n */\nfunction keys(object) {\n return isArrayLike(object) ? arrayLikeKeys(object) : baseKeys(object);\n}\n\nmodule.exports = assign;\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'use strict';\n\nvar R = typeof Reflect === 'object' ? Reflect : null\nvar ReflectApply = R && typeof R.apply === 'function'\n ? R.apply\n : function ReflectApply(target, receiver, args) {\n return Function.prototype.apply.call(target, receiver, args);\n }\n\nvar ReflectOwnKeys\nif (R && typeof R.ownKeys === 'function') {\n ReflectOwnKeys = R.ownKeys\n} else if (Object.getOwnPropertySymbols) {\n ReflectOwnKeys = function ReflectOwnKeys(target) {\n return Object.getOwnPropertyNames(target)\n .concat(Object.getOwnPropertySymbols(target));\n };\n} else {\n ReflectOwnKeys = function ReflectOwnKeys(target) {\n return Object.getOwnPropertyNames(target);\n };\n}\n\nfunction ProcessEmitWarning(warning) {\n if (console && console.warn) console.warn(warning);\n}\n\nvar NumberIsNaN = Number.isNaN || function NumberIsNaN(value) {\n return value !== value;\n}\n\nfunction EventEmitter() {\n EventEmitter.init.call(this);\n}\nmodule.exports = EventEmitter;\n\n// Backwards-compat with node 0.10.x\nEventEmitter.EventEmitter = EventEmitter;\n\nEventEmitter.prototype._events = undefined;\nEventEmitter.prototype._eventsCount = 0;\nEventEmitter.prototype._maxListeners = undefined;\n\n// By default EventEmitters will print a warning if more than 10 listeners are\n// added to it. This is a useful default which helps finding memory leaks.\nvar defaultMaxListeners = 10;\n\nfunction checkListener(listener) {\n if (typeof listener !== 'function') {\n throw new TypeError('The \"listener\" argument must be of type Function. Received type ' + typeof listener);\n }\n}\n\nObject.defineProperty(EventEmitter, 'defaultMaxListeners', {\n enumerable: true,\n get: function() {\n return defaultMaxListeners;\n },\n set: function(arg) {\n if (typeof arg !== 'number' || arg < 0 || NumberIsNaN(arg)) {\n throw new RangeError('The value of \"defaultMaxListeners\" is out of range. It must be a non-negative number. Received ' + arg + '.');\n }\n defaultMaxListeners = arg;\n }\n});\n\nEventEmitter.init = function() {\n\n if (this._events === undefined ||\n this._events === Object.getPrototypeOf(this)._events) {\n this._events = Object.create(null);\n this._eventsCount = 0;\n }\n\n this._maxListeners = this._maxListeners || undefined;\n};\n\n// Obviously not all Emitters should be limited to 10. This function allows\n// that to be increased. Set to zero for unlimited.\nEventEmitter.prototype.setMaxListeners = function setMaxListeners(n) {\n if (typeof n !== 'number' || n < 0 || NumberIsNaN(n)) {\n throw new RangeError('The value of \"n\" is out of range. It must be a non-negative number. Received ' + n + '.');\n }\n this._maxListeners = n;\n return this;\n};\n\nfunction _getMaxListeners(that) {\n if (that._maxListeners === undefined)\n return EventEmitter.defaultMaxListeners;\n return that._maxListeners;\n}\n\nEventEmitter.prototype.getMaxListeners = function getMaxListeners() {\n return _getMaxListeners(this);\n};\n\nEventEmitter.prototype.emit = function emit(type) {\n var args = [];\n for (var i = 1; i < arguments.length; i++) args.push(arguments[i]);\n var doError = (type === 'error');\n\n var events = this._events;\n if (events !== undefined)\n doError = (doError && events.error === undefined);\n else if (!doError)\n return false;\n\n // If there is no 'error' event listener then throw.\n if (doError) {\n var er;\n if (args.length > 0)\n er = args[0];\n if (er instanceof Error) {\n // Note: The comments on the `throw` lines are intentional, they show\n // up in Node's output if this results in an unhandled exception.\n throw er; // Unhandled 'error' event\n }\n // At least give some kind of context to the user\n var err = new Error('Unhandled error.' + (er ? ' (' + er.message + ')' : ''));\n err.context = er;\n throw err; // Unhandled 'error' event\n }\n\n var handler = events[type];\n\n if (handler === undefined)\n return false;\n\n if (typeof handler === 'function') {\n ReflectApply(handler, this, args);\n } else {\n var len = handler.length;\n var listeners = arrayClone(handler, len);\n for (var i = 0; i < len; ++i)\n ReflectApply(listeners[i], this, args);\n }\n\n return true;\n};\n\nfunction _addListener(target, type, listener, prepend) {\n var m;\n var events;\n var existing;\n\n checkListener(listener);\n\n events = target._events;\n if (events === undefined) {\n events = target._events = Object.create(null);\n target._eventsCount = 0;\n } else {\n // To avoid recursion in the case that type === \"newListener\"! Before\n // adding it to the listeners, first emit \"newListener\".\n if (events.newListener !== undefined) {\n target.emit('newListener', type,\n listener.listener ? listener.listener : listener);\n\n // Re-assign `events` because a newListener handler could have caused the\n // this._events to be assigned to a new object\n events = target._events;\n }\n existing = events[type];\n }\n\n if (existing === undefined) {\n // Optimize the case of one listener. Don't need the extra array object.\n existing = events[type] = listener;\n ++target._eventsCount;\n } else {\n if (typeof existing === 'function') {\n // Adding the second element, need to change to array.\n existing = events[type] =\n prepend ? [listener, existing] : [existing, listener];\n // If we've already got an array, just append.\n } else if (prepend) {\n existing.unshift(listener);\n } else {\n existing.push(listener);\n }\n\n // Check for listener leak\n m = _getMaxListeners(target);\n if (m > 0 && existing.length > m && !existing.warned) {\n existing.warned = true;\n // No error code for this since it is a Warning\n // eslint-disable-next-line no-restricted-syntax\n var w = new Error('Possible EventEmitter memory leak detected. ' +\n existing.length + ' ' + String(type) + ' listeners ' +\n 'added. Use emitter.setMaxListeners() to ' +\n 'increase limit');\n w.name = 'MaxListenersExceededWarning';\n w.emitter = target;\n w.type = type;\n w.count = existing.length;\n ProcessEmitWarning(w);\n }\n }\n\n return target;\n}\n\nEventEmitter.prototype.addListener = function addListener(type, listener) {\n return _addListener(this, type, listener, false);\n};\n\nEventEmitter.prototype.on = EventEmitter.prototype.addListener;\n\nEventEmitter.prototype.prependListener =\n function prependListener(type, listener) {\n return _addListener(this, type, listener, true);\n };\n\nfunction onceWrapper() {\n if (!this.fired) {\n this.target.removeListener(this.type, this.wrapFn);\n this.fired = true;\n if (arguments.length === 0)\n return this.listener.call(this.target);\n return this.listener.apply(this.target, arguments);\n }\n}\n\nfunction _onceWrap(target, type, listener) {\n var state = { fired: false, wrapFn: undefined, target: target, type: type, listener: listener };\n var wrapped = onceWrapper.bind(state);\n wrapped.listener = listener;\n state.wrapFn = wrapped;\n return wrapped;\n}\n\nEventEmitter.prototype.once = function once(type, listener) {\n checkListener(listener);\n this.on(type, _onceWrap(this, type, listener));\n return this;\n};\n\nEventEmitter.prototype.prependOnceListener =\n function prependOnceListener(type, listener) {\n checkListener(listener);\n this.prependListener(type, _onceWrap(this, type, listener));\n return this;\n };\n\n// Emits a 'removeListener' event if and only if the listener was removed.\nEventEmitter.prototype.removeListener =\n function removeListener(type, listener) {\n var list, events, position, i, originalListener;\n\n checkListener(listener);\n\n events = this._events;\n if (events === undefined)\n return this;\n\n list = events[type];\n if (list === undefined)\n return this;\n\n if (list === listener || list.listener === listener) {\n if (--this._eventsCount === 0)\n this._events = Object.create(null);\n else {\n delete events[type];\n if (events.removeListener)\n this.emit('removeListener', type, list.listener || listener);\n }\n } else if (typeof list !== 'function') {\n position = -1;\n\n for (i = list.length - 1; i >= 0; i--) {\n if (list[i] === listener || list[i].listener === listener) {\n originalListener = list[i].listener;\n position = i;\n break;\n }\n }\n\n if (position < 0)\n return this;\n\n if (position === 0)\n list.shift();\n else {\n spliceOne(list, position);\n }\n\n if (list.length === 1)\n events[type] = list[0];\n\n if (events.removeListener !== undefined)\n this.emit('removeListener', type, originalListener || listener);\n }\n\n return this;\n };\n\nEventEmitter.prototype.off = EventEmitter.prototype.removeListener;\n\nEventEmitter.prototype.removeAllListeners =\n function removeAllListeners(type) {\n var listeners, events, i;\n\n events = this._events;\n if (events === undefined)\n return this;\n\n // not listening for removeListener, no need to emit\n if (events.removeListener === undefined) {\n if (arguments.length === 0) {\n this._events = Object.create(null);\n this._eventsCount = 0;\n } else if (events[type] !== undefined) {\n if (--this._eventsCount === 0)\n this._events = Object.create(null);\n else\n delete events[type];\n }\n return this;\n }\n\n // emit removeListener for all listeners on all events\n if (arguments.length === 0) {\n var keys = Object.keys(events);\n var key;\n for (i = 0; i < keys.length; ++i) {\n key = keys[i];\n if (key === 'removeListener') continue;\n this.removeAllListeners(key);\n }\n this.removeAllListeners('removeListener');\n this._events = Object.create(null);\n this._eventsCount = 0;\n return this;\n }\n\n listeners = events[type];\n\n if (typeof listeners === 'function') {\n this.removeListener(type, listeners);\n } else if (listeners !== undefined) {\n // LIFO order\n for (i = listeners.length - 1; i >= 0; i--) {\n this.removeListener(type, listeners[i]);\n }\n }\n\n return this;\n };\n\nfunction _listeners(target, type, unwrap) {\n var events = target._events;\n\n if (events === undefined)\n return [];\n\n var evlistener = events[type];\n if (evlistener === undefined)\n return [];\n\n if (typeof evlistener === 'function')\n return unwrap ? [evlistener.listener || evlistener] : [evlistener];\n\n return unwrap ?\n unwrapListeners(evlistener) : arrayClone(evlistener, evlistener.length);\n}\n\nEventEmitter.prototype.listeners = function listeners(type) {\n return _listeners(this, type, true);\n};\n\nEventEmitter.prototype.rawListeners = function rawListeners(type) {\n return _listeners(this, type, false);\n};\n\nEventEmitter.listenerCount = function(emitter, type) {\n if (typeof emitter.listenerCount === 'function') {\n return emitter.listenerCount(type);\n } else {\n return listenerCount.call(emitter, type);\n }\n};\n\nEventEmitter.prototype.listenerCount = listenerCount;\nfunction listenerCount(type) {\n var events = this._events;\n\n if (events !== undefined) {\n var evlistener = events[type];\n\n if (typeof evlistener === 'function') {\n return 1;\n } else if (evlistener !== undefined) {\n return evlistener.length;\n }\n }\n\n return 0;\n}\n\nEventEmitter.prototype.eventNames = function eventNames() {\n return this._eventsCount > 0 ? ReflectOwnKeys(this._events) : [];\n};\n\nfunction arrayClone(arr, n) {\n var copy = new Array(n);\n for (var i = 0; i < n; ++i)\n copy[i] = arr[i];\n return copy;\n}\n\nfunction spliceOne(list, index) {\n for (; index + 1 < list.length; index++)\n list[index] = list[index + 1];\n list.pop();\n}\n\nfunction unwrapListeners(arr) {\n var ret = new Array(arr.length);\n for (var i = 0; i < ret.length; ++i) {\n ret[i] = arr[i].listener || arr[i];\n }\n return ret;\n}\n","\"use strict\";\nfunction __export(m) {\n for (var p in m) if (!exports.hasOwnProperty(p)) exports[p] = m[p];\n}\nObject.defineProperty(exports, \"__esModule\", { value: true });\n__export(require(\"./lib/ActorRdfParse\"));\n__export(require(\"./lib/ActorRdfParseFixedMediaTypes\"));\n//# sourceMappingURL=index.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nvar domelementtype_1 = require(\"domelementtype\");\nfunction isTag(node) {\n return domelementtype_1.isTag(node);\n}\nexports.isTag = isTag;\nfunction isCDATA(node) {\n return node.type === \"cdata\" /* CDATA */;\n}\nexports.isCDATA = isCDATA;\nfunction isText(node) {\n return node.type === \"text\" /* Text */;\n}\nexports.isText = isText;\nfunction isComment(node) {\n return node.type === \"comment\" /* Comment */;\n}\nexports.isComment = isComment;\nfunction hasChildren(node) {\n return Object.prototype.hasOwnProperty.call(node, \"children\");\n}\nexports.hasChildren = hasChildren;\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nvar AsyncEvaluator_1 = require(\"./lib/evaluators/AsyncEvaluator\");\nexports.AsyncEvaluator = AsyncEvaluator_1.AsyncEvaluator;\nvar SyncEvaluator_1 = require(\"./lib/evaluators/SyncEvaluator\");\nexports.SyncEvaluator = SyncEvaluator_1.SyncEvaluator;\nvar AggregateEvaluator_1 = require(\"./lib/evaluators/AggregateEvaluator\");\nexports.AggregateEvaluator = AggregateEvaluator_1.AggregateEvaluator;\nvar Errors_1 = require(\"./lib/util/Errors\");\nexports.ExpressionError = Errors_1.ExpressionError;\nexports.isExpressionError = Errors_1.isExpressionError;\n//# sourceMappingURL=index.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\n/**\n * An error that has a certain error code.\n *\n * The error code can be any string.\n * All standardized error codes are listed in {@link ERROR_CODES}.\n */\nclass ErrorCoded extends Error {\n /* istanbul ignore next */\n constructor(message, code) {\n super(message);\n this.code = code;\n }\n}\nexports.ErrorCoded = ErrorCoded;\n/**\n * All standardized JSON-LD error codes.\n * @see https://w3c.github.io/json-ld-api/#dom-jsonlderrorcode\n */\n// tslint:disable:object-literal-sort-keys\nvar ERROR_CODES;\n(function (ERROR_CODES) {\n ERROR_CODES[\"COLLIDING_KEYWORDS\"] = \"colliding keywords\";\n ERROR_CODES[\"CONFLICTING_INDEXES\"] = \"conflicting indexes\";\n ERROR_CODES[\"CYCLIC_IRI_MAPPING\"] = \"cyclic IRI mapping\";\n ERROR_CODES[\"INVALID_ID_VALUE\"] = \"invalid @id value\";\n ERROR_CODES[\"INVALID_INDEX_VALUE\"] = \"invalid @index value\";\n ERROR_CODES[\"INVALID_NEST_VALUE\"] = \"invalid @nest value\";\n ERROR_CODES[\"INVALID_PREFIX_VALUE\"] = \"invalid @prefix value\";\n ERROR_CODES[\"INVALID_PROPAGATE_VALUE\"] = \"invalid @propagate value\";\n ERROR_CODES[\"INVALID_REVERSE_VALUE\"] = \"invalid @reverse value\";\n ERROR_CODES[\"INVALID_IMPORT_VALUE\"] = \"invalid @import value\";\n ERROR_CODES[\"INVALID_VERSION_VALUE\"] = \"invalid @version value\";\n ERROR_CODES[\"INVALID_BASE_IRI\"] = \"invalid base IRI\";\n ERROR_CODES[\"INVALID_CONTAINER_MAPPING\"] = \"invalid container mapping\";\n ERROR_CODES[\"INVALID_CONTEXT_ENTRY\"] = \"invalid context entry\";\n ERROR_CODES[\"INVALID_CONTEXT_NULLIFICATION\"] = \"invalid context nullification\";\n ERROR_CODES[\"INVALID_DEFAULT_LANGUAGE\"] = \"invalid default language\";\n ERROR_CODES[\"INVALID_INCLUDED_VALUE\"] = \"invalid @included value\";\n ERROR_CODES[\"INVALID_IRI_MAPPING\"] = \"invalid IRI mapping\";\n ERROR_CODES[\"INVALID_JSON_LITERAL\"] = \"invalid JSON literal\";\n ERROR_CODES[\"INVALID_KEYWORD_ALIAS\"] = \"invalid keyword alias\";\n ERROR_CODES[\"INVALID_LANGUAGE_MAP_VALUE\"] = \"invalid language map value\";\n ERROR_CODES[\"INVALID_LANGUAGE_MAPPING\"] = \"invalid language mapping\";\n ERROR_CODES[\"INVALID_LANGUAGE_TAGGED_STRING\"] = \"invalid language-tagged string\";\n ERROR_CODES[\"INVALID_LANGUAGE_TAGGED_VALUE\"] = \"invalid language-tagged value\";\n ERROR_CODES[\"INVALID_LOCAL_CONTEXT\"] = \"invalid local context\";\n ERROR_CODES[\"INVALID_REMOTE_CONTEXT\"] = \"invalid remote context\";\n ERROR_CODES[\"INVALID_REVERSE_PROPERTY\"] = \"invalid reverse property\";\n ERROR_CODES[\"INVALID_REVERSE_PROPERTY_MAP\"] = \"invalid reverse property map\";\n ERROR_CODES[\"INVALID_REVERSE_PROPERTY_VALUE\"] = \"invalid reverse property value\";\n ERROR_CODES[\"INVALID_SCOPED_CONTEXT\"] = \"invalid scoped context\";\n ERROR_CODES[\"INVALID_SCRIPT_ELEMENT\"] = \"invalid script element\";\n ERROR_CODES[\"INVALID_SET_OR_LIST_OBJECT\"] = \"invalid set or list object\";\n ERROR_CODES[\"INVALID_TERM_DEFINITION\"] = \"invalid term definition\";\n ERROR_CODES[\"INVALID_TYPE_MAPPING\"] = \"invalid type mapping\";\n ERROR_CODES[\"INVALID_TYPE_VALUE\"] = \"invalid type value\";\n ERROR_CODES[\"INVALID_TYPED_VALUE\"] = \"invalid typed value\";\n ERROR_CODES[\"INVALID_VALUE_OBJECT\"] = \"invalid value object\";\n ERROR_CODES[\"INVALID_VALUE_OBJECT_VALUE\"] = \"invalid value object value\";\n ERROR_CODES[\"INVALID_VOCAB_MAPPING\"] = \"invalid vocab mapping\";\n ERROR_CODES[\"IRI_CONFUSED_WITH_PREFIX\"] = \"IRI confused with prefix\";\n ERROR_CODES[\"KEYWORD_REDEFINITION\"] = \"keyword redefinition\";\n ERROR_CODES[\"LOADING_DOCUMENT_FAILED\"] = \"loading document failed\";\n ERROR_CODES[\"LOADING_REMOTE_CONTEXT_FAILED\"] = \"loading remote context failed\";\n ERROR_CODES[\"MULTIPLE_CONTEXT_LINK_HEADERS\"] = \"multiple context link headers\";\n ERROR_CODES[\"PROCESSING_MODE_CONFLICT\"] = \"processing mode conflict\";\n ERROR_CODES[\"PROTECTED_TERM_REDEFINITION\"] = \"protected term redefinition\";\n ERROR_CODES[\"CONTEXT_OVERFLOW\"] = \"context overflow\";\n ERROR_CODES[\"INVALID_BASE_DIRECTION\"] = \"invalid base direction\";\n ERROR_CODES[\"RECURSIVE_CONTEXT_INCLUSION\"] = \"recursive context inclusion\";\n ERROR_CODES[\"INVALID_STREAMING_KEY_ORDER\"] = \"invalid streaming key order\";\n})(ERROR_CODES = exports.ERROR_CODES || (exports.ERROR_CODES = {}));\n//# sourceMappingURL=ErrorCoded.js.map","// 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'use strict';\n\n/**/\n\nvar Buffer = require('safe-buffer').Buffer;\n/**/\n\nvar isEncoding = Buffer.isEncoding || function (encoding) {\n encoding = '' + encoding;\n switch (encoding && encoding.toLowerCase()) {\n case 'hex':case 'utf8':case 'utf-8':case 'ascii':case 'binary':case 'base64':case 'ucs2':case 'ucs-2':case 'utf16le':case 'utf-16le':case 'raw':\n return true;\n default:\n return false;\n }\n};\n\nfunction _normalizeEncoding(enc) {\n if (!enc) return 'utf8';\n var retried;\n while (true) {\n switch (enc) {\n case 'utf8':\n case 'utf-8':\n return 'utf8';\n case 'ucs2':\n case 'ucs-2':\n case 'utf16le':\n case 'utf-16le':\n return 'utf16le';\n case 'latin1':\n case 'binary':\n return 'latin1';\n case 'base64':\n case 'ascii':\n case 'hex':\n return enc;\n default:\n if (retried) return; // undefined\n enc = ('' + enc).toLowerCase();\n retried = true;\n }\n }\n};\n\n// Do not cache `Buffer.isEncoding` when checking encoding names as some\n// modules monkey-patch it to support additional encodings\nfunction normalizeEncoding(enc) {\n var nenc = _normalizeEncoding(enc);\n if (typeof nenc !== 'string' && (Buffer.isEncoding === isEncoding || !isEncoding(enc))) throw new Error('Unknown encoding: ' + enc);\n return nenc || enc;\n}\n\n// StringDecoder provides an interface for efficiently splitting a series of\n// buffers into a series of JS strings without breaking apart multi-byte\n// characters.\nexports.StringDecoder = StringDecoder;\nfunction StringDecoder(encoding) {\n this.encoding = normalizeEncoding(encoding);\n var nb;\n switch (this.encoding) {\n case 'utf16le':\n this.text = utf16Text;\n this.end = utf16End;\n nb = 4;\n break;\n case 'utf8':\n this.fillLast = utf8FillLast;\n nb = 4;\n break;\n case 'base64':\n this.text = base64Text;\n this.end = base64End;\n nb = 3;\n break;\n default:\n this.write = simpleWrite;\n this.end = simpleEnd;\n return;\n }\n this.lastNeed = 0;\n this.lastTotal = 0;\n this.lastChar = Buffer.allocUnsafe(nb);\n}\n\nStringDecoder.prototype.write = function (buf) {\n if (buf.length === 0) return '';\n var r;\n var i;\n if (this.lastNeed) {\n r = this.fillLast(buf);\n if (r === undefined) return '';\n i = this.lastNeed;\n this.lastNeed = 0;\n } else {\n i = 0;\n }\n if (i < buf.length) return r ? r + this.text(buf, i) : this.text(buf, i);\n return r || '';\n};\n\nStringDecoder.prototype.end = utf8End;\n\n// Returns only complete characters in a Buffer\nStringDecoder.prototype.text = utf8Text;\n\n// Attempts to complete a partial non-UTF-8 character using bytes from a Buffer\nStringDecoder.prototype.fillLast = function (buf) {\n if (this.lastNeed <= buf.length) {\n buf.copy(this.lastChar, this.lastTotal - this.lastNeed, 0, this.lastNeed);\n return this.lastChar.toString(this.encoding, 0, this.lastTotal);\n }\n buf.copy(this.lastChar, this.lastTotal - this.lastNeed, 0, buf.length);\n this.lastNeed -= buf.length;\n};\n\n// Checks the type of a UTF-8 byte, whether it's ASCII, a leading byte, or a\n// continuation byte. If an invalid byte is detected, -2 is returned.\nfunction utf8CheckByte(byte) {\n if (byte <= 0x7F) return 0;else if (byte >> 5 === 0x06) return 2;else if (byte >> 4 === 0x0E) return 3;else if (byte >> 3 === 0x1E) return 4;\n return byte >> 6 === 0x02 ? -1 : -2;\n}\n\n// Checks at most 3 bytes at the end of a Buffer in order to detect an\n// incomplete multi-byte UTF-8 character. The total number of bytes (2, 3, or 4)\n// needed to complete the UTF-8 character (if applicable) are returned.\nfunction utf8CheckIncomplete(self, buf, i) {\n var j = buf.length - 1;\n if (j < i) return 0;\n var nb = utf8CheckByte(buf[j]);\n if (nb >= 0) {\n if (nb > 0) self.lastNeed = nb - 1;\n return nb;\n }\n if (--j < i || nb === -2) return 0;\n nb = utf8CheckByte(buf[j]);\n if (nb >= 0) {\n if (nb > 0) self.lastNeed = nb - 2;\n return nb;\n }\n if (--j < i || nb === -2) return 0;\n nb = utf8CheckByte(buf[j]);\n if (nb >= 0) {\n if (nb > 0) {\n if (nb === 2) nb = 0;else self.lastNeed = nb - 3;\n }\n return nb;\n }\n return 0;\n}\n\n// Validates as many continuation bytes for a multi-byte UTF-8 character as\n// needed or are available. If we see a non-continuation byte where we expect\n// one, we \"replace\" the validated continuation bytes we've seen so far with\n// a single UTF-8 replacement character ('\\ufffd'), to match v8's UTF-8 decoding\n// behavior. The continuation byte check is included three times in the case\n// where all of the continuation bytes for a character exist in the same buffer.\n// It is also done this way as a slight performance increase instead of using a\n// loop.\nfunction utf8CheckExtraBytes(self, buf, p) {\n if ((buf[0] & 0xC0) !== 0x80) {\n self.lastNeed = 0;\n return '\\ufffd';\n }\n if (self.lastNeed > 1 && buf.length > 1) {\n if ((buf[1] & 0xC0) !== 0x80) {\n self.lastNeed = 1;\n return '\\ufffd';\n }\n if (self.lastNeed > 2 && buf.length > 2) {\n if ((buf[2] & 0xC0) !== 0x80) {\n self.lastNeed = 2;\n return '\\ufffd';\n }\n }\n }\n}\n\n// Attempts to complete a multi-byte UTF-8 character using bytes from a Buffer.\nfunction utf8FillLast(buf) {\n var p = this.lastTotal - this.lastNeed;\n var r = utf8CheckExtraBytes(this, buf, p);\n if (r !== undefined) return r;\n if (this.lastNeed <= buf.length) {\n buf.copy(this.lastChar, p, 0, this.lastNeed);\n return this.lastChar.toString(this.encoding, 0, this.lastTotal);\n }\n buf.copy(this.lastChar, p, 0, buf.length);\n this.lastNeed -= buf.length;\n}\n\n// Returns all complete UTF-8 characters in a Buffer. If the Buffer ended on a\n// partial character, the character's bytes are buffered until the required\n// number of bytes are available.\nfunction utf8Text(buf, i) {\n var total = utf8CheckIncomplete(this, buf, i);\n if (!this.lastNeed) return buf.toString('utf8', i);\n this.lastTotal = total;\n var end = buf.length - (total - this.lastNeed);\n buf.copy(this.lastChar, 0, end);\n return buf.toString('utf8', i, end);\n}\n\n// For UTF-8, a replacement character is added when ending on a partial\n// character.\nfunction utf8End(buf) {\n var r = buf && buf.length ? this.write(buf) : '';\n if (this.lastNeed) return r + '\\ufffd';\n return r;\n}\n\n// UTF-16LE typically needs two bytes per character, but even if we have an even\n// number of bytes available, we need to check if we end on a leading/high\n// surrogate. In that case, we need to wait for the next two bytes in order to\n// decode the last character properly.\nfunction utf16Text(buf, i) {\n if ((buf.length - i) % 2 === 0) {\n var r = buf.toString('utf16le', i);\n if (r) {\n var c = r.charCodeAt(r.length - 1);\n if (c >= 0xD800 && c <= 0xDBFF) {\n this.lastNeed = 2;\n this.lastTotal = 4;\n this.lastChar[0] = buf[buf.length - 2];\n this.lastChar[1] = buf[buf.length - 1];\n return r.slice(0, -1);\n }\n }\n return r;\n }\n this.lastNeed = 1;\n this.lastTotal = 2;\n this.lastChar[0] = buf[buf.length - 1];\n return buf.toString('utf16le', i, buf.length - 1);\n}\n\n// For UTF-16LE we do not explicitly append special replacement characters if we\n// end on a partial character, we simply let v8 handle that.\nfunction utf16End(buf) {\n var r = buf && buf.length ? this.write(buf) : '';\n if (this.lastNeed) {\n var end = this.lastTotal - this.lastNeed;\n return r + this.lastChar.toString('utf16le', 0, end);\n }\n return r;\n}\n\nfunction base64Text(buf, i) {\n var n = (buf.length - i) % 3;\n if (n === 0) return buf.toString('base64', i);\n this.lastNeed = 3 - n;\n this.lastTotal = 3;\n if (n === 1) {\n this.lastChar[0] = buf[buf.length - 1];\n } else {\n this.lastChar[0] = buf[buf.length - 2];\n this.lastChar[1] = buf[buf.length - 1];\n }\n return buf.toString('base64', i, buf.length - n);\n}\n\nfunction base64End(buf) {\n var r = buf && buf.length ? this.write(buf) : '';\n if (this.lastNeed) return r + this.lastChar.toString('base64', 0, 3 - this.lastNeed);\n return r;\n}\n\n// Pass bytes on through for single-byte encodings (e.g. ascii, latin1, hex)\nfunction simpleWrite(buf) {\n return buf.toString(this.encoding);\n}\n\nfunction simpleEnd(buf) {\n return buf && buf.length ? this.write(buf) : '';\n}","module.exports = function(module) {\n\tif (!module.webpackPolyfill) {\n\t\tmodule.deprecate = function() {};\n\t\tmodule.paths = [];\n\t\t// module.parent = undefined by default\n\t\tif (!module.children) module.children = [];\n\t\tObject.defineProperty(module, \"loaded\", {\n\t\t\tenumerable: true,\n\t\t\tget: function() {\n\t\t\t\treturn module.l;\n\t\t\t}\n\t\t});\n\t\tObject.defineProperty(module, \"id\", {\n\t\t\tenumerable: true,\n\t\t\tget: function() {\n\t\t\t\treturn module.i;\n\t\t\t}\n\t\t});\n\t\tmodule.webpackPolyfill = 1;\n\t}\n\treturn module;\n};\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\n// TODO: add aggregates?\n// TODO: can't find a way to use these values as string types in the interfaces\nexports.types = Object.freeze({\n ALT: 'alt',\n ASK: 'ask',\n BGP: 'bgp',\n CONSTRUCT: 'construct',\n DESC: 'desc',\n DESCRIBE: 'describe',\n DISTINCT: 'distinct',\n EXPRESSION: 'expression',\n EXTEND: 'extend',\n FILTER: 'filter',\n FROM: 'from',\n GRAPH: 'graph',\n GROUP: 'group',\n INV: 'inv',\n JOIN: 'join',\n LEFT_JOIN: 'leftjoin',\n LINK: 'link',\n MINUS: 'minus',\n NPS: 'nps',\n ONE_OR_MORE_PATH: 'OneOrMorePath',\n ORDER_BY: 'orderby',\n PATH: 'path',\n PATTERN: 'pattern',\n PROJECT: 'project',\n REDUCED: 'reduced',\n SEQ: 'seq',\n SERVICE: 'service',\n SLICE: 'slice',\n UNION: 'union',\n VALUES: 'values',\n ZERO_OR_MORE_PATH: 'ZeroOrMorePath',\n ZERO_OR_ONE_PATH: 'ZeroOrOnePath',\n});\nexports.expressionTypes = Object.freeze({\n AGGREGATE: 'aggregate',\n EXISTENCE: 'existence',\n NAMED: 'named',\n OPERATOR: 'operator',\n TERM: 'term',\n WILDCARD: 'wildcard',\n});\n//# sourceMappingURL=algebra.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nconst DataFactory = require(\"@rdfjs/data-model\");\nconst rdf_string_1 = require(\"rdf-string\");\nconst Wildcard = require('sparqljs').Wildcard;\nclass Factory {\n constructor(dataFactory) {\n this.dataFactory = dataFactory || DataFactory;\n this.stringType = this.createTerm('http://www.w3.org/2001/XMLSchema#string');\n }\n createAlt(left, right) { return { type: 'alt', left, right }; }\n createAsk(input) { return { type: 'ask', input }; }\n createBoundAggregate(variable, aggregate, expression, distinct, separator) {\n let result = this.createAggregateExpression(aggregate, expression, distinct, separator);\n result.variable = variable;\n return result;\n }\n createBgp(patterns) { return { type: 'bgp', patterns }; }\n createConstruct(input, template) { return { type: 'construct', input, template }; }\n createDescribe(input, terms) { return { type: 'describe', input, terms }; }\n createDistinct(input) { return { type: 'distinct', input }; }\n createExtend(input, variable, expression) { return { type: 'extend', input, variable, expression }; }\n createFrom(input, def, named) { return { type: 'from', input, default: def, named }; }\n createFilter(input, expression) { return { type: 'filter', input, expression }; }\n createGraph(input, name) { return { type: 'graph', input, name }; }\n createGroup(input, variables, aggregates) { return { type: 'group', input, variables, aggregates }; }\n createInv(path) { return { type: 'inv', path }; }\n createJoin(left, right) { return { type: 'join', left, right }; }\n createLeftJoin(left, right, expression) {\n if (expression)\n return { type: 'leftjoin', left, right, expression };\n return { type: 'leftjoin', left, right };\n }\n createLink(iri) { return { type: 'link', iri }; }\n createMinus(left, right) { return { type: 'minus', left, right }; }\n createNps(iris) { return { type: 'nps', iris }; }\n createOneOrMorePath(path) { return { type: 'OneOrMorePath', path }; }\n createOrderBy(input, expressions) { return { type: 'orderby', input, expressions }; }\n createPath(subject, predicate, object, graph) {\n if (graph)\n return { type: 'path', subject, predicate, object, graph };\n return { type: 'path', subject, predicate, object, graph: this.dataFactory.defaultGraph() };\n }\n createPattern(subject, predicate, object, graph) {\n let pattern = this.dataFactory.quad(subject, predicate, object, graph);\n pattern.type = 'pattern';\n return pattern;\n }\n createProject(input, variables) { return { type: 'project', input, variables }; }\n createReduced(input) { return { type: 'reduced', input }; }\n createSeq(left, right) { return { type: 'seq', left, right }; }\n createService(input, name, silent) { return { type: 'service', input, name, silent }; }\n createSlice(input, start, length) {\n if (start === undefined)\n start = 0;\n if (length !== undefined)\n return { type: 'slice', input, start, length };\n return { type: 'slice', input, start };\n }\n createUnion(left, right) { return { type: 'union', left, right }; }\n createValues(variables, bindings) { return { type: 'values', variables, bindings }; }\n createZeroOrMorePath(path) { return { type: 'ZeroOrMorePath', path }; }\n createZeroOrOnePath(path) { return { type: 'ZeroOrOnePath', path }; }\n createAggregateExpression(aggregator, expression, distinct, separator) {\n if (separator)\n return { type: 'expression', expressionType: 'aggregate', aggregator: aggregator, expression, separator, distinct };\n return { type: 'expression', expressionType: 'aggregate', aggregator: aggregator, expression, distinct };\n }\n createExistenceExpression(not, input) { return { type: 'expression', expressionType: 'existence', not, input }; }\n createNamedExpression(name, args) { return { type: 'expression', expressionType: 'named', name, args }; }\n createOperatorExpression(operator, args) { return { type: 'expression', expressionType: 'operator', operator, args }; }\n createTermExpression(term) { return { type: 'expression', expressionType: 'term', term }; }\n createWildcardExpression() { return { type: 'expression', expressionType: 'wildcard', wildcard: new Wildcard() }; }\n ;\n createTerm(str) {\n return rdf_string_1.stringToTerm(str, this.dataFactory);\n }\n}\nexports.default = Factory;\n//# sourceMappingURL=factory.js.map","\"use strict\";\nfunction __export(m) {\n for (var p in m) if (!exports.hasOwnProperty(p)) exports[p] = m[p];\n}\nObject.defineProperty(exports, \"__esModule\", { value: true });\n__export(require(\"./lib/MediatorCombinePipeline\"));\n//# sourceMappingURL=index.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nconst jsonld_context_parser_1 = require(\"jsonld-context-parser\");\nconst Util_1 = require(\"../Util\");\n/**\n * Interprets keys as predicates.\n * The most common case in JSON-LD processing.\n */\nclass EntryHandlerPredicate {\n /**\n * Handle the given predicate-object by either emitting it,\n * or by placing it in the appropriate stack for later emission when no @graph and/or @id has been defined.\n * @param {ParsingContext} parsingContext A parsing context.\n * @param {Util} util A utility instance.\n * @param {any[]} keys A stack of keys.\n * @param {number} depth The current depth.\n * @param {Term} predicate The predicate.\n * @param {Term} object The object.\n * @param {boolean} reverse If the property is reversed.\n * @return {Promise} A promise resolving when handling is done.\n */\n static async handlePredicateObject(parsingContext, util, keys, depth, predicate, object, reverse) {\n const depthProperties = await util.getPropertiesDepth(keys, depth);\n const depthOffsetGraph = await util.getDepthOffsetGraph(depth, keys);\n const depthPropertiesGraph = depth - depthOffsetGraph;\n const subjects = parsingContext.idStack[depthProperties];\n if (subjects) {\n // Emit directly if the @id was already defined\n for (const subject of subjects) {\n // Check if we're in a @graph context\n const atGraph = depthOffsetGraph >= 0;\n if (atGraph) {\n const graphs = parsingContext.idStack[depthPropertiesGraph - 1];\n if (graphs) {\n for (const graph of graphs) {\n // Emit our quad if graph @id is known\n if (reverse) {\n util.validateReverseSubject(object);\n parsingContext.emitQuad(depth, util.dataFactory.quad(object, predicate, subject, graph));\n }\n else {\n parsingContext.emitQuad(depth, util.dataFactory.quad(subject, predicate, object, graph));\n }\n }\n }\n else {\n // Buffer our triple if graph @id is not known yet.\n if (reverse) {\n util.validateReverseSubject(object);\n parsingContext.getUnidentifiedGraphBufferSafe(depthPropertiesGraph - 1).push({ subject: object, predicate, object: subject });\n }\n else {\n parsingContext.getUnidentifiedGraphBufferSafe(depthPropertiesGraph - 1)\n .push({ subject, predicate, object });\n }\n }\n }\n else {\n // Emit if no @graph was applicable\n const graph = await util.getGraphContainerValue(keys, depthProperties);\n if (reverse) {\n util.validateReverseSubject(object);\n parsingContext.emitQuad(depth, util.dataFactory.quad(object, predicate, subject, graph));\n }\n else {\n parsingContext.emitQuad(depth, util.dataFactory.quad(subject, predicate, object, graph));\n }\n }\n }\n }\n else {\n // Buffer until our @id becomes known, or we go up the stack\n if (reverse) {\n util.validateReverseSubject(object);\n }\n parsingContext.getUnidentifiedValueBufferSafe(depthProperties).push({ predicate, object, reverse });\n }\n }\n isPropertyHandler() {\n return true;\n }\n isStackProcessor() {\n return true;\n }\n async validate(parsingContext, util, keys, depth, inProperty) {\n const key = keys[depth];\n if (key) {\n const context = await parsingContext.getContext(keys);\n if (await util.predicateToTerm(context, keys[depth])) {\n // If this valid predicate is of type @json, mark it so in the stack so that no deeper handling of nodes occurs.\n if (Util_1.Util.getContextValueType(context, key) === '@json') {\n parsingContext.jsonLiteralStack[depth + 1] = true;\n }\n return true;\n }\n }\n return false;\n }\n async test(parsingContext, util, key, keys, depth) {\n return keys[depth];\n }\n async handle(parsingContext, util, key, keys, value, depth, testResult) {\n const keyOriginal = keys[depth];\n const context = await parsingContext.getContext(keys);\n const predicate = await util.predicateToTerm(context, key);\n if (predicate) {\n const objects = await util.valueToTerm(context, key, value, depth, keys);\n if (objects.length) {\n for (let object of objects) {\n const reverse = Util_1.Util.isPropertyReverse(context, keyOriginal, await util.unaliasKeywordParent(keys, depth));\n if (value) {\n // Special case if our term was defined as an @list, but does not occur in an array,\n // In that case we just emit it as an RDF list with a single element.\n const listValueContainer = '@list' in Util_1.Util.getContextValueContainer(context, key);\n if (listValueContainer || value['@list']) {\n if (((listValueContainer && !Array.isArray(value) && !value['@list'])\n || (value['@list'] && !Array.isArray(value['@list'])))\n && object !== util.rdfNil) {\n const listPointer = util.dataFactory.blankNode();\n parsingContext.emitQuad(depth, util.dataFactory.quad(listPointer, util.rdfRest, util.rdfNil, util.getDefaultGraph()));\n parsingContext.emitQuad(depth, util.dataFactory.quad(listPointer, util.rdfFirst, object, util.getDefaultGraph()));\n object = listPointer;\n }\n // Lists are not allowed in @reverse'd properties\n if (reverse && !parsingContext.allowSubjectList) {\n throw new jsonld_context_parser_1.ErrorCoded(`Found illegal list value in subject position at ${key}`, jsonld_context_parser_1.ERROR_CODES.INVALID_REVERSE_PROPERTY_VALUE);\n }\n }\n }\n await EntryHandlerPredicate.handlePredicateObject(parsingContext, util, keys, depth, predicate, object, reverse);\n }\n }\n else {\n // An invalid value was encountered, so we ignore it higher in the stack.\n parsingContext.emittedStack[depth] = false;\n }\n }\n }\n}\nexports.EntryHandlerPredicate = EntryHandlerPredicate;\n//# sourceMappingURL=EntryHandlerPredicate.js.map","\"use strict\";\nfunction __export(m) {\n for (var p in m) if (!exports.hasOwnProperty(p)) exports[p] = m[p];\n}\nObject.defineProperty(exports, \"__esModule\", { value: true });\n__export(require(\"./lib/RoundRobinUnionIterator\"));\n//# sourceMappingURL=index.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nconst RDFString = require(\"rdf-string\");\nconst sparqlalgebrajs_1 = require(\"sparqlalgebrajs\");\nconst E = require(\"./expressions\");\nconst C = require(\"./util/Consts\");\nconst Err = require(\"./util/Errors\");\nconst P = require(\"./util/Parsing\");\nconst functions_1 = require(\"./functions\");\nconst Consts_1 = require(\"./util/Consts\");\nfunction transformAlgebra(expr) {\n if (!expr) {\n throw new Err.InvalidExpression(expr);\n }\n const types = sparqlalgebrajs_1.Algebra.expressionTypes;\n switch (expr.expressionType) {\n case types.TERM:\n return transformTerm(expr);\n case types.OPERATOR:\n return transformOperator(expr);\n case types.NAMED:\n return transformNamed(expr);\n case types.EXISTENCE:\n return transformExistence(expr);\n case types.AGGREGATE:\n return transformAggregate(expr);\n case types.WILDCARD:\n return transformWildcard(expr);\n default: throw new Err.InvalidExpressionType(expr);\n }\n}\nexports.transformAlgebra = transformAlgebra;\n/**\n * Transforms an RDF term to the internal representation of a term,\n * assuming it is not a variable, which would be an expression (internally).\n *\n * @param term RDF term to transform into internal representation of a term\n */\nfunction transformRDFTermUnsafe(term) {\n return transformTerm({\n term,\n type: 'expression',\n expressionType: 'term',\n });\n}\nexports.transformRDFTermUnsafe = transformRDFTermUnsafe;\nfunction transformTerm(term) {\n if (!term.term) {\n throw new Err.InvalidExpression(term);\n }\n switch (term.term.termType) {\n case 'Variable': return new E.Variable(RDFString.termToString(term.term));\n case 'Literal': return transformLiteral(term.term);\n case 'NamedNode': return new E.NamedNode(term.term.value);\n case 'BlankNode': return new E.BlankNode(term.term.value);\n default: throw new Err.InvalidTermType(term);\n }\n}\nfunction transformWildcard(term) {\n if (!term.wildcard) {\n throw new Err.InvalidExpression(term);\n }\n return new E.NamedNode(term.wildcard.value);\n}\n// TODO: Maybe do this with a map?\n// tslint:disable-next-line:no-any\nfunction transformLiteral(lit) {\n if (!lit.datatype) {\n return (lit.language)\n ? new E.LangStringLiteral(lit.value, lit.language)\n : new E.StringLiteral(lit.value);\n }\n switch (lit.datatype.value) {\n case null:\n case undefined:\n case '': {\n return (lit.language)\n ? new E.LangStringLiteral(lit.value, lit.language)\n : new E.StringLiteral(lit.value);\n }\n case Consts_1.TypeURL.XSD_STRING:\n return new E.StringLiteral(lit.value);\n case Consts_1.TypeURL.RDF_LANG_STRING:\n return new E.LangStringLiteral(lit.value, lit.language);\n case Consts_1.TypeURL.XSD_DATE_TIME:\n case Consts_1.TypeURL.XSD_DATE: {\n const val = new Date(lit.value);\n if (isNaN(val.getTime())) {\n return new E.NonLexicalLiteral(undefined, lit.datatype, lit.value);\n }\n return new E.DateTimeLiteral(new Date(lit.value), lit.value);\n }\n case Consts_1.TypeURL.XSD_BOOLEAN: {\n if (lit.value !== 'true' && lit.value !== 'false') {\n return new E.NonLexicalLiteral(undefined, lit.datatype, lit.value);\n }\n return new E.BooleanLiteral(lit.value === 'true', lit.value);\n }\n case Consts_1.TypeURL.XSD_INTEGER:\n case Consts_1.TypeURL.XSD_DECIMAL:\n case Consts_1.TypeURL.XSD_NEGATIVE_INTEGER:\n case Consts_1.TypeURL.XSD_NON_NEGATIVE_INTEGER:\n case Consts_1.TypeURL.XSD_NON_POSITIVE_INTEGER:\n case Consts_1.TypeURL.XSD_POSITIVE_INTEGER:\n case Consts_1.TypeURL.XSD_LONG:\n case Consts_1.TypeURL.XSD_SHORT:\n case Consts_1.TypeURL.XSD_BYTE:\n case Consts_1.TypeURL.XSD_UNSIGNED_LONG:\n case Consts_1.TypeURL.XSD_UNSIGNED_INT:\n case Consts_1.TypeURL.XSD_UNSIGNED_SHORT:\n case Consts_1.TypeURL.XSD_UNSIGNED_BYTE:\n case Consts_1.TypeURL.XSD_INT: {\n const val = P.parseXSDDecimal(lit.value);\n if (val === undefined) {\n return new E.NonLexicalLiteral(undefined, lit.datatype, lit.value);\n }\n return new E.NumericLiteral(val, lit.datatype, lit.value);\n }\n case Consts_1.TypeURL.XSD_FLOAT:\n case Consts_1.TypeURL.XSD_DOUBLE: {\n const val = P.parseXSDFloat(lit.value);\n if (val === undefined) {\n return new E.NonLexicalLiteral(undefined, lit.datatype, lit.value);\n }\n return new E.NumericLiteral(val, lit.datatype, lit.value);\n }\n default: return new E.Literal(lit.value, lit.datatype, lit.value);\n }\n}\nexports.transformLiteral = transformLiteral;\nfunction transformOperator(expr) {\n if (C.SpecialOperators.contains(expr.operator)) {\n const op = expr.operator;\n const args = expr.args.map((a) => transformAlgebra(a));\n const func = functions_1.specialFunctions.get(op);\n if (!func.checkArity(args)) {\n throw new Err.InvalidArity(args, op);\n }\n return new E.SpecialOperator(args, func.applyAsync, func.applySync);\n }\n else {\n if (!C.Operators.contains(expr.operator)) {\n throw new Err.UnknownOperator(expr.operator);\n }\n const op = expr.operator;\n const args = expr.args.map((a) => transformAlgebra(a));\n const func = functions_1.regularFunctions.get(op);\n if (!hasCorrectArity(args, func.arity)) {\n throw new Err.InvalidArity(args, op);\n }\n return new E.Operator(args, func.apply);\n }\n}\n// TODO: Support passing functions to override default behaviour;\nfunction transformNamed(expr) {\n const funcName = expr.name.value;\n if (!C.NamedOperators.contains(funcName)) {\n throw new Err.UnknownNamedOperator(expr.name.value);\n }\n // tslint:disable-next-line:no-any\n const op = expr.name.value;\n const args = expr.args.map((a) => transformAlgebra(a));\n const func = functions_1.namedFunctions.get(op);\n return new E.Named(expr.name, args, func.apply);\n}\nexports.transformNamed = transformNamed;\nfunction hasCorrectArity(args, arity) {\n // Infinity is used to represent var-args, so it's always correct.\n if (arity === Infinity) {\n return true;\n }\n // If the function has overloaded arity, the actual arity needs to be present.\n if (Array.isArray(arity)) {\n return arity.indexOf(args.length) >= 0;\n }\n return args.length === arity;\n}\nfunction transformAggregate(expr) {\n const name = expr.aggregator;\n return new E.Aggregate(name, expr);\n}\nexports.transformAggregate = transformAggregate;\nfunction transformExistence(expr) {\n return new E.Existence(expr);\n}\nexports.transformExistence = transformExistence;\n//# sourceMappingURL=Transformation.js.map","\"use strict\";\n// TODO: Find a library for this\nObject.defineProperty(exports, \"__esModule\", { value: true });\n/**\n * TODO: Fix decently\n * Parses float datatypes (double, float).\n *\n * All invalid lexical values return undefined.\n *\n * @param value the string to interpret as a number\n */\nfunction parseXSDFloat(value) {\n const numb = Number(value);\n if (isNaN(numb)) {\n if (value === 'NaN') {\n return NaN;\n }\n if (value === 'INF') {\n return Infinity;\n }\n if (value === '-INF') {\n return -Infinity;\n }\n return undefined;\n }\n return numb;\n}\nexports.parseXSDFloat = parseXSDFloat;\n/**\n * Parses decimal datatypes (decimal, int, byte, nonPositiveInteger, etc...).\n *\n * All other values, including NaN, INF, and floating point numbers all\n * return undefined;\n *\n * @param value the string to interpret as a number\n */\nfunction parseXSDDecimal(value) {\n if (/^(\\-|\\+)?([0-9]+(\\.[0-9]+)?)$/.test(value)) {\n const numb = Number(value);\n return (isNaN(numb)) ? undefined : numb;\n }\n return undefined;\n}\nexports.parseXSDDecimal = parseXSDDecimal;\n/**\n * Parses integer datatypes (decimal, int, byte, nonPositiveInteger, etc...).\n *\n * All other values, including NaN, INF, and floating point numbers all\n * return undefined;\n *\n * @param value the string to interpret as a number\n */\nfunction parseXSDInteger(value) {\n if (/^(\\-|\\+)?([0-9]+)$/.test(value)) {\n const numb = Number(value);\n return (isNaN(numb)) ? undefined : numb;\n }\n return undefined;\n}\nexports.parseXSDInteger = parseXSDInteger;\n/**\n * Parses ISO date or date time strings into it's parts.\n * I found no lib providing this functionality online, but it's needed heavily\n * by the spec (functions on dates), using any form of JS DateTime will lose the\n * original timezone notation.\n *\n * Example strings:\n * - \"2011-01-10T14:45:13.815-05:00\"\n * - \"2011-01-10T14:45:13.815Z\"\n * - \"2011-01-10T14:45:13Z\"\n * - \"2011-01-10\"\n * @param value the ISO date time string\n */\nfunction parseXSDDateTime(value) {\n const posT = value.indexOf('T');\n const date = posT >= 0 ? value.substr(0, posT) : value;\n const [year, month, day] = date.split('-');\n let hours = '';\n let minutes = '';\n let seconds = '';\n let timezone = '';\n if (posT >= 0) {\n const timeAndTimeZone = value.substr(posT + 1);\n const [time, _timeZoneChopped] = timeAndTimeZone.split(/[\\+\\-Z]/);\n [hours, minutes, seconds] = time.split(':');\n const timezoneOrNull = new RegExp(/([\\+\\-Z].*)/).exec(timeAndTimeZone);\n timezone = (timezoneOrNull) ? timezoneOrNull[0] : '';\n }\n else {\n hours = '00';\n minutes = '00';\n seconds = '00';\n timezone = '';\n }\n return { year, month, day, hours, minutes, seconds, timezone };\n}\nexports.parseXSDDateTime = parseXSDDateTime;\n//# sourceMappingURL=Parsing.js.map","\"use strict\";\n/**\n * These helpers provide a (albeit inflexible) DSL for writing function\n * definitions for the SPARQL functions.\n */\nObject.defineProperty(exports, \"__esModule\", { value: true });\nconst immutable_1 = require(\"immutable\");\nconst E = require(\"../expressions\");\nconst C = require(\"../util/Consts\");\nconst Err = require(\"../util/Errors\");\nconst Consts_1 = require(\"../util/Consts\");\nconst Core_1 = require(\"./Core\");\nfunction declare() {\n return new Builder();\n}\nexports.declare = declare;\nclass Builder {\n constructor() {\n this.implementations = [];\n }\n collect() {\n return map(this.implementations);\n }\n log() {\n // tslint:disable-next-line:no-console\n console.log(this.implementations);\n return this;\n }\n add(impl) {\n this.implementations.push(impl);\n return this;\n }\n set(argTypes, func) {\n const types = immutable_1.List(argTypes);\n return this.add(new Impl({ types, func }));\n }\n copy({ from, to }) {\n const last = this.implementations.length - 1;\n const _from = immutable_1.List(from);\n for (let i = last; i >= 0; i--) {\n const impl = this.implementations[i];\n if (impl.get('types').equals(_from)) {\n return this.set(to, impl.get('func'));\n }\n }\n throw new Err.UnexpectedError('Tried to copy implementation, but types not found', { from, to });\n }\n onUnary(type, op) {\n return this.set([type], ([val]) => {\n return op(val);\n });\n }\n onUnaryTyped(type, op) {\n return this.set([type], ([val]) => {\n return op(val.typedValue);\n });\n }\n onBinary(types, op) {\n return this.set(types, ([left, right]) => {\n return op(left, right);\n });\n }\n onBinaryTyped(types, op) {\n return this.set(types, ([left, right]) => {\n return op(left.typedValue, right.typedValue);\n });\n }\n onTernaryTyped(types, op) {\n return this.set(types, ([a1, a2, a3]) => {\n return op(a1.typedValue, a2.typedValue, a3.typedValue);\n });\n }\n onTernary(types, op) {\n return this.set(types, ([a1, a2, a3]) => {\n return op(a1, a2, a3);\n });\n }\n onQuaternaryTyped(types, op) {\n return this.set(types, ([a1, a2, a3, a4]) => {\n return op(a1.typedValue, a2.typedValue, a3.typedValue, a4.typedValue);\n });\n }\n unimplemented(msg) {\n for (let arity = 0; arity <= 5; arity++) {\n const types = Array(arity).fill('term');\n const func = (_args) => { throw new Err.UnimplementedError(msg); };\n this.set(types, func);\n }\n return this;\n }\n onTerm1(op) {\n return this.set(['term'], ([term]) => op(term));\n }\n onLiteral1(op) {\n return this.set(['literal'], ([term]) => op(term));\n }\n onBoolean1(op) {\n return this\n .set(['boolean'], ([lit]) => op(lit));\n }\n onBoolean1Typed(op) {\n return this\n .set(['boolean'], ([lit]) => op(lit.typedValue));\n }\n onString1(op) {\n return this\n .set(['string'], ([lit]) => op(lit));\n }\n onString1Typed(op) {\n return this\n .set(['string'], ([lit]) => op(lit.typedValue));\n }\n onLangString1(op) {\n return this\n .set(['langString'], ([lit]) => op(lit));\n }\n onStringly1(op) {\n return this\n .set(['string'], ([lit]) => op(lit))\n .set(['langString'], ([lit]) => op(lit));\n }\n onStringly1Typed(op) {\n return this\n .set(['string'], ([lit]) => op(lit.typedValue))\n .set(['langString'], ([lit]) => op(lit.typedValue));\n }\n onNumeric1(op) {\n return this\n .set(['integer'], ([val]) => op(val))\n .set(['decimal'], ([val]) => op(val))\n .set(['float'], ([val]) => op(val))\n .set(['double'], ([val]) => op(val))\n .invalidLexicalForm(['nonlexical'], 1);\n }\n onDateTime1(op) {\n return this\n .set(['date'], ([val]) => op(val))\n .invalidLexicalForm(['nonlexical'], 1);\n }\n /**\n * Arithmetic operators take 2 numeric arguments, and return a single numerical\n * value. The type of the return value is heavily dependant on the types of the\n * input arguments. In JS everything is a double, but in SPARQL it is not.\n *\n * {@link https://www.w3.org/TR/sparql11-query/#OperatorMapping}\n * {@link https://www.w3.org/TR/xpath-functions/#op.numeric}\n *\n * @param op the (simple) binary mathematical operator that\n */\n arithmetic(op) {\n return this.numeric(([left, right]) => {\n const promotionType = Core_1.promote(left.type, right.type);\n const resultType = C.decategorize(promotionType);\n return number(op(left.typedValue, right.typedValue), resultType);\n });\n }\n numberTest(test) {\n return this.numeric(([left, right]) => {\n const result = test(left.typedValue, right.typedValue);\n return bool(result);\n });\n }\n stringTest(test) {\n return this\n .set(['string', 'string'], ([left, right]) => {\n const result = test(left.typedValue, right.typedValue);\n return bool(result);\n })\n .invalidLexicalForm(['nonlexical', 'string'], 1)\n .invalidLexicalForm(['string', 'nonlexical'], 2);\n }\n booleanTest(test) {\n return this\n .set(['boolean', 'boolean'], ([left, right]) => {\n const result = test(left.typedValue, right.typedValue);\n return bool(result);\n })\n .invalidLexicalForm(['nonlexical', 'boolean'], 1)\n .invalidLexicalForm(['boolean', 'nonlexical'], 2);\n }\n dateTimeTest(test) {\n return this\n .set(['date', 'date'], ([left, right]) => {\n const result = test(left.typedValue, right.typedValue);\n return bool(result);\n })\n .invalidLexicalForm(['nonlexical', 'date'], 1)\n .invalidLexicalForm(['date', 'nonlexical'], 2);\n }\n numeric(op) {\n return this\n .set(['integer', 'integer'], op)\n .set(['integer', 'decimal'], op)\n .set(['integer', 'float'], op)\n .set(['integer', 'double'], op)\n .invalidLexicalForm(['integer', 'nonlexical'], 2)\n .set(['decimal', 'integer'], op)\n .set(['decimal', 'decimal'], op)\n .set(['decimal', 'float'], op)\n .set(['decimal', 'double'], op)\n .invalidLexicalForm(['decimal', 'nonlexical'], 2)\n .set(['float', 'integer'], op)\n .set(['float', 'decimal'], op)\n .set(['float', 'float'], op)\n .set(['float', 'double'], op)\n .invalidLexicalForm(['float', 'nonlexical'], 2)\n .set(['double', 'integer'], op)\n .set(['double', 'decimal'], op)\n .set(['double', 'float'], op)\n .set(['double', 'double'], op)\n .invalidLexicalForm(['double', 'nonlexical'], 2)\n .invalidLexicalForm(['nonlexical', 'integer'], 1)\n .invalidLexicalForm(['nonlexical', 'decimal'], 1)\n .invalidLexicalForm(['nonlexical', 'float'], 1)\n .invalidLexicalForm(['nonlexical', 'double'], 1);\n }\n invalidLexicalForm(types, index) {\n return this.set(types, (args) => {\n throw new Err.InvalidLexicalForm(args[index - 1].toRDF());\n });\n }\n chain(impls) {\n this.implementations = this.implementations.concat(impls);\n return this;\n }\n}\nexports.Builder = Builder;\nconst implDefaults = {\n types: [],\n func() {\n const msg = 'Implementation not set yet declared as implemented';\n throw new Err.UnexpectedError(msg);\n },\n};\nclass Impl extends immutable_1.Record(implDefaults) {\n constructor(params) { super(params); }\n get(value) {\n return super.get(value);\n }\n toPair() {\n return [this.get('types'), this.get('func')];\n }\n}\nexports.Impl = Impl;\nfunction map(implementations) {\n const typeImplPair = implementations.map((i) => i.toPair());\n return immutable_1.Map(typeImplPair);\n}\nexports.map = map;\n// ----------------------------------------------------------------------------\n// Literal Construction helpers\n// ----------------------------------------------------------------------------\nfunction bool(val) {\n return new E.BooleanLiteral(val);\n}\nexports.bool = bool;\nfunction number(num, dt) {\n return new E.NumericLiteral(num, C.make(dt || Consts_1.TypeURL.XSD_FLOAT), undefined);\n}\nexports.number = number;\nfunction numberFromString(str, dt) {\n const num = Number(str);\n return new E.NumericLiteral(num, C.make(dt || Consts_1.TypeURL.XSD_FLOAT), undefined);\n}\nexports.numberFromString = numberFromString;\nfunction string(s) {\n return new E.StringLiteral(s);\n}\nexports.string = string;\nfunction langString(s, lang) {\n return new E.LangStringLiteral(s, lang);\n}\nexports.langString = langString;\nfunction dateTime(date, str) {\n return new E.DateTimeLiteral(date, str);\n}\nexports.dateTime = dateTime;\n// ----------------------------------------------------------------------------\n// Util\n// ----------------------------------------------------------------------------\n// tslint:disable-next-line:no-any\nfunction log(val, ...args) {\n // tslint:disable-next-line:no-console\n console.log(val, args);\n return val;\n}\nexports.log = log;\nfunction typeCheckLit(term, allowed, args, op) {\n if (term.termType !== 'literal') {\n throw new Err.InvalidArgumentTypes(args, op);\n }\n // tslint:disable-next-line:no-any\n const lit = term;\n if (!allowed.includes(lit.type)) {\n throw new Err.InvalidArgumentTypes(args, op);\n }\n return lit;\n}\nexports.typeCheckLit = typeCheckLit;\n//# sourceMappingURL=Helpers.js.map","// **N3Lexer** tokenizes N3 documents.\nimport namespaces from './IRIs';\nconst { xsd } = namespaces;\n\nconst { fromCharCode } = String;\n\n// Regular expression and replacement string to escape N3 strings.\n// Note how we catch invalid unicode sequences separately (they will trigger an error).\nvar escapeSequence = /\\\\u([a-fA-F0-9]{4})|\\\\U([a-fA-F0-9]{8})|\\\\[uU]|\\\\(.)/g;\nvar escapeReplacements = {\n '\\\\': '\\\\', \"'\": \"'\", '\"': '\"',\n 'n': '\\n', 'r': '\\r', 't': '\\t', 'f': '\\f', 'b': '\\b',\n '_': '_', '~': '~', '.': '.', '-': '-', '!': '!', '$': '$', '&': '&',\n '(': '(', ')': ')', '*': '*', '+': '+', ',': ',', ';': ';', '=': '=',\n '/': '/', '?': '?', '#': '#', '@': '@', '%': '%',\n};\nvar illegalIriChars = /[\\x00-\\x20<>\\\\\"\\{\\}\\|\\^\\`]/;\n\nvar lineModeRegExps = {\n _iri: true,\n _unescapedIri: true,\n _simpleQuotedString: true,\n _langcode: true,\n _blank: true,\n _newline: true,\n _comment: true,\n _whitespace: true,\n _endOfFile: true,\n};\nvar invalidRegExp = /$0^/;\n\n// ## Constructor\nexport default class N3Lexer {\n constructor(options) {\n // ## Regular expressions\n // It's slightly faster to have these as properties than as in-scope variables\n this._iri = /^<((?:[^ <>{}\\\\]|\\\\[uU])+)>[ \\t]*/; // IRI with escape sequences; needs sanity check after unescaping\n this._unescapedIri = /^<([^\\x00-\\x20<>\\\\\"\\{\\}\\|\\^\\`]*)>[ \\t]*/; // IRI without escape sequences; no unescaping\n this._simpleQuotedString = /^\"([^\"\\\\\\r\\n]*)\"(?=[^\"])/; // string without escape sequences\n this._simpleApostropheString = /^'([^'\\\\\\r\\n]*)'(?=[^'])/;\n this._langcode = /^@([a-z]+(?:-[a-z0-9]+)*)(?=[^a-z0-9\\-])/i;\n this._prefix = /^((?:[A-Za-z\\xc0-\\xd6\\xd8-\\xf6\\xf8-\\u02ff\\u0370-\\u037d\\u037f-\\u1fff\\u200c\\u200d\\u2070-\\u218f\\u2c00-\\u2fef\\u3001-\\ud7ff\\uf900-\\ufdcf\\ufdf0-\\ufffd]|[\\ud800-\\udb7f][\\udc00-\\udfff])(?:\\.?[\\-0-9A-Z_a-z\\xb7\\xc0-\\xd6\\xd8-\\xf6\\xf8-\\u037d\\u037f-\\u1fff\\u200c\\u200d\\u203f\\u2040\\u2070-\\u218f\\u2c00-\\u2fef\\u3001-\\ud7ff\\uf900-\\ufdcf\\ufdf0-\\ufffd]|[\\ud800-\\udb7f][\\udc00-\\udfff])*)?:(?=[#\\s<])/;\n this._prefixed = /^((?:[A-Za-z\\xc0-\\xd6\\xd8-\\xf6\\xf8-\\u02ff\\u0370-\\u037d\\u037f-\\u1fff\\u200c\\u200d\\u2070-\\u218f\\u2c00-\\u2fef\\u3001-\\ud7ff\\uf900-\\ufdcf\\ufdf0-\\ufffd]|[\\ud800-\\udb7f][\\udc00-\\udfff])(?:\\.?[\\-0-9A-Z_a-z\\xb7\\xc0-\\xd6\\xd8-\\xf6\\xf8-\\u037d\\u037f-\\u1fff\\u200c\\u200d\\u203f\\u2040\\u2070-\\u218f\\u2c00-\\u2fef\\u3001-\\ud7ff\\uf900-\\ufdcf\\ufdf0-\\ufffd]|[\\ud800-\\udb7f][\\udc00-\\udfff])*)?:((?:(?:[0-:A-Z_a-z\\xc0-\\xd6\\xd8-\\xf6\\xf8-\\u02ff\\u0370-\\u037d\\u037f-\\u1fff\\u200c\\u200d\\u2070-\\u218f\\u2c00-\\u2fef\\u3001-\\ud7ff\\uf900-\\ufdcf\\ufdf0-\\ufffd]|[\\ud800-\\udb7f][\\udc00-\\udfff]|%[0-9a-fA-F]{2}|\\\\[!#-\\/;=?\\-@_~])(?:(?:[\\.\\-0-:A-Z_a-z\\xb7\\xc0-\\xd6\\xd8-\\xf6\\xf8-\\u037d\\u037f-\\u1fff\\u200c\\u200d\\u203f\\u2040\\u2070-\\u218f\\u2c00-\\u2fef\\u3001-\\ud7ff\\uf900-\\ufdcf\\ufdf0-\\ufffd]|[\\ud800-\\udb7f][\\udc00-\\udfff]|%[0-9a-fA-F]{2}|\\\\[!#-\\/;=?\\-@_~])*(?:[\\-0-:A-Z_a-z\\xb7\\xc0-\\xd6\\xd8-\\xf6\\xf8-\\u037d\\u037f-\\u1fff\\u200c\\u200d\\u203f\\u2040\\u2070-\\u218f\\u2c00-\\u2fef\\u3001-\\ud7ff\\uf900-\\ufdcf\\ufdf0-\\ufffd]|[\\ud800-\\udb7f][\\udc00-\\udfff]|%[0-9a-fA-F]{2}|\\\\[!#-\\/;=?\\-@_~]))?)?)(?:[ \\t]+|(?=\\.?[,;!\\^\\s#()\\[\\]\\{\\}\"'<]))/;\n this._variable = /^\\?(?:(?:[A-Z_a-z\\xc0-\\xd6\\xd8-\\xf6\\xf8-\\u02ff\\u0370-\\u037d\\u037f-\\u1fff\\u200c\\u200d\\u2070-\\u218f\\u2c00-\\u2fef\\u3001-\\ud7ff\\uf900-\\ufdcf\\ufdf0-\\ufffd]|[\\ud800-\\udb7f][\\udc00-\\udfff])(?:[\\-0-:A-Z_a-z\\xb7\\xc0-\\xd6\\xd8-\\xf6\\xf8-\\u037d\\u037f-\\u1fff\\u200c\\u200d\\u203f\\u2040\\u2070-\\u218f\\u2c00-\\u2fef\\u3001-\\ud7ff\\uf900-\\ufdcf\\ufdf0-\\ufffd]|[\\ud800-\\udb7f][\\udc00-\\udfff])*)(?=[.,;!\\^\\s#()\\[\\]\\{\\}\"'<])/;\n this._blank = /^_:((?:[0-9A-Z_a-z\\xc0-\\xd6\\xd8-\\xf6\\xf8-\\u02ff\\u0370-\\u037d\\u037f-\\u1fff\\u200c\\u200d\\u2070-\\u218f\\u2c00-\\u2fef\\u3001-\\ud7ff\\uf900-\\ufdcf\\ufdf0-\\ufffd]|[\\ud800-\\udb7f][\\udc00-\\udfff])(?:\\.?[\\-0-9A-Z_a-z\\xb7\\xc0-\\xd6\\xd8-\\xf6\\xf8-\\u037d\\u037f-\\u1fff\\u200c\\u200d\\u203f\\u2040\\u2070-\\u218f\\u2c00-\\u2fef\\u3001-\\ud7ff\\uf900-\\ufdcf\\ufdf0-\\ufffd]|[\\ud800-\\udb7f][\\udc00-\\udfff])*)(?:[ \\t]+|(?=\\.?[,;:\\s#()\\[\\]\\{\\}\"'<]))/;\n this._number = /^[\\-+]?(?:(\\d+\\.\\d*|\\.?\\d+)[eE][\\-+]?|\\d*(\\.)?)\\d+(?=\\.?[,;:\\s#()\\[\\]\\{\\}\"'<])/;\n this._boolean = /^(?:true|false)(?=[.,;\\s#()\\[\\]\\{\\}\"'<])/;\n this._keyword = /^@[a-z]+(?=[\\s#<:])/i;\n this._sparqlKeyword = /^(?:PREFIX|BASE|GRAPH)(?=[\\s#<])/i;\n this._shortPredicates = /^a(?=[\\s()\\[\\]\\{\\}\"'<])/;\n this._newline = /^[ \\t]*(?:#[^\\n\\r]*)?(?:\\r\\n|\\n|\\r)[ \\t]*/;\n this._comment = /#([^\\n\\r]*)/;\n this._whitespace = /^[ \\t]+/;\n this._endOfFile = /^(?:#[^\\n\\r]*)?$/;\n options = options || {};\n\n // In line mode (N-Triples or N-Quads), only simple features may be parsed\n if (this._lineMode = !!options.lineMode) {\n this._n3Mode = false;\n // Don't tokenize special literals\n for (var key in this) {\n if (!(key in lineModeRegExps) && this[key] instanceof RegExp)\n this[key] = invalidRegExp;\n }\n }\n // When not in line mode, enable N3 functionality by default\n else {\n this._n3Mode = options.n3 !== false;\n }\n // Don't output comment tokens by default\n this._comments = !!options.comments;\n // Cache the last tested closing position of long literals\n this._literalClosingPos = 0;\n }\n\n // ## Private methods\n\n // ### `_tokenizeToEnd` tokenizes as for as possible, emitting tokens through the callback\n _tokenizeToEnd(callback, inputFinished) {\n // Continue parsing as far as possible; the loop will return eventually\n var input = this._input, outputComments = this._comments;\n while (true) {\n // Count and skip whitespace lines\n var whiteSpaceMatch, comment;\n while (whiteSpaceMatch = this._newline.exec(input)) {\n // Try to find a comment\n if (outputComments && (comment = this._comment.exec(whiteSpaceMatch[0])))\n callback(null, { line: this._line, type: 'comment', value: comment[1], prefix: '' });\n // Advance the input\n input = input.substr(whiteSpaceMatch[0].length, input.length);\n this._line++;\n }\n // Skip whitespace on current line\n if (!whiteSpaceMatch && (whiteSpaceMatch = this._whitespace.exec(input)))\n input = input.substr(whiteSpaceMatch[0].length, input.length);\n\n // Stop for now if we're at the end\n if (this._endOfFile.test(input)) {\n // If the input is finished, emit EOF\n if (inputFinished) {\n // Try to find a final comment\n if (outputComments && (comment = this._comment.exec(input)))\n callback(null, { line: this._line, type: 'comment', value: comment[1], prefix: '' });\n callback(input = null, { line: this._line, type: 'eof', value: '', prefix: '' });\n }\n return this._input = input;\n }\n\n // Look for specific token types based on the first character\n var line = this._line, type = '', value = '', prefix = '',\n firstChar = input[0], match = null, matchLength = 0, inconclusive = false;\n switch (firstChar) {\n case '^':\n // We need at least 3 tokens lookahead to distinguish ^^ and ^^pre:fixed\n if (input.length < 3)\n break;\n // Try to match a type\n else if (input[1] === '^') {\n this._previousMarker = '^^';\n // Move to type IRI or prefixed name\n input = input.substr(2);\n if (input[0] !== '<') {\n inconclusive = true;\n break;\n }\n }\n // If no type, it must be a path expression\n else {\n if (this._n3Mode) {\n matchLength = 1;\n type = '^';\n }\n break;\n }\n // Fall through in case the type is an IRI\n case '<':\n // Try to find a full IRI without escape sequences\n if (match = this._unescapedIri.exec(input))\n type = 'IRI', value = match[1];\n // Try to find a full IRI with escape sequences\n else if (match = this._iri.exec(input)) {\n value = this._unescape(match[1]);\n if (value === null || illegalIriChars.test(value))\n return reportSyntaxError(this);\n type = 'IRI';\n }\n // Try to find a backwards implication arrow\n else if (this._n3Mode && input.length > 1 && input[1] === '=')\n type = 'inverse', matchLength = 2, value = '>';\n break;\n\n case '_':\n // Try to find a blank node. Since it can contain (but not end with) a dot,\n // we always need a non-dot character before deciding it is a blank node.\n // Therefore, try inserting a space if we're at the end of the input.\n if ((match = this._blank.exec(input)) ||\n inputFinished && (match = this._blank.exec(input + ' ')))\n type = 'blank', prefix = '_', value = match[1];\n break;\n\n case '\"':\n // Try to find a literal without escape sequences\n if (match = this._simpleQuotedString.exec(input))\n value = match[1];\n // Try to find a literal wrapped in three pairs of quotes\n else {\n ({ value, matchLength } = this._parseLiteral(input));\n if (value === null)\n return reportSyntaxError(this);\n }\n if (match !== null || matchLength !== 0) {\n type = 'literal';\n this._literalClosingPos = 0;\n }\n break;\n\n case \"'\":\n if (!this._lineMode) {\n // Try to find a literal without escape sequences\n if (match = this._simpleApostropheString.exec(input))\n value = match[1];\n // Try to find a literal wrapped in three pairs of quotes\n else {\n ({ value, matchLength } = this._parseLiteral(input));\n if (value === null)\n return reportSyntaxError(this);\n }\n if (match !== null || matchLength !== 0) {\n type = 'literal';\n this._literalClosingPos = 0;\n }\n }\n break;\n\n case '?':\n // Try to find a variable\n if (this._n3Mode && (match = this._variable.exec(input)))\n type = 'var', value = match[0];\n break;\n\n case '@':\n // Try to find a language code\n if (this._previousMarker === 'literal' && (match = this._langcode.exec(input)))\n type = 'langcode', value = match[1];\n // Try to find a keyword\n else if (match = this._keyword.exec(input))\n type = match[0];\n break;\n\n case '.':\n // Try to find a dot as punctuation\n if (input.length === 1 ? inputFinished : (input[1] < '0' || input[1] > '9')) {\n type = '.';\n matchLength = 1;\n break;\n }\n // Fall through to numerical case (could be a decimal dot)\n\n case '0':\n case '1':\n case '2':\n case '3':\n case '4':\n case '5':\n case '6':\n case '7':\n case '8':\n case '9':\n case '+':\n case '-':\n // Try to find a number. Since it can contain (but not end with) a dot,\n // we always need a non-dot character before deciding it is a number.\n // Therefore, try inserting a space if we're at the end of the input.\n if (match = this._number.exec(input) ||\n inputFinished && (match = this._number.exec(input + ' '))) {\n type = 'literal', value = match[0];\n prefix = (typeof match[1] === 'string' ? xsd.double :\n (typeof match[2] === 'string' ? xsd.decimal : xsd.integer));\n }\n break;\n\n case 'B':\n case 'b':\n case 'p':\n case 'P':\n case 'G':\n case 'g':\n // Try to find a SPARQL-style keyword\n if (match = this._sparqlKeyword.exec(input))\n type = match[0].toUpperCase();\n else\n inconclusive = true;\n break;\n\n case 'f':\n case 't':\n // Try to match a boolean\n if (match = this._boolean.exec(input))\n type = 'literal', value = match[0], prefix = xsd.boolean;\n else\n inconclusive = true;\n break;\n\n case 'a':\n // Try to find an abbreviated predicate\n if (match = this._shortPredicates.exec(input))\n type = 'abbreviation', value = 'a';\n else\n inconclusive = true;\n break;\n\n case '=':\n // Try to find an implication arrow or equals sign\n if (this._n3Mode && input.length > 1) {\n type = 'abbreviation';\n if (input[1] !== '>')\n matchLength = 1, value = '=';\n else\n matchLength = 2, value = '>';\n }\n break;\n\n case '!':\n if (!this._n3Mode)\n break;\n case ',':\n case ';':\n case '[':\n case ']':\n case '(':\n case ')':\n case '{':\n case '}':\n if (!this._lineMode) {\n matchLength = 1;\n type = firstChar;\n }\n break;\n\n default:\n inconclusive = true;\n }\n\n // Some first characters do not allow an immediate decision, so inspect more\n if (inconclusive) {\n // Try to find a prefix\n if ((this._previousMarker === '@prefix' || this._previousMarker === 'PREFIX') &&\n (match = this._prefix.exec(input)))\n type = 'prefix', value = match[1] || '';\n // Try to find a prefixed name. Since it can contain (but not end with) a dot,\n // we always need a non-dot character before deciding it is a prefixed name.\n // Therefore, try inserting a space if we're at the end of the input.\n else if ((match = this._prefixed.exec(input)) ||\n inputFinished && (match = this._prefixed.exec(input + ' ')))\n type = 'prefixed', prefix = match[1] || '', value = this._unescape(match[2]);\n }\n\n // A type token is special: it can only be emitted after an IRI or prefixed name is read\n if (this._previousMarker === '^^') {\n switch (type) {\n case 'prefixed': type = 'type'; break;\n case 'IRI': type = 'typeIRI'; break;\n default: type = '';\n }\n }\n\n // What if nothing of the above was found?\n if (!type) {\n // We could be in streaming mode, and then we just wait for more input to arrive.\n // Otherwise, a syntax error has occurred in the input.\n // One exception: error on an unaccounted linebreak (= not inside a triple-quoted literal).\n if (inputFinished || (!/^'''|^\"\"\"/.test(input) && /\\n|\\r/.test(input)))\n return reportSyntaxError(this);\n else\n return this._input = input;\n }\n\n // Emit the parsed token\n var token = { line: line, type: type, value: value, prefix: prefix };\n callback(null, token);\n this.previousToken = token;\n this._previousMarker = type;\n // Advance to next part to tokenize\n input = input.substr(matchLength || match[0].length, input.length);\n }\n\n // Signals the syntax error through the callback\n function reportSyntaxError(self) { callback(self._syntaxError(/^\\S*/.exec(input)[0])); }\n }\n\n // ### `_unescape` replaces N3 escape codes by their corresponding characters\n _unescape(item) {\n try {\n return item.replace(escapeSequence, function (sequence, unicode4, unicode8, escapedChar) {\n var charCode;\n if (unicode4) {\n charCode = parseInt(unicode4, 16);\n if (isNaN(charCode)) throw new Error(); // can never happen (regex), but helps performance\n return fromCharCode(charCode);\n }\n else if (unicode8) {\n charCode = parseInt(unicode8, 16);\n if (isNaN(charCode)) throw new Error(); // can never happen (regex), but helps performance\n if (charCode <= 0xFFFF) return fromCharCode(charCode);\n return fromCharCode(0xD800 + ((charCode -= 0x10000) / 0x400), 0xDC00 + (charCode & 0x3FF));\n }\n else {\n var replacement = escapeReplacements[escapedChar];\n if (!replacement)\n throw new Error();\n return replacement;\n }\n });\n }\n catch (error) { return null; }\n }\n\n // ### `_parseLiteral` parses a literal into an unescaped value\n _parseLiteral(input) {\n // Ensure we have enough lookahead to identify triple-quoted strings\n if (input.length >= 3) {\n // Identify the opening quote(s)\n const opening = input.match(/^(?:\"\"\"|\"|'''|'|)/)[0];\n const openingLength = opening.length;\n\n // Find the next candidate closing quotes\n let closingPos = Math.max(this._literalClosingPos, openingLength);\n while ((closingPos = input.indexOf(opening, closingPos)) > 0) {\n // Count backslashes right before the closing quotes\n let backslashCount = 0;\n while (input[closingPos - backslashCount - 1] === '\\\\')\n backslashCount++;\n\n // An even number of backslashes (in particular 0)\n // means these are actual, non-escaped closing quotes\n if (backslashCount % 2 === 0) {\n // Extract and unescape the value\n const raw = input.substring(openingLength, closingPos);\n const lines = raw.split(/\\r\\n|\\r|\\n/).length - 1;\n const matchLength = closingPos + openingLength;\n // Only triple-quoted strings can be multi-line\n if (openingLength === 1 && lines !== 0 ||\n openingLength === 3 && this._lineMode)\n break;\n this._line += lines;\n return { value: this._unescape(raw), matchLength };\n }\n closingPos++;\n }\n this._literalClosingPos = input.length - openingLength + 1;\n }\n return { value: '', matchLength: 0 };\n }\n\n // ### `_syntaxError` creates a syntax error for the given issue\n _syntaxError(issue) {\n this._input = null;\n var err = new Error('Unexpected \"' + issue + '\" on line ' + this._line + '.');\n err.context = {\n token: undefined,\n line: this._line,\n previousToken: this.previousToken,\n };\n return err;\n }\n\n // ## Public methods\n\n // ### `tokenize` starts the transformation of an N3 document into an array of tokens.\n // The input can be a string or a stream.\n tokenize(input, callback) {\n var self = this;\n this._line = 1;\n\n // If the input is a string, continuously emit tokens through the callback until the end\n if (typeof input === 'string') {\n this._input = input;\n // If a callback was passed, asynchronously call it\n if (typeof callback === 'function')\n setImmediate(function () { self._tokenizeToEnd(callback, true); });\n // If no callback was passed, tokenize synchronously and return\n else {\n var tokens = [], error;\n this._tokenizeToEnd(function (e, t) { e ? (error = e) : tokens.push(t); }, true);\n if (error) throw error;\n return tokens;\n }\n }\n // Otherwise, the input must be a stream\n else {\n this._input = '';\n this._pendingBuffer = null;\n if (typeof input.setEncoding === 'function')\n input.setEncoding('utf8');\n // Adds the data chunk to the buffer and parses as far as possible\n input.on('data', function (data) {\n if (self._input !== null && data.length !== 0) {\n // Prepend any previous pending writes\n if (self._pendingBuffer) {\n data = Buffer.concat([self._pendingBuffer, data]);\n self._pendingBuffer = null;\n }\n // Hold if the buffer ends in an incomplete unicode sequence\n if (data[data.length - 1] & 0x80) {\n self._pendingBuffer = data;\n }\n // Otherwise, tokenize as far as possible\n else {\n self._input += data;\n self._tokenizeToEnd(callback, false);\n }\n }\n });\n // Parses until the end\n input.on('end', function () {\n if (self._input !== null)\n self._tokenizeToEnd(callback, true);\n });\n input.on('error', callback);\n }\n }\n}\n","// Unique ID creation requires a high quality random # generator. In the browser we therefore\n// require the crypto API and do not support built-in fallback to lower quality random number\n// generators (like Math.random()).\n// getRandomValues needs to be invoked in a context where \"this\" is a Crypto implementation. Also,\n// find the complete implementation of crypto (msCrypto) on IE11.\nvar getRandomValues = typeof crypto != 'undefined' && crypto.getRandomValues && crypto.getRandomValues.bind(crypto) || typeof msCrypto != 'undefined' && typeof msCrypto.getRandomValues == 'function' && msCrypto.getRandomValues.bind(msCrypto);\nvar rnds8 = new Uint8Array(16); // eslint-disable-line no-undef\n\nexport default function rng() {\n if (!getRandomValues) {\n throw new Error('crypto.getRandomValues() not supported. See https://github.com/uuidjs/uuid#getrandomvalues-not-supported');\n }\n\n return getRandomValues(rnds8);\n}","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nclass Util {\n /**\n * Check if the given term is a valid compact IRI.\n * Otherwise, it may be an IRI.\n * @param {string} term A term.\n * @return {boolean} If it is a compact IRI.\n */\n static isCompactIri(term) {\n return term.indexOf(':') > 0 && !(term && term[0] === '#');\n }\n /**\n * Get the prefix from the given term.\n * @see https://json-ld.org/spec/latest/json-ld/#compact-iris\n * @param {string} term A term that is an URL or a prefixed URL.\n * @param {IJsonLdContextNormalizedRaw} context A context.\n * @return {string} The prefix or null.\n */\n static getPrefix(term, context) {\n // Do not consider relative IRIs starting with a hash as compact IRIs\n if (term && term[0] === '#') {\n return null;\n }\n const separatorPos = term.indexOf(':');\n if (separatorPos >= 0) {\n // Suffix can not begin with two slashes\n if (term.length > separatorPos + 1\n && term.charAt(separatorPos + 1) === '/'\n && term.charAt(separatorPos + 2) === '/') {\n return null;\n }\n const prefix = term.substr(0, separatorPos);\n // Prefix can not be an underscore (this is a blank node)\n if (prefix === '_') {\n return null;\n }\n // Prefix must match a term in the active context\n if (context[prefix]) {\n return prefix;\n }\n }\n return null;\n }\n /**\n * From a given context entry value, get the string value, or the @id field.\n * @param contextValue A value for a term in a context.\n * @return {string} The id value, or null.\n */\n static getContextValueId(contextValue) {\n if (contextValue === null || typeof contextValue === 'string') {\n return contextValue;\n }\n const id = contextValue['@id'];\n return id ? id : null;\n }\n /**\n * Check if the given simple term definition (string-based value of a context term)\n * should be considered a prefix.\n * @param value A simple term definition value.\n * @param options Options that define the way how expansion must be done.\n */\n static isSimpleTermDefinitionPrefix(value, options) {\n return !Util.isPotentialKeyword(value)\n && (value[0] === '_' || options.allowPrefixNonGenDelims || Util.isPrefixIriEndingWithGenDelim(value));\n }\n /**\n * Check if the given keyword is of the keyword format \"@\"1*ALPHA.\n * @param {string} keyword A potential keyword.\n * @return {boolean} If the given keyword is of the keyword format.\n */\n static isPotentialKeyword(keyword) {\n return typeof keyword === 'string' && Util.KEYWORD_REGEX.test(keyword);\n }\n /**\n * Check if the given prefix ends with a gen-delim character.\n * @param {string} prefixIri A prefix IRI.\n * @return {boolean} If the given prefix IRI is valid.\n */\n static isPrefixIriEndingWithGenDelim(prefixIri) {\n return Util.ENDS_WITH_GEN_DELIM.test(prefixIri);\n }\n /**\n * Check if the given context value can be a prefix value.\n * @param value A context value.\n * @return {boolean} If it can be a prefix value.\n */\n static isPrefixValue(value) {\n return value && (typeof value === 'string' || (value && typeof value === 'object'));\n }\n /**\n * Check if the given IRI is valid.\n * @param {string} iri A potential IRI.\n * @return {boolean} If the given IRI is valid.\n */\n static isValidIri(iri) {\n return Util.IRI_REGEX.test(iri);\n }\n /**\n * Check if the given IRI is valid, this includes the possibility of being a relative IRI.\n * @param {string} iri A potential IRI.\n * @return {boolean} If the given IRI is valid.\n */\n static isValidIriWeak(iri) {\n return !!iri && iri[0] !== ':' && Util.IRI_REGEX_WEAK.test(iri);\n }\n /**\n * Check if the given keyword is a defined according to the JSON-LD specification.\n * @param {string} keyword A potential keyword.\n * @return {boolean} If the given keyword is valid.\n */\n static isValidKeyword(keyword) {\n return Util.VALID_KEYWORDS[keyword];\n }\n /**\n * Check if the given term is protected in the context.\n * @param {IJsonLdContextNormalizedRaw} context A context.\n * @param {string} key A context term.\n * @return {boolean} If the given term has an @protected flag.\n */\n static isTermProtected(context, key) {\n const value = context[key];\n return !(typeof value === 'string') && value && value['@protected'];\n }\n /**\n * Check if the given context has at least one protected term.\n * @param context A context.\n * @return If the context has a protected term.\n */\n static hasProtectedTerms(context) {\n for (const key of Object.keys(context)) {\n if (Util.isTermProtected(context, key)) {\n return true;\n }\n }\n return false;\n }\n /**\n * Check if the given key is an internal reserved keyword.\n * @param key A context key.\n */\n static isReservedInternalKeyword(key) {\n return key.startsWith('@__');\n }\n}\n// Regex for valid IRIs\nUtil.IRI_REGEX = /^([A-Za-z][A-Za-z0-9+-.]*|_):[^ \"<>{}|\\\\\\[\\]`#]*(#[^#]*)?$/;\n// Weaker regex for valid IRIs, this includes relative IRIs\nUtil.IRI_REGEX_WEAK = /(?::[^:])|\\//;\n// Regex for keyword form\nUtil.KEYWORD_REGEX = /^@[a-z]+$/i;\n// Regex to see if an IRI ends with a gen-delim character (see RFC 3986)\nUtil.ENDS_WITH_GEN_DELIM = /[:/?#\\[\\]@]$/;\n// Regex for language tags\nUtil.REGEX_LANGUAGE_TAG = /^[a-zA-Z]+(-[a-zA-Z0-9]+)*$/;\n// Regex for base directions\nUtil.REGEX_DIRECTION_TAG = /^(ltr)|(rtl)$/;\n// All known valid JSON-LD keywords\n// @see https://www.w3.org/TR/json-ld11/#keywords\nUtil.VALID_KEYWORDS = {\n '@base': true,\n '@container': true,\n '@context': true,\n '@direction': true,\n '@graph': true,\n '@id': true,\n '@import': true,\n '@included': true,\n '@index': true,\n '@json': true,\n '@language': true,\n '@list': true,\n '@nest': true,\n '@none': true,\n '@prefix': true,\n '@propagate': true,\n '@protected': true,\n '@reverse': true,\n '@set': true,\n '@type': true,\n '@value': true,\n '@version': true,\n '@vocab': true,\n};\n// Keys in the contexts that will not be expanded based on the base IRI\nUtil.EXPAND_KEYS_BLACKLIST = [\n '@base',\n '@vocab',\n '@language',\n '@version',\n '@direction',\n];\n// Keys in the contexts that may not be aliased from\nUtil.ALIAS_DOMAIN_BLACKLIST = [\n '@container',\n '@graph',\n '@id',\n '@index',\n '@list',\n '@nest',\n '@none',\n '@prefix',\n '@reverse',\n '@set',\n '@type',\n '@value',\n '@version',\n];\n// Keys in the contexts that may not be aliased to\nUtil.ALIAS_RANGE_BLACKLIST = [\n '@context',\n '@preserve',\n];\n// All valid @container values\nUtil.CONTAINERS = [\n '@list',\n '@set',\n '@index',\n '@language',\n '@graph',\n '@id',\n '@type',\n];\n// All valid @container values under processing mode 1.0\nUtil.CONTAINERS_1_0 = [\n '@list',\n '@set',\n '@index',\n];\nexports.Util = Util;\n//# sourceMappingURL=Util.js.map","// Ported from https://github.com/mafintosh/end-of-stream with\n// permission from the author, Mathias Buus (@mafintosh).\n'use strict';\n\nvar ERR_STREAM_PREMATURE_CLOSE = require('../../../errors').codes.ERR_STREAM_PREMATURE_CLOSE;\n\nfunction once(callback) {\n var called = false;\n return function () {\n if (called) return;\n called = true;\n\n for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n\n callback.apply(this, args);\n };\n}\n\nfunction noop() {}\n\nfunction isRequest(stream) {\n return stream.setHeader && typeof stream.abort === 'function';\n}\n\nfunction eos(stream, opts, callback) {\n if (typeof opts === 'function') return eos(stream, null, opts);\n if (!opts) opts = {};\n callback = once(callback || noop);\n var readable = opts.readable || opts.readable !== false && stream.readable;\n var writable = opts.writable || opts.writable !== false && stream.writable;\n\n var onlegacyfinish = function onlegacyfinish() {\n if (!stream.writable) onfinish();\n };\n\n var writableEnded = stream._writableState && stream._writableState.finished;\n\n var onfinish = function onfinish() {\n writable = false;\n writableEnded = true;\n if (!readable) callback.call(stream);\n };\n\n var readableEnded = stream._readableState && stream._readableState.endEmitted;\n\n var onend = function onend() {\n readable = false;\n readableEnded = true;\n if (!writable) callback.call(stream);\n };\n\n var onerror = function onerror(err) {\n callback.call(stream, err);\n };\n\n var onclose = function onclose() {\n var err;\n\n if (readable && !readableEnded) {\n if (!stream._readableState || !stream._readableState.ended) err = new ERR_STREAM_PREMATURE_CLOSE();\n return callback.call(stream, err);\n }\n\n if (writable && !writableEnded) {\n if (!stream._writableState || !stream._writableState.ended) err = new ERR_STREAM_PREMATURE_CLOSE();\n return callback.call(stream, err);\n }\n };\n\n var onrequest = function onrequest() {\n stream.req.on('finish', onfinish);\n };\n\n if (isRequest(stream)) {\n stream.on('complete', onfinish);\n stream.on('abort', onclose);\n if (stream.req) onrequest();else stream.on('request', onrequest);\n } else if (writable && !stream._writableState) {\n // legacy streams\n stream.on('end', onlegacyfinish);\n stream.on('close', onlegacyfinish);\n }\n\n stream.on('end', onend);\n stream.on('finish', onfinish);\n if (opts.error !== false) stream.on('error', onerror);\n stream.on('close', onclose);\n return function () {\n stream.removeListener('complete', onfinish);\n stream.removeListener('abort', onclose);\n stream.removeListener('request', onrequest);\n if (stream.req) stream.req.removeListener('finish', onfinish);\n stream.removeListener('end', onlegacyfinish);\n stream.removeListener('close', onlegacyfinish);\n stream.removeListener('finish', onfinish);\n stream.removeListener('end', onend);\n stream.removeListener('error', onerror);\n stream.removeListener('close', onclose);\n };\n}\n\nmodule.exports = eos;","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\n/**\n * Tests whether an element is a tag or not.\n *\n * @param elem Element to test\n */\nfunction isTag(elem) {\n return (elem.type === \"tag\" /* Tag */ ||\n elem.type === \"script\" /* Script */ ||\n elem.type === \"style\" /* Style */);\n}\nexports.isTag = isTag;\n// Exports for backwards compatibility\nexports.Text = \"text\" /* Text */; //Text\nexports.Directive = \"directive\" /* Directive */; //\nexports.Comment = \"comment\" /* Comment */; //\nexports.Script = \"script\" /* Script */; //