From b845c829f6eab054b4f6ddd4eff7a803e071b409 Mon Sep 17 00:00:00 2001 From: Cotes Chung <11371340+cotes2020@users.noreply.github.com> Date: Mon, 30 Sep 2019 20:38:41 +0800 Subject: [PATCH] Import the framework. --- 404.html | 24 + Gemfile | 13 + LICENSE | 21 + _config.yml | 166 ++ _data/label.yml | 17 + _includes/date-format.html | 8 + _includes/disqus.html | 24 + _includes/favicons.html | 34 + _includes/fixlinenos.html | 9 + _includes/footer.html | 24 + _includes/google-analytics.html | 14 + _includes/head.html | 53 + _includes/panel.html | 72 + _includes/search-results.html | 15 + _includes/search.html | 13 + _includes/sidebar.html | 65 + _includes/topbar.html | 49 + _layouts/category.html | 26 + _layouts/compress.html | 10 + _layouts/default.html | 44 + _layouts/home.html | 128 ++ _layouts/page.html | 29 + _layouts/post.html | 117 ++ _layouts/tag.html | 25 + _scripts/py/init_all.py | 16 + _scripts/py/pages_generator.py | 190 +++ _scripts/py/update_posts_lastmod.py | 121 ++ _scripts/py/utils/common.py | 43 + assets/css/_src/fonts.scss | 312 ++++ assets/css/_src/main.scss | 1518 +++++++++++++++++ assets/css/_src/syntax.scss | 157 ++ assets/css/styles.scss | 9 + assets/data/proxy.json | 1 + assets/img/favicons/android-icon-144x144.png | Bin 0 -> 15762 bytes assets/img/favicons/android-icon-192x192.png | Bin 0 -> 21277 bytes assets/img/favicons/android-icon-36x36.png | Bin 0 -> 2928 bytes assets/img/favicons/android-icon-48x48.png | Bin 0 -> 3978 bytes assets/img/favicons/android-icon-72x72.png | Bin 0 -> 6302 bytes assets/img/favicons/android-icon-96x96.png | Bin 0 -> 9203 bytes assets/img/favicons/apple-icon-114x114.png | Bin 0 -> 11500 bytes assets/img/favicons/apple-icon-120x120.png | Bin 0 -> 12426 bytes assets/img/favicons/apple-icon-144x144.png | Bin 0 -> 15762 bytes assets/img/favicons/apple-icon-152x152.png | Bin 0 -> 17139 bytes assets/img/favicons/apple-icon-180x180.png | Bin 0 -> 21529 bytes assets/img/favicons/apple-icon-57x57.png | Bin 0 -> 4797 bytes assets/img/favicons/apple-icon-60x60.png | Bin 0 -> 5002 bytes assets/img/favicons/apple-icon-72x72.png | Bin 0 -> 6302 bytes assets/img/favicons/apple-icon-76x76.png | Bin 0 -> 6833 bytes .../img/favicons/apple-icon-precomposed.png | Bin 0 -> 21851 bytes assets/img/favicons/apple-icon.png | Bin 0 -> 21851 bytes assets/img/favicons/browserconfig.xml | 17 + assets/img/favicons/favicon-16x16.png | Bin 0 -> 1545 bytes assets/img/favicons/favicon-32x32.png | Bin 0 -> 2515 bytes assets/img/favicons/favicon-96x96.png | Bin 0 -> 9203 bytes assets/img/favicons/favicon.ico | Bin 0 -> 1150 bytes assets/img/favicons/manifest.json | 48 + assets/img/favicons/ms-icon-144x144.png | Bin 0 -> 15762 bytes assets/img/favicons/ms-icon-150x150.png | Bin 0 -> 16765 bytes assets/img/favicons/ms-icon-310x310.png | Bin 0 -> 46986 bytes assets/img/favicons/ms-icon-70x70.png | Bin 0 -> 6105 bytes assets/img/sample/devices-mockup.png | Bin 0 -> 227162 bytes assets/img/sample/download-icons.png | Bin 0 -> 9832 bytes assets/img/sample/mockup.png | Bin 0 -> 32004 bytes assets/img/sample/profile.jpg | Bin 0 -> 18126 bytes assets/img/sample/upload-image.png | Bin 0 -> 35990 bytes assets/js/_src/_commons/back-to-top.js | 18 + assets/js/_src/_commons/search-display.js | 88 + assets/js/_src/_commons/sidebar.js | 54 + assets/js/_src/_commons/tooltip.js | 8 + assets/js/_src/_commons/topbar-switch.js | 64 + assets/js/_src/_commons/topbar-title.js | 44 + assets/js/_src/category-collapse.js | 31 + assets/js/_src/pageviews.js | 111 ++ assets/js/_src/timeago.js | 77 + assets/js/dist/_commons/back-to-top.min.js | 1 + assets/js/dist/_commons/search-display.min.js | 1 + assets/js/dist/_commons/sidebar.min.js | 1 + assets/js/dist/_commons/tooltip.min.js | 1 + assets/js/dist/_commons/topbar-switch.min.js | 1 + assets/js/dist/_commons/topbar-title.min.js | 1 + assets/js/dist/category-collapse.min.js | 1 + assets/js/dist/commons.js | 12 + assets/js/dist/countUp.min.js | 1 + assets/js/dist/pageviews.min.js | 1 + assets/js/dist/timeago.min.js | 1 + .../bootstrap-toc-1.0.1/bootstrap-toc.min.css | 4 + .../bootstrap-toc-1.0.1/bootstrap-toc.min.js | 5 + assets/lib/jquery-3.4.1.min.js | 2 + assets/lib/jquery.disqusloader.min.js | 8 + assets/lib/simple-jekyll-search-1.7.1.min.js | 6 + build.sh | 106 ++ feed.xml | 58 + index.html | 11 + init.sh | 56 + pv.sh | 21 + robots.txt | 13 + run.sh | 106 ++ search.json | 14 + sitemap.xml | 77 + tabs/about.md | 35 + tabs/archives.md | 60 + tabs/categories.md | 82 + tabs/tags.md | 27 + 103 files changed, 4640 insertions(+) create mode 100644 404.html create mode 100644 Gemfile create mode 100644 LICENSE create mode 100644 _config.yml create mode 100644 _data/label.yml create mode 100644 _includes/date-format.html create mode 100644 _includes/disqus.html create mode 100644 _includes/favicons.html create mode 100644 _includes/fixlinenos.html create mode 100644 _includes/footer.html create mode 100644 _includes/google-analytics.html create mode 100644 _includes/head.html create mode 100644 _includes/panel.html create mode 100644 _includes/search-results.html create mode 100644 _includes/search.html create mode 100644 _includes/sidebar.html create mode 100644 _includes/topbar.html create mode 100644 _layouts/category.html create mode 100644 _layouts/compress.html create mode 100644 _layouts/default.html create mode 100644 _layouts/home.html create mode 100644 _layouts/page.html create mode 100644 _layouts/post.html create mode 100644 _layouts/tag.html create mode 100755 _scripts/py/init_all.py create mode 100755 _scripts/py/pages_generator.py create mode 100755 _scripts/py/update_posts_lastmod.py create mode 100644 _scripts/py/utils/common.py create mode 100644 assets/css/_src/fonts.scss create mode 100644 assets/css/_src/main.scss create mode 100644 assets/css/_src/syntax.scss create mode 100644 assets/css/styles.scss create mode 100644 assets/data/proxy.json create mode 100644 assets/img/favicons/android-icon-144x144.png create mode 100644 assets/img/favicons/android-icon-192x192.png create mode 100644 assets/img/favicons/android-icon-36x36.png create mode 100644 assets/img/favicons/android-icon-48x48.png create mode 100644 assets/img/favicons/android-icon-72x72.png create mode 100644 assets/img/favicons/android-icon-96x96.png create mode 100644 assets/img/favicons/apple-icon-114x114.png create mode 100644 assets/img/favicons/apple-icon-120x120.png create mode 100644 assets/img/favicons/apple-icon-144x144.png create mode 100644 assets/img/favicons/apple-icon-152x152.png create mode 100644 assets/img/favicons/apple-icon-180x180.png create mode 100644 assets/img/favicons/apple-icon-57x57.png create mode 100644 assets/img/favicons/apple-icon-60x60.png create mode 100644 assets/img/favicons/apple-icon-72x72.png create mode 100644 assets/img/favicons/apple-icon-76x76.png create mode 100644 assets/img/favicons/apple-icon-precomposed.png create mode 100644 assets/img/favicons/apple-icon.png create mode 100644 assets/img/favicons/browserconfig.xml create mode 100644 assets/img/favicons/favicon-16x16.png create mode 100644 assets/img/favicons/favicon-32x32.png create mode 100644 assets/img/favicons/favicon-96x96.png create mode 100644 assets/img/favicons/favicon.ico create mode 100644 assets/img/favicons/manifest.json create mode 100644 assets/img/favicons/ms-icon-144x144.png create mode 100644 assets/img/favicons/ms-icon-150x150.png create mode 100644 assets/img/favicons/ms-icon-310x310.png create mode 100644 assets/img/favicons/ms-icon-70x70.png create mode 100644 assets/img/sample/devices-mockup.png create mode 100644 assets/img/sample/download-icons.png create mode 100644 assets/img/sample/mockup.png create mode 100644 assets/img/sample/profile.jpg create mode 100644 assets/img/sample/upload-image.png create mode 100644 assets/js/_src/_commons/back-to-top.js create mode 100644 assets/js/_src/_commons/search-display.js create mode 100644 assets/js/_src/_commons/sidebar.js create mode 100644 assets/js/_src/_commons/tooltip.js create mode 100644 assets/js/_src/_commons/topbar-switch.js create mode 100644 assets/js/_src/_commons/topbar-title.js create mode 100644 assets/js/_src/category-collapse.js create mode 100644 assets/js/_src/pageviews.js create mode 100644 assets/js/_src/timeago.js create mode 100644 assets/js/dist/_commons/back-to-top.min.js create mode 100644 assets/js/dist/_commons/search-display.min.js create mode 100644 assets/js/dist/_commons/sidebar.min.js create mode 100644 assets/js/dist/_commons/tooltip.min.js create mode 100644 assets/js/dist/_commons/topbar-switch.min.js create mode 100644 assets/js/dist/_commons/topbar-title.min.js create mode 100644 assets/js/dist/category-collapse.min.js create mode 100644 assets/js/dist/commons.js create mode 100644 assets/js/dist/countUp.min.js create mode 100644 assets/js/dist/pageviews.min.js create mode 100644 assets/js/dist/timeago.min.js create mode 100644 assets/lib/bootstrap-toc-1.0.1/bootstrap-toc.min.css create mode 100644 assets/lib/bootstrap-toc-1.0.1/bootstrap-toc.min.js create mode 100644 assets/lib/jquery-3.4.1.min.js create mode 100644 assets/lib/jquery.disqusloader.min.js create mode 100644 assets/lib/simple-jekyll-search-1.7.1.min.js create mode 100755 build.sh create mode 100644 feed.xml create mode 100644 index.html create mode 100755 init.sh create mode 100755 pv.sh create mode 100644 robots.txt create mode 100755 run.sh create mode 100644 search.json create mode 100644 sitemap.xml create mode 100644 tabs/about.md create mode 100644 tabs/archives.md create mode 100644 tabs/categories.md create mode 100644 tabs/tags.md diff --git a/404.html b/404.html new file mode 100644 index 0000000..bf20d63 --- /dev/null +++ b/404.html @@ -0,0 +1,24 @@ +--- +# The 404 page +# © 2017-2019 Cotes Chung +# MIT License +layout: page +title: "404: Page not found" + +permalink: /404.html + +redirect_from: # Same as site.blocklist +- /norobots/ +- /assets/ +- /tabs/ +- /categories/ +- /tags/ +- /posts/ + +dynamic_title: true +--- + +
Sorry, we've misplaced that URL or it's pointing to something that doesn't exist.
+Head back Home to try finding it again, or search for it on the Archives page.
+Comments powered by Disqus.
+' %} + {% assign _content = _content | replace: '', '' %} +{% endif %} \ No newline at end of file diff --git a/_includes/footer.html b/_includes/footer.html new file mode 100644 index 0000000..659f6df --- /dev/null +++ b/_includes/footer.html @@ -0,0 +1,24 @@ + + + diff --git a/_includes/google-analytics.html b/_includes/google-analytics.html new file mode 100644 index 0000000..983746b --- /dev/null +++ b/_includes/google-analytics.html @@ -0,0 +1,14 @@ + + diff --git a/_includes/head.html b/_includes/head.html new file mode 100644 index 0000000..b81ce0b --- /dev/null +++ b/_includes/head.html @@ -0,0 +1,53 @@ + + + ++ {%- if page.layout == "home" -%} + {{- site.title -}} + {%- else -%} + {{ page.title }} | {{ site.title }} + {%- endif -%} + + + + + {% seo title=false %} + + {% include favicons.html %} + + + + + + + + + + + + + + + + + + {% if jekyll.environment == 'production' %} + {% include google-analytics.html %} + {% endif %} + + \ No newline at end of file diff --git a/_includes/panel.html b/_includes/panel.html new file mode 100644 index 0000000..2550816 --- /dev/null +++ b/_includes/panel.html @@ -0,0 +1,72 @@ + + ++ + {% assign lastmod_list = "" | split: "" %} + + {% for post in site.posts %} + {% if post.date >= post.seo.date_modified or post.seo.date_modified == nil %} + {% continue %} + {% endif%} + {% capture item %} + {{ post.seo.date_modified }}::{{ post.title }}::{{ post.url }} + {% endcapture %} + {% assign lastmod_list = lastmod_list | push: item %} + {% endfor %} + + {% if lastmod_list.size > 0 %} +\ No newline at end of file diff --git a/_includes/search-results.html b/_includes/search-results.html new file mode 100644 index 0000000..d9a87f6 --- /dev/null +++ b/_includes/search-results.html @@ -0,0 +1,15 @@ + +++ {% endif %} + + + ++ {{ site.data.label.panel.lastmod }} +
++ {% assign MAX_SIZE = 5 %} + {% assign sum = 0 %} + {% assign sorted_posts = lastmod_list | sort | reverse %} + {% for post in sorted_posts %} + {% assign meta = post | split: "::" %} +
+- {{ meta[1] }}
+ {% assign sum = sum | plus: 1 %} + {% if sum >= MAX_SIZE %} + {% break %} + {% endif %} + {% endfor %} ++\ No newline at end of file diff --git a/_includes/search.html b/_includes/search.html new file mode 100644 index 0000000..04ee7c3 --- /dev/null +++ b/_includes/search.html @@ -0,0 +1,13 @@ + + + \ No newline at end of file diff --git a/_includes/sidebar.html b/_includes/sidebar.html new file mode 100644 index 0000000..6d609b1 --- /dev/null +++ b/_includes/sidebar.html @@ -0,0 +1,65 @@ + + + + + \ No newline at end of file diff --git a/_includes/topbar.html b/_includes/topbar.html new file mode 100644 index 0000000..a730ba4 --- /dev/null +++ b/_includes/topbar.html @@ -0,0 +1,49 @@ + + \ No newline at end of file diff --git a/_layouts/category.html b/_layouts/category.html new file mode 100644 index 0000000..c633a65 --- /dev/null +++ b/_layouts/category.html @@ -0,0 +1,26 @@ +--- +layout: page +# The Category layout +# © 2017-2019 Cotes Chung +# MIT Licensed +--- + +{% include date-format.html %} + +++++Search Results
++++
+\ No newline at end of file diff --git a/_layouts/compress.html b/_layouts/compress.html new file mode 100644 index 0000000..bb34487 --- /dev/null +++ b/_layouts/compress.html @@ -0,0 +1,10 @@ +--- +# Jekyll layout that compresses HTML +# v3.1.0 +# http://jch.penibelst.de/ +# © 2014–2015 Anatol Broder +# MIT License +--- + +{% capture _LINE_FEED %} +{% endcapture %}{% if site.compress_html.ignore.envs contains jekyll.environment or site.compress_html.ignore.envs == "all" %}{{ content }}{% else %}{% capture _content %}{{ content }}{% endcapture %}{% assign _profile = site.compress_html.profile %}{% if site.compress_html.endings == "all" %}{% assign _endings = "html head body li dt dd optgroup option colgroup caption thead tbody tfoot tr td th" | split: " " %}{% else %}{% assign _endings = site.compress_html.endings %}{% endif %}{% for _element in _endings %}{% capture _end %}{{ _element }}>{% endcapture %}{% assign _content = _content | remove: _end %}{% endfor %}{% if _profile and _endings %}{% assign _profile_endings = _content | size | plus: 1 %}{% endif %}{% for _element in site.compress_html.startings %}{% capture _start %}<{{ _element }}>{% endcapture %}{% assign _content = _content | remove: _start %}{% endfor %}{% if _profile and site.compress_html.startings %}{% assign _profile_startings = _content | size | plus: 1 %}{% endif %}{% if site.compress_html.comments == "all" %}{% assign _comments = "" | split: " " %}{% else %}{% assign _comments = site.compress_html.comments %}{% endif %}{% if _comments.size == 2 %}{% capture _comment_befores %}.{{ _content }}{% endcapture %}{% assign _comment_befores = _comment_befores | split: _comments.first %}{% for _comment_before in _comment_befores %}{% if forloop.first %}{% continue %}{% endif %}{% capture _comment_outside %}{% if _carry %}{{ _comments.first }}{% endif %}{{ _comment_before }}{% endcapture %}{% capture _comment %}{% unless _carry %}{{ _comments.first }}{% endunless %}{{ _comment_outside | split: _comments.last | first }}{% if _comment_outside contains _comments.last %}{{ _comments.last }}{% assign _carry = false %}{% else %}{% assign _carry = true %}{% endif %}{% endcapture %}{% assign _content = _content | remove_first: _comment %}{% endfor %}{% if _profile %}{% assign _profile_comments = _content | size | plus: 1 %}{% endif %}{% endif %}{% assign _pre_befores = _content | split: "+ + {{ page.title }} + {{ site.categories[page.category] | size }} +
+ ++ {% for post in site.categories[page.category] %} +
+- + {{ post.title }} + + {{ post.date | date: POST_DATE }} +
+ {% endfor %} +" %}{% assign _pres_after = "" %}{% if _pres.size != 0 %}{% if site.compress_html.blanklines %}{% assign _lines = _pres.last | split: _LINE_FEED %}{% capture _pres_after %}{% for _line in _lines %}{% assign _trimmed = _line | split: " " | join: " " %}{% if _trimmed != empty or forloop.last %}{% unless forloop.first %}{{ _LINE_FEED }}{% endunless %}{{ _line }}{% endif %}{% endfor %}{% endcapture %}{% else %}{% assign _pres_after = _pres.last | split: " " | join: " " %}{% endif %}{% endif %}{% capture _content %}{{ _content }}{% if _pre_before contains "" %}{% endif %}{% unless _pre_before contains "" and _pres.size == 1 %}{{ _pres_after }}{% endunless %}{% endcapture %}{% endfor %}{% if _profile %}{% assign _profile_collapse = _content | size | plus: 1 %}{% endif %}{% if site.compress_html.clippings == "all" %}{% assign _clippings = "html head title base link meta style body article section nav aside h1 h2 h3 h4 h5 h6 hgroup header footer address p hr blockquote ol ul li dl dt dd figure figcaption main div table caption colgroup col tbody thead tfoot tr td th" | split: " " %}{% else %}{% assign _clippings = site.compress_html.clippings %}{% endif %}{% for _element in _clippings %}{% assign _edges = "; ; ;" | replace: "e", _element | split: ";" %}{% assign _content = _content | replace: _edges[0], _edges[1] | replace: _edges[2], _edges[3] | replace: _edges[4], _edges[5] %}{% endfor %}{% if _profile and _clippings %}{% assign _profile_clippings = _content | size | plus: 1 %}{% endif %}{{ _content }}{% if _profile %}
Step | Bytes |
raw | {{ content | size }}{% if _profile_endings %} |
endings | {{ _profile_endings }}{% endif %}{% if _profile_startings %} |
startings | {{ _profile_startings }}{% endif %}{% if _profile_comments %} |
comments | {{ _profile_comments }}{% endif %}{% if _profile_collapse %} |
collapse | {{ _profile_collapse }}{% endif %}{% if _profile_clippings %} |
clippings | {{ _profile_clippings }}{% endif %} |
+ {{ post.content | strip_html | truncate: 200 }} +
+v4#f2r-u_?$%x>tSrl5cX_!fPj1l-OC2C2)R?v%XQn0@^?viR$+<@Pz_
z`C=q^8+Ut!FqZi{FV@;-uRl6Zn_N%fNg wvLylpfvN)AuY7t^66`3$?m!WM7k@y(A*Qq>MFz^&
z>?ZALb5#aSzULMI+Nc;BE=Et=47o=SZFzZlxt*=cygyx?0Hg-W@1><1;Y826=toRp
z#BY)2+(eEWN;4t|w8K~NE$2ysw;^W_=v`odguM*;hJ6so0Yk!s2wH-Ig446JKY$v+
zU}@gAZtop{ZvbfMK_J>d9mNqoC!x6`C@4t7)YKI4%py-9joC7$`pL_;WR?59fu#1P
zxw58f?h%HXAx5vlJ#y4vc%6L4&4gB0zW|sWziL2$*oYM`lMNujfE(fmrUN8E$+B(9
z-4F}@S*Qf`K5Nf!NF3$}cTEvFWwUf$v?c6fW~c$N_7fM~1EnpP@xgbZ-LgO3m06;n
zFghGkbQ%~Mj>MDkd7v~{C85EP#Fmzp01Hz07i;(gKXz7dK<_o7_oYxq`5#pIOhKG~
z<=Ex-C_~{#;YSeXt>40%BBUiX#aJ>IzDAs=h>eSDU}wwxMFg0Ya)XeT%=IZ4uZ`k1
z qiMKZ$9X6?ynEF<8gH(#fPUjNCh`B6m#!?$`P%yNc*mINGm`00g_
zM_gi$LwhD;6`_7NwLtwWy|oN= %ge|NDg!ygwxVbHbIDsCV!1}ll
SQW}97Kq?9v^0l&N;r{~zum?y0
literal 0
HcmV?d00001
diff --git a/assets/img/favicons/android-icon-192x192.png b/assets/img/favicons/android-icon-192x192.png
new file mode 100644
index 0000000000000000000000000000000000000000..db2d8e67a4c5823d5a151cf0c03e2f7cfb7b47ab
GIT binary patch
literal 21277
zcmXVXby$?o`!y`xEgde>9n#GbA| o5i#~?mzzaF@zU@FQfc7!eMN9_Lpxk(l|y-@Y@H^F=88n
zVNXT57U4SJ44g2CfylLK59L3|Z6|r!`+gH~qA#PJ3A)?j#JZEDk`|$&0Hu{-Dr$=;
zE)QV_jBJr)IQKA&{)a+ecarv&UOHR*=_+8i_$DuqFAgI+Q3feI5D5`N+%D-Znr4{KX
z!?6YjHpWckvNQ=hc^~IiU!O8HrThN<`vt9MjCaa(M!yP5OQW$!m`7)3l=bw;(}f)J
zii=rH|9r=j$VEH^YSWhGP}n-3G*6OXdesW!%G=M=VPtSaw;{IQca7kgMToU!nR$W$
zO84o6^e7|ar`eeStVN3-v5vDD>YM^K8Rk
zLPOmnQxg;I+g9!d^ZTbnY~cPAsNzeIj#X!pV_aVO$yZtf@1j!u-=my9(J-5{!%KuK
zV4|w^UMFA`icmENHvLosrF6MgXiB0wA%^2(+(qQQ6MNG2Jbh_1*HuLKGUd)winISe
zJMNCz!aK%8KD|F!p=xh?zX~|Wq9oW%Ye`pr*}c|MVTV#E27JN0+znmZpu2GI5%tSS
zmo%K4sog?q5~45SNrS=Hp(k~i%P+fdo({7>9xqUVd!fPdx69~NLL<67ee}@or~L@1
zPAo@mb5Y7}qm~LsCuvd$pBf5>1IgZt@kOHib+g2>a|+t9ynpUJFIa9me<)aC96yB{
z8_(dZbmf?#y?>`^CR(8gU&a$%ok+Dh_vUhxvm*CK-%MX))hMR+mxOs$2X(A$Y@
zMus&O|3I>~WXRua5pem93tV*pTI8Z+_fDkdnqzU)N}BN-g5|tk6eYPZe9?*aWX^ic
z&21j#CMes5Cf#h|CRm&NTRnxNR7sBD%`40>|2<72A5|C~8PPxt5tU%!_}4CcE0WfK
zwvn4ZHLOzh>s8X9A^#~77Q)55CGBLZfh^RmJvlluUe2bKf=z%@E^K?|(H4z6EXHI}k
zS!A!)X6+mkb~Xc3iEI}7Vkp<*a3oTWTVU0oKxp9i;Du0E>i-1m2o6Sm83gS%7IrS^
z?YEFS%En{m=^)z@{bA{=?)Y%jtzkKj?jNxHJBK%pN#Kog8;sIkqm&<3WSut%feJ;`ZY63z@XZuE%pYF%>Gc`M5%`a-SoE&YA
z>uinZhlp6KeX`sXVMy}770cZE40Lo@iQ=_%>0HC6l&rbtK(B_Xx#)e@R${j!ErkyM
ze8t^Ssl{$5XRI9TuO
z@9mYO_=253d05$%I-C^~6I*W+@$cY-G)TS+Ud`0cmn1LIXC{dr&&;oWp>U_5Z{B%u
zaM04hA#^-6d45yb?6D*pzjdK$o%iSTb2?8oZ?7-s=AL#O#;#5_E|1p*)|Ll536cc*
zywlg$Z?4qQ#L0DYr(gETJK*~l5Kc}`q9|fQ(9+OP`?r1*r7t4)7naT-mtUu>zR%rJ
z7(l#0aLph}g96I+Vq3mJ7l@|^5XEHj+}gJm`XF4q$hbl4@#=qd`DINv{f-E3+L;W4
zAd$#YAAkR;7B<1P*C3y