diff --git a/.gitkeep b/.gitkeep
new file mode 100644
index 0000000..e69de29
diff --git a/index.css b/index.css
new file mode 100644
index 0000000..bcdf382
--- /dev/null
+++ b/index.css
@@ -0,0 +1 @@
+:root{background-color:#f2f2f2;color-scheme:light dark;font-family:system-ui;word-break:break-word}body{margin:0}main{background-color:#f9f9f9;margin:0 auto;max-width:40em;padding:0 calc(2em + 2ex);position:relative}@media (min-width:40em) and (min-height:20em){main{border:1px solid #e2e5e9;border-radius:3px;margin:11.1vh 22.2vw 22.2vh 11.1vw}}section{border-color:#e1e4e8;border-style:solid;border-width:1px 0;margin:calc(2em + 2ex) calc(-2em - 2ex);padding:calc(2em + 2ex)}section+section{margin-top:calc(-2em - 2ex - 1px)}section>:first-child{margin-top:0}section>:last-child{margin-bottom:0}section:first-child{border-top-left-radius:inherit;border-top-right-radius:inherit;border-top-width:0;margin-top:0}section:last-child{border-bottom-left-radius:inherit;border-bottom-right-radius:inherit;border-bottom-width:0;margin-bottom:0}.hl{color:#4c1}.highlight{background-color:#fff}*{box-sizing:border-box;line-height:calc(1em + 1ex)}h1,h2,p{margin-bottom:calc(1em + 1ex);margin-top:calc(1em + 1ex)}h1,h2{font-weight:400;text-align:center}h1{font-size:3em}h2{font-size:2em}a{color:#0367d8;text-decoration:none;transition:.2s;transition-property:color}a:focus,a:hover,a:target{color:inherit}.credits{text-align:center}table,textarea{font-family:SFMono-Regular,Consolas,Liberation Mono,Menlo,Courier,monospace}td{min-width:6ch}textarea{color:inherit;font-size:16px;letter-spacing:normal;line-height:calc(1em + 1ex);white-space:pre-wrap;word-wrap:break-word;background:transparent;border:none;box-sizing:border-box;margin:0;outline:none;padding:0;resize:none;width:100%}@media (prefers-color-scheme:dark){:root{background-color:#111316;color:#f1f2f4}main{background-color:#0b0d0e}@media (min-width:40em) and (min-height:20em){main{border-color:#1c1f24}}.highlight{background-color:#060607}section{border-color:#1c1f24}}
\ No newline at end of file
diff --git a/index.html b/index.html
new file mode 100644
index 0000000..3ffa80a
--- /dev/null
+++ b/index.html
@@ -0,0 +1 @@
+
franc
\ No newline at end of file
diff --git a/index.module.js b/index.module.js
new file mode 100644
index 0000000..8e186df
--- /dev/null
+++ b/index.module.js
@@ -0,0 +1,17 @@
+var W=Object.create;var f=Object.defineProperty;var H=Object.getOwnPropertyDescriptor;var O=Object.getOwnPropertyNames;var Y=Object.getPrototypeOf,U=Object.prototype.hasOwnProperty;var R=(n,a)=>()=>(a||n((a={exports:{}}).exports,a),a.exports);var Z=(n,a,i,o)=>{if(a&&typeof a=="object"||typeof a=="function")for(let e of O(a))!U.call(n,e)&&e!==i&&f(n,e,{get:()=>a[e],enumerable:!(o=H(a,e))||o.enumerable});return n};var J=(n,a,i)=>(i=n!=null?W(Y(n)):{},Z(a||!n||!n.__esModule?f(i,"default",{value:n,enumerable:!0}):i,n));var M=R((ya,w)=>{function x(n,a=100,i={}){if(typeof n!="function")throw new TypeError(`Expected the first parameter to be a function, got \`${typeof n}\`.`);if(a<0)throw new RangeError("`wait` must not be negative.");let{immediate:o}=typeof i=="boolean"?{immediate:i}:i,e,u,t,r,l;function z(){let s=Date.now()-r;if(s=0)t=setTimeout(z,a-s);else if(t=void 0,!o){let k=e,p=u;e=void 0,u=void 0,l=n.apply(k,p)}}let y=function(...s){if(e&&this!==e)throw new Error("Debounced method called with different contexts.");e=this,u=s,r=Date.now();let k=o&&!t;if(t||(t=setTimeout(z,a)),k){let p=e,I=u;e=void 0,u=void 0,l=n.apply(p,I)}return l};return y.clear=()=>{t&&(clearTimeout(t),t=void 0)},y.flush=()=>{if(!t)return;let s=e,k=u;e=void 0,u=void 0,l=n.apply(s,k),clearTimeout(t),t=void 0},y}w.exports.debounce=x;w.exports=x});var G=J(M(),1);var pa=q(2),A=q(3);function q(n){if(typeof n!="number"||Number.isNaN(n)||n<1||n===Number.POSITIVE_INFINITY)throw new Error("`"+n+"` is not a valid argument for `n-gram`");return a;function a(i){let o=[];if(i==null)return o;let e=typeof i.slice=="function"?i:String(i),u=e.length-n+1;if(u<1)return o;for(;u--;)o[u]=e.slice(u,u+n);return o}}var V=/\s+/g,Q=/[\t\n\v\f\r ]+/g;function S(n,a){a?typeof a=="string"&&(a={style:a}):a={};let i=a.preserveLineEndings?X:_;return String(n).replace(a.style==="html"?Q:V,a.trim?$(i):i)}function X(n){let a=/\r?\n|\r/.exec(n);return a?a[0]:" "}function _(){return" "}function $(n){return a;function a(i,o,e){return o===0||o+i.length===e.length?"":n(i)}}var K={}.hasOwnProperty;function aa(n){return n==null?"":S(String(n).replace(/[\u0021-\u0040]+/g," ")).trim().toLowerCase()}function na(n){return A(" "+aa(n)+" ")}function ia(n){let a=na(n),i={},o=-1;for(;++oi&&(i=u,o=e)}return[o,i]}function sa(n,a){let i=n.match(a);return(i?i.length:0)/n.length||0}function ra(n,a,i,o){a=ma(a,i,o);let e=[],u;if(a)for(u in a)h.call(a,u)&&e.push([u,ka(n,a[u])]);return e.length===0?c():e.sort(ga)}function ka(n,a){let i=0,o=-1;for(;++o{var W=Object.create;var f=Object.defineProperty;var H=Object.getOwnPropertyDescriptor;var O=Object.getOwnPropertyNames;var Y=Object.getPrototypeOf,U=Object.prototype.hasOwnProperty;var R=(n,a)=>()=>(a||n((a={exports:{}}).exports,a),a.exports);var Z=(n,a,i,o)=>{if(a&&typeof a=="object"||typeof a=="function")for(let e of O(a))!U.call(n,e)&&e!==i&&f(n,e,{get:()=>a[e],enumerable:!(o=H(a,e))||o.enumerable});return n};var J=(n,a,i)=>(i=n!=null?W(Y(n)):{},Z(a||!n||!n.__esModule?f(i,"default",{value:n,enumerable:!0}):i,n));var M=R((ya,w)=>{function x(n,a=100,i={}){if(typeof n!="function")throw new TypeError(`Expected the first parameter to be a function, got \`${typeof n}\`.`);if(a<0)throw new RangeError("`wait` must not be negative.");let{immediate:o}=typeof i=="boolean"?{immediate:i}:i,e,u,t,r,l;function z(){let s=Date.now()-r;if(s=0)t=setTimeout(z,a-s);else if(t=void 0,!o){let k=e,p=u;e=void 0,u=void 0,l=n.apply(k,p)}}let y=function(...s){if(e&&this!==e)throw new Error("Debounced method called with different contexts.");e=this,u=s,r=Date.now();let k=o&&!t;if(t||(t=setTimeout(z,a)),k){let p=e,I=u;e=void 0,u=void 0,l=n.apply(p,I)}return l};return y.clear=()=>{t&&(clearTimeout(t),t=void 0)},y.flush=()=>{if(!t)return;let s=e,k=u;e=void 0,u=void 0,l=n.apply(s,k),clearTimeout(t),t=void 0},y}w.exports.debounce=x;w.exports=x});var G=J(M(),1);var pa=q(2),A=q(3);function q(n){if(typeof n!="number"||Number.isNaN(n)||n<1||n===Number.POSITIVE_INFINITY)throw new Error("`"+n+"` is not a valid argument for `n-gram`");return a;function a(i){let o=[];if(i==null)return o;let e=typeof i.slice=="function"?i:String(i),u=e.length-n+1;if(u<1)return o;for(;u--;)o[u]=e.slice(u,u+n);return o}}var V=/\s+/g,Q=/[\t\n\v\f\r ]+/g;function S(n,a){a?typeof a=="string"&&(a={style:a}):a={};let i=a.preserveLineEndings?X:_;return String(n).replace(a.style==="html"?Q:V,a.trim?$(i):i)}function X(n){let a=/\r?\n|\r/.exec(n);return a?a[0]:" "}function _(){return" "}function $(n){return a;function a(i,o,e){return o===0||o+i.length===e.length?"":n(i)}}var K={}.hasOwnProperty;function aa(n){return n==null?"":S(String(n).replace(/[\u0021-\u0040]+/g," ")).trim().toLowerCase()}function na(n){return A(" "+aa(n)+" ")}function ia(n){let a=na(n),i={},o=-1;for(;++oi&&(i=u,o=e)}return[o,i]}function sa(n,a){let i=n.match(a);return(i?i.length:0)/n.length||0}function ra(n,a,i,o){a=ma(a,i,o);let e=[],u;if(a)for(u in a)h.call(a,u)&&e.push([u,ka(n,a[u])]);return e.length===0?c():e.sort(ga)}function ka(n,a){let i=0,o=-1;for(;++o