From d20c46be1fb14e25ef2060a4c0b0c6a4c49ce6e7 Mon Sep 17 00:00:00 2001 From: Charles Ancheta <55412395+cbebe@users.noreply.github.com> Date: Sun, 10 Dec 2023 22:10:16 -0700 Subject: [PATCH] Deploy website - based on 8dcbb54b832a577427d9f2717ff02a09e5ae4b5c --- articles/index.html | 11 +- .../{index.18f28088.js => index.cb1f0e09.js} | 2 +- assets/predictor_bg.wasm | Bin 29712 -> 30008 bytes blog/index.html | 11 +- docs/index.html | 11 +- index.html | 2 +- index.xml | 16 +- post/expired-domain/index.html | 6 +- post/go-interfaces/index.html | 192 +++++++++--------- post/i-deleted-my-npm-packages/index.html | 170 ++++++++-------- post/index.html | 21 +- post/index.xml | 16 +- post/pou/index.html | 6 +- .../index.html | 10 +- post/static-website-setup/part-1/index.html | 176 ++++++++++++++++ .../part-1/static-vs-dynamic.webp | Bin 0 -> 15552 bytes post/til/parallel-make/index.html | 44 ++-- post/why-i-migrated-to-hugo/index.html | 10 +- posts/index.html | 11 +- showcase/index.html | 11 +- sitemap.xml | 4 + turnip/index.html | 2 +- 22 files changed, 454 insertions(+), 278 deletions(-) rename assets/{index.18f28088.js => index.cb1f0e09.js} (69%) create mode 100644 post/static-website-setup/part-1/index.html create mode 100644 post/static-website-setup/part-1/static-vs-dynamic.webp diff --git a/articles/index.html b/articles/index.html index 7eca27c..ae2d031 100644 --- a/articles/index.html +++ b/articles/index.html @@ -1,10 +1 @@ - - - - https://charles.thyck.top/post/ - - - - - - +https://charles.thyck.top/post/ \ No newline at end of file diff --git a/assets/index.18f28088.js b/assets/index.cb1f0e09.js similarity index 69% rename from assets/index.18f28088.js rename to assets/index.cb1f0e09.js index 7549b3c..576168f 100644 --- a/assets/index.18f28088.js +++ b/assets/index.cb1f0e09.js @@ -1,4 +1,4 @@ (function(){const t=document.createElement("link").relList;if(t&&t.supports&&t.supports("modulepreload"))return;for(const n of document.querySelectorAll('link[rel="modulepreload"]'))i(n);new MutationObserver(n=>{for(const o of n)if(o.type==="childList")for(const u of o.addedNodes)u.tagName==="LINK"&&u.rel==="modulepreload"&&i(u)}).observe(document,{childList:!0,subtree:!0});function r(n){const o={};return n.integrity&&(o.integrity=n.integrity),n.referrerpolicy&&(o.referrerPolicy=n.referrerpolicy),n.crossorigin==="use-credentials"?o.credentials="include":n.crossorigin==="anonymous"?o.credentials="omit":o.credentials="same-origin",o}function i(n){if(n.ep)return;n.ep=!0;const o=r(n);fetch(n.href,o)}})();function m(e){return e===void 0?{BS_PRIVATE_NESTED_SOME_NONE:0}:e!==null&&e.BS_PRIVATE_NESTED_SOME_NONE!==void 0?{BS_PRIVATE_NESTED_SOME_NONE:e.BS_PRIVATE_NESTED_SOME_NONE+1|0}:e}function v(e){if(e!=null)return m(e)}function z(e){var t=JSON.stringify(e);return t!==void 0?(localStorage.setItem("island",t),{TAG:0,_0:void 0}):{TAG:1,_0:"failed to stringify data"}}function K(e){var t=localStorage.getItem("island");if(t===null)return{TAG:1,_0:"key not found"};try{var r=JSON.parse(t),i=r.priceList.map(function(n){if(n!=null)return m(n)});return{TAG:0,_0:{price:r.price,priceList:i,predictions:r.predictions,categories:r.categories,pattern:r.pattern}}}catch{return{TAG:1,_0:"failed to parse json"}}}function k(e,t,r){for(var i=new Array(r),n=0,o=t;n=e.length)throw{RE_EXN_ID:"Invalid_argument",_1:"index out of bounds",Error:new Error};e[t]=r}function f(e,t){if(t<0||t>=e.length)throw{RE_EXN_ID:"Invalid_argument",_1:"index out of bounds",Error:new Error};return e[t]}function B(e,t){for(;;){var r=t,i=e,n=i.length,o=n===0?1:n,u=r.length,a=o-u|0;if(a===0)return i.apply(null,r);if(a>=0)return function(c,l){return function(d){return B(c,l.concat([d]))}}(i,r);t=k(r,o,-a|0),e=i.apply(null,k(r,0,o))}}function M(e,t){var r=e.length;if(r===1)return e(t);switch(r){case 1:return e(t);case 2:return function(i){return e(t,i)};case 3:return function(i,n){return e(t,i,n)};case 4:return function(i,n,o){return e(t,i,n,o)};case 5:return function(i,n,o,u){return e(t,i,n,o,u)};case 6:return function(i,n,o,u,a){return e(t,i,n,o,u,a)};case 7:return function(i,n,o,u,a,c){return e(t,i,n,o,u,a,c)};default:return B(e,[t])}}function Y(e){var t=e.length;return t===1?e:function(r){return M(e,r)}}function L(e,t){return e.TAG===0?M(t,e._0):{TAG:1,_0:e._0}}function Z(e,t){if(e.TAG!==0)return M(t,e._0)}function N(e){var t=parseInt(e,10);if(!isNaN(t))return t}function ee(e,t,r){v(document.querySelector("#buy-price")).value=String(e),v(document.querySelector("#previous-pattern")).value=String(r),Array.from(document.querySelectorAll("[data-time]")).forEach(function(i,n){var o=f(t,n);o!==void 0?i.value=String(o):i.value=""})}function te(e){var t=document.querySelector("#buy-price"),r=N((t==null?void 0:m(t)).value),i=r!==void 0?{TAG:0,_0:r}:{TAG:1,_0:"buy price not specified"},n=document.querySelector("#previous-pattern"),o=N((n==null?void 0:m(n)).value),u=Array.from(document.querySelectorAll("[data-time]")).map(function(a){return N(a.value)});return[i,u,o]}function re(e){if(window.confirm(`Are you sure you want to reset all fields? This cannot be undone!`)){v(document.querySelector("#buy-price")).value="",v(document.querySelector("#previous-pattern")).value="-1",Array.from(document.querySelectorAll("[data-time]")).forEach(function(t){t.value=""}),v(document.querySelector("#result")).textContent="";return}}function j(e){return e>3||e<0?4:e}function ne(e){switch(e){case 0:return"Fluctuating";case 1:return"Large spike";case 2:return"Decreasing";case 3:return"Small spike";case 4:return""}}function ie(e){switch(e){case 0:return"Fluc";case 1:return"LaSp";case 2:return"Decr";case 3:return"SmSp";case 4:return""}}function x(e){return e.map(function(t,r){var i=t[1],n=t[0];return""+(n===i?String(n):"("+String(n)+","+String(i)+")")+""}).join(` -`)}function U(e){var t=e*100;return t<.01?"<0.01":String(Math.round((t+Number.EPSILON)*100)/100)}function oe(e){var t=document.getElementById("results-table");if(t!=null){var r=t.parentElement;if(r!=null){r.removeChild(t);return}}}function ue(e){var t=document.createElement("thead");t.innerHTML='PatternPrices%MTWRFS';var r=document.createElement("tbody");e.forEach(function(o){for(var u=U(o.probability),a=[],c=[],l=0;l<=5;++l)a.push([f(o.prices,l<<2),f(o.prices,(l<<2)+1|0)]),c.push([f(o.prices,(l<<2)+2|0),f(o.prices,(l<<2)+3|0)]);var d=x(a),_=x(c),h=document.createElement("tr");h.innerHTML=""+ie(o.pattern)+""+d;var g=document.createElement("tr");g.innerHTML=""+u+"%"+_,r.appendChild(h),r.appendChild(g)});var i=document.createElement("div");i.id="results-table";var n=document.createElement("table");return n.appendChild(t),n.appendChild(r),i.appendChild(n),i}function H(e,t){return e>t?e:t}function ae(e,t){if(e<=0)return[];for(var r=new Array(e),i=0;ii?r-i|0:0,o=new Array(n),u=0;ue>t?-1:e0){v(document.querySelector("#result")).appendChild(ue(o));return}}),i}function ve(e){for(var t=ae(4,0),r=0,i=e.predictions.length;r0){var u=j(o),a=""+ne(u)+" ("+U(f(t,o))+"%)",c=I(a,{_0:u},r);n.appendChild(c)}var l=I("Show All",0,r),d=I("Hide",1,r);n.appendChild(l),n.appendChild(d)}var me="JsError";let s;const X=typeof TextDecoder<"u"?new TextDecoder("utf-8",{ignoreBOM:!0,fatal:!0}):{decode:()=>{throw Error("TextDecoder not available")}};typeof TextDecoder<"u"&&X.decode();let b=null;function S(){return(b===null||b.byteLength===0)&&(b=new Uint8Array(s.memory.buffer)),b}function F(e,t){return e=e>>>0,X.decode(S().subarray(e,e+t))}const p=new Array(128).fill(void 0);p.push(void 0,null,!0,!1);let E=p.length;function y(e){E===p.length&&p.push(p.length+1);const t=E;return E=p[t],p[t]=e,t}function A(e){return p[e]}function _e(e){e<132||(p[e]=E,E=e)}function C(e){const t=A(e);return _e(e),t}let R=0;const T=typeof TextEncoder<"u"?new TextEncoder("utf-8"):{encode:()=>{throw Error("TextEncoder not available")}},he=typeof T.encodeInto=="function"?function(e,t){return T.encodeInto(e,t)}:function(e,t){const r=T.encode(e);return t.set(r),{read:e.length,written:r.length}};function ge(e,t,r){if(r===void 0){const a=T.encode(e),c=t(a.length,1)>>>0;return S().subarray(c,c+a.length).set(a),R=a.length,c}let i=e.length,n=t(i,1)>>>0;const o=S();let u=0;for(;u127)break;o[n+u]=a}if(u!==i){u!==0&&(e=e.slice(u)),n=r(n,i,i=u+e.length*3,1)>>>0;const a=S().subarray(n+u,n+i),c=he(e,a);u+=c.written}return R=u,n}let w=null;function O(){return(w===null||w.byteLength===0)&&(w=new Int32Array(s.memory.buffer)),w}function ye(e,t,r){try{const u=s.__wbindgen_add_to_stack_pointer(-16),a=ge(t,s.__wbindgen_export_0,s.__wbindgen_export_1),c=R;s.predict(u,e,a,c,r);var i=O()[u/4+0],n=O()[u/4+1],o=O()[u/4+2];if(o)throw C(n);return C(i)}finally{s.__wbindgen_add_to_stack_pointer(16)}}async function be(e,t){if(typeof Response=="function"&&e instanceof Response){if(typeof WebAssembly.instantiateStreaming=="function")try{return await WebAssembly.instantiateStreaming(e,t)}catch(i){if(e.headers.get("Content-Type")!="application/wasm")console.warn("`WebAssembly.instantiateStreaming` failed because your server does not serve wasm with `application/wasm` MIME type. Falling back to `WebAssembly.instantiate` which is slower. Original error:\n",i);else throw i}const r=await e.arrayBuffer();return await WebAssembly.instantiate(r,t)}else{const r=await WebAssembly.instantiate(e,t);return r instanceof WebAssembly.Instance?{instance:r,module:e}:r}}function we(){const e={};return e.wbg={},e.wbg.__wbindgen_string_new=function(t,r){const i=F(t,r);return y(i)},e.wbg.__wbindgen_object_drop_ref=function(t){C(t)},e.wbg.__wbg_buffer_344d9b41efe96da7=function(t){const r=A(t).buffer;return y(r)},e.wbg.__wbg_newwithbyteoffsetandlength_4761a4dc62ec68a9=function(t,r,i){const n=new Float32Array(A(t),r>>>0,i>>>0);return y(n)},e.wbg.__wbg_new_4a74ed6e71e0296a=function(t){const r=new Float32Array(A(t));return y(r)},e.wbg.__wbindgen_throw=function(t,r){throw new Error(F(t,r))},e.wbg.__wbindgen_memory=function(){const t=s.memory;return y(t)},e}function Ee(e,t){return s=e.exports,J.__wbindgen_wasm_module=t,w=null,b=null,s}async function J(e){if(s!==void 0)return s;typeof e>"u"&&(e="/assets/predictor_bg.wasm");const t=we();(typeof e=="string"||typeof Request=="function"&&e instanceof Request||typeof URL=="function"&&e instanceof URL)&&(e=fetch(e));const{instance:r,module:i}=await be(await e,t);return Ee(r,i)}function Se(e){return e==null?!1:typeof e.RE_EXN_ID=="string"}function Ae(e){return Se(e)?e:{RE_EXN_ID:"JsError",_1:e}}function Te(e,t,r){for(var i=f(e,0)|0,n=[],o=le(e,1),u=0,a=(t-1|0)/26|0;uPatternPrices%MTWRFS';var r=document.createElement("tbody");e.forEach(function(o){for(var u=U(o.probability),a=[],c=[],l=0;l<=5;++l)a.push([f(o.prices,l<<2),f(o.prices,(l<<2)+1|0)]),c.push([f(o.prices,(l<<2)+2|0),f(o.prices,(l<<2)+3|0)]);var d=x(a),_=x(c),h=document.createElement("tr");h.innerHTML=""+ie(o.pattern)+""+d;var g=document.createElement("tr");g.innerHTML=""+u+"%"+_,r.appendChild(h),r.appendChild(g)});var i=document.createElement("div");i.id="results-table";var n=document.createElement("table");return n.appendChild(t),n.appendChild(r),i.appendChild(n),i}function H(e,t){return e>t?e:t}function ae(e,t){if(e<=0)return[];for(var r=new Array(e),i=0;ii?r-i|0:0,o=new Array(n),u=0;ue>t?-1:e0){v(document.querySelector("#result")).appendChild(ue(o));return}}),i}function ve(e){for(var t=ae(4,0),r=0,i=e.predictions.length;r0){var u=j(o),a=""+ne(u)+" ("+U(f(t,o))+"%)",c=I(a,{_0:u},r);n.appendChild(c)}var l=I("Show All",0,r),d=I("Hide",1,r);n.appendChild(l),n.appendChild(d)}var me="JsError";let s;const X=typeof TextDecoder<"u"?new TextDecoder("utf-8",{ignoreBOM:!0,fatal:!0}):{decode:()=>{throw Error("TextDecoder not available")}};typeof TextDecoder<"u"&&X.decode();let b=null;function S(){return(b===null||b.byteLength===0)&&(b=new Uint8Array(s.memory.buffer)),b}function F(e,t){return e=e>>>0,X.decode(S().subarray(e,e+t))}const p=new Array(128).fill(void 0);p.push(void 0,null,!0,!1);let E=p.length;function y(e){E===p.length&&p.push(p.length+1);const t=E;return E=p[t],p[t]=e,t}function A(e){return p[e]}function _e(e){e<132||(p[e]=E,E=e)}function C(e){const t=A(e);return _e(e),t}let R=0;const T=typeof TextEncoder<"u"?new TextEncoder("utf-8"):{encode:()=>{throw Error("TextEncoder not available")}},he=typeof T.encodeInto=="function"?function(e,t){return T.encodeInto(e,t)}:function(e,t){const r=T.encode(e);return t.set(r),{read:e.length,written:r.length}};function ge(e,t,r){if(r===void 0){const a=T.encode(e),c=t(a.length)>>>0;return S().subarray(c,c+a.length).set(a),R=a.length,c}let i=e.length,n=t(i)>>>0;const o=S();let u=0;for(;u127)break;o[n+u]=a}if(u!==i){u!==0&&(e=e.slice(u)),n=r(n,i,i=u+e.length*3)>>>0;const a=S().subarray(n+u,n+i),c=he(e,a);u+=c.written}return R=u,n}let w=null;function O(){return(w===null||w.byteLength===0)&&(w=new Int32Array(s.memory.buffer)),w}function ye(e,t,r){try{const u=s.__wbindgen_add_to_stack_pointer(-16),a=ge(t,s.__wbindgen_export_0,s.__wbindgen_export_1),c=R;s.predict(u,e,a,c,r);var i=O()[u/4+0],n=O()[u/4+1],o=O()[u/4+2];if(o)throw C(n);return C(i)}finally{s.__wbindgen_add_to_stack_pointer(16)}}async function be(e,t){if(typeof Response=="function"&&e instanceof Response){if(typeof WebAssembly.instantiateStreaming=="function")try{return await WebAssembly.instantiateStreaming(e,t)}catch(i){if(e.headers.get("Content-Type")!="application/wasm")console.warn("`WebAssembly.instantiateStreaming` failed because your server does not serve wasm with `application/wasm` MIME type. Falling back to `WebAssembly.instantiate` which is slower. Original error:\n",i);else throw i}const r=await e.arrayBuffer();return await WebAssembly.instantiate(r,t)}else{const r=await WebAssembly.instantiate(e,t);return r instanceof WebAssembly.Instance?{instance:r,module:e}:r}}function we(){const e={};return e.wbg={},e.wbg.__wbindgen_string_new=function(t,r){const i=F(t,r);return y(i)},e.wbg.__wbindgen_object_drop_ref=function(t){C(t)},e.wbg.__wbg_buffer_55ba7a6b1b92e2ac=function(t){const r=A(t).buffer;return y(r)},e.wbg.__wbg_newwithbyteoffsetandlength_ab5b524f83702d8d=function(t,r,i){const n=new Float32Array(A(t),r>>>0,i>>>0);return y(n)},e.wbg.__wbg_new_cc28423e56f14cf6=function(t){const r=new Float32Array(A(t));return y(r)},e.wbg.__wbindgen_throw=function(t,r){throw new Error(F(t,r))},e.wbg.__wbindgen_memory=function(){const t=s.memory;return y(t)},e}function Ee(e,t){return s=e.exports,J.__wbindgen_wasm_module=t,w=null,b=null,s}async function J(e){if(s!==void 0)return s;typeof e>"u"&&(e="/assets/predictor_bg.wasm");const t=we();(typeof e=="string"||typeof Request=="function"&&e instanceof Request||typeof URL=="function"&&e instanceof URL)&&(e=fetch(e));const{instance:r,module:i}=await be(await e,t);return Ee(r,i)}function Se(e){return e==null?!1:typeof e.RE_EXN_ID=="string"}function Ae(e){return Se(e)?e:{RE_EXN_ID:"JsError",_1:e}}function Te(e,t,r){for(var i=f(e,0)|0,n=[],o=le(e,1),u=0,a=(t-1|0)/26|0;uMWI1eW_PGAjr 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 Wi-%?nr$=V+ADF(*ndQCH&Ho1a7HS~? delta 4225 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 Pn-6X}+&n*jsI~6jV6rr3 diff --git a/blog/index.html b/blog/index.html index 7eca27c..ae2d031 100644 --- a/blog/index.html +++ b/blog/index.html @@ -1,10 +1 @@ - - - - https://charles.thyck.top/post/ - - - - - - +https://charles.thyck.top/post/ \ No newline at end of file diff --git a/docs/index.html b/docs/index.html index 7eca27c..ae2d031 100644 --- a/docs/index.html +++ b/docs/index.html @@ -1,10 +1 @@ - - - - https://charles.thyck.top/post/ - - - - - - +https://charles.thyck.top/post/ \ No newline at end of file diff --git a/index.html b/index.html index e4475b3..15765b5 100644 --- a/index.html +++ b/index.html @@ -2,7 +2,7 @@ - Charles Ancheta + Charles Ancheta diff --git a/index.xml b/index.xml index b2fc276..4c9ccf8 100644 --- a/index.xml +++ b/index.xml @@ -22,6 +22,18 @@ Ancheta</a> claims it back eventually. the domain as mine.</p> + + Building a Static Website - Part 1: Introduction + https://charles.thyck.top/post/static-website-setup/part-1/ + Thu, 08 Jun 2023 23:04:45 -0600 + cancheta.dev@gmail.com (Charles Ancheta) + https://charles.thyck.top/post/static-website-setup/part-1/ + A couple of months ago, I help a friend set up a website for a business. Today, I had another talk with a friend about building a portfolio website and he asked me for a few resources. I couldn&rsquo;t find a comprehensive one that outlines all the required steps so I&rsquo;ll try my best. +What is a static website? From ChatGPT: +Basically: + Static - no server-side logic, cheaper Dynamic - with server-side logic, more expensive What makes a (static) website Setting up a static website is basically free these days, maybe a few dollars a year if you want a custom domain. + + TIL: Parallel `make` https://charles.thyck.top/post/til/parallel-make/ @@ -51,8 +63,8 @@ Learning how to package libraries and applications was a good experience, though https://charles.thyck.top/post/pou/ You might have to zoom in a little bit to see these bad boys. They sing a just-intonated major pentatonic scale from a low fifth to a high sixth. Just enough notes to play Auld Lang Syne. Click/tap on a Pou to play a note1. Keyboard controls: z,x,a,s,d,q,w for the notes, space for confetti. -Pou won't show up without JavaScript :( -Toggle Confetti It&rsquo;s not as responsive on mobile sadly :(&#160;&#x21a9;&#xfe0e; + Pou won't show up without JavaScript :( + Toggle Confetti It&rsquo;s not as responsive on mobile sadly :(&#160;&#x21a9;&#xfe0e; diff --git a/post/expired-domain/index.html b/post/expired-domain/index.html index 049e325..6e1b846 100644 --- a/post/expired-domain/index.html +++ b/post/expired-domain/index.html @@ -56,10 +56,10 @@

My domain expired 😭

Now I just have my personal website as a sub-domain in the only domain that I own. It’s not too bad, but now I will have to start replacing all links to my website.

-
+

    -
  1. +
  2. Apparently “namesake” implies that one was named after the other. I’m not, so the word that I was translating was “katokayo” or “kapangalan” @@ -67,7 +67,7 @@

    My domain expired 😭

    one was named after the other intentionally. ↩︎

-
+
+ +
+ + + +
+
+
+ +

Charles Ancheta

+

Software Engineer

+
+ + + +
+
+
+

My 4-part series on how to build a website

+ +

+ By Charles Ancheta, + 2023-06-08 +

+ + + +
+
+ +

+ + + + + + + + + + + + + + +

+

+ + +
+ + + + + diff --git a/post/static-website-setup/part-1/static-vs-dynamic.webp b/post/static-website-setup/part-1/static-vs-dynamic.webp new file mode 100644 index 0000000000000000000000000000000000000000..d86be5a04bb840495e85e3d033222371fa0ae21d GIT binary patch literal 15552 zcmaL8Q?M{Fvn9H1+qP}nwr$(CZQHhO+xE9@@A>DPnVMTQw#cLCt^q2=4&7fK;o%aDaS?VtLY}#YKfBE0PxtNRXCx-!_;N7h(bD zs~3MyajyX9)30KW?W-mC^Dq1t{Z0CFeS$vrPyE+^2Y=>&ouAYn@bmn^zb{|K|74^1 z`G4_$(F^@2f4BXtzw}SyoBWUeM*aA_=u>mD{0aIq{uuu>e}=#1+ul0-+rL~M zf|vML{7+wiUhS{)-~0#t)IXX0jepWt{OA9A{_4MKzW{!9f1-c!-|Ef$Pdv!{=zsce z;0NHJ^zZOn{jU1w{jdKtKbmjqpZTBlzx{W7K>dY(kG}}FhL>#O>`iPdjq!f){-`ke zZKW~ZF5W&AM!&2y#{0$lr^09+EXR<#y~yK#wvL{?zblM>T4{{;i}z23(Qp3GG^u#( z*u^pYY5@pgdU;953SC>yHLk?4U#(cCgERa|=JF8TH=vnQpZ1rg5Xp?$viIZN^y2sg z@@zT>YdJ-Q;27~+PeV&hp0-Y#a2QuLT&S|(#T*7Sa3hr$Aga6=CD`>x5))~I#JlKw z2Lm0vKjF=Cam{7H>p*qyPUCl{RyjR~^~pqo+6+i3%%bu8taGXs`;65B(3x34wvl%n zzH-Rr8{*-9XI;5%1^({5o~32I@`V8zM-&S#$peL!m^yg)$i!BsXLCN=npxR3ZO$Q9&N z|H{l*TBW8NQ&kL*A}wb?airl3ai&YS)V}~Ibg9$B?1wjrdeh+U#uImGp5-W^Gaq=P zXE<)(i>Z{)lu9Ze%9rlo#>*zmVtZa6JcTt%u)>2ZKrGUG+69#>0f(@R&aaip@AbN* zoH}yh^pRn7((fTPT~Q4+DYF_UN>VD&OP#6<<4>|mcz>50dNCSu2 z!-m8oGPX+BpkUA=W@iy6#6lE*njDjO4Of17RWlUt^FNH!=l8(C@kG06jRoH|5lMr( zB;@3hFt=tw0GFAWm*ym0OhfZpc!;c#mY2lezed5YG{G91BtTN~JgbGr4w;q-LbE{k zwhXI-5_8Wev#O@*0NN)}&T#$#gT;2QK34|+#_Da?77vuQMr0L&#)xW)Aoq!Jrw;?EjnU&L0f&_kPrUl%t1AIVe#3H&?LbQA@pz-xv zadLtU%NA&-(Oj*ohG}mwE-N{ar)g^>vZSn*XtnI^3yC(^nEvi9DOkeS7qF^7&tqF@ zHOutUaZc93`;wk968EB3xCwYW{s05lzjewo=!6PV2I zRi7+vGDpKW52@{C0X0QWcCHTjOa;X|=9b75g>P==d{kHLg`ccn|Min;oT-TMiDv zbQ`>;i&Ce*lM>D|kN#yfYhL#4>-ABAN3MLs{0ox@@zY4OYxF5i<&{V`$4&@IzRSF<)&`E|btQ}x&drDyf zNB5t?fs9}beNg^TU`+-hV`U`< z`5m~X*cfmMu_TsmB!P?SjTEkMYbJ38#geXjR<2GdjQflgL8GqUrmE1l14`q|6;0x3 zP*M*csaG6GgToeRD6vFm0ZM#1{rX>Av!f|91BI+U?T`M<(%3cWL&~cvk8S0^>%`{t z->O2ttw5;BUi<=#OUTcAwuomn+SjmjDaGnQB+va59gUw*0P0w^YN#oDkn`a6@VJgL z@Lm1?;>({Zj^Y1XyZ&o86953ee+h+8jW_wHZJ`eU0OTqV+`%H47(FNdLSV#Ci+Kk) zeLMgF&;%1fsE)#2i~&8`@I0E=XNe0Qo9G*S(H=8czsmyk=CDTurU@|siqml1yy8qH zm*DQ3q?uW9-qKYlhp=;k3BPn^yMy+`3BHZT*%S_q@9J;J>gKnt1DZV2+lyO#9Vt?S zx33$-ty4Oc&g@p87~Sd``}uzZf|q(N_mrKi3tgtBJHwyazh|tua#Tthj?V z^u4AbdWaC*5%*ViYeI*al(aq;QOV(#*{IT~oeI~>y_@~5Gmf35k(Cg5c#JhkYWwiz zf8vn0%tco*VZZKR*=w2RLxYeboi#!Ra`EW*SH06Lwm%A@H5O%io?`ZP!#ZD(WF|E1W^tg~I4(+R<}WOZSePYZ zU&laaAlH!Fjqw(b!{}#yP-fMc+SeohbcaC#-Fi9q2X5s278#a$MS0fq)${mXSI=uz zaJ5bFMZ{?L-G7GS$j?*-7}1!8C@^_naqsLm>*Iv%ikvgH`Ok6^=-zr(M8X_;ks7>DkKJc#Yxk*f?rK( zV9^~IkPzOVlrpjxb`xKY$cZ`Y!LQk@Vt=B{6UL6B-hU&%-RVEtgMIMB9g(kVAG{_0 zXTgl@X3bV6cG>w&j$dSazqQXHoNen5D;W;VOtCh)KQa#-X?f3~1i4WLv5oH%kvn!v zF*o>PrQ$DNbu{zNafU)+yBaA%cw)w};$%(a;}8u#RaKv)_g1gmP|IENQKeah#E z`^@2(u1EsOoU0aS6<@6?Uf>s)H-6oq zd%pQ;DVi~YTEdsR+~H5M71mA$tU2;;BZ_K36n3QPf>mULbmZi*4y%vfoP}s+j)}6Y z86Rro^r&N`^@G>@pVPcVU2W!G&vus@Gvu4wYltxW2GJ1*KMT1(Jqq$aF2@|{uOFXV z{6@O5tR>!Gw)qqSeKRC!6?dq*ke!@)^34${ZvdC>L3yq~-7T4%lZAJa&?8^%-S%40 z*Fy$Fl0r-Al+&1}$6kTaHVFXEy%0-4OUl_icDe!W0Ehxxr#7ubu*SxuK5>gTZ_|=T zW|h?ivUy9^!fW9*FtB$Zh|=mZH^~KSbZ6E3&ZD&(+DbnPCYrG5YLcP`F1Ib@+Gjhh z^g${Zp(l$9Vfqi*?2wrF#me&7xu}R<2}yEZ4eB=ev!nZ3kOV^DhGXmq5}!fIS&dc3 zEG$*W>4um`M$nr#5zL_|+{_Tt*Zq_lDqQT$7!)XsJ&fcjYC9fi%*xF82(>Cq;{i8M zxbALx9=UJNVX`0_CYO^t%Y4rwVzj#+zREPdQihbl%DzeUKd`2{YJ5@R0u}aUzqu$2 z>qkp(SoRNf`^)w4hRYlOwLScP@E0T+mcq;qE%o5dq!vg95H-zuS5oLYZBzu0HOSG= zejqGFD(SzZ9MmwND>B6I{Rv1Lm1kD5qjYuze>+Ph=zTq?QGccF2TkSK5abI8k9n+> zLz*`)4K^tRCAv)i5Gy+{Ps6RQSNwohy=fjRMcVtN$Z`@- zZ{_36d2Hk^w-mU-luu!@7Ez%Elos+t&_KveUGAFm2%HY^PW)#9Dfz6Bc8Rt3yXHFW zCRRfsefz=YI&8BJsqhm8c5SPqPFG~Lj6_O`dJWU;H~ak4ij_+-037PR`@RSILJL0# z!F$q@`FGu@bLKl|7z5O)3z>6fDy~_GM(OkzE;ut2?|jC!@Pu(04w7aJYgY4+j6@|H z2%_?+dM17F4WDoXKoa_P_;^|GNd^xeH<%fXkIPKAmt@WI*%&1CUFqzJo!YR7cnjUU zUN`xH*tEbUhsYE&Kxf}(6kNlR#5(`Iby5zv%_Bk1ck(@)h(pxp_xYK!Wy#TM0p;$Xav4Kd&Ns zom79$;EMjtLWV+$^zHd5QZVehYTP1UBYw~`2UY=J40Jnzq3QC-Fj&zG!U!7PpBJ$1zkltH3;;=ZpY|@(A7dlB`j?JDA@$sVa_k>6C1#lmsvAu1pW|Kq!Hf!&YWXdHjH}Rsy}^uzs0b3Rp#KF zR8n>NXCP)~?r;!r}{hiGMZvC~Q)q=FH8_Vn~T zeBa{LSc={}WsGOSau-bN)hqjI2j_yqZx*>?)_7_;Q>8qlKrsaRiPZD_>j?E0^1gx0 zj@#X-3$He~>{dHNNpTUl5RKC5F`Qg6Aih4~UO9OYz^d0{+_{TYY#zg(nM7x%LY7~8 z@|6S-YgGwhT$)INl}n^PZIrp+;l>XGOeY#`!nR(uU)Ss>i3e9o;{=($zQOa=UufE$ zqA}!K;fz0i6kL50fR+5&B;_*9%ivMhfSvxGJ$5J?w&KH@Lo{o0$?ZE8RH#Up{I~MF zWd)G9eGLO=9E`*$w18T#m2ws_Mf5-bcM`GwuU)tJGVs!2Qw6t>@2L2!aYFx%PRp?U zP5GQUD9L}rQ?$1xoLJUir{kAjHD_T1r8uHPpx_{jF$0BAfOK3;VBYZ&X8id6c;y)Y z>ZQ+>2Pw7VM!h#x~mM}=!n!gV*u?9$TUb^&8#?|*Hyo3l_t9=ibcdXYsAr$KDg<4`QBlNB9Ry z%quGLo$dRve|s^#!{Du;GSXP9FYkwCa2rQ091N8k=UL8zn3Ij?8b z`Z^MQN6}=0+{fTD)E_W9uI;}5(MO7-V%*h2qI`|`c|sMlgclrim7TVj9%p|`{7wy2 zFu(Vu(gPoTEVLA+L{1AsXu7TlKC`4?tyYHg6Nia9u!=&S#?mEfb9Gq*mztQ5Zbc(lIU%2pFLR*DyPj zz0HJlQ80Hrdh|`y5gvdY*hVc4_X~EABz66gVPPyaU=OsP30tsPYrzCK@>*Fl0VRte zrmAr&98&swzz4Yi1u{M}dvla}?NVUQ2R{$f(^FE|h3w+BI2x64kxY`6`a-5z*_HOQ zhW*SYwzAtOH@NN-6*ru`#9^5rtu1>UIfE2}h3m$crQSMOF!@mT{{^s!*Q375XgCG? z)@HGui;Y{azY)Ly&vlweQF}0s9DWsm8yQ#JX+)eW>Y~??(=RhO@}^bOI(R0nA$6IJ zzrFo0ai1Zg`%VgNS^?i35;)1Q-&@3iGSTjZV;s@#{2pkG>F?n#62%eS+u7l0z<;xBEb_5|b31dt)yfJH zo7-phqrm+mlCs$vivFfP3H$LQwI3W@>d?+oY2?#_Sn7MjW-(Zpd;Nw*-aKFc2lrdv zy8e_#UVvrXRwK#~29%=-&HlqMiJu2x@*QK5Sc%fClRZ-Ib>~p0j`>{qBd6nX7LyQ2~M-h8Jn#8*dfP#r7h9o(+y`QU}DO`5;upOZpADNLHE6p(IS zzcFpB$T@lQWIu-b7s4*@UA%X(oSx4U*B<4N>cn)1P}bv5S1X`SK^{+$z0hWgo>lGS z=gB?Kdfr$rIoaA&$g~ONv4{TuiEvHNwE^NcR#b~Es*S_iL#6LK2(aY3u#nC+G=`gQ zui@@d%%?K0?Y!eHW_nKiBgr|Z3syYITlOCFpgm$Vi-U1ntjC->HY*8`OE8sn{UxflUiH{kni9kJWYV*kI;AM5jtt1Wu|OHl7}G*p()bwCAz zuP-;H`d>bZXzSxlZD8+Lr~Qt=CghB=Y|XKULXXM$r7*B1Xgh@?NSdZK$`Z1D%$qyp zIr9zKZQg8zUJrF68%3_~Sh~2UijrQ17RNbP+Qe7ES3xpL1#kPev46~6MS5$VzaPz_ z8}2`~X{){N$?q1sUdJ(7k!fxmmDGT@=M%1yAOk%kzR`SRF^l1Zk;jKYX-5F@3|0mu zufOLt)y|#h@(KW908gOox)=!h3(V*7B->UfMShpP477`C-+3HOlXpcszBO{wm1Cqt zM8N8bAD~WI9T6qWRG*3|06|0Im|Pk6IpY&1zcG6z6C*?Df5`>uCufw{FQr*B{6&scq&M?9g0+bkk&+s&F>Q(BrCFiDL zh<&k0zVK+?^HF{SYo>U+l$pRmp=iYx%nb${es4&zMwebD9{gn zmu%LzrrE*h7EF{1II0J0qJI;Pl?r2V&&v-c6)5?(fayqW%WTTBE9lVzu}H8P#kkCG z?XzD)juFeDgBSbX`{&a+^c=`Vb$)4HPMf@jpC5_EHZh;q{FtVw<$7!7E+(Ngqw@*Y zs(m^cW+{bG(I_Qsd{|90c`m5D^n}lF91?)M%K6QUt`vylVfuAySmOnRiF}A{9a<$W z7ahBh??#T;AckqSR=ZqMv5X;tD+>BG4j^9+Vy3)M~^Cq>46l&YJ>;@B}H*kbx);s9? z#~v(4XLC;w^9foSB;@;$Omysq(Uw=Q2Ea8MQRI1*u5ITmc0yuY+Txlm>=gZ3B;#h` z!#hg2gd`GUo1es|r(3Fu3saQKPl<6D;~qDDu%s$;_-Fb;m7(|=Tsu@c7;JoHS!a!o zwRH;VlW~jNmq#cK<}S*$@l?Ps;Ya=D8i)u^nLLi|>s}>Jw2nw;>jyXDVPb_@i9h@P za8|WxxpFVg7wQZ?UeFM51x~!Bwap2fGn0zrvoTFm--XipMmx#uG*2zI9j4;>;lTJ35`M+Li1vJeE-zZ@dY zb&eW~*Nd$&dw@W$NY~P)Ge#b1X3H0RGb`HJ(+V;KNO1Bd+|Hu0R?FGm8>sr>APHc2 zKt*4F(>%(5&ya&5;w0{UPhDHK8&#udx{kD&y#Sb=}<~-uHC5S11ZdLAUySbqh_4nQ1PG3F(A*p{wQtEam^X&qqiKF}7i+ zn7_^hr$+M9w#LpIxqo&+0|FgglB4@hLeg`3zr@#WalUP3>+=XT4B1wh3A$g$9Grpk zMCl5nAe7jzvd)m!j2RTJh3L*xUOAKf0x$W7h1h_(;XZ4fw~2?vR`USp4Ao1{^+jPA z;to2Xu;L_voBvVLfi!Qj<7!Y()i?G_a9tI(PXvZB2ppg-4TV&>XiLf_zq?r~c12+f znp#woy93@yCCf%9-_D>JAA%~0N+-@x1$Y%$8b!e6JDr$As93q@Lw-GVO?GK}uxwG#zBEJWRWk@B%>Sz25nBlj%9T zCF&$@9?B&^F5|eYQDH&dgLC07Uz-_`C!SL-$-w%hJ~;g49zu(pbTo!I(>cu{=0^ae zZPD12<#lzvDf*rVGroGSn>7C zVbA&N9#=x(4y@RJmbw#k8Y%%-J4HJ-`FJlFG|~`nM2ffx3z9FiLR4_s0zqQaiF&yT zorOf$^=n8}J=W4ty#q%BRuV=lCpf$XAIVQ;P7ZhOsw!LqR&%$D&76|b5inVCkR9zZY*m}Ii0-8M&0obbRzdJ7O^Z&evO zTACgwVrt=<3RtJB_Khp|O96>N{|iz_$o9E^(-3VPbYkFpioW*sl{Elbg1$`q#$D*5 z9IQrLRfwy_DFbSIm1Gy^&i+I$S62`hvr5e|{Mw^)mKP|E{X!Ns17Q!{Cq)K%GglWp zu`rHM5KIF6q0G`B^9nHN;!UH#qyNRYTSJuQ{Qy^q5-y&n!>oa3P4C#EO$h%O-?94g zoBC(VhDKhq0g{Vu*YZ_2NYpCeT0$-}jDjM(fs(LgsT&Hm`lWuRCPnJfr&JLI4n(X& z`k_9TrO4Z!3>s!2kLS8l-C>ginj7_2&1Z3BoBtwE(6b6ECvX>rV18JKk z#r!EBfjVuVOIus~bAAoqY{^5s*} zVR=+McV&92+Pk4mkxptjb@XU7V4!TR5DS#Op<6sG{6ZDyUo=66M?rpy?+b!i7dkKk zfZIujK9$u-&I%-8pMhO;?!^c~He+g2kTq(4j4h2+@62{w!86JSI-X*OEcY{^kx~#| zEu7i>BkE4^F=e@IAaq_ftc0s}wJ$Y`9;rvrXuVEjk+TTQ-sss(%wXA_xn2!Lu>6kNg4WLLRrCws#y#&RhU1i|gpG7~E>FWWIV*hHM{4TDlnS%~IFWA#e zij+{_Q>L7|Z>sk@=gv9IfhfCxFy9Z(a{}qT_)v@YJfnP2cT7@SKpG-SE?Bqx#6|#M z{<@qkv-i*sXrH_L&%OX2t7kkK9tT9afIH~cM_X5|3PZC;=j6z^JQukbctB|zY5tg6 zrS|ocz*2>Hi@>mC4bY@qwM&*-f(-Rc`@I={RkR407{}do)JG>ren&pv8+EL+t3n6Z z+howoSrSfOzCSkbbu8!oJNpb4ChA}Usv>_bRKH4ck5`y~*S|at_m?xKZC%!L3X#uu z*OAL@l0g=gvf3Y9-Kb$@y({*C77VVTxyBveIVns;{BKQx0$LsGz#+&> zdGnMwP5_i?j>Vyc@E3|(jsPF<>};mjdL%)>wWIY~We=KLX@qsCx}bg7L0q3~u!Y?E z>r(wAK>D2MoBa-dI?~X;3U^wCRE#jed9m=pc->@vqceNef1~b@@a(Jl@a(7_xtfJl zR3otVY`ju@V50x=60D@uWj~S8*OBT4^mR9SO?tT8ZYU=G*zDsd0v_5~_EFmaJSk5h z0hGWEPSwDfTs$*y1&&4=VPF)47u^}rZGX-PR`xmROx%3cNHMu`ZPO!YiLSNx+C*gD z2PruPcMz%(68-8$GPun?gN)|JcoVoIhI**VhjiLBngj^W8Men@M*iQ1o0tO!ZxlhK7V|Sqq%JVaAO5;wj)=;QPs52Zs|8g{B`yjIj z93M~!RD%PQ(k@ht-(BoTo?TX+*s?F;hjv`2&7ae`md=$5Z0T?q02x8+ z6{C#~*LAXmP!c~qLj!A?DuY5kXi`3*aXIc;Bp1a&FVv;-Bx8F=D7lg`1p5`mH@AnJ z?Le##vd2yySn33=n$Wsj*Lpjvf&0{6R{}RI4x|_0YXC<*yaJrVJz>RiZn=z?C-@Iv zEb}rYP#1VB9_<=&1{0~r&0cF^wGAUM5m!NRIqz-0=zF+&^{}g4eeE0!cF`BS!7&t43C_9o`bG?nqgSx(qI@xiq&H>h@rLu`D z7$*&K0}-Z9TTVl541zzh;_DtP;ClVGF-BkYfTgo+V7b2TJE73iLK|cl^SiNi=!>aE zsbZkg)1xi3I%GVFj|=Y!V{tWRX1|xo#%p-y06YdX+~pgvXbuJ^q}tZU@~}?IX?NEJ91iMl?CdPIH+ju9_e9Dg+LKQv*MWhT3&dL3N`;QPq5W)!wDDT5PBlBU?^hK4!rk6l5NRvZIsT;f{|7s zPh_22`9xZ2;}m6 z{a7gqn5anxc^cV$pJ8DBd(_qw0R?cDx<1EPHr=M(b1SrEN=|Lm(!S)6;^D^d_Nf5% zVd0;PboQFrsjoeOg@Ph%YtA@fmLCI!V%bD)#&&=@B_~?&7lzc>@d+Dl*=}aj6kb2ERh|Ng%@EYyZPmAC=W<(POij=k7;- zE}O{PI_`cyFkzi_FMf2^NGJ+LKS|#JrKB;HH{CS`_BpCYid^jbSXaIX57M)+c?7;R?hiO+=OsGbTt6vn$p}=?jrE!?G(hr$tUXJ(yiAqTM1nPHr{vR6~c~U4&G|sQ9PtR}Zac%v{i)*Qi!dNL&@7W2u+`k7-8f zPfxI?JJe$3Mvx5HQ2LvX3>ge!Jve63LX^wmQZb5zMzOAPA(VaZ$g1g}F~u*`qlHK4 z&)hgMSfUK}F_9%%T$5V?#90K9Es}E%{@w54dj`rPdSm!hYP@XxYXvv>okBBZ{(G6 z=soMvMT3_Rbp(VY#-8_f$}_z7bLkrFL}7eS62geI`DmTUZn!4Q$EF>nCXj?#_+e+M ze_L7rmn96Nbb-Obl7n^OFEh>BW=X$KbERUH78$RMHtQf5t<#p2vrYM9=M$!Aq`a;66}wIEpTt{Jiekxgn!&U$B84Mm;Jj7l09wx!ZfiB@@b0> zTxY_bJ=HM+(u~5zQ{8P zaA`+dBW-U!{i#NzKd!|CK;UKz4L-KdTrL1=NYDvPYg?owZ@mwF>wJNXNL_31DXUS& zw0YvtJPlia{BtfNQD~o3AhX$O8SyV7H3zakbUS>=sO zAxO-<{|fNP^!Gx{E5_9NQ$;cM8+e>l!{z>50(|^hwBOE_PPk(Z~axKu+>LVwu|15(QWwhza}xP7-+f) zZbU-IT3-79Rj~HqXGrmQH9gZHbMq&nWnrrj9T5il}Gl-+bur#+tueu5RF;?b<4Y+5B*$h#$J^EvS>^g6 zVaceIFFbDc<&&vj!GPyMG&DedsSC5^jo1WUg5?BhD@K2uPPe4|Pn)1O8t~*jbZz^` z7YNjts?Kjew7fqNP}1lMM4T{YDP24K=1A);aorAVZ z)vus!m!sWgD+n6>!won<7JwM^LkDm1wp975AVB7;Qk%iBO!-6Gk&(JWe)DS33H!C& z_&h|L+jb#r`JJsy`rSj;3X33V?J^{Ir{nT84U$c936_f<)~*Rpub20FuKJ36>k#u- zg~mt5`TA#vUa20tFu+QQAy0T=_WAYN#(uuG{cQDQ$h$iX__Q6sXl|9bZQ>kfK8krl z;F?dWZuiYxkY<++Aq9%f6GwpUv3@nGF^W;~VAkK(E$Z{Lfi-p)*{a3#o0Xj1JSq#6$k;oK61QvV?_fc?D2 zMr}6~k?U`4H^mF-5!vvu&=maK@;W`05rU#G203N_?41Rg z7G4u<$$NlgSuwJ==nJ+M#AmsPZwX4PGZJk`kLkU8o)Og=beDs^;6{8! ze_0_FelnzC-e+Q&^2q?hXZ}5oEI6S+YDq?F{waEw56CXGOQw>%JL8e6?R4#fxZoY>EK%v)hKUo5YTFaU3iLkYA(BJehxJe)+fe@EYZ z#9)8A5-B-D(spP%{oOolD5BeIWyUc;y%QswJAl}v@0KB@T*{_Qn23%-Mi=)f zcn{7bX6lag1*f*hWB3={Xu}P#IiiNIEw{3VTNwAH|H{>3qDoO8)}w(hgob z^_O^EHw}ExT}dU4keh_YI(aH*Deu%obx;tIfX_B5Ub%c@_MjhyaWr-ia|Xd_keJ5s z@Xi~ZIb}#Iq97q>f=(Jni_0NW{vYT>z2gqqmEzZBwOdB2q zSe+6n>$oTVoyp!MmZ^I=WJX@e6o9<%+|xO}@}8g+eMeQ&Y7glMdNT;`tJszI!%?64 zbu*G#M2n0z7pKM65!hddlcxyC3faEoZ6vkh%C$xvO8P>pX~F#)f^sJvOc=-X1O%Ye zRc}2i+*dR{%lSv=r?*Q%twnq*V}UXoAkVn>qWqHsV1pZrgnrY@mP*|?W_ASw|5o2l zVdWHT|au|Q;NM%}3q>0l^ zijT!TPI{}j<0VSwNUAN3Fc{{>+zxq0Pa;q!hL*1{iMpIo>j66X`78hi_2RcH#*MVf zy3_y}s%I;U7XV3I>A)FloBauEow1a>`|>j^0F_snqY4S0F%t=I6_#jhcfa4#s)fA- zzl~6WK+aas3OlEEwU z9y+cwCiQzJPBSSkMG~*cSB$wv_cXZ3jZ8AkPWy&>CbX+8S4?7mdFoVf05J$1yO3+u;{@Df0q<=C)K8UBhso-975(n*eRWV#11bI%}cS0_2%-^d=B zLPcsvi4-mGEqZ5PIAR3j$lMB6>pUf_fNhU`0P7=(xK2nnt7U@hRMUR=2AA!`VVRwA zeu|(jQ0;r4-y2e~Mo+q$GN~Za?kh6^sAV%-Rp0TiT6In9jEDX+rL6nW5z2z|HjHg@ zU?aF3c>cvL2;dRcQvDdI51z)$i-(sfJ0$H5Q78@c=0&(Dmfh8tJU_T=F_O5>9=_d# zvE}iW30?7u)e*XMpM0(x|BAtZIc*z1$-V|smIpV|KWQauUYzlqt8gQa4|>T~zvXG4uGPaTi-YFQW-Qj9N#lT4^Q@*(j4*9h%z4F5x4a6>;%;ILwI zcA}JZKRQBLaNZyllhntvHHK_TCBu@sJJ;W88C8oaQkLjq+WNYk8T_swM9VYCHoCid zkV#OG`^RDmW&>&tSJd1h@>ECZ&6`8STBK)F_1B~Iybzd*(LWZ9@g4F8!z0Zj{{VL> zm#Y!|sYv*!@V1>j{54XGD}B9hXQJGkL_L7Nc`FiW&P^U)azPGdp_kZTi1reJApSYs z1VRx0aa##L&2>i7j7oFUp-CnaX+f@!SP$!5>73=XkY8c%c!cRaXBCj0B@J(uq4#>Z z93<5l&rs})MQ{f+h4OvYLO{+rw9=}e`JLTK{2?)kh7j_FD@9yq!Ioj2#I`2_)oM@- zKfN|^W`nwtQuO~;pg2d8vMuXKYl=v@jV0}Sf8V-ZG^kMlM`hRj=nKtxpEU^Xb;rtu z@!NIoaPd&Xp$sXQNdm^ayTwG+Q&qGfL1SZJg@Li69AD+;z zNejJxXIdh71h%?y*jGC<^K3R3om@A8SK;8AmBqK%`>#HFa49 zH2g0iOJ1wao$bT$1;b=xe{6%YLzZ9E%g(VFLNSHMFX~5ef4H9Y>&ENzwc$gi)0%!_ ztp7Ye(qg5p8fxp;xK7Bgq|)syxETm&8O#y%l;MtY9zfKXU!lRizr`KsBIgq@NBH}y zl&c=<--SlWQfV$ggU$}IQ`UY;8;GtSRy)#I&S0SrJN+Xtxc)Xe)|UZToS({bwpzx7 z#ul}LYr=bVO|3wDVN+OF7q>wm7y>?0&lev=e(#MEdhBzQUiZOAl$rp?6?%U~8d9&xr*`PNQoAD$3?=()mu;dSp17P4&V|{;PL9 z(FyEhMl@J6KDX19j!ezI34}(@TKI&L0l1eW>y98Jpuy*%v~sJJmo+-SWylyhEuvwn zG=8n5L#DG!#Rp!*yF`G08of!=P;8_c@9XzCjj(dGTK#Sm03b+k7s2KPjr0$RxC4V9 zf6lb$e*(k?w=b1g&9hQ|N6L15WMG&jbozh& z&711ZI$r%VTa>w1!5Q8xth;jCGoUb2dd@AP%KGLGYlznqhD~VBrD8f8Yn|X-$+#Ki z2^EilbF{qC*wp5?s-PXeL7Tn-*i*)cu0c?9jv)u=KjG1dM%nrp3^4f)ReN9FfkMad zi-LE!Npy#l)K$>tsO!@$h~QZ#e7yqZT=7ez9=i4c_r|OJ+mm+S<eL+Jx z)7BWv{=41Jn9WoaXF8*tvo~xU@eT7DZKV@Tq#|E>a{}?khc@cHMLr&d*phPIA%6t` MfKdwguhP^10b$lv_5c6? literal 0 HcmV?d00001 diff --git a/post/til/parallel-make/index.html b/post/til/parallel-make/index.html index 7a180d8..e8386e1 100644 --- a/post/til/parallel-make/index.html +++ b/post/til/parallel-make/index.html @@ -50,28 +50,28 @@

TIL: Parallel make

I thought to myself that maybe there’s a way to parallelize the compilation steps, after doing some setup. I was wrong, it did not need any setup. Just slap a -j in there for infinite jobs and you’re good.

-
# Without -j
-[chrlz@workstation master monke]$ time make all
-mkdir -p obj
-g++ -c -o obj/token.o -std=c++20 -Wall -Wextra -pedantic -O3 src/token.cpp
-g++ -c -o obj/lexer.o -std=c++20 -Wall -Wextra -pedantic -O3 src/lexer.cpp
-g++ -c -o obj/ast.o -std=c++20 -Wall -Wextra -pedantic -O3 src/ast.cpp
-g++ -c -o obj/parser.o -std=c++20 -Wall -Wextra -pedantic -O3 src/parser.cpp
-g++ -c -o repl.o -std=c++20 -Wall -Wextra -pedantic -O3 repl.cpp
-g++ -o monke_repl -std=c++20 -Wall -Wextra -pedantic -O3 obj/token.o obj/lexer.o obj/ast.o obj/parser.o repl.o
-make all  9.08s user 0.66s system 99% cpu 9.748 total
-
-# With -j
-[chrlz@workstation master monke]$ time make -j all
-mkdir -p obj
-g++ -c -o repl.o -std=c++20 -Wall -Wextra -pedantic -O3 repl.cpp
-g++ -c -o obj/token.o -std=c++20 -Wall -Wextra -pedantic -O3 src/token.cpp
-g++ -c -o obj/lexer.o -std=c++20 -Wall -Wextra -pedantic -O3 src/lexer.cpp
-g++ -c -o obj/ast.o -std=c++20 -Wall -Wextra -pedantic -O3 src/ast.cpp
-g++ -c -o obj/parser.o -std=c++20 -Wall -Wextra -pedantic -O3 src/parser.cpp
-g++ -o monke_repl -std=c++20 -Wall -Wextra -pedantic -O3 obj/token.o obj/lexer.o obj/ast.o obj/parser.o repl.o
-make -j all  10.27s user 0.77s system 255% cpu 4.317 total
-

It basically cuts down my compilation time by 50%. I feel like a real dummy +

# Without -j
+[chrlz@workstation master monke]$ time make all
+mkdir -p obj
+g++ -c -o obj/token.o -std=c++20 -Wall -Wextra -pedantic -O3 src/token.cpp
+g++ -c -o obj/lexer.o -std=c++20 -Wall -Wextra -pedantic -O3 src/lexer.cpp
+g++ -c -o obj/ast.o -std=c++20 -Wall -Wextra -pedantic -O3 src/ast.cpp
+g++ -c -o obj/parser.o -std=c++20 -Wall -Wextra -pedantic -O3 src/parser.cpp
+g++ -c -o repl.o -std=c++20 -Wall -Wextra -pedantic -O3 repl.cpp
+g++ -o monke_repl -std=c++20 -Wall -Wextra -pedantic -O3 obj/token.o obj/lexer.o obj/ast.o obj/parser.o repl.o
+make all  9.08s user 0.66s system 99% cpu 9.748 total
+
+# With -j
+[chrlz@workstation master monke]$ time make -j all
+mkdir -p obj
+g++ -c -o repl.o -std=c++20 -Wall -Wextra -pedantic -O3 repl.cpp
+g++ -c -o obj/token.o -std=c++20 -Wall -Wextra -pedantic -O3 src/token.cpp
+g++ -c -o obj/lexer.o -std=c++20 -Wall -Wextra -pedantic -O3 src/lexer.cpp
+g++ -c -o obj/ast.o -std=c++20 -Wall -Wextra -pedantic -O3 src/ast.cpp
+g++ -c -o obj/parser.o -std=c++20 -Wall -Wextra -pedantic -O3 src/parser.cpp
+g++ -o monke_repl -std=c++20 -Wall -Wextra -pedantic -O3 obj/token.o obj/lexer.o obj/ast.o obj/parser.o repl.o
+make -j all  10.27s user 0.77s system 255% cpu 4.317 total
+

It basically cuts down my compilation time by 50%. I feel like a real dummy now.